diff --git a/htdocs/compta/bank/rappro.php b/htdocs/compta/bank/rappro.php index e0b30bdb48b..5222c58b026 100644 --- a/htdocs/compta/bank/rappro.php +++ b/htdocs/compta/bank/rappro.php @@ -21,18 +21,19 @@ */ /** - \file htdocs/compta/bank/rappro.php - \ingroup banque - \brief Page de rapprochement bancaire - \version $Revision$ + \file htdocs/compta/bank/rappro.php + \ingroup banque + \brief Page de rapprochement bancaire + \version $Revision$ */ require("./pre.inc.php"); +$langs->load("banks"); + $user->getrights('compta'); -if (! $user->rights->banque->modifier) - accessforbidden(); +if (! $user->rights->banque->modifier) accessforbidden(); llxHeader(); @@ -43,217 +44,225 @@ llxHeader(); */ if ($_POST["action"] == 'rappro') { - if ($_POST["num_releve"] > 0) { + if ($_POST["num_releve"] > 0) { - $valrappro=1; - $sql = "UPDATE ".MAIN_DB_PREFIX."bank set rappro=$valrappro, num_releve=".$_POST["num_releve"]; - if ($_POST["rappro"]) { - # Si on fait un rapprochement, le user de rapprochement est inclus dans l'update - $sql .= ", fk_user_rappro=".$user->id; + $valrappro=1; + $sql = "UPDATE ".MAIN_DB_PREFIX."bank set rappro=$valrappro, num_releve=".$_POST["num_releve"]; + if ($_POST["rappro"]) { + # Si on fait un rapprochement, le user de rapprochement est inclus dans l'update + $sql .= ", fk_user_rappro=".$user->id; + } + $sql .= " WHERE rowid=".$_POST["rowid"]; + + $result = $db->query($sql); + if ($result) { + if ($cat1 && $_POST["action"]) { + $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class (lineid, fk_categ) VALUES ($rowid, $cat1)"; + $result = $db->query($sql); + } + } else { + dolibarr_print_error($db); + } + } + else { + $msg="Erreur: Saisissez le relevé qui référence la transaction pour la rapprocher."; + } } - $sql .= " WHERE rowid=".$_POST["rowid"]; + + /* + * Action suppression ecriture + */ + if ($_GET["action"] == 'del') { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".$_GET["rowid"]; + $result = $db->query($sql); + if (! $result) { + dolibarr_print_error($db); + } + } + + $sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_categ ORDER BY label"; + $result = $db->query($sql); + $options=""; + if ($result) { + $var=True; + $num = $db->num_rows($result); + $i = 0; + while ($i < $num) { + if ($options == "") { $options = ""; } + $obj = $db->fetch_object($result); + $options .= "\n"; $i++; + } + $db->free($result); + } + + + /* + * Affichage liste des transactions à rapprocher + */ + $acct = new Account($db); + $acct->fetch($_GET["account"]); + + $sql = "SELECT b.rowid,".$db->pdate("b.dateo")." as do, ".$db->pdate("b.datev")." as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type as type"; + $sql .= " FROM ".MAIN_DB_PREFIX."bank as b WHERE rappro=0 AND fk_account=".$_GET["account"]; + $sql .= " ORDER BY dateo"; + $sql .= " ASC LIMIT ".$conf->liste_limit; $result = $db->query($sql); - - if ($result) { - if ($cat1 && $_POST["action"]) { - $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_class (lineid, fk_categ) VALUES ($rowid, $cat1)"; - $result = $db->query($sql); - } - } else { - dolibarr_print_error($db); - } - } - else { - $msg="Erreur: Saisissez le relevé qui référence la transaction pour la rapprocher."; - } -} - -/* - * Action suppression ecriture - */ -if ($_GET["action"] == 'del') { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank WHERE rowid=".$_GET["rowid"]; - $result = $db->query($sql); - if (!$result) { - dolibarr_print_error($db); - } -} - -$sql = "SELECT rowid, label FROM ".MAIN_DB_PREFIX."bank_categ ORDER BY label"; -$result = $db->query($sql); -$options=""; -if ($result) { - $var=True; - $num = $db->num_rows($result); - $i = 0; - while ($i < $num) { - if ($options == "") { $options = ""; } - $obj = $db->fetch_object($result); - $options .= "\n"; $i++; - } - $db->free($result); -} - - -/* - * Affichage liste des transactions à rapprocher - */ -$acct = new Account($db); -$acct->fetch($_GET["account"]); - -$sql = "SELECT b.rowid,".$db->pdate("b.dateo")." as do, ".$db->pdate("b.datev")." as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type as type"; -$sql .= " FROM ".MAIN_DB_PREFIX."bank as b WHERE rappro=0 AND fk_account=".$_GET["account"]; -$sql .= " ORDER BY dateo"; -$sql .= " ASC LIMIT ".$conf->liste_limit; - -$result = $db->query($sql); -if ($result) -{ - $var=True; - $num = $db->num_rows($result); - - if ($num == 0) { - header("Location: /compta/bank/account.php?account=".$_GET["account"]); - exit; - } - else { - - print_titre('Rapprochement compte bancaire : '.$acct->label.''); - print '
'; - - if ($msg) { - print "$msg

"; - } - - // Affiche nom des derniers relevés - $nbmax=5; - $liste=""; - - $sql = "SELECT distinct num_releve FROM ".MAIN_DB_PREFIX."bank"; - $sql.= " WHERE fk_account=".$_GET["account"]; - $sql.= " ORDER BY num_releve DESC"; - $sql.= " LIMIT ".($nbmax+1); - print $langs->trans("LastAccountStatements").' : '; - $resultr=$db->query($sql); - if ($resultr) + if ($result) { - $numr=$db->num_rows($resultr); - $i=0; - while (($i < $numr) && ($i < $nbmax)) - { - $objr = $db->fetch_object($resultr); - $last_releve = $objr->num_releve; - $i++; - $liste=''.$objr->num_releve.'   '.$liste; + $var=True; + $num = $db->num_rows($result); + + if ($num == 0) { + header("Location: /compta/bank/account.php?account=".$_GET["account"]); + exit; } - if ($num >= $nbmax) $liste="...   ".$liste; - print "$liste"; - if ($num > 0) print '

'; - else print $langs->trans("None").'

'; - } - else - { - dolibarr_print_error($db); - } + else { - print ''; - print ""; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - } + print_titre('Rapprochement compte bancaire : '.$acct->label.''); + print '
'; - $i = 0; - while ($i < $num) - { - $objp = $db->fetch_object($result); + if ($msg) { + print "$msg

"; + } - $var=!$var; - print ""; - print ''; - print ""; - print ""; - print "rowid."\">"; - - print ''; - print ''; - print ''; - print ''; + // Affiche nom des derniers relevés + $nbmax=5; + $liste=""; - if ($objp->amount < 0) - { - print "\n"; - } - else - { - print "\n"; - } - - if ($objp->do <= mktime() ) { - print ""; - print ""; - } - else { - print ""; - } - - if ($objp->rappro) - { - print ""; - } - else - { - if ($user->rights->banque->modifier) - { - print '"; - } - else - { - print ""; - } - } + $sql = "SELECT distinct num_releve FROM ".MAIN_DB_PREFIX."bank"; + $sql.= " WHERE fk_account=".$_GET["account"]; + $sql.= " ORDER BY num_releve DESC"; + $sql.= " LIMIT ".($nbmax+1); + print $langs->trans("LastAccountStatements").' : '; + $resultr=$db->query($sql); + if ($resultr) + { + $numr=$db->num_rows($resultr); + $i=0; + while (($i < $numr) && ($i < $nbmax)) + { + $objr = $db->fetch_object($resultr); + $last_releve = $objr->num_releve; + $i++; + $liste=''.$objr->num_releve.'   '.$liste; + } + if ($num >= $nbmax) $liste="...   ".$liste; + print "$liste"; + if ($num > 0) print '

'; + else print $langs->trans("None").'

'; + } + else + { + dolibarr_print_error($db); + } - print ""; + print '
'.$langs->trans("Date").''.$langs->trans("DateValue").''.$langs->trans("Type").''.$langs->trans("Description").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("AccountStatement").'
(Ex: YYYYMM)
'.$langs->trans("Action").'
'.dolibarr_print_date($objp->do).''.dolibarr_print_date($objp->dv).''.$objp->type.($objp->num_chq?' '.$objp->num_chq:'').''.$objp->label.'".price($objp->amount * -1)."  ".price($objp->amount).""; - print ""; - if ($options) { - print "
"; - } - print "
trans("Rapprocher")."\">"; - print ""; - print "Ecriture future. Ne peut pas encore être rapprochée."; - print "num_releve&account=$acct->id\">$objp->num_releve'; - if ($objp->do <= mktime() ) { - print "rowid&account=$acct->id\">"; - print img_delete(); - print ""; - } - else { - print " "; // On n'empeche la suppression car le raprochement ne pourra se faire qu'après la date passée et que l'écriture apparaissent bien sur le compte. - } - print " 
'; + print ""; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + } - print ""; - $i++; - } - $db->free(); + $i = 0; + while ($i < $num) + { + $objp = $db->fetch_object($result); - if ($num != 0) { - print "
'.$langs->trans("Date").''.$langs->trans("DateValue").''.$langs->trans("Type").''.$langs->trans("Description").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Action").''.$langs->trans("AccountStatement").' (Ex: YYYYMM)
"; - } + $var=!$var; + print ""; + print '
'; + print ""; + print ""; + print "rowid."\">"; -} else { - dolibarr_print_error($db); -} + print ''.dolibarr_print_date($objp->do).''; + print ''.dolibarr_print_date($objp->dv).''; + print ''.$objp->type.($objp->num_chq?' '.$objp->num_chq:'').''; + print ''.$objp->label.''; -$db->close(); + if ($objp->amount < 0) + { + print "".price($objp->amount * -1)." \n"; + } + else + { + print " ".price($objp->amount)."\n"; + } -llxFooter("Dernière modification $Date$ révision $Revision$"); -?> + if ($objp->rappro) + { + // Si ligne déjà rapprochée, on affiche relevé. + print "num_releve&account=$acct->id\">$objp->num_releve"; + } + else + { + // Si pas encore rapproché + if ($user->rights->banque->modifier) + { + print ''; + + print ''; + print img_edit(); + print '   '; + + if ($objp->do <= mktime() ) { + print ''; + print img_delete(); + print ""; + } + else { + print " "; // On n'empeche la suppression car le raprochement ne pourra se faire qu'après la date passée et que l'écriture apparaissent bien sur le compte. + } + print ""; + } + else + { + print " "; + } + } + + + // Affiche bouton "Rapprocher" + if ($objp->do <= mktime() ) { + print ""; + print ""; + if ($options) { + print "
"; + } + print ""; + print "trans("Rapprocher")."\">"; + print ""; + } + else { + print ""; + print "Ecriture future. Ne peut pas encore être rapprochée."; + print ""; + } + + print ""; + + print "
"; + $i++; + } + $db->free(); + + if ($num != 0) { + print ""; + } + + } else { + dolibarr_print_error($db); + } + + $db->close(); + + llxFooter("Dernière modification $Date$ révision $Revision$"); + ?>