* Copyright (C) 2004 Laurent Destailleur * * 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.php"); require("./lib.inc.php"); /* * */ llxHeader(); /* * Sécurité accés client */ if ($user->societe_id > 0) { $socid = $user->societe_id; } $mode='recettes'; if ($conf->compta->mode == 'CREANCES-DETTES') { $mode='creances'; } print_titre("Comparatif CA année en cours avec année précédente (".$langs->trans("Currency".$conf->monnaie)." HT, ".$mode.")"); print "
\n"; function factures ($db, $year, $month, $paye) { global $bc,$langs; $sql = "SELECT s.nom, s.idp, f.facnumber, f.total as amount,".$db->pdate("f.datef")." as df, f.paye, f.rowid as facid "; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s,".MAIN_DB_PREFIX."facture as f WHERE f.fk_soc = s.idp AND f.paye = $paye"; $sql .= " AND date_format(f.datef, '%Y') = $year "; $sql .= " AND round(date_format(f.datef, '%m')) = $month "; $sql .= " ORDER BY f.datef DESC "; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); if ($num > 0) { $i = 0; print "

"; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; $var=True; while ($i < $num) { $objp = $db->fetch_object($result); $var=!$var; print ""; print "\n"; print "\n"; if ($objp->df > 0 ) { print "\n"; } else { print "\n"; } print "\n"; $payes[1] = "oui"; $payes[0] = "non"; print "\n"; print "\n"; $total = $total + $objp->amount; $i++; } print ""; print "
Factures
SocieteNumDateMontantPayé
idp\">$objp->nomfacid\">$objp->facnumber".dolibarr_print_date($objp->df)."!!!".price($objp->amount)."".$payes[$objp->paye]."
".$langs->trans("Total")." : ".price($total)."
"; $db->free(); } } } function pt ($db, $sql, $year) { global $bc,$langs; $result = $db->query($sql); if ($result) { $num = $db->num_rows(); $i = 0; $total = 0 ; print ''; print ""; print ''; print ''; $var=True; $month = 1 ; while ($i < $num) { $obj = $db->fetch_object($result); $var=!$var; if ($obj->dm > $month ) { for ($b = $month ; $b < $obj->dm ; $b++) { print ""; print "\n"; print "\n"; print "\n"; $var=!$var; $ca[$b] = 0; } } if ($obj->sum > 0) { print ""; print "\n"; print "\n"; print "\n"; $month = $obj->dm + 1; $ca[$obj->dm] = $obj->sum; $total = $total + $obj->sum; } $i++; } if ($num) { $beg = $obj->dm; } else { $beg = 1 ; } if ($beg <= 12 ) { for ($b = $beg + 1 ; $b < 13 ; $b++) { $var=!$var; print ""; print "\n"; print "\n"; print "\n"; $ca[$b] = 0; } } print ""; print "
'.$langs->trans("Month").''.$langs->trans("Amount").'
".strftime("%B",mktime(12,0,0,$b, 1, $year))."0
"; print strftime("%B",mktime(12,0,0,$obj->dm, 1, $year))."".price($obj->sum)."
".strftime("%B",mktime(12,0,0,$b, 1, $year))."0
Total :".price($total)."
"; $db->free(); return $ca; } else { print $db->error(); } } function ppt ($db, $year, $socid) { global $bc,$conf,$langs; print ""; print ""; print ''; print "
"; print "CA ".($year - 1); print "CA $yearDelta
"; $sql = "SELECT sum(f.total) as sum, round(date_format(f.datef, '%m')) as dm"; $sql .= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql .= " WHERE f.fk_statut in (1,2)"; $sql .= " AND date_format(f.datef,'%Y') = ".($year-1); if ($conf->compta->mode != 'CREANCES-DETTES') { $sql .= " AND f.paye = 1"; } if ($socid) { $sql .= " AND f.fk_soc = $socid"; } $sql .= " GROUP BY dm"; $prev = pt($db, $sql, $year - 1); print ""; $sql = "SELECT sum(f.total) as sum, round(date_format(f.datef, '%m')) as dm"; $sql .= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql .= " WHERE f.fk_statut in (1,2)"; $sql .= " AND date_format(f.datef,'%Y') = $year "; if ($conf->compta->mode != 'CREANCES-DETTES') { $sql .= " AND f.paye = 1"; } if ($socid) { $sql .= " AND f.fk_soc = $socid"; } $sql .= " GROUP BY dm"; $ca = pt($db, $sql, $year); print ""; print ''; print ""; print ''; print ''; print ''; print "\n"; $var = 1 ; for ($b = 1 ; $b <= 12 ; $b++) { $var=!$var; $delta = $ca[$b] - $prev[$b]; $deltat = $deltat + $delta ; print ""; print "\n"; print "\n"; print "\n"; print "\n"; } print ''; print '
'.$langs->trans("Month").''.$langs->trans("Amount").'Cumul
".strftime("%B",mktime(12,0,0,$b, 1, $year))."".price($delta)."".price($deltat)."
Total :'.price($deltat).'
'; print '
'; } $cyear = strftime ("%Y", time()); ppt($db, $cyear, $socid); $db->close(); llxFooter("Dernière modification $Date$ révision $Revision$"); ?>