diff --git a/htdocs/compta/bank/rappro.php b/htdocs/compta/bank/rappro.php index e0b30bdb48b88b60e87045e5cb404bdf60ef8c75..5222c58b02636a5c1cb48671eca56f76f22d99b2 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; + } + $sql .= " WHERE rowid=".$_POST["rowid"]; - $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; + $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"]; - $result = $db->query($sql); + /* + * 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) { - 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); + $var=True; + $num = $db->num_rows($result); + $i = 0; + while ($i < $num) { + if ($options == "") { $options = "<option value=\"0\" selected> </option>"; } + $obj = $db->fetch_object($result); + $options .= "<option value=\"$obj->rowid\">$obj->label</option>\n"; $i++; + } + $db->free($result); } - } - 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 = "<option value=\"0\" selected> </option>"; } - $obj = $db->fetch_object($result); - $options .= "<option value=\"$obj->rowid\">$obj->label</option>\n"; $i++; - } - $db->free($result); -} + /* + * Affichage liste des transactions � rapprocher + */ + $acct = new Account($db); + $acct->fetch($_GET["account"]); -/* - * 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); -$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; + if ($num == 0) { + header("Location: /compta/bank/account.php?account=".$_GET["account"]); + exit; + } + else { -$result = $db->query($sql); -if ($result) -{ - $var=True; - $num = $db->num_rows($result); + print_titre('Rapprochement compte bancaire : <a href="account.php?account='.$_GET["account"].'">'.$acct->label.'</a>'); + print '<br>'; - if ($num == 0) { - header("Location: /compta/bank/account.php?account=".$_GET["account"]); - exit; - } - else { + if ($msg) { + print "$msg<br><br>"; + } - print_titre('Rapprochement compte bancaire : <a href="account.php?account='.$_GET["account"].'">'.$acct->label.'</a>'); - print '<br>'; + // Affiche nom des derniers relev�s + $nbmax=5; + $liste=""; - if ($msg) { - print "$msg<br><br>"; - } + $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='<a href="releve.php?account='.$_GET["account"].'&num='.$objr->num_releve.'">'.$objr->num_releve.'</a> '.$liste; + } + if ($num >= $nbmax) $liste="... ".$liste; + print "$liste"; + if ($num > 0) print '<br><br>'; + else print $langs->trans("None").'<br><br>'; + } + else + { + dolibarr_print_error($db); + } - // 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) - { - $numr=$db->num_rows($resultr); - $i=0; - while (($i < $numr) && ($i < $nbmax)) + print '<table class="noborder" width="100%">'; + print "<tr class=\"liste_titre\">"; + print '<td>'.$langs->trans("Date").'</td>'; + print '<td>'.$langs->trans("DateValue").'</td>'; + print '<td>'.$langs->trans("Type").'</td>'; + print '<td>'.$langs->trans("Description").'</td>'; + print '<td align="right">'.$langs->trans("Debit").'</td>'; + print '<td align="right">'.$langs->trans("Credit").'</td>'; + print '<td align="center" width="60">'.$langs->trans("Action").'</td>'; + print '<td align="center" width="100" colspan="2">'.$langs->trans("AccountStatement").' (Ex: YYYYMM)</td>'; + print "</tr>\n"; + } + + $i = 0; + while ($i < $num) { - $objr = $db->fetch_object($resultr); - $last_releve = $objr->num_releve; + $objp = $db->fetch_object($result); + + $var=!$var; + print "<tr $bc[$var]>"; + print '<form method="post" action="rappro.php?account='.$_GET["account"].'">'; + print "<input type=\"hidden\" name=\"action\" value=\"rappro\">"; + print "<input type=\"hidden\" name=\"account\" value=\"".$_GET["account"]."\">"; + print "<input type=\"hidden\" name=\"rowid\" value=\"".$objp->rowid."\">"; + + print '<td nowrap>'.dolibarr_print_date($objp->do).'</td>'; + print '<td nowrap>'.dolibarr_print_date($objp->dv).'</td>'; + print '<td nowrap>'.$objp->type.($objp->num_chq?' '.$objp->num_chq:'').'</td>'; + print '<td>'.$objp->label.'</td>'; + + if ($objp->amount < 0) + { + print "<td align=\"right\">".price($objp->amount * -1)."</td><td> </td>\n"; + } + else + { + print "<td> </td><td align=\"right\">".price($objp->amount)."</td>\n"; + } + + if ($objp->rappro) + { + // Si ligne d�j� rapproch�e, on affiche relev�. + print "<td align=\"center\"><a href=\"releve.php?num=$objp->num_releve&account=$acct->id\">$objp->num_releve</a></td>"; + } + else + { + // Si pas encore rapproch� + if ($user->rights->banque->modifier) + { + print '<td align="center" width="30">'; + + print '<a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$acct->id.'">'; + print img_edit(); + print '</a> '; + + if ($objp->do <= mktime() ) { + print '<a href="'.DOL_URL_ROOT.'/compta/bank/rappro.php?action=del&rowid='.$objp->rowid.'&account='.$acct->id.'">'; + print img_delete(); + print "</a>"; + } + 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 "</td>"; + } + else + { + print "<td align=\"center\"> </td>"; + } + } + + + // Affiche bouton "Rapprocher" + if ($objp->do <= mktime() ) { + print "<td align=\"center\">"; + print "<input class=\"flat\" name=\"num_releve\" type=\"text\" value=\"\" size=\"8\">"; + if ($options) { + print "<br><select name=\"cat1\">$options"; + print "</select>"; + } + print "</td>"; + print "<td align=\"center\"><input class=\"button\" type=\"submit\" value=\"".$langs->trans("Rapprocher")."\">"; + print "</td>"; + } + else { + print "<td align=\"left\" colspan=\"2\">"; + print "Ecriture future. Ne peut pas encore �tre rapproch�e."; + print "</td>"; + } + + print "</tr>"; + + print "</form>"; $i++; - $liste='<a href="releve.php?account='.$_GET["account"].'&num='.$objr->num_releve.'">'.$objr->num_releve.'</a> '.$liste; } - if ($num >= $nbmax) $liste="... ".$liste; - print "$liste"; - if ($num > 0) print '<br><br>'; - else print $langs->trans("None").'<br><br>'; - } - else - { - dolibarr_print_error($db); - } + $db->free(); - print '<table class="noborder" width="100%">'; - print "<tr class=\"liste_titre\">"; - print '<td>'.$langs->trans("Date").'</td>'; - print '<td>'.$langs->trans("DateValue").'</td>'; - print '<td>'.$langs->trans("Type").'</td>'; - print '<td>'.$langs->trans("Description").'</td>'; - print '<td align="right">'.$langs->trans("Debit").'</td>'; - print '<td align="right">'.$langs->trans("Credit").'</td>'; - print '<td align="center" width="100">'.$langs->trans("AccountStatement").'<br>(Ex: YYYYMM)</td>'; - print '<td align="center" width="100" colspan="2">'.$langs->trans("Action").'</td>'; - print "</tr>\n"; - } - - $i = 0; - while ($i < $num) - { - $objp = $db->fetch_object($result); - - $var=!$var; - print "<tr $bc[$var]>"; - print '<form method="post" action="rappro.php?account='.$_GET["account"].'">'; - print "<input type=\"hidden\" name=\"action\" value=\"rappro\">"; - print "<input type=\"hidden\" name=\"account\" value=\"".$_GET["account"]."\">"; - print "<input type=\"hidden\" name=\"rowid\" value=\"".$objp->rowid."\">"; - - print '<td>'.dolibarr_print_date($objp->do).'</td>'; - print '<td>'.dolibarr_print_date($objp->dv).'</td>'; - print '<td>'.$objp->type.($objp->num_chq?' '.$objp->num_chq:'').'</td>'; - print '<td>'.$objp->label.'</td>'; - - if ($objp->amount < 0) - { - print "<td align=\"right\">".price($objp->amount * -1)."</td><td> </td>\n"; - } - else - { - print "<td> </td><td align=\"right\">".price($objp->amount)."</td>\n"; - } - - if ($objp->do <= mktime() ) { - print "<td align=\"center\">"; - print "<input class=\"flat\" name=\"num_releve\" type=\"text\" value=\"\" size=\"8\">"; - if ($options) { - print "<br><select name=\"cat1\">$options"; - print "</select>"; - } - print "</td>"; - print "<td align=\"center\"><input class=\"button\" type=\"submit\" value=\"".$langs->trans("Rapprocher")."\">"; - print "</td>"; - } - else { - print "<td align=\"left\" colspan=\"2\">"; - print "Ecriture future. Ne peut pas encore �tre rapproch�e."; - print "</td>"; - } - - if ($objp->rappro) - { - print "<td align=\"center\"><a href=\"releve.php?num=$objp->num_releve&account=$acct->id\">$objp->num_releve</a></td>"; - } - else - { - if ($user->rights->banque->modifier) - { - print '<td align="center" width="30">'; - if ($objp->do <= mktime() ) { - print "<a href=\"rappro.php?action=del&rowid=$objp->rowid&account=$acct->id\">"; - print img_delete(); - print "</a>"; - } - 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 "</td>"; - } - else - { - print "<td align=\"center\"> </td>"; - } - } - - print "</tr>"; - - print "</form>"; - $i++; - } - $db->free(); - - if ($num != 0) { - print "</table>"; - } + if ($num != 0) { + print "</table>"; + } -} else { - dolibarr_print_error($db); -} + } else { + dolibarr_print_error($db); + } -$db->close(); + $db->close(); -llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>"); -?> + llxFooter("<em>Dernière modification $Date$ révision $Revision$</em>"); + ?>