* 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"); function propals ($db, $year, $month) { global $bc,$langs; $sql = "SELECT s.nom, s.idp, p.rowid as propalid, p.price, p.ref,".$db->pdate("p.datep")." as dp, c.label as statut, c.id as statutid"; $sql .= " FROM ".MAIN_DB_PREFIX."societe as s, ".MAIN_DB_PREFIX."propal as p, ".MAIN_DB_PREFIX."c_propalst as c WHERE p.fk_soc = s.idp AND p.fk_statut = c.id"; $sql .= " AND c.id in (1,2,4)"; $sql .= " AND date_format(p.datep, '%Y') = $year "; $sql .= " AND round(date_format(p.datep, '%m')) = $month "; $sql .= " ORDER BY p.fk_statut"; $result = $db->query($sql); $num = $db->num_rows(); $i = 0; print ""; print ""; $oldstatut = -1; $subtotal = 0; while ($i < $num) { $objp = $db->fetch_object($result); if ($objp->statut <> $oldstatut ) { $oldstatut = $objp->statut; if ($i > 0) { print "\n"; print "\n"; } $subtotal = 0; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; $var=True; } $var=!$var; print ""; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $total = $total + $objp->price; $subtotal = $subtotal + $objp->price; $i++; } print "\n"; print "\n"; print ""; print ""; print ""; print "
Propal
".$langs->trans("Total").": ".price($subtotal)."".$langs->trans("Currency".$conf->monnaie)."
Societe".$langs->trans("Ref")."Date".$langs->trans("Price")."".$langs->trans("Status")."
idp\">$objp->nompropalid\">$objp->ref".dolibarr_print_date($objp->dp)."".price($objp->price)."$objp->statut
".$langs->trans("Total").": ".price($subtotal)."".$langs->trans("Currency".$conf->monnaie)."
".$langs->trans("Total").": ".price($total)."".$langs->trans("Currency".$conf->monnaie)."
"; $db->free(); } function factures ($db, $year, $month, $paye) { global $bc,$conf; $sql = "SELECT s.nom, s.idp, f.facnumber, f.total,".$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"; $sql .= " WHERE f.fk_statut = 1"; if ($conf->compta->mode != 'CREANCES-DETTES') { $sql .= " AND f.paye = $paye"; } $sql .= " AND f.fk_soc = s.idp"; $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->total; $i++; } print ""; print "
Factures
SocieteNumDateMontantPayé
idp\">$objp->nomfacid\">$objp->facnumber".dolibarr_print_date($objp->df)."!!!".price($objp->total)."".$payes[$objp->paye]."
"; print "Total : ".price($total)."
"; $db->free(); } } else { print $db->error(); } } 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 "\n"; $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 = 0 ; } 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").'Montant
".strftime("%B",mktime(12,0,0,$b, 1, $year))."0
dm\">"; 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 Prévisionnel basé sur les propal $year"; print "CA Réalisé $yearDelta $year
'; $sql = "SELECT sum(f.price) as sum, round(date_format(f.datep,'%m')) as dm"; $sql .= " FROM ".MAIN_DB_PREFIX."propal as f WHERE fk_statut in (1,2,4) AND date_format(f.datep,'%Y') = $year "; if ($socid) { $sql .= " AND f.fk_soc = $socid"; } $sql .= " GROUP BY dm"; $prev = pt($db, $sql, $year); 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)"; if ($conf->compta->mode != 'CREANCES-DETTES') { $sql .= " AND f.paye = 1"; } $sql .= " AND date_format(f.datef,'%Y') = $year "; if ($socid) { $sql .= " AND f.fk_soc = $socid"; } $sql .= " GROUP BY dm"; $ca = pt($db, $sql, $year); 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"; } $ayear = $year - 1; $acat = get_ca($db, $ayear, $socid) - get_ca_propal($db, $ayear, $socid); print ""; print ""; print ""; print "
'.$langs->trans("Month").''.$langs->trans("Amount").'
".strftime("%B",mktime(12,0,0,$b, 1, $year))."".price($delta)."
Total :".price($deltat)."
Rappel $ayear :".price($acat)."
Soit :".price($acat+$deltat)."
"; print "
"; } /* * */ llxHeader(); /* * Sécurité accés client */ if ($user->societe_id > 0) { $socid = $user->societe_id; } $cyear = isset($_GET["year"])?$_GET["year"]:0; if (! $cyear) { $cyear = strftime ("%Y", time()); } print_fiche_titre("Chiffre d'Affaire transformé (prévu-réalisé)",($cyear?"".img_previous()." Année $cyear ".img_next()."":"")); ppt($db, $cyear, $socid); if ($details == 1) { print "
"; factures ($db, $year, $month, 1); print ""; propals ($db, $year, $month); print "
"; } $db->close(); llxFooter("Dernière modification $Date$ révision $Revision$"); ?>