Correction bug quand aucun montants indiqués

This commit is contained in:
Rodolphe Quiedeville 2005-07-30 19:42:37 +00:00
parent ef7eec942d
commit 81ac8b1a78

View File

@ -56,6 +56,7 @@ if ($_POST["action"] == 'add_paiement')
$_POST["reyear"])); $_POST["reyear"]));
$paiement_id = 0; $paiement_id = 0;
$total = 0;
$amounts = array(); $amounts = array();
foreach ($_POST as $key => $value) foreach ($_POST as $key => $value)
{ {
@ -64,105 +65,109 @@ if ($_POST["action"] == 'add_paiement')
$other_facid = substr($key,7); $other_facid = substr($key,7);
$amounts[$other_facid] = $_POST[$key]; $amounts[$other_facid] = $_POST[$key];
$total = $total + $amounts[$other_facid];
} }
} }
$db->begin(); if ($total > 0)
{
// Creation de la ligne paiement
$paiement = new Paiement($db);
$paiement->datepaye = $datepaye;
$paiement->amounts = $amounts; // Tableau de montant
$paiement->paiementid = $_POST["paiementid"];
$paiement->num_paiement = $_POST["num_paiement"];
$paiement->note = $_POST["comment"];
$paiement_id = $paiement->create($user);
if ($paiement_id > 0) $db->begin();
{
// On determine le montant total du paiement // Creation de la ligne paiement
$total=0; $paiement = new Paiement($db);
foreach ($paiement->amounts as $key => $value) $paiement->datepaye = $datepaye;
{ $paiement->amounts = $amounts; // Tableau de montant
$facid = $key; $paiement->paiementid = $_POST["paiementid"];
$value = trim($value); $paiement->num_paiement = $_POST["num_paiement"];
$amount = round(ereg_replace(",",".",$value), 2); $paiement->note = $_POST["comment"];
if (is_numeric($amount))
{
$total += $amount;
}
}
if ($conf->banque->enabled && $_POST["accountid"]) $paiement_id = $paiement->create($user);
if ($paiement_id > 0)
{ {
// Insertion dans llx_bank // On determine le montant total du paiement
$label = "Règlement facture"; $total=0;
$acc = new Account($db, $_POST["accountid"]); foreach ($paiement->amounts as $key => $value)
//paiementid contient "CHQ ou VIR par exemple" {
$bank_line_id = $acc->addline($paiement->datepaye, $facid = $key;
$paiement->paiementid, $value = trim($value);
$label, $amount = round(ereg_replace(",",".",$value), 2);
$total, if (is_numeric($amount))
$paiement->num_paiement, {
'', $total += $amount;
$user); }
}
if ($conf->banque->enabled && $_POST["accountid"])
{
// Insertion dans llx_bank
$label = "Règlement facture";
$acc = new Account($db, $_POST["accountid"]);
//paiementid contient "CHQ ou VIR par exemple"
$bank_line_id = $acc->addline($paiement->datepaye,
$paiement->paiementid,
$label,
$total,
$paiement->num_paiement,
'',
$user);
// Mise a jour fk_bank dans llx_paiement. // Mise a jour fk_bank dans llx_paiement.
// On connait ainsi le paiement qui a généré l'écriture bancaire // On connait ainsi le paiement qui a généré l'écriture bancaire
if ($bank_line_id > 0) if ($bank_line_id > 0)
{
$paiement->update_fk_bank($bank_line_id);
// Mise a jour liens (pour chaque facture concernées par le paiement)
foreach ($paiement->amounts as $key => $value)
{ {
$facid = $key; $paiement->update_fk_bank($bank_line_id);
$fac = new Facture($db);
$fac->fetch($facid); // Mise a jour liens (pour chaque facture concernées par le paiement)
$fac->fetch_client(); foreach ($paiement->amounts as $key => $value)
$acc->add_url_line($bank_line_id, {
$paiement_id, $facid = $key;
DOL_URL_ROOT.'/compta/paiement/fiche.php?id=', $fac = new Facture($db);
"(paiement)"); $fac->fetch($facid);
$acc->add_url_line($bank_line_id, $fac->fetch_client();
$fac->client->id, $acc->add_url_line($bank_line_id,
DOL_URL_ROOT.'/compta/fiche.php?socid=', $paiement_id,
$fac->client->nom); DOL_URL_ROOT.'/compta/paiement/fiche.php?id=',
"(paiement)");
$acc->add_url_line($bank_line_id,
$fac->client->id,
DOL_URL_ROOT.'/compta/fiche.php?socid=',
$fac->client->nom);
}
} }
else
{
$error++;
}
} }
else
{
$error++;
}
} }
else
{
$error++;
}
} if ($error == 0)
else {
{ $loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id;
$error++; $db->commit();
} Header("Location: $loc");
}
else
if ($error == 0) {
{ // Il y a eu erreur
$db->rollback();
$loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id; $fiche_erreur_message = $langs->trans("ErrorUnknown");
}
$db->commit();
Header("Location: $loc");
} }
else else
{ {
// Il y a eu erreur $fiche_erreur_message = '<div class="error">Aucun montants indiqués</div>';
$db->rollback();
$fiche_erreur_message = $langs->trans("ErrorUnknown");
} }
} }
else else
{ {