Simplification du système de rapprochement. L'utilisateur doit consciemment saisir le nom du relevé sur lequel le rapprochement est à faire.

Cela évite les erreurs de rapprochement fait sur les mauvais relevé. La démarche de saisie obligatoire du relevé rend du coup le besoin de saisir "oui" inutile.
This commit is contained in:
Laurent Destailleur 2004-10-09 13:53:14 +00:00
parent e80be0485e
commit 509f0a2eee

View File

@ -19,6 +19,13 @@
* $Id$ * $Id$
* $Source$ * $Source$
*/ */
/*! \file htdocs/compta/bank/rappro.php
\ingroup banque
\brief Page de rapprochement bancaire
\version $Revision$
*/
require("./pre.inc.php"); require("./pre.inc.php");
$user->getrights('compta'); $user->getrights('compta');
@ -26,8 +33,10 @@ $user->getrights('compta');
if (!$user->admin && !$user->rights->compta->bank) if (!$user->admin && !$user->rights->compta->bank)
accessforbidden(); accessforbidden();
llxHeader(); llxHeader();
/* /*
* Action rapprochement * Action rapprochement
*/ */
@ -35,8 +44,7 @@ if ($_POST["action"] == 'rappro')
{ {
if ($_POST["num_releve"] > 0) { if ($_POST["num_releve"] > 0) {
$valrappro=$_POST["rappro"]=='yes'?1:0; $valrappro=1;
$sql = "UPDATE ".MAIN_DB_PREFIX."bank set rappro=$valrappro, num_releve=".$_POST["num_releve"]; $sql = "UPDATE ".MAIN_DB_PREFIX."bank set rappro=$valrappro, num_releve=".$_POST["num_releve"];
if ($_POST["rappro"]) { if ($_POST["rappro"]) {
# Si on fait un rapprochement, le user de rapprochement est inclus dans l'update # Si on fait un rapprochement, le user de rapprochement est inclus dans l'update
@ -55,6 +63,9 @@ if ($_POST["action"] == 'rappro')
print dolibarr_print_error($db,$sql); print dolibarr_print_error($db,$sql);
} }
} }
else {
$msg="Erreur: Saisissez le relevé qui référence la transaction pour la rapprocher.";
}
} }
/* /*
@ -84,9 +95,7 @@ if ($result) {
} }
/* // Recupère nom du dernier relevé
* Affichage page
*/
$sql = "SELECT max(num_releve) FROM ".MAIN_DB_PREFIX."bank WHERE fk_account=".$_GET["account"]; $sql = "SELECT max(num_releve) FROM ".MAIN_DB_PREFIX."bank WHERE fk_account=".$_GET["account"];
if ( $db->query($sql) ) if ( $db->query($sql) )
{ {
@ -98,17 +107,20 @@ if ( $db->query($sql) )
} }
else else
{ {
print $db->error(); dolibarr_print_error($db);
} }
/*
* Affichage liste des transactions à rapprocher
*/
$acct = new Account($db); $acct = new Account($db);
$acct->fetch($_GET["account"]); $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 = "SELECT b.rowid,".$db->pdate("b.dateo")." as do, b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type";
$sql .= " FROM ".MAIN_DB_PREFIX."bank as b WHERE rappro=0 AND fk_account=".$_GET["account"]; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b WHERE rappro=0 AND fk_account=".$_GET["account"];
$sql .= " ORDER BY dateo ASC LIMIT 10"; $sql .= " ORDER BY dateo";
$sql .= " ASC LIMIT ".$conf->liste_limit;
$result = $db->query($sql); $result = $db->query($sql);
if ($result) if ($result)
@ -117,23 +129,28 @@ if ($result)
$num = $db->num_rows(); $num = $db->num_rows();
if ($num == 0) { if ($num == 0) {
//print "<br>Pas ou plus de transactions saisies, en attente de rapprochement, pour ce compte bancaire.<br>"; header("Location: /compta/bank/account.php?account=".$_GET["account"]);
header("Location: /compta/bank/account.php?account=".$account);
exit; exit;
} }
else { else {
print_titre('Rapprochement compte bancaire: <a href="account.php?account='.$account.'">'.$acct->label.'</a>'); print_titre('Rapprochement compte bancaire: <a href="account.php?account='.$_GET["account"].'">'.$acct->label.'</a>');
print '<br>'; print '<br>';
print '<table class="noborder" width="100%" cellspacing="0" cellpadding="2">'; if ($msg) {
print "$msg<br><br>";
}
print '<table class="noborder" width="100%">';
print "<tr class=\"liste_titre\">"; print "<tr class=\"liste_titre\">";
print '<td>Date</td><td>'.$langs->trans("Description").'</td>'; print '<td>Date Ope</td>';
print "<td align=\"right\">Debit</td>"; print '<td>Date Valeur</td>';
print "<td align=\"right\">Credit</td>"; print '<td>'.$langs->trans("Type").'</td>';
print "<td align=\"center\">Releve</td>"; print '<td>'.$langs->trans("Description").'</td>';
print '<td align="center" colspan="2">Rappro</td>'; print '<td align="right">Debit</td>';
print '<td align="center">&nbsp;</td>'; print '<td align="right">Credit</td>';
print '<td align="center" width="100">Releve<br>(Ex: YYYYMM)</td>';
print '<td align="center" width="100" colspan="2">'.$langs->trans("Action").'</td>';
print "</tr>\n"; print "</tr>\n";
} }
@ -149,8 +166,10 @@ if ($result)
print "<input type=\"hidden\" name=\"account\" value=\"".$_GET["account"]."\">"; print "<input type=\"hidden\" name=\"account\" value=\"".$_GET["account"]."\">";
print "<input type=\"hidden\" name=\"rowid\" value=\"".$objp->rowid."\">"; print "<input type=\"hidden\" name=\"rowid\" value=\"".$objp->rowid."\">";
print "<td>".dolibarr_print_date($objp->do)."</td>\n"; print '<td>'.dolibarr_print_date($objp->do).'</td>';
print "<td>$objp->label</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) if ($objp->amount < 0)
{ {
@ -158,20 +177,22 @@ if ($result)
} }
else else
{ {
print "<td>&nbsp;</td><td align=\"right\">".price($objp->amount)."</TD>\n"; print "<td>&nbsp;</td><td align=\"right\">".price($objp->amount)."</td>\n";
} }
if ($objp->do <= mktime() ) { if ($objp->do <= mktime() ) {
print "<td align=\"center\">"; print "<td align=\"center\">";
print "<input name=\"num_releve\" type=\"text\" value=\"$last_releve\" size=\"8\" maxlength=\"6\"></td>"; print "<input name=\"num_releve\" type=\"text\" value=\"\" size=\"8\">";
print "<td align=\"center\">"; if ($options) {
$html=new Form($db); print "<br><select name=\"cat1\">$options";
$html->selectyesno("rappro","no"); print "</select>";
}
print "</td>";
print "<td align=\"center\"><input type=\"submit\" value=\"".$langs->trans("Rapprocher")."\">";
print "</td>"; print "</td>";
print "<td align=\"center\"><input type=\"submit\" value=\"".$langs->trans("Rapprocher")."\"></td>";
} }
else { else {
print "<td align=\"right\" colspan=\"3\">"; print "<td align=\"left\" colspan=\"2\">";
print "Ecriture future. Ne peut pas encore être rapprochée."; print "Ecriture future. Ne peut pas encore être rapprochée.";
print "</td>"; print "</td>";
} }
@ -184,7 +205,7 @@ if ($result)
{ {
if ($user->rights->banque->modifier) if ($user->rights->banque->modifier)
{ {
print "<td align=\"center\">"; print '<td align="center" width="30">';
if ($objp->do <= mktime() ) { if ($objp->do <= mktime() ) {
print "<a href=\"rappro.php?action=del&amp;rowid=$objp->rowid&amp;account=$acct->id\">"; print "<a href=\"rappro.php?action=del&amp;rowid=$objp->rowid&amp;account=$acct->id\">";
print img_delete(); print img_delete();
@ -202,15 +223,7 @@ if ($result)
} }
print "</tr>"; print "</tr>";
print "<tr $bc[$var]><td>&nbsp;</td><td>".$objp->fk_type.($objp->num_chq?" ".$objp->num_chq:"")."</td><td colspan=\"6\">";
if ($options) {
print "<select name=\"cat1\">$options";
print "</select>";
}
else {
print "&nbsp;";
}
print "</td></tr>";
print "</form>"; print "</form>";
$i++; $i++;
} }
@ -221,7 +234,7 @@ if ($result)
} }
} else { } else {
print "Erreur : ".$db->error()." : ".$sql."<br>\n"; dolibarr_print_error($db);
} }
print '<br>Dernier relevé : <a href="releve.php?account='.$_GET["account"].'&amp;num='.$last_releve.'">'.$last_releve.'</a>'; print '<br>Dernier relevé : <a href="releve.php?account='.$_GET["account"].'&amp;num='.$last_releve.'">'.$last_releve.'</a>';