. Changes required to support dm/eur currency where required.
authorJoey Schulze <joey@infodrom.org>
Wed, 2 Jan 2002 22:25:34 +0000 (22:25 +0000)
committerJoey Schulze <joey@infodrom.org>
Wed, 2 Jan 2002 22:25:34 +0000 (22:25 +0000)
. Don't activate iso-accents-mode, 'cause it's evil for programming

src/InfoCon/buch/index.wml
src/InfoCon/buch/infocon
src/InfoCon/buch/list.wml

index 3579415..8665361 100644 (file)
     printf ("<option value=\"%s\">%s", $cat['category'], $cat['category']);
   }
 ?></select><br>
+<b>W√§hrung</b>: <input type=radio name=currency value=eur checked> Euro <input type=radio name=currency value=dm> DM<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";
+  $form = 0;
+  $query = "SELECT nr,date,description,price FROM sales_dm WHERE paid=0 ORDER BY date,nr";
   $sth = pg_exec ($dbh, $query);
 
   if (pg_NumRows ($sth) > 0) {
+    $form = 1;
+    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_dm_%d\" value=\"1\">", $row['nr']);
+    printf ("%d. %s %s (%.2f&nbsp;DM)<br>", $row['nr'], $date, $row['description'], $row['price']);
+  }
+
+  $query = "SELECT nr,date,description,price FROM sales WHERE paid=0 ORDER BY date,nr";
+  $sth = pg_exec ($dbh, $query);
+
+  if (!form && pg_NumRows ($sth) > 0) {
+    $form = 1;
     echo ("<h3>Nicht bezahlte Rechnungen</h3>");
     echo ("<form method=\"POST\" action=\"pay.php3\">");
   }
     $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']);
+    printf ("%d. %s %s (%.2f&nbsp;&euro;)<br>", $row['nr'], $date, $row['description'], $row['price']);
   }
 
-  if (pg_NumRows ($sth) > 0) {
+  if ($form > 0) {
     echo ("<p><input type=\"submit\" value=\"Bezahlen\"> <input type=\"reset\" value=\"Reset\"><p>");
     echo ("</form>");
   }
index 4af5f9d..8410a65 100755 (executable)
@@ -1,7 +1,7 @@
 #! /usr/bin/perl
 
 #  infocon - Admin-Tool for InfoCon
-#  Copyright (c) 1998-2001  Martin Schulze <joey@infodrom.org>
+#  Copyright (c) 1998-2002  Martin Schulze <joey@infodrom.org>
 
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
@@ -21,6 +21,7 @@
 
 use DBI;
 
+$table = "sales";
 $engine  = "dbi:Pg:dbname=infocon";
 $dbh = DBI->connect($engine);
 if (!$dbh) {
@@ -119,7 +120,7 @@ sub sales_list
        }
     }
 
-    $query  = "SELECT nr,date,description,price FROM sales";
+    $query  = "SELECT nr,date,description,price FROM $table";
     $query .= " WHERE $where" if ($where);
     $query .= " ORDER by date,nr";
     $sth = $dbh->prepare($query);
@@ -153,7 +154,7 @@ sub get_categories
     my $sth;
     my @arr = ();
 
-    $query  = "SELECT DISTINCT category FROM sales ORDER by category";
+    $query  = "SELECT DISTINCT category FROM $table ORDER by category";
     $sth = $dbh->prepare($query);
     if ($sth && ($rc = $sth->execute) > 0) {
        while (@row = $sth->fetchrow_array) {
@@ -200,7 +201,7 @@ sub get_next_nr
     my $rc;
     my @row;
 
-    $query = "SELECT nr FROM sales ORDER BY nr DESC";
+    $query = "SELECT nr FROM $table ORDER BY nr DESC";
     $sth = $dbh->prepare($query);
     if ($sth) {
        $rc = $sth->execute;
@@ -266,6 +267,7 @@ sub usage
     print "    --verbose|-v\n";
     print "    --year|-y year\n";
     print "    --direction|--dir|-d in|out\n";
+    print "    --dm\n";
     exit 0;
 }
 
@@ -329,6 +331,11 @@ while ($i <= $#ARGV) {
            } elsif ($opt_year < 100) {
                $opt_year += 1900;
            }
+           if ($opt_year < 2002) {
+               $table = "sales_dm";
+           } elsif ($opt_year > 2001) {
+               $table = "sales";
+           }
        }
     } elsif ($ARGV[$i] eq "--direction" || $ARGV[$i] eq "--dir"
             || $ARGV[$i] eq "-d") {
@@ -336,6 +343,8 @@ while ($i <= $#ARGV) {
            $i++;
            $opt_direction = $1;
        }
+    } elsif ($ARGV[$i] eq "--dm") {
+       $table = "sales_dm";
     } elsif ($ARGV[$i] eq "-v" || $ARGV[$i] eq "--verbose") {
        $opt_verbose = 1;
     }
