Add sys_user and sys_edit as internal fields
[infodrom.org/service.infodrom.org] / src / InfoCon / account / update.wml
1 #include <infocon.style>
2 #include <phptools.inc>
3 #include "account.inc"
4
5 <page func=InfoCon title="Kontoführung">
6
7 <?
8   if ($_POST[formtype] == "admin" || $_POST[formtype] == "newaccount")
9     $ktoname = "Administration";
10 ?>
11
12 <account_heading>
13
14 <sql_prepare>
15 <form_to_yyyymmdd>
16
17 <?
18   if ($_POST[formtype] == "admin") {
19     $query = "SELECT blz_kto,name,display FROM account_names ORDER BY name";
20     $sth = pg_exec ($dbh, $query);
21
22     for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
23       $row = pg_fetch_array ($sth, $nr);
24
25       $query = sprintf ("UPDATE account_names SET name='%s',display=%d,sys_user='%s',sys_edit=now() WHERE blz_kto = '%s'",
26                         $_POST['name_' . $row['blz_kto']],
27                         $_POST['display_' . $row['blz_kto']] ? 1 : 0,
28                         $_SERVER['REMOTE_USER'],
29                         $row['blz_kto']);
30
31       pg_exec ($dbh, $query);
32       $output = "Kontoinformationen aktualisiert.";      
33     }
34   } elseif ($_POST[formtype] == "newaccount") {
35     if (isset($_POST['blz']) && isset($_POST['kto']) && isset($_POST['name'])) {
36       $query = sprintf ("INSERT INTO account_names (blz_kto,name,display,sys_user,sys_edit) ".
37                         "VALUES ('%s:%s','%s',1,'%s',now())",
38                         $_POST['blz'],
39                         $_POST['kto'],
40                         $_POST['name'],
41                         $_SERVER['REMOTE_USER']);
42       pg_exec ($dbh, $query);
43
44       $query = sprintf ("INSERT INTO account (blz_kto,statement,datum,from_to,descr,category,value_eur,sys_user,sys_edit) ".
45                         "VALUES ('%s:%s','%s','%s','Account Administration','Initial Zero Statement','Miscellaneous',0.0,'%s',now())",
46                         $_POST['blz'],
47                         $_POST['kto'],
48                         date("Y") . "/00",
49                         date("Y-m-j"),
50                         $_SERVER['REMOTE_USER']);
51       pg_exec ($dbh, $query);
52
53       $output = "Neues Konto erstellt.";
54     } else {
55       $output = "Nicht ausreichend Informationen gegeben.";
56     }
57     exit (0);
58   } else {
59     $table = "account";
60     $field = "value_eur";
61     if ((strlen ($_POST[currency]) > 0) && ($_POST[currency] == "dm")) {
62       $table = "account_dm";
63       $field = "value_dm";
64     }
65
66     if (strlen ($_POST[category]) == 0 && strlen ($_POST[newcategory]) > 0) {
67       $category = $_POST[newcategory];
68     } else {
69       $category = $_POST[category];
70     }
71     if (strlen ($_POST[from_to]) == 0 && strlen ($_POST[newfrom_to]) > 0) {
72       $from_to = $_POST[newfrom_to];
73     } else {
74       $from_to = $_POST[from_to];
75     }
76     $statement = sql_prepare ($_POST[statement]);
77     $category = sql_prepare ($category);
78     $descr = sql_prepare (trim($_POST[descr]));
79     $from_to = sql_prepare ($from_to);
80
81     $date = form_to_yyyymmdd ($_POST[datum]);
82
83     $value = ereg_replace (",",".", $_POST[value]);
84
85     if (isset($_POST[oid]) && $_POST[oid] > 0 && strlen ($_POST[delete])) {
86       $query = "DELETE FROM $table WHERE oid = $_POST[oid]";
87       $output = "Posten gelöscht.";
88     } elseif (isset($_POST[oid]) && $_POST[oid] > 0) {
89       $query = sprintf("UPDATE %s SET datum='%s',statement='%s',from_to='%s',descr='%s',category='%s',%s=%s,sys_user='%s',sys_edit=now() " .
90                        "WHERE oid = %d",
91                        $table,
92                        $date,
93                        $statement,
94                        $from_to,
95                        $descr,
96                        $category,
97                        $field,$value,
98                        $_SERVER['REMOTE_USER'],
99                        $_POST['oid']);
100         $output = "Posten aktualisiert.";
101     } else {
102       $query = sprintf("INSERT INTO %s (blz_kto,datum,statement,from_to,descr,category,%s,sys_user,sys_edit) ".
103                        "VALUES ('%s','%s','%s','%s','%s','%s',%s,'%s',now())",
104                        $table, $field,
105                        $_POST['blzkto'],
106                        $date,
107                        $statement,
108                        $from_to,
109                        $descr,
110                        $category,
111                        $value,
112                        $_SERVER['REMOTE_USER']);
113       $output = "Neuen Posten aufgenommen.";
114       $output .= sprintf('</p><p><a href="edit.php?blzkto=%s">Weiteren Posten aufnehmen</a>', $_POST['blzkto']);
115     }
116     $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
117   }
118
119   echo ("<p>".$output."</p>");
120 ?>
121
122 </page>
123
124 # Local variables:
125 # mode: php
126 # mode: auto-fill
127 # end: