* * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ * */ require("./pre.inc.php3"); require("../facture.class.php3"); llxHeader(); $db = new Db(); $yn[1] = "oui"; $yn[0] = "non"; if ($action == 'valid') { $fac = new Facture($db); $result = $fac->set_valid($facid, $user->id); } if ($action == 'payed') { $fac = new Facture($db); $result = $fac->set_payed($facid); } if ($action == 'delete') { $fac = new Facture($db); $fac->delete($facid); $facid = 0 ; } if ($action == 'add') { $datefacture = $db->idate(mktime(12, 0 , 0, $pmonth, $pday, $pyear)); if (! $propalid) { $facture = new Facture($db, $socid); $facture->number = $facnumber; $facture->date = $datefacture; $facture->note = $note; $facture->amount = $amount; $facture->remise = $remise; $facture->create($user->id, $statut, $note); } else { $facture = new Facture($db, $socid); $facture->number = $facnumber; $facture->date = $datefacture; $facture->note = $note; $facture->amount = $amount; $facture->remise = $remise; $facture->propalid = $propalid; if ($facture->create($user->id) ) { /* * * Génération du PDF * */ // print "
Génération du PDF

"; // $command = "export DBI_DSN=\"".$GLOBALS["DBI"]."\" "; // $command .= " ; ../../scripts/facture-tex.pl --facture=$facid --pdf --ps" ; // $output = system($command); // print "

command : $command
"; } else { print "

Erreur : la facture n'a pas été créée, vérifier le numéro !"; print "

Retour à la propal"; print $db->error(); } } $facid = $facid; $action = ''; } /* * * Mode creation * * * */ if ($action == 'create') { print_titre("Emettre une facture"); if ($propalid) { $sql = "SELECT s.nom, s.prefix_comm, s.idp, p.price, p.remise, p.tva, p.total, p.ref, ".$db->pdate("p.datep")." as dp, c.id as statut, c.label as lst"; $sql .= " FROM societe as s, llx_propal as p, c_propalst as c WHERE p.fk_soc = s.idp AND p.fk_statut = c.id"; $sql .= " AND p.rowid = $propalid"; } else { $sql = "SELECT s.nom, s.prefix_comm, s.idp "; $sql .= "FROM societe as s "; $sql .= "WHERE s.idp = $socidp"; } if ( $db->query($sql) ) { $num = $db->num_rows(); if ($num) { $obj = $db->fetch_object(0); $numfa = "F-" . $obj->prefix_comm . "-" . strftime("%y%m%d", time()); print "

"; print ""; print "idp\">"; print ''; print ""; if ($propalid) { $amount = ($obj->price - $obj->remise); print ''; print ''; print ''; print ''; print ''; print ""; print ''; print ""; print ""; } else { print ''; print ''; print ''; print ''; } print ""; print ""; print ""; print ""; print ''; print ''; print ""; print ""; print "
Société :$obj->nom
Propal :$obj->ref
Montant HT :'.price($amount).'
TVA 19.6% :".price($obj->tva)."
Total TTC :".price($obj->total)."
Montant HT :'; print '
Remise :'; print '
Auteur :".$user->fullname."
Date :"; $cday = date("d", time()); print ""; $cmonth = date("n", time()); print ""; print "
Numéro :
Commentaires :
'; print '
"; } } else { print $db->error(); } } else /* *************************************************************************** */ /* */ /* */ /* */ /* *************************************************************************** */ { if ($facid > 0) { $sql = "SELECT s.nom as socnom, s.idp as socidp, f.facnumber, f.amount, f.total, ".$db->pdate("f.datef")." as df, f.paye, f.fk_statut as statut, f.fk_user_author, f.note"; $sql .= " FROM societe as s,llx_facture as f WHERE f.fk_soc = s.idp AND f.rowid = $facid"; $result = $db->query( $sql); if ($result) { $num = $db->num_rows(); if ($num) { $obj = $db->fetch_object( $i); } $db->free(); } else { print $db->error(); } $author = new User($db); $author->id = $obj->fk_user_author; $author->fetch(); print_titre("Facture : ".$obj->facnumber); print ""; print ""; print ""; print "
"; /* * Facture */ print ""; print ""; print ""; print ""; print "\n"; print ""; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ""; print ""; print "
Société"; print "socidp\">$obj->socnom
Date".strftime("%A %d %B %Y",$obj->df)."
".translate("Author")."$author->fullname
Montant'.price($obj->amount).'euros HT
TVA'.tva($obj->amount).'euros
Total'.price($obj->total).'euros TTC
Statut'.$obj->statut.'".translate("Payed")."".$yn[$obj->paye]."
"; print "
"; $_MONNAIE="euros"; /* * Paiements */ $sql = "SELECT ".$db->pdate("datep")." as dp, p.amount, c.libelle as paiement_type, p.num_paiement, p.rowid"; $sql .= " FROM llx_paiement as p, c_paiement as c WHERE p.fk_facture = $facid AND p.fk_paiement = c.id"; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); $i = 0; $total = 0; print "

Paiements"; echo ''; print ""; print ""; print ""; print ""; print "\n"; $var=True; while ($i < $num) { $objp = $db->fetch_object( $i); $var=!$var; print ""; print "\n"; print "\n"; print "\n"; print ""; $total = $total + $objp->amount; $i++; } if ($obj->paye == 0) { print "\n"; print "\n"; $resteapayer = $obj->total - $total; print ""; print "\n"; } print "
DateTypeMontant 
".strftime("%d %B %Y",$objp->dp)."$objp->paiement_type $objp->num_paiement".price($objp->amount)."$_MONNAIE
Total :".price($total)."$_MONNAIE
Facturé :".price($obj->total)."$_MONNAIE
Reste a payer :".price($resteapayer)."$_MONNAIE
"; $db->free(); } else { print $db->error(); } print "

Note : ".nl2br($obj->note)."
"; print "

"; /* * Ajouter une ligne * */ if ($obj->statut == 0) { } /* * Fin Ajout ligne * */ if ($obj->statut == 0) { print ""; } else { print ""; } if ($obj->statut == 1 && $resteapayer > 0) { print ""; } else { print ""; } if ($obj->statut == 1 && abs($resteapayer == 0) && $obj->paye == 0) { print ""; } else { print ""; } if ($obj->statut == 0) { print ""; } else { print ""; } print "
[Supprimer]-[Emettre un paiement]-[Classer 'Payée']-[Valider]Générer la facture

"; /* * Documents générés * */ print "


"; print "
"; print "Documents générés
"; print ""; $file = $GLOBALS["GLJ_ROOT"] . "/www-sys/doc/facture/$obj->facnumber/$obj->facnumber.pdf"; if (file_exists($file)) { print ""; } $file = $GLOBALS["GLJ_ROOT"] . "/www-sys/doc/facture/$obj->facnumber/$obj->facnumber.ps"; if (file_exists($file)) { print ""; print ""; } print ""; print "
Propale PDFfacnumber/$obj->facnumber.pdf\">$obj->facnumber.pdf
Propale Postscriptfacnumber/$obj->facnumber.ps\">$obj->facnumber.ps
(facnumber/\">liste...)
\n
"; /* * Generation de la facture * */ if ($action == 'pdf') { print "
Génération de la facture
"; $command = "export DBI_DSN=\"dbi:mysql:dbname=lolixfr\" "; $command .= " ; ../../scripts/facture-tex.pl --html -vv --facture=$facid --pdf --gljroot=" . $GLOBALS["GLJ_ROOT"] ; $output = system($command); print "

command :
$command
"; print "

output :
$output
"; } /* * Propales */ $sql = "SELECT ".$db->pdate("p.datep")." as dp, p.price, p.ref, p.rowid as propalid"; $sql .= " FROM llx_propal as p, llx_fa_pr as fp WHERE fp.fk_propal = p.rowid AND fp.fk_facture = $facid"; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); if ($num) { $i = 0; $total = 0; print "

Proposition(s) commerciale(s) associée(s)"; print ''; print ""; print ""; print ""; print ""; print "\n"; $var=True; while ($i < $num) { $objp = $db->fetch_object( $i); $var=!$var; print ""; print "\n"; print "\n"; print ''; print ""; $total = $total + $objp->price; $i++; } print "\n"; print "
NumDatePrix
propalid\">$objp->ref".strftime("%d %B %Y",$objp->dp)."'.price($objp->price).'
Total : ".price($total)." $_MONNAIE HT
"; } } else { print $db->error(); } } else { /* * * Liste * * */ print_barre_liste("Factures",$page,$PHP_SELF); $sql = "SELECT s.nom,s.idp,f.facnumber,f.amount,".$db->pdate("f.datef")." as df,f.paye,f.rowid as facid"; $sql .= " FROM societe as s,llx_facture as f WHERE f.fk_soc = s.idp"; if ($socidp) { $sql .= " AND s.idp = $socidp"; } if ($month > 0) { $sql .= " AND date_format(f.datef, '%m') = $month"; } if ($year > 0) { $sql .= " AND date_format(f.datef, '%Y') = $year"; } $sql .= " ORDER BY f.fk_statut, f.paye, f.datef DESC "; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); $i = 0; print ""; print ''; print ""; print "\n"; if ($num > 0) { $var=True; while ($i < $num) { $objp = $db->fetch_object( $i); $var=!$var; if ($objp->paye && !$sep) { print ""; print ""; print ''; print ""; $sep = 1 ; $j = 0; $subtotal = 0; } print ""; print "\n"; print "\n"; if ($objp->df > 0 ) { print "\n"; } else { print "\n"; } print "\n"; $total = $total + $objp->amount; $subtotal = $subtotal + $objp->amount; print "\n"; $i++; $j++; } } if ($i == 0) { $i=1; } if ($j == 0) { $j=1; } print ""; print ""; print ""; print ""; print "
Numéro"; print_liste_field_titre("Société",$PHP_SELF,"s.nom"); print "DateMontant
"; print " Sous Total : ".price($total)."
Numéro"; print_liste_field_titre("Société",$PHP_SELF,"s.nom"); print "DateMontant
facid\">"; if ($objp->paye) { print $objp->facnumber; } else { print ''.$objp->facnumber.''; } print "idp\">$objp->nom"; $y = strftime("%Y",$objp->df); $m = strftime("%m",$objp->df); print strftime("%d",$objp->df)."\n"; print " "; print strftime("%B",$objp->df)."\n"; print " "; print strftime("%Y",$objp->df)."!!!".price($objp->amount)."
$j factures Sous Total : ".price($subtotal)."
$i factures Total (euros HT): ".price($total)."
"; $db->free(); } else { print $db->error(); } } } $db->close(); llxFooter("Dernière modification $Date$ révision $Revision$"); ?>