#!/usr/bin/perl

use CGI;
use DBI;
require adisql;		# /usr/lib/perl5/adisql.pm

my $db = 'firma';
my $host = 'drcomp';
my $user = 'apache';
my $password = '';
my $table = 'kunden';

my $query = CGI->new();

#my $vorname = $query->param('vorname');
#my $name = $query->param('name');
#my $kundennummer = $query->param('kundennummer');

$dbh = DBI->connect("DBI:Pg:dbname=$db;host=$host",$user, $password,
{RaiseError => 1});

# ------------------------------------------------------------------------

sub briefkopf {
        print $query->header(),
              $query->start_html(-bgcolor=>'#ffffff',
               -title=>'[ Web-bill | Rechnung schreiben ]');

        print <<HTML_CODE;
<center>
<font size=+3>Web-basierendes Rechnungssystem<br><br>
HTML_CODE
        }

# ------------------------------------------------------------------------

sub rechnung_anlegen {
	sql("insert into rechnung (kundennummer) values('$kundennummer')");
	sql("select currval('rechnungsid')");
	my $ref = $sth->fetchrow_arrayref;
	print "<font size=+0>Rechnungsnummer: $$ref[0]";
print "<input type=\"hidden\" name=\"rechnungsnummer\" value=\"$$ref[0]\">",
      "<input type=\"hidden\" name=\"postenzahl\" value=\"$postenzahl\">";
	}
	
# ------------------------------------------------------------------------

my $search = "SELECT name,vorname,kundennummer,strasse from $table where";

briefkopf();

@parameter = $query->param;

@excludelist = ("postenzahl");

my %seen;
my @aonly;
@seen{@excludelist} = ();

foreach $item (@parameter) {
	push(@aonly, $item) unless exists $seen{$item};
	}

@parameter = @aonly;

$postenzahl = $query->param('postenzahl');

# delete @parameter{"postenzahl"};

my $zaehler = 0;
foreach $parms (@parameter) {
	my $wert = $query->param($parms);
	if ( ! $wert eq "" ) {
		if ( $zaehler > 0 ) {
		$search .= " AND $parms='$wert'";
		    }
		  else {
		$search .= "  $parms='$wert'";
		  }
		$zaehler += 1;
		}
	}

sql("$search");
        my $namen = $sth->{'NAME'};
        my $anzFelder = $sth->{'NUM_OF_FIELDS'};
my $treffer = $sth->rows;

if ($treffer == 0) { print $query->h2('Kein Kundeneintrag gefunden'); }
if ($treffer == 1) {
	print $query->p("Kundendaten:");
	print '<table border="0">';
        while (my $ref = $sth->fetchrow_arrayref) {
                for (my $i = 0; $i < $anzFelder; $i += 2) {
                print("<tr><td align=\"left\">$$namen[$i]:\
                <td align=\"left\">$$ref[$i]\
		<td width=\"50\">\
		<td align\"left\">$$namen[$i+1]:\
		<td align=\"left\">$$ref[$i+1]</tr>");
	        if ( $$namen[$i] eq "kundennummer") {
                $kundennummer = $$ref[$i];
                }
                if ( $$namen[$i+1] eq "kundennummer") {
                $kundennummer = $$ref[$i+1];
                }
         
                }
                }
	print '</table><br>';


	print '<form action="/rechnung/cgi-bin/addrechnung" method="post">';
	rechnung_anlegen();
	print '<table border="0" width="100%">',
	'<tr><td align="right">Menge<td align="right">Artikel',
	'<td align="right">E-Preis</tr>';

	for (my $i = 0; $i < $postenzahl; $i++) {
        print "<tr><td align=\"right\">\
        <input name=\"menge$i\" size=\"2\" maxlenght=\"10\">\
        <td align=\"right\">\
        <input name=\"artikelname$i\" size=\"40\" maxlenght=\"255\">\
        <td align=\"right\">\
        <input name=\"einzelpreis$i\" size=\"6\" maxlenght=\"12\"></tr>";
	}
	print '<tr><td height="20"></tr><tr><td><td align="left">',
        '<font color="#0000ff"><input type="submit" value="Speichern">',
        '<td><spacer type="horizontal" size="20">',
        '<input type="reset" value="Lschen"></tr></form></table><br>';
        }
if ($treffer > 1) {
		print $query->h2('Multiple Datenstze.');
		}
		
print $query->end_html();