Use new object-oriented backend
[infodrom.org/service.infodrom.org] / src / InfoCon / account / update.wml
1 #include <infocon.style>
2 #include <phptools.inc>
3 #include "account.inc"
4
5 <future>
6 <page func=InfoCon title="Kontoführung">
7
8 <?
9   if ($_POST['formtype'] == "admin" || $_POST['formtype'] == "newaccount")
10     $ktoname = "Administration";
11 ?>
12
13 <account_heading>
14
15 <sql_prepare>
16 <form_to_yyyymmdd>
17
18 <?
19   if ($_POST['formtype'] == "admin") {
20     $query = "SELECT blz_kto,name,display FROM account_names ORDER BY name";
21     foreach ($db->fetchAssocList($query) as $row) {
22       if ($_POST['name_' . $row['blz_kto']] != $row['name'] ||
23           ($_POST['display_' . $row['blz_kto']] ? 1 : 0) != $row['display']) {
24         $query = sprintf ("UPDATE account_names SET name='%s',display=%d,sys_user='%s',sys_edit=now() WHERE blz_kto = '%s'",
25                           $_POST['name_' . $row['blz_kto']],
26                           $_POST['display_' . $row['blz_kto']] ? 1 : 0,
27                           $_SERVER['REMOTE_USER'],
28                           $row['blz_kto']);
29
30         $db->execute($query);
31         $output = "Kontoinformationen aktualisiert.";      
32       }
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         $db->execute($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         $db->execute($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 = $db->quote($_POST['statement']);
77     $category = $db->quote($category);
78     $descr = $db->quote(trim($_POST['descr']));
79     $from_to = $db->quote($from_to);
80
81     $date = form_to_yyyymmdd ($_POST['datum']);
82
83     $value = str_replace (",",".", $_POST['value']);
84
85     if (isset($_POST['id']) && $_POST['id'] > 0 && strlen ($_POST['delete'])) {
86       $query = sprintf("DELETE FROM %s WHERE id = %d", $table, $_POST['id']);
87       $output = "Posten gelöscht.";
88     } elseif (isset($_POST['id']) && $_POST['id'] > 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 id = %d",
91                        $table,
92                        $date,
93                        $statement,
94                        $from_to,
95                        $descr,
96                        $category,
97                        $field,$value,
98                        $_SERVER['REMOTE_USER'],
99                        $_POST['id']);
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     $db->execute($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: