diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php index d7ea12e676e..a17b4b76a18 100644 --- a/htdocs/compta/tva/index.php +++ b/htdocs/compta/tva/index.php @@ -1,7 +1,7 @@ * Copyright (C) 2004 Éric Seigne - * Copyright (C) 2004-2005 Laurent Destailleur + * Copyright (C) 2004-2006 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 @@ -32,23 +32,37 @@ require("./pre.inc.php"); require("../../tva.class.php"); -$modecompta = $conf->compta->mode; - - -/* - * On récupère la tva à collecter - */ -function tva_coll($db, $y,$m) +$year=$_GET["year"]; +if ($year == 0 ) { - if ($modecompta=="CREANCES-DETTES") + $year_current = strftime("%Y",time()); + $year_start = $year_current; +} else { + $year_current = $year; + $year_start = $year; +} + + + +/** + * \brief On cherche la tva à collecter + * \param db Handle accès base + * \param y Année + * \param m Mois + */ +function tva_coll($db,$y,$m) +{ + global $conf; + + if ($conf->compta->mode == "CREANCES-DETTES") { // Si on paye la tva sur les factures dues (non brouillon) $sql = "SELECT sum(f.tva) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " WHERE "; $sql.= " f.fk_statut = 1"; - $sql.= " AND date_format(f.datef,'%Y') = $y"; - $sql.= " AND date_format(f.datef,'%m') = $m"; + $sql.= " AND date_format(f.datef,'%Y') = ".$y; + $sql.= " AND date_format(f.datef,'%m') = ".$m; } else { @@ -56,19 +70,23 @@ function tva_coll($db, $y,$m) // \todo a ce jour on se sait pas la compter car le montant tva d'un payment // n'est pas stocké dans la table des payments. - // Il faut quand un payment a lieu, stocker en plus du montant du paiement le - // detail part tva et part ht. + // Seul le module compta expert peut résoudre ce problème. + // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le + // detail part tva et part ht). - // En attendant, on renvoi tva sur factures payés +/* + // Tva sur factures payés $sql = "SELECT sum(f.tva) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."facture as f"; $sql.= " WHERE "; $sql.= " f.paye = 1"; - $sql.= " AND date_format(f.datef,'%Y') = $y"; - $sql.= " AND date_format(f.datef,'%m') = $m"; + $sql.= " AND date_format(f.datef,'%Y') = ".$y; + $sql.= " AND date_format(f.datef,'%m') = ".$m; +*/ } $resql = $db->query($sql); + if ($resql) { $obj = $db->fetch_object($resql); @@ -81,12 +99,17 @@ function tva_coll($db, $y,$m) } -/* - * On récupère la tva à payer +/** + * \brief On récupère la tva à payer + * \param db Handle accès base + * \param y Année + * \param m Mois */ function tva_paye($db, $y,$m) { - if ($modecompta=="CREANCES-DETTES") + global $conf; + + if ($conf->compta->mode == "CREANCES-DETTES") { // Si on paye la tva sur les factures dues (non brouillon) $sql = "SELECT sum(f.total_tva) as amount"; @@ -100,12 +123,20 @@ function tva_paye($db, $y,$m) { // Si on paye la tva sur les payments + // \todo a ce jour on se sait pas la compter car le montant tva d'un payment + // n'est pas stocké dans la table des payments. + // Seul le module compta expert peut résoudre ce problème. + // (Il faut quand un payment a lieu, stocker en plus du montant du paiement le + // detail part tva et part ht). + +/* + // \todo a ce jour on se sait pas la compter car le montant tva d'un payment // n'est pas stocké dans la table des payments. // Il faut quand un payment a lieu, stocker en plus du montant du paiement le // detail part tva et part ht. - // En attendant, on renvoi tva sur factures payés + // Tva sur factures payés $sql = "SELECT sum(f.total_tva) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."facture_fourn as f"; // $sql.= " WHERE "; @@ -114,6 +145,7 @@ function tva_paye($db, $y,$m) $sql.= " AND date_format(f.datef,'%Y') = $y"; $sql.= " AND date_format(f.datef,'%m') = $m"; //print "xx $sql"; +*/ } $resql = $db->query($sql); @@ -129,11 +161,13 @@ function tva_paye($db, $y,$m) } -function pt ($db, $sql, $date) { - global $bc,$langs; +function pt ($db, $sql, $date) +{ + global $conf, $bc,$langs; $result = $db->query($sql); - if ($result) { + if ($result) + { $num = $db->num_rows($result); $i = 0; $total = 0; @@ -144,7 +178,8 @@ function pt ($db, $sql, $date) { print " \n"; print "\n"; $var=True; - while ($i < $num) { + while ($i < $num) + { $obj = $db->fetch_object($result); $var=!$var; print ""; @@ -160,10 +195,11 @@ function pt ($db, $sql, $date) { print ""; $db->free($result); - } else { - dolibar_print_error($db); - } } + else { + dolibar_print_error($db); + } +} /* @@ -174,14 +210,6 @@ llxHeader(); $tva = new Tva($db); -$year=$_GET["year"]; -if ($year == 0 ) { - $year_current = strftime("%Y",time()); - $year_start = $year_current; -} else { - $year_current = $year; - $year_start = $year; -} $textprevyear="".img_previous().""; $textnextyear=" ".img_next().""; @@ -196,74 +224,84 @@ echo ''; print_fiche_titre($langs->trans("VATPayed")); echo ''; -for ($y = $year_current ; $y >= $year_start ; $y=$y-1 ) { +echo ''; - echo ''; +print ""; +print ""; +print ""; +print ""; +print ""; +print ""; +print "\n"; - print "
".$langs->trans("Year")." $y".$langs->trans("VATToPay")."".$langs->trans("VATToCollect")."".$langs->trans("TotalToPay")."
"; - print ""; - print ""; - print ""; - print ""; - print ""; - print "\n"; - $var=True; - $total = 0; $subtotal = 0; - $i=0; - for ($m = 1 ; $m < 13 ; $m++ ) { - $var=!$var; - print ""; - print ''; - - $x_coll = tva_coll($db, $y, $m); - print ""; - - $x_paye = tva_paye($db, $y, $m); - print ""; - - $diff = $x_coll - $x_paye; - $total = $total + $diff; - $subtotal = $subtotal + $diff; - - print "\n"; - print "\n"; - - $i++; - if ($i > 2) { - print ''; - $i = 0; - $subtotal = 0; - } - } - print ''; - print "\n"; - print "
".$langs->trans("Year")." $y".$langs->trans("VATToPay")."".$langs->trans("VATToCollect")."".$langs->trans("TotalToPay")."
'.strftime("%b %Y",mktime(0,0,0,$m,1,$y)).'".price($x_coll)."".price($x_paye)."".price($diff)."
'.$langs->trans("SubTotal").':'.price($subtotal).'
'.$langs->trans("TotalToPay").':'.price($total).' 
"; +if ($conf->compta->mode == "CREANCES-DETTES") +{ + $y = $year_current ; + + + $var=True; + $total = 0; $subtotal = 0; + $i=0; + for ($m = 1 ; $m < 13 ; $m++ ) + { + $var=!$var; + print ""; + print ''.strftime("%b %Y",mktime(0,0,0,$m,1,$y)).''; + + $x_coll = tva_coll($db, $y, $m); + print "".price($x_coll).""; + + $x_paye = tva_paye($db, $y, $m); + print "".price($x_paye).""; + + $diff = $x_coll - $x_paye; + $total = $total + $diff; + $subtotal = $subtotal + $diff; + + print "".price($diff)."\n"; + print "\n"; + + $i++; + if ($i > 2) { + print ''.$langs->trans("SubTotal").':'.price($subtotal).''; + $i = 0; + $subtotal = 0; + } + } + print ''.$langs->trans("TotalToPay").':'.price($total).''; + print " \n"; + print ''; - - echo ''; - - - /* - * Réglée - */ - - $sql = "SELECT amount, date_format(f.datev,'%Y-%m') as dm"; - $sql .= " FROM ".MAIN_DB_PREFIX."tva as f WHERE f.datev >= '$y-01-01' AND f.datev <= '$y-12-31' "; - $sql .= " GROUP BY dm DESC"; - - pt($db, $sql,$langs->trans("Year")." $y"); - - - print ""; - - echo ''; +} +else +{ + print ''.$langs->trans("FeatureNotYetAvailable").''; + print ''.$langs->trans("FeatureIsSupportedInInOutModeOnly").''; } +print ''; + + +echo ''; + + +/* +* Réglée +*/ +$sql = "SELECT amount, date_format(f.datev,'%Y-%m') as dm"; +$sql .= " FROM ".MAIN_DB_PREFIX."tva as f WHERE f.datev >= '$y-01-01' AND f.datev <= '$y-12-31' "; +$sql .= " GROUP BY dm DESC"; + +pt($db, $sql,$langs->trans("Year")." $y"); + + +print ""; + +echo ''; echo ''; - $db->close(); llxFooter('$Date$ - $Revision$'); diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 553688162b5..6eba2234939 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -7,6 +7,7 @@ OptionModeTrue=Option Recettes-D OptionModeVirtual=Option Créances-Dettes OptionModeTrueDesc=Dans ce mode, le CA est calculé sur la base des factures payées.\nLa validité des chiffres n'est donc assurée que si la tenue de la comptabilité passe rigoureusement par des entrées/sorties sur les comptes via des factures.\nRemarque, dans cette version, Dolibarr utilise la date de passage de la facture à l'état 'Validé' et non la date de passage à l'état 'Payé'. OptionModeVirtualDesc=Dans ce mode, le CA est calculé sur la base des factures validées. Qu'elles soient ou non payés, dès lors qu'elles sont dues, elles apparaissent dans le résultat. +FeatureIsSupportedInInOutModeOnly=Feature only available in IN-OUT accountancy mode (See Accountancy module configuration) Param=Setup BillsForSuppliers=Bills for suppliers Income=Income diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index e12a913832b..6dd4972684b 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -7,6 +7,7 @@ OptionModeTrue=Option Recettes-D OptionModeVirtual=Option Créances-Dettes OptionModeTrueDesc=Dans ce mode, le CA est calculé sur la base des factures payées.\nLa validité des chiffres n'est donc assurée que si la tenue de la comptabilité passe rigoureusement par des entrées/sorties sur les comptes via des factures.\nRemarque : dans cette version, Dolibarr utilise la date de passage de la facture à l'état 'Validée' et non la date de passage à l'état 'Payée'. OptionModeVirtualDesc=Dans ce mode, le CA est calculé sur la base des factures validées. Payées ou non, elles apparaissent dans le résultat dès qu'elles sont dues. +FeatureIsSupportedInInOutModeOnly=Fonction disponible uniquement en mode compta RECETTE-DEPENSE (Voir configuration du module compta) Param=Paramétrage BillsForSuppliers=Factures des fournisseurs Income=Recettes