Ok, let's support both currencies when listing unpaid items
[infodrom.org/service.infodrom.org] / src / InfoCon / buch / infocon
index 4af5f9d..8feed84 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);
@@ -142,7 +143,7 @@ sub sales_list
        printf " Zahlungsausgänge                                       %9.2f\n", -$sum_neg
            if ($sum_neg > 0);
        print "==================================================================\n";
-       printf " Summe                                                  %9.2f\n", $sum_pos - $sum_neg;
+       printf " Summe                                                  %9.2f\n\n", $sum_pos - $sum_neg;
     }
 }
 
@@ -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;
 }
 
@@ -304,7 +306,12 @@ while ($i <= $#ARGV) {
        } elsif ($ARGV[$i] eq "input") {
            &buchung_input();
        } elsif ($ARGV[$i] eq "unpaid") {
-               &sales_list("paid = 0");
+           $saved_table = $table;
+           $table = "sales_dm";
+           &sales_list("paid = 0");
+           $table = "sales";
+           &sales_list("paid = 0");
+           $table = $table_saved;
        } else {
            &usage();
        }
@@ -329,6 +336,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 +348,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;
     }