diff --git a/htdocs/compta/tex-facture.pl b/htdocs/compta/tex-facture.pl index 88979e61d6e..f19b941ffc7 100644 --- a/htdocs/compta/tex-facture.pl +++ b/htdocs/compta/tex-facture.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2000-2002 Rodolphe Quiedeville +# Copyright (C) 2000-2003 Rodolphe Quiedeville # # 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 @@ -22,44 +22,30 @@ use strict; use DBI; -use Lolix::Conf; use Getopt::Long; Getopt::Long::Configure("bundling"); -my $gljroot = $ENV{"GLJROOT"}; +my($outputdir, $templatesdir, $debug, $verbose, $bgcolor, $idfacture, $do_fax, $do_pdf, $do_ps, $html) = (0,0); -my($debug, $verbose, $bgcolor, $idfacture, $do_fax, $do_pdf, $do_ps, $html) = (0,0); +exit unless GetOptions("facture=i" =>\$idfacture, + "fax" =>\$do_fax, + "html" =>\$html, + "templates=s" =>\$templatesdir, + "output=s" =>\$outputdir, + "ps" =>\$do_ps, + "pdf" =>\$do_pdf, + "v+" =>\$verbose); -exit unless GetOptions("facture=i" =>\$idfacture, - "gljroot=s" =>\$gljroot, - "fax" =>\$do_fax, - "html" =>\$html, - "ps" =>\$do_ps, - "pdf" =>\$do_pdf, - "v+" =>\$verbose); - -unless ($gljroot) { print "Missing ENV var: GLJROOT is not defined\n"; exit 0; } unless (defined $ENV{"DBI_DSN"}) { print "Missing ENV var: DBI_DSN is not defined\n"; exit 0; } # # # -my $templatesdir = $gljroot . "/scripts/templates/facture"; -my $outputdir = $gljroot . "/www-sys/doc/facture/"; - -my $mdir = "$gljroot/www-sys/doc"; -unless (-d $mdir) { - mkdir($mdir,0777) || die "cannot mkdir " . $mdir . ": $!"; +unless (-d $outputdir) { + mkdir($outputdir,0777) || die "cannot mkdir " . $outputdir . ": $!"; } -$mdir = "$outputdir"; -unless (-d $mdir) { - mkdir($mdir,0777) || die "cannot mkdir " . $mdir . ": $!"; -} - -my (%CONF) = Lolix::Conf::GetAllConf($gljroot . "/conf/config", 0); -my @countries = Lolix::Conf::GetCountries($gljroot . "/conf/config", 0); # # Fetch datas @@ -72,15 +58,17 @@ print "
" if ($verbose && $html); my $dbh = DBI->connect() || die $DBI::errstr ; # We use env var DBI_DSN to connect to DB -my $sql = "SELECT f.rowid, f.facnumber, s.nom, f.amount, f.remise, f.tva, f.total, f.datef, s.c_nom, s.c_prenom, p.ref as propalref, s.ville, s.cp, s.address"; -$sql .= " FROM llx_facture as f, societe as s, llx_propal as p, llx_fa_pr as pf "; -$sql .= " WHERE s.idp = f.fk_soc AND pf.fk_facture = f.rowid AND pf.fk_propal = p.rowid AND f.rowid = $idfacture"; +my $sql = "SELECT f.rowid, f.facnumber, s.nom, f.amount, f.remise, f.tva, f.total, f.datef, s.ville, s.cp, s.address"; +$sql .= " FROM llx_facture as f, societe as s "; +$sql .= " WHERE s.idp = f.fk_soc AND f.rowid = $idfacture"; my $sth = $dbh->prepare("$sql") || die $dbh->errstr ; -if ( $sth->execute ) { +if ( $sth->execute ) +{ - while (my $hsr = $sth->fetchrow_hashref ) { + while (my $hsr = $sth->fetchrow_hashref ) + { $numfacture = $hsr->{"facnumber"}; $societe = $hsr->{"nom"}; $remiseht = $hsr->{"remise"}; @@ -99,13 +87,15 @@ if ( $sth->execute ) { } $sth->finish; -} else { +} +else +{ print "db error\n"; } # # # -$outputdir .= $numfacture; +$outputdir .= "/" . $numfacture; print "outputdir is $outputdir\n" if $verbose ; print "
" if ($verbose && $html); @@ -159,24 +149,27 @@ close (FH); my ($qty, $ref, $pu, $pricep, $label); # -$sql = "SELECT p.price, pr.ref, pr.label, pr.description"; -$sql .= " FROM llx_propaldet as p, llx_product as pr, llx_fa_pr as fp"; -$sql .= " WHERE p.fk_propal = fp.fk_propal AND p.fk_product = pr.rowid AND fp.fk_facture = $idfacture"; +$sql = "SELECT l.price, l.qty, l.description"; +$sql .= " FROM llx_facturedet as l"; +$sql .= " WHERE l.fk_facture = $idfacture"; $sth = $dbh->prepare("$sql") || die $dbh->errstr ; -if ( $sth->execute ) { - while (my $hsr = $sth->fetchrow_hashref ) { +if ( $sth->execute ) +{ + while (my $hsr = $sth->fetchrow_hashref ) + { $label = $hsr->{"label"}; $ref = $hsr->{"ref"}; - $societe = $hsr->{"nom"}; - $qty = 1 ; + $societe = $hsr->{"nom"}; + $qty = $hsr->{"qty"}; $pu = sprintf("%.2f", $hsr->{"price"}); - $pricep = sprintf("%.2f", $hsr->{"price"}); + $pricep = sprintf("%.2f", $hsr->{"price"} * $qty); open (FB, "<$bodyfilename") || die "can't open $bodyfilename: $!"; - while () { + while () + { s|\#LABEL\#|$hsr->{"description"}|g; s|\#QTY\#|$qty|g; s|\#REF\#|$ref|g; @@ -188,7 +181,9 @@ if ( $sth->execute ) { } $sth->finish; -} else { +} +else +{ print "** ERROR\n"; print "
" if ( $html); }