Fix: gestion des erreurs

This commit is contained in:
Regis Houssin 2007-03-30 15:56:42 +00:00
parent 1737541aea
commit e4f229123c

View File

@ -128,85 +128,84 @@ if ($_POST['action'] == 'add_paiement')
if ($_POST['action'] == 'confirm_paiement' && $_POST['confirm'] == 'yes') if ($_POST['action'] == 'confirm_paiement' && $_POST['confirm'] == 'yes')
{ {
if (! $error) if (! $error)
{
$db->begin();
// 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(); if ($conf->banque->enabled)
// 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)
{
if ($conf->banque->enabled)
{ {
// Insertion dans llx_bank // Insertion dans llx_bank
$label = "(CustomerInvoicePayment)"; $label = "(CustomerInvoicePayment)";
$acc = new Account($db, $_POST['accountid']); $acc = new Account($db, $_POST['accountid']);
//paiementid contient "CHQ ou VIR par exemple" //paiementid contient "CHQ ou VIR par exemple"
$bank_line_id = $acc->addline($paiement->datepaye, $bank_line_id = $acc->addline($paiement->datepaye,
$paiement->paiementid, $paiement->paiementid,
$label, $label,
$totalpaiement, $totalpaiement,
$paiement->num_paiement, $paiement->num_paiement,
'', '',
$user, $user,
$_POST['chqemetteur'], $_POST['chqemetteur'],
$_POST['chqbank']); $_POST['chqbank']);
// 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); $paiement->update_fk_bank($bank_line_id);
// Mise a jour liens (pour chaque facture concernées par le paiement) // Mise a jour liens (pour chaque facture concernées par le paiement)
foreach ($paiement->amounts as $key => $value) foreach ($paiement->amounts as $key => $value)
{ {
$facid = $key; $facid = $key;
$fac = new Facture($db); $fac = new Facture($db);
$fac->fetch($facid); $fac->fetch($facid);
$fac->fetch_client(); $fac->fetch_client();
$acc->add_url_line($bank_line_id, $acc->add_url_line($bank_line_id,
$paiement_id, $paiement_id,
DOL_URL_ROOT.'/compta/paiement/fiche.php?id=', DOL_URL_ROOT.'/compta/paiement/fiche.php?id=',
'(paiement)', '(paiement)',
'payment'); 'payment');
$acc->add_url_line($bank_line_id, $acc->add_url_line($bank_line_id,
$fac->client->id, $fac->client->id,
DOL_URL_ROOT.'/compta/fiche.php?socid=', DOL_URL_ROOT.'/compta/fiche.php?socid=',
$fac->client->nom, $fac->client->nom,
'company'); 'company');
}
} }
}
else else
{ {
$error++; $error++;
} }
} }
} }
else else
{ {
$this->error=$paiement->error; $error++;
$error++; }
}
if ($error == 0)
if ($error == 0) {
{ $loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id;
$loc = DOL_URL_ROOT.'/compta/paiement/fiche.php?id='.$paiement_id; $db->commit();
$db->commit(); Header('Location: '.$loc);
Header('Location: '.$loc); exit;
exit; }
} else
else {
{ $db->rollback();
$db->rollback(); }
} }
}
} }
// Sécurité accés client // Sécurité accés client