index 6e2294e..041f78e 100644 (file)
 
   pg_exec ($dbh, "SET DateStyle = 'ISO'") or die("Datenbank-Abfrage!");
 
+  if ($currency == "eur") {
+    $table = "sales";
+  } elseif ($currency == "dm") {
+    $table = "sales_dm";
+  } else {
+    die ("Unknown currency");
+  }
+
   if (strlen($year)) {
     # $where[] = "date >= '$year-01-01'";
     # $year++;
     # $where[] = "date < '$year-01-01'";
     $where[] = "date ~* '$year'";
+
+    # Implicit selection of currency
+    if ($year < 2002) {
+      $table = "sales_dm";
+    } elseif ($year > 2001) {
+      $table = "sales";
+    }
   }
   if (strlen($category)) {
     $where[] = "category = '$category'";
@@ -30,7 +45,7 @@
     $where[] = "price < 0.0";
   }
 
-  $query = "SELECT date,oid,category,description,price FROM sales ";
+  $query = "SELECT date,oid,category,description,price FROM $table ";
   if (count($where) > 0) {
     $query .= " WHERE " . implode ($where, " AND ");
   }
@@ -51,8 +66,8 @@
     printf ("<tr bgcolor=\"#%s\">", $color);
     printf ("<td width=\"15%%\" align=\"right\"><font face=\"Helvetica,Arial\">%s</font></td>", $date);
     printf ("<td width=\"20%%\"><font face=\"Helvetica,Arial\">%s</font></td>", $row['category']);
-    printf ("<td width=\"50%%\"><font face=\"Helvetica,Arial\"><a href=\"edit.php3?oid=%d\">%s</a></font></td>",
-      $row['oid'], $row['description']);
+    printf ("<td width=\"50%%\"><font face=\"Helvetica,Arial\"><a href=\"edit.php3?oid=%d&cur=%s\">%s</a></font></td>",
+      $row['oid'], $currency, $row['description']);
     printf ("<td width=\"15%%\" align=\"right\"><font face=\"Helvetica,Arial\">%5.2f</font></td>", $row['price']);
     $sum += $row['price'];
     echo ("</tr>");
@@ -65,7 +80,7 @@
 
   if (!strlen($category)) {
 
-    $query = "SELECT DISTINCT category FROM sales ";
+    $query = "SELECT DISTINCT category FROM $table ";
     if (strlen($year)) {
       $query .= "WHERE date ~* '$year'";
     }
 
       $color = "<cold>";
       for ($i=0; $i < count ($catz); $i++) {
-        $query = sprintf ("SELECT SUM (price) FROM sales WHERE category = '%s' AND price > 0.0", $catz[$i]);
+        $query = sprintf ("SELECT SUM (price) FROM $table WHERE category = '%s' AND price > 0.0", $catz[$i]);
         $color = $color=="<cold>"?"<coln>":"<cold>";
 
        if (strlen($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]);
+        $query = sprintf ("SELECT SUM (price) FROM $table WHERE category = '%s' AND price < 0.0", $catz[$i]);
        if (strlen($year)) {
          $query .= " AND date ~* '$year'";
        }
 # Local variables:
 # mode: text
 # mode: auto-fill
-# mode: iso-accents
 # end: