Fix suggested amount for direct debit order

This commit is contained in:
Laurent Destailleur 2018-01-18 18:22:10 +01:00
parent 1730feeb4f
commit 768c93a707

View File

@ -516,20 +516,16 @@ if ($object->id > 0)
dol_fiche_end(); dol_fiche_end();
$numopen = 0; $numclosed = 0; $numopen = 0; $pending = 0; $numclosed = 0;
/*
* Withdrawal opened requests // How many Direct debit opened requests ?
*/
$sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande"; $sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande";
$sql .= " , pfd.date_traite as date_traite"; $sql .= " , pfd.date_traite as date_traite";
$sql .= " , pfd.amount"; $sql .= " , pfd.amount";
$sql .= " , u.rowid as user_id, u.lastname, u.firstname, u.login";
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd"; $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql .= " , ".MAIN_DB_PREFIX."user as u";
$sql .= " WHERE fk_facture = ".$object->id; $sql .= " WHERE fk_facture = ".$object->id;
$sql .= " AND pfd.fk_user_demande = u.rowid";
$sql .= " AND pfd.traite = 0"; $sql .= " AND pfd.traite = 0";
$sql .= " ORDER BY pfd.date_demande DESC"; $sql .= " ORDER BY pfd.date_demande DESC";
@ -539,11 +535,34 @@ if ($object->id > 0)
$num = $db->num_rows($result_sql); $num = $db->num_rows($result_sql);
$numopen = $num; $numopen = $num;
} }
else
{
dol_print_error($db);
}
// For wich amount ?
$sql = "SELECT SUM(pfd.amount) as amount";
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql .= " WHERE fk_facture = ".$object->id;
$sql .= " AND pfd.traite = 0";
$result_sql = $db->query($sql);
if ($result_sql)
{
$obj = $db->fetch_object($result_sql);
if ($obj) $pending = $obj->amount;
}
else
{
dol_print_error($db);
}
/* /*
* Buttons * Buttons
*/ */
print "\n<div class=\"tabsAction\">\n"; print "\n<div class=\"tabsAction\">\n";
// Add a transfer request // Add a transfer request
@ -553,11 +572,13 @@ if ($object->id > 0)
{ {
if ($user->rights->prelevement->bons->creer) if ($user->rights->prelevement->bons->creer)
{ {
$remaintopaylesspendingdebit = $resteapayer - $pending;
print '<form method="POST" action="">'; print '<form method="POST" action="">';
print '<input type="hidden" name="id" value="' . $object->id . '" />'; print '<input type="hidden" name="id" value="' . $object->id . '" />';
print '<input type="hidden" name="action" value="new" />'; print '<input type="hidden" name="action" value="new" />';
print '<label for="withdraw_request_amount">' . $langs->trans('WithdrawRequestAmount') . ' </label>'; print '<label for="withdraw_request_amount">' . $langs->trans('WithdrawRequestAmount') . ' </label>';
print '<input type="text" id="withdraw_request_amount" name="withdraw_request_amount" value="' . $resteapayer . '" size="10" />'; print '<input type="text" id="withdraw_request_amount" name="withdraw_request_amount" value="' . $remaintopaylesspendingdebit . '" size="10" />';
print '<input type="submit" class="butAction" value="'.$langs->trans("MakeWithdrawRequest").'" />'; print '<input type="submit" class="butAction" value="'.$langs->trans("MakeWithdrawRequest").'" />';
print '</form>'; print '</form>';
} }
@ -604,10 +625,24 @@ if ($object->id > 0)
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';
print '</tr>'; print '</tr>';
$sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande as date_demande";
$sql.= " , pfd.date_traite as date_traite, pfd.amount,";
$sql.= " u.rowid as user_id, u.lastname, u.firstname, u.login";
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on pfd.fk_user_demande = u.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."prelevement_bons as pb ON pb.rowid = pfd.fk_prelevement_bons";
$sql.= " WHERE fk_facture = ".$object->id;
$sql.= " AND pfd.traite = 0";
$sql.= " ORDER BY pfd.date_demande DESC";
$result_sql = $db->query($sql);
$num = 0;
if ($result_sql) if ($result_sql)
{ {
$i = 0; $i = 0;
$num = $db->num_rows($result);
while ($i < $num) while ($i < $num)
{ {
$obj = $db->fetch_object($result_sql); $obj = $db->fetch_object($result_sql);
@ -637,18 +672,16 @@ if ($object->id > 0)
dol_print_error($db); dol_print_error($db);
} }
// Closed requests
$sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande,"; // Past requests
$sql.= " pfd.date_traite, pfd.fk_prelevement_bons, pfd.amount,";
$sql = "SELECT pfd.rowid, pfd.traite, pfd.date_demande, pfd.date_traite, pfd.fk_prelevement_bons, pfd.amount,";
$sql.= " pb.ref,"; $sql.= " pb.ref,";
$sql.= " u.rowid as user_id, u.lastname, u.firstname, u.login"; $sql.= " u.rowid as user_id, u.lastname, u.firstname, u.login";
$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd,"; $sql.= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql.= " ".MAIN_DB_PREFIX."prelevement_bons as pb,"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on pfd.fk_user_demande = u.rowid";
$sql.= " ".MAIN_DB_PREFIX."user as u"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."prelevement_bons as pb ON pb.rowid = pfd.fk_prelevement_bons";
$sql.= " WHERE fk_facture = ".$object->id; $sql.= " WHERE fk_facture = ".$object->id;
$sql.= " AND pfd.fk_user_demande = u.rowid";
$sql.= " AND pb.rowid = pfd.fk_prelevement_bons";
$sql.= " AND pfd.traite = 1"; $sql.= " AND pfd.traite = 1";
$sql.= " ORDER BY pfd.date_demande DESC"; $sql.= " ORDER BY pfd.date_demande DESC";
@ -672,10 +705,13 @@ if ($object->id > 0)
print '<td align="center">'.price($obj->amount).'</td>'; print '<td align="center">'.price($obj->amount).'</td>';
print '<td align="center">'; print '<td align="center">';
if ($obj->fk_prelevement_bons > 0)
{
$withdrawreceipt=new BonPrelevement($db); $withdrawreceipt=new BonPrelevement($db);
$withdrawreceipt->id=$obj->fk_prelevement_bons; $withdrawreceipt->id=$obj->fk_prelevement_bons;
$withdrawreceipt->ref=$obj->ref; $withdrawreceipt->ref=$obj->ref;
print $withdrawreceipt->getNomUrl(1); print $withdrawreceipt->getNomUrl(1);
}
print "</td>\n"; print "</td>\n";
print '<td>&nbsp;</td>'; print '<td>&nbsp;</td>';