* Copyright (C) 2004-2009 Laurent Destailleur * Copyright (C) 2005-2009 Regis Houssin * * 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. */ /** * \file htdocs/compta/charges/index.php * \ingroup compta * \brief Page liste des charges * \version $Id$ */ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/compta/tva/tva.class.php"); require_once(DOL_DOCUMENT_ROOT."/chargesociales.class.php"); $langs->load("compta"); // Security check if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'tax', '', '', 'charges'); $year=$_GET["year"]; $filtre=$_GET["filtre"]; if (! $year) { $year=date("Y", time()); } /* * View */ llxHeader('',$langs->trans("TaxAndDividendsArea")); print_fiche_titre($langs->trans("TaxAndDividendsArea"),($year?"".img_previous()." ".$langs->trans("Year")." $year ".img_next()."":"")); print $langs->trans("DescTaxAndDividendsArea").'
'; print "
"; // Social contributions print_titre($langs->trans("SocialContributions")); print ''; print ""; print ''; print ''; print ""; print ""; print ""; print ""; print "\n"; $sql = "SELECT c.id, c.libelle as lib, s.rowid, s.libelle, s.fk_type as type, s.periode, s.date_ech,"; $sql.= " count(s.rowid) as nb, sum(s.amount) as total, sum(pc.amount) as totalpaye"; $sql.= " FROM ".MAIN_DB_PREFIX."c_chargesociales as c,"; $sql.= " ".MAIN_DB_PREFIX."chargesociales as s"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."paiementcharge as pc ON pc.fk_charge = s.rowid"; $sql.= " WHERE s.fk_type = c.id"; $sql.= " AND s.entity = ".$conf->entity; if ($year > 0) { $sql .= " AND ("; // Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance, // ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire $sql .= " (s.periode is not null and date_format(s.periode, '%Y') = $year) "; $sql .= "or (s.periode is null and date_format(s.date_ech, '%Y') = $year)"; $sql .= ")"; } $sql.= " GROUP BY c.id, c.libelle, s.rowid, s.fk_type, s.periode, s.date_ech"; $sql.= " ORDER BY c.libelle ASC"; dol_syslog("compta/charges/index.php: select payment sql=".$sql); $resql=$db->query($sql); if ($resql) { $num = $db->num_rows($resql); $i = 0; $total = 0; $totalnb = 0; $totalpaye = 0; $var=true; while ($i < $num) { $obj = $db->fetch_object($resql); $var = !$var; print ""; $date=$obj->periode; if (empty($date)) $date=$obj->date_ech; print ''; print ''; print ''; print ''; print ''; print ''; print ''; $total = $total + $obj->total; $totalnb = $totalnb + $obj->nb; $totalpaye = $totalpaye + $obj->totalpaye; $i++; } print ''; print '"; print ''; print '"; print ""; } else { dol_print_error($db); } print '
'.$langs->trans("PeriodEndDate").''.$langs->trans("Label").'".$langs->trans("Type")."".$langs->trans("Amount")."".$langs->trans("NbOfPayments")."".$langs->trans("AlreadyPayed")."
'.dol_print_date($date,'day').''; $socialcontrib=new ChargeSociales($db); $socialcontrib->id=$obj->rowid; $socialcontrib->lib=$obj->libelle; print $socialcontrib->getNomUrl(1,'16'); print ''.$obj->lib.''.price($obj->total).''.$obj->nb.''.price($obj->totalpaye).'
'.$langs->trans("Total").''.price($total)."'.$totalnb.''.price($totalpaye)."
'; // VAT if (empty($_GET["mode"]) || $_GET["mode"] != 'sconly') { print "
"; $tva = new Tva($db); print_titre($langs->trans("VATPayments")); $sql = "SELECT f.rowid, f.amount, f.label, ".$db->pdate("f.datev")." as dm"; $sql.= " FROM ".MAIN_DB_PREFIX."tva as f "; $sql.= " WHERE f.entity = ".$conf->entity; if ($year > 0) { // Si period renseignee on l'utilise comme critere de date, sinon on prend date echeance, // ceci afin d'etre compatible avec les cas ou la periode n'etait pas obligatoire $sql.= " AND date_format(f.datev, '%Y') = ".$year; } $sql.= " ORDER BY dm DESC"; $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); $i = 0; $total = 0 ; print ''; print ''; print ''; print ""; print '"; print '"; print ""; print "\n"; $var=1; while ($i < $num) { $obj = $db->fetch_object($result); $var=!$var; print ""; print ''."\n"; print "\n"; $total = $total + $obj->amount; print ""; print '\n"; print ""; print "\n"; $i++; } print ''; print '"; print ''; print '"; print ""; print "
'.$langs->trans("PeriodEndDate").'".$langs->trans("Label")."'.$langs->trans("Amount")."'.$langs->trans("DatePayment")."".$langs->trans("AlreadyPayed")."
'.dol_print_date($obj->dm,'day').' ? ".$obj->label."".price($obj->amount)."'.dol_print_date($obj->dm,'day')."".price($obj->amount)."
'.$langs->trans("Total").''.price($total)." '.price($total)."
"; $db->free($result); } else { dol_print_error($db); } } $db->close(); llxFooter('$Date$ - $Revision$'); ?>