Rudimentaere Buchhaltung hinzugefuegt.
authorJoey Schulze <joey@infodrom.org>
Sun, 22 Oct 2000 14:08:37 +0000 (14:08 +0000)
committerJoey Schulze <joey@infodrom.org>
Sun, 22 Oct 2000 14:08:37 +0000 (14:08 +0000)
src/InfoCon/account/submenu.inc
src/InfoCon/buch/index.wml [new file with mode: 0644]
src/InfoCon/buch/list.wml [new file with mode: 0644]
src/InfoCon/buch/pay.wml [new file with mode: 0644]
src/InfoCon/buch/submenu.inc [new file with mode: 0644]
src/InfoCon/submenu.inc

index fd33abf..71d384d 100644 (file)
@@ -1,6 +1,11 @@
 <a href="<root_prefix>InfoCon/">InfoCon</a><br>
 
-<a href="../account/">Konto</a><br>
+<ifneq <get-var WML_SRC_BASENAME> "index"
+  <a href="../account/">Konto</a>
+  Konto
+><br>
+
+<a href="../buch/">Buchhaltung</a><br>
 
 #<a href="../download/">Download</a><br>
 
diff --git a/src/InfoCon/buch/index.wml b/src/InfoCon/buch/index.wml
new file mode 100644 (file)
index 0000000..cf8cd81
--- /dev/null
@@ -0,0 +1,57 @@
+#include <infocon.style>
+
+<page title="Buchhaltung">
+
+<headline "Buchhaltung">
+
+<form method=POST action=list.php3>
+<input type=hidden name=blzkto value="<? echo $blzkto; ?>">
+<b>Jahr</b>: <input name=year size=10 maxlength=4><br>
+<b>Kategorie:</b> <select name=category>
+<option>
+<?
+  $dbh = pg_pconnect ("kuolema", "5432", "<db>")
+        or die("Unable to connect to SQL server");
+
+  $query = "SELECT DISTINCT category FROM sales ORDER BY category";
+  $sth = pg_exec ($dbh, $query);
+
+  for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {
+    $cat = pg_fetch_array ($sth, $nr);
+    printf ("<option value=\"%s\">%s", $cat['category'], $cat['category']);
+  }
+?></select><br>
+<b>Zahlung</b>: <input type=checkbox name=input value=1 checked> Einnahmen <input type=checkbox name=output value=1 checked> Ausgaben<br>
+
+<p><center><input type=submit value="Query"> <input type=reset value="Reset"></center><p>
+</form>
+
+<?
+  $query = "SELECT nr,date,description,price FROM sales WHERE paid=0 ORDER BY date,nr";
+  $sth = pg_exec ($dbh, $query);
+
+  if (pg_NumRows ($sth) > 0) {
+    echo ("<h3>Nicht bezahlte Rechnungen</h3>");
+    echo ("<form method=\"POST\" action=\"pay.php3\">");
+  }
+
+  for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {
+    $row = pg_fetch_array ($sth, $nr);
+    $date = substr ($row['date'],6,2) . "." . substr ($row['date'],4,2) . "." . substr ($row['date'],0,4);
+    printf (" <input type=\"checkbox\" name=\"pay_%d\" value=\"1\">", $row['nr']);
+    printf ("%d. %s %s (%.2f)<br>", $row['nr'], $date, $row['description'], $row['price']);
+  }
+
+  if (pg_NumRows ($sth) > 0) {
+    echo ("<p><input type=\"submit\" value=\"Bezahlen\"> <input type=\"reset\" value=\"Reset\"><p>");
+    echo ("</form>");
+  }
+?>
+
+</page>
+
+# Local variables:
+# mode: text
+# mode: auto-fill
+# mode: iso-accents
+# end:
diff --git a/src/InfoCon/buch/list.wml b/src/InfoCon/buch/list.wml
new file mode 100644 (file)
index 0000000..61484e9
--- /dev/null
@@ -0,0 +1,125 @@
+#include <infocon.style>
+
+<page title="Kontof├╝hrung">
+
+<headline "Buchhaltung">
+
+<table width=100% border=1 cellpadding=2 cellspacing=0>
+<tr>
+  <th width=15%>Datum</th>
+  <th width=20%>Kategorie</th>
+  <th width=50%>Verwendungszweck</th>
+  <th width=15%>Betrag</th>
+</tr>
+<?
+  $dbh = pg_pconnect ("kuolema", "5432", "<db>")
+              or die("Unable to connect to SQL server");
+
+  pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
+
+  if (strlen($year)) {
+    # $where[] = "date >= '$year-01-01'";
+    # $year++;
+    # $where[] = "date < '$year-01-01'";
+    $where[] = "date ~* '$year'";
+  }
+  if (strlen($category)) {
+    $where[] = "category = '$category'";
+  }
+  if ($input && !$output) {
+    $where[] = "price > 0.0";
+  } elseif ($output && !$input) {
+    $where[] = "price < 0.0";
+  }
+
+  $query = "SELECT date,oid,category,description,price FROM sales ";
+  if (count($where) > 0) {
+    $query .= " WHERE " . implode ($where, " AND ");
+  }
+  $query .= " ORDER BY date,oid";
+  $sth = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
+
+  $sum = 0.0;
+  for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
+    $row = pg_fetch_array ($sth, $nr);
+
+    # $date = explode (" ", $row['date']);
+    # $date = explode ("-", $date[0]);
+    # $date = sprintf ("%d.%d.%d", $date[2], $date[1], $date[0]);
+    $date = substr ($row['date'],6,2) . "." . substr ($row['date'],4,2) . "." . substr ($row['date'],0,4);
+
+    echo ("<tr>");
+    printf ("<td width=\"15%%\" align=\"right\">%s</td>", $date);
+    printf ("<td width=\"20%%\">%s</td>", $row['category']);
+    printf ("<td width=\"50%%\"><a href=\"edit.php3?oid=%d\">%s</a></td>", $row['oid'], $row['description']);
+    printf ("<td width=\"15%%\" align=\"right\">%5.2f</td>", $row['price']);
+    $sum += $row['price'];
+    echo ("</tr>");
+  }
+  echo ("<tr>");
+  echo ("<td width=\"85%\" colspan=\"3\">Summe</td>");
+  printf ("<td width=\"15%%\" align=\"right\">%5.2f</td>", $sum);
+  echo ("</tr>");
+
+  if (!strlen($category)) {
+
+    $query = "SELECT DISTINCT category FROM sales ";
+    if (strlen($year)) {
+      $query .= "WHERE date ~* '$year'";
+    }
+
+    $sth = pg_exec ($dbh, $query); // or die("Datenbank-Abfrage!");
+
+    for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
+      $row = pg_fetch_array ($sth, $nr);
+      $catz[] = $row['category'];
+    }
+
+    if (count ($catz) > 0) {
+      echo ("<h3>Nach Kategorien sortiert</h3>");
+      echo ("<table width=\"100%\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">");
+      echo ("<tr><th width=\"70%\">Kategorie</th><th width=\"10%\">Einnahmen</th><th width=\"10%\">Ausgaben</th>"
+          ."<th width=\"10%\">Summe</th></tr>");
+      sort ($catz);
+
+      for ($i=0; $i < count ($catz); $i++) {
+        $query = sprintf ("SELECT SUM (price) FROM sales WHERE category = '%s' AND price > 0.0", $catz[$i]);
+       if (strlen($year)) {
+         $query .= " AND date ~* '$year'";
+       }
+        $sth = pg_exec ($dbh, $query); // or die("Datenbank-Abfrage!");
+       $row = pg_fetch_array ($sth, 0);
+       $input = $row[0]; $sum_input += $input;
+        $query = sprintf ("SELECT SUM (price) FROM sales WHERE category = '%s' AND price < 0.0", $catz[$i]);
+       if (strlen($year)) {
+         $query .= " AND date ~* '$year'";
+       }
+        $sth = pg_exec ($dbh, $query); // or die("Datenbank-Abfrage!");
+       $row = pg_fetch_array ($sth, 0);
+       $output = -$row[0]; $sum_output += $output;
+
+       printf ("<tr><td width=\"70%%\">%s</td><td align=\"right\" width=\"10%%\">%.2f</td>"
+              ."<td align=\"right\" width=\"10%%\">%.2f</td>"
+              ."<td align=\"right\" width=\"10%%\">%.2f</td></tr>",$catz[$i], $input, $output, $input - $output);
+      }
+
+      printf ("<tr><td width=\"70%%\">Summe</td><td align=\"right\" width=\"10%%\">%.2f</td>"
+            ."<td align=\"right\" width=\"10%%\">%.2f</td>"
+            ."<td align=\"right\" width=\"10%%\">%.2f</td></tr>",$sum_input, $sum_output, $sum_input - $sum_output);
+      echo ("</table>");
+
+    }
+  }
+?>
+</table><p>
+
+<a href="edit.php3">Neuer Eintrag</a><p>
+
+
+</page>
+
+# Local variables:
+# mode: text
+# mode: auto-fill
+# mode: iso-accents
+# end:
diff --git a/src/InfoCon/buch/pay.wml b/src/InfoCon/buch/pay.wml
new file mode 100644 (file)
index 0000000..3ebdd75
--- /dev/null
@@ -0,0 +1,43 @@
+#include <infocon.style>
+
+<page title="Kontof├╝hrung">
+
+<headline "Buchhaltung">
+
+<?
+  $dbh = pg_pconnect ("kuolema", "5432", "<db>")
+        or die("Unable to connect to SQL server");
+
+  $query = "SELECT nr FROM sales WHERE paid=0";
+  $sth = pg_exec ($dbh, $query);
+
+  # Collect all to be paid entries
+  #
+  for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {
+    $row = pg_fetch_array ($sth, $nr);
+
+    $v = sprintf ("pay_%d", $row['nr']);
+    if (${$v}) {
+      $pay[] = $row['nr'];
+    }
+  }
+
+  # Now pay them
+  if (count ($pay)>0) {
+    echo ("Folgende Buchungen werden bezahlt:<p>");
+    for ($i=0; $i < count ($pay); $i++) {
+      $query = sprintf ("UPDATE sales SET paid=1 WHERE nr = %d", $pay[$i]);
+  
+      printf ("%s<br>", $query);
+      $sth = pg_exec ($dbh, $query);
+    }
+  }
+
+?>
+</page>
+
+# Local variables:
+# mode: text
+# mode: auto-fill
+# mode: iso-accents
+# end:
diff --git a/src/InfoCon/buch/submenu.inc b/src/InfoCon/buch/submenu.inc
new file mode 100644 (file)
index 0000000..0d460d7
--- /dev/null
@@ -0,0 +1,16 @@
+<a href="<root_prefix>InfoCon/">InfoCon</a><br>
+
+<a href="../account/">Konto</a><br>
+
+<ifneq <get-var WML_SRC_BASENAME> "index"
+  <a href="../buch/">Buchhaltung</a>
+  Buchhaltung
+><br>
+
+#<a href="../download/">Download</a><br>
+
+# Local variables:
+# mode: indented-text
+# mode: auto-fill
+# mode: iso-accents
+# end:
index d1c651c..7ba6203 100644 (file)
@@ -2,6 +2,8 @@
 
 <a href="account/">Konto</a><br>
 
+<a href="buch/">Buchhaltung</a><br>
+
 #<a href="download/">Download</a><br>
 
 <a href="/">ffis Service</a><br>