1 #include <infocon.style>
3 <page func=InfoCon title="Buchhaltung">
6 function assert_date($date)
8 if (strpos($date, '.') !== false) {
9 $d = explode('.', $date);
10 $date = sprintf('%04d-%02d-%02d', $d[2] ? $d[2] : date('Y'), $d[1], $d[0]);
15 function dig ($dbh, $table, $id)
17 $query = sprintf ("SELECT date,description,price FROM %s WHERE nr = %d",
19 $sth = pg_exec ($dbh, $query);
21 if (pg_NumRows ($sth) > 0) {
22 $row = pg_fetch_array ($sth, 0);
25 if ($table == "sales_dm") {
28 $date = substr ($row['date'],6,2) . "." . substr ($row['date'],4,2) . "." . substr ($row['date'],0,4);
29 return sprintf ("<br>#%d: %s %s (%.2f %s)",
30 $id, $date, $row['description'], $row['price'], $cur);
35 $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
36 or die("Unable to connect to SQL server");
38 $query = "SELECT nr FROM sales_dm WHERE paid = 0 ORDER BY date";
39 $sth = pg_exec ($dbh, $query);
41 # Collect all to be paid entries
43 <protect>for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {</protect>
44 $row = pg_fetch_array ($sth, $nr);
46 $v = sprintf ("date_%d", $row['nr']);
47 if (strlen($_POST[$v])) {
48 $paydm[] = $row['nr'];
52 $query = "SELECT nr FROM sales WHERE paid = 0 ORDER BY date";
53 $sth = pg_exec ($dbh, $query);
55 # Collect all to be paid entries
57 <protect>for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {</protect>
58 $row = pg_fetch_array ($sth, $nr);
60 $v = sprintf ("date_%d", $row['nr']);
61 if (strlen($_POST[$v])) {
67 if (count($paydm) > 0) {
68 echo ("Folgende Buchungen werden bezahlt:<p>");
69 for ($i=0; $i < count ($paydm); $i++) {
70 $date = assert_date($_POST[sprintf("date_%d", $paydm[$i])]);
71 $query = sprintf ("UPDATE sales_dm SET paid=1, billing_date='%s' WHERE nr = %d",
74 echo (dig ($dbh, "sales_dm", $paydm[$i]));
75 $sth = pg_exec ($dbh, $query);
79 if (count($pay) > 0) {
80 if (count($paydm) == 0) {
81 echo ("Folgende Buchungen werden bezahlt:<p>");
83 for ($i=0; $i < count ($pay); $i++) {
84 $date = assert_date($_POST[sprintf("date_%d", $pay[$i])]);
85 $query = sprintf ("UPDATE sales SET paid=1, billing_date='%s' WHERE nr = %d",
88 echo (dig ($dbh, "sales", $pay[$i]));
89 $sth = pg_exec ($dbh, $query);