. Changes required to support dm/eur currency where required.
[infodrom.org/service.infodrom.org] / src / InfoCon / buch / pay.wml
1 #include <infocon.style>
2
3 <page func=InfoCon title="Buchhaltung">
4
5 <?
6   function dig ($dbh, $table, $id)
7   {
8     $query = sprintf ("SELECT date,description,price FROM %s WHERE nr = %d",
9                       $table, $id);
10     $sth = pg_exec ($dbh, $query);
11
12     if (pg_NumRows ($sth) > 0) {
13       $row = pg_fetch_array ($sth, 0);
14
15       $cur = "&euro;";
16       if ($table == "sales_dm") {
17         $cur = "DM";
18       }
19       $date = substr ($row['date'],6,2) . "." . substr ($row['date'],4,2) . "." . substr ($row['date'],0,4);
20       return sprintf ("<br>#%d: %s %s (%.2f&nbsp;%s)",
21                      $id, $date, $row['description'], $row['price'], $cur);
22     }
23     return '';
24   }
25
26   $dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
27          or die("Unable to connect to SQL server");
28
29   $query = "SELECT nr FROM sales_dm WHERE paid=0";
30   $sth = pg_exec ($dbh, $query);
31
32   # Collect all to be paid entries
33   #
34   <protect>for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {</protect>
35     $row = pg_fetch_array ($sth, $nr);
36
37     $v = sprintf ("pay_dm_%d", $row['nr']);
38     if (${$v}) {
39       $paydm[] = $row['nr'];
40     }
41   }
42
43   $query = "SELECT nr FROM sales WHERE paid=0";
44   $sth = pg_exec ($dbh, $query);
45
46   # Collect all to be paid entries
47   #
48   <protect>for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {</protect>
49     $row = pg_fetch_array ($sth, $nr);
50
51     $v = sprintf ("pay_%d", $row['nr']);
52     if (${$v}) {
53       $pay[] = $row['nr'];
54     }
55   }
56
57   # Now pay them
58   if (count ($paydm)>0) {
59     echo ("Folgende Buchungen werden bezahlt:<p>");
60     for ($i=0; $i < count ($paydm); $i++) {
61       $query = sprintf ("UPDATE sales_dm SET paid=1 WHERE nr = %d", $paydm[$i]);
62   
63       echo (dig ($dbh, "sales_dm", $paydm[$i]));
64       $sth = pg_exec ($dbh, $query);
65     }
66   }
67
68   if (count ($pay) > 0) {
69     if (count ($pay) == 0) {
70       echo ("Folgende Buchungen werden bezahlt:<p>");
71     }
72     for ($i=0; $i < count ($pay); $i++) {
73       $query = sprintf ("UPDATE sales SET paid=1 WHERE nr = %d", $pay[$i]);
74   
75       echo (dig ($dbh, "sales", $pay[$i]));
76       $sth = pg_exec ($dbh, $query);
77     }
78   }
79
80 ?>
81 </page>
82
83 # Local variables:
84 # mode: text
85 # mode: auto-fill
86 # end: