#include <infocon.style>
<page func=InfoCon title="Buchhaltung">
+<calendar_init -5>
<style type="text/css">
span.in { color: green; }
span.in:hover, span.out:hover { background: yellow; border: 1px solid #ccc; }
</style>
-<h3>Nicht bezahlte Rechnungen</h3>
+<h3>Übersichten</h3>
<?
$dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
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_dm_%d\" value=\"1\">", $row['nr']);
- printf ("%d. %s %s (%.2f DM)<br>", $row['nr'], $date, $row['description'], $row['price']);
+ printf (" <input type=\"text\" id=\"date_%d\" name=\"date_%d\" size=\"6\" value=\"\">", $row['nr'], $row['nr']);
+ printf (" <img class=\"calendar\" src=\"<root_prefix>pix/calendar.gif\" onclick=\"event.cancelBubble=true;popcalendar('date_%d');\" alt=\"\">", $row['nr']);
+ printf (" %d. %s %s (%.2f DM)<br>", $row['nr'], $date, $row['description'], $row['price']);
}
$query = "SELECT nr,date,description,price FROM sales WHERE paid=0 ORDER BY date,nr";
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 ('<span class="%s">%d. %s %s (%.2f €)</span><br>',
+ printf (" <input type=\"text\" id=\"date_%d\" name=\"date_%d\" size=\"6\" value=\"\">", $row['nr'], $row['nr']);
+ printf (" <img class=\"calendar\" src=\"<root_prefix>pix/calendar.gif\" onclick=\"event.cancelBubble=true;popcalendar('date_%d');\" alt=\"\">", $row['nr']);
+ printf (' <span class="%s">%d. %s %s (%.2f €)</span><br>',
$row['price'] < 0 ? 'out' : 'in',
$row['nr'], $date, $row['description'], $row['price']);
}
<page func=InfoCon title="Buchhaltung">
<?
+ function assert_date($date)
+ {
+ if (strpos($date, '.') !== false) {
+ $d = explode('.', $date);
+ $date = sprintf('%04d-%02d-%02d', $d[2] ? $d[2] : date('Y'), $d[1], $d[0]);
+ }
+ return $date;
+ }
+
function dig ($dbh, $table, $id)
{
$query = sprintf ("SELECT date,description,price FROM %s WHERE nr = %d",
$dbh = pg_pconnect ("<dbhost>", "<dbport>", "<dbname>")
or die("Unable to connect to SQL server");
- $query = "SELECT nr FROM sales_dm WHERE paid = 0";
+ $query = "SELECT nr FROM sales_dm WHERE paid = 0 ORDER BY date";
$sth = pg_exec ($dbh, $query);
# Collect all to be paid entries
<protect>for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {</protect>
$row = pg_fetch_array ($sth, $nr);
- $v = sprintf ("pay_dm_%d", $row['nr']);
- if (isset($_POST[$v])) {
+ $v = sprintf ("date_%d", $row['nr']);
+ if (strlen($_POST[$v])) {
$paydm[] = $row['nr'];
}
}
- $query = "SELECT nr FROM sales WHERE paid=0";
+ $query = "SELECT nr FROM sales WHERE paid = 0 ORDER BY date";
$sth = pg_exec ($dbh, $query);
# Collect all to be paid entries
<protect>for ($nr=0; $nr <pg_NumRows ($sth); $nr++) {</protect>
$row = pg_fetch_array ($sth, $nr);
- $v = sprintf ("pay_%d", $row['nr']);
- if (isset($_POST[$v])) {
+ $v = sprintf ("date_%d", $row['nr']);
+ if (strlen($_POST[$v])) {
$pay[] = $row['nr'];
}
}
if (count($paydm) > 0) {
echo ("Folgende Buchungen werden bezahlt:<p>");
for ($i=0; $i < count ($paydm); $i++) {
- $query = sprintf ("UPDATE sales_dm SET paid=1 WHERE nr = %d", $paydm[$i]);
+ $date = assert_date($_POST[sprintf("date_%d", $paydm[$i])]);
+ $query = sprintf ("UPDATE sales_dm SET paid=1, billing_date='%s' WHERE nr = %d",
+ $date, $paydm[$i]);
echo (dig ($dbh, "sales_dm", $paydm[$i]));
$sth = pg_exec ($dbh, $query);
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]);
+ $date = assert_date($_POST[sprintf("date_%d", $pay[$i])]);
+ $query = sprintf ("UPDATE sales SET paid=1, billing_date='%s' WHERE nr = %d",
+ $date, $pay[$i]);
echo (dig ($dbh, "sales", $pay[$i]));
$sth = pg_exec ($dbh, $query);