Fix: Error management when deleting a payment on supplier invoice.

This commit is contained in:
Laurent Destailleur 2014-01-25 00:25:42 +01:00
parent 7254aecbb7
commit 7986c95ce3
2 changed files with 11 additions and 8 deletions

View File

@ -305,8 +305,11 @@ class PaiementFourn extends Paiement
if ($bank_line_id) if ($bank_line_id)
{ {
$accline = new AccountLine($this->db); $accline = new AccountLine($this->db);
$accline->fetch($bank_line_id); $result=$accline->fetch($bank_line_id);
$result=$accline->delete(); if ($result > 0) // If result = 0, record not found, we don't try to delete
{
$result=$accline->delete();
}
if ($result < 0) if ($result < 0)
{ {
$this->error=$accline->error; $this->error=$accline->error;

View File

@ -253,14 +253,14 @@ elseif ($action == 'setnote_private' && $user->rights->fournisseur->facture->cre
} }
// Delete payment // Delete payment
elseif ($action == 'deletepaiement') elseif ($action == 'deletepaiement' && $user->rights->fournisseur->facture->creer)
{ {
$object->fetch($id); $object->fetch($id);
if ($object->statut == 1 && $object->paye == 0 && $user->societe_id == 0) if ($object->statut == 1 && $object->paye == 0)
{ {
$paiementfourn = new PaiementFourn($db); $paiementfourn = new PaiementFourn($db);
$paiementfourn->fetch(GETPOST('paiement_id')); $result=$paiementfourn->fetch(GETPOST('paiement_id'));
$result=$paiementfourn->delete(); if ($result > 0) $result=$paiementfourn->delete(); // If fetch ok and found
if ($result < 0) $mesg='<div class="error">'.$paiementfourn->error.'</div>'; if ($result < 0) $mesg='<div class="error">'.$paiementfourn->error.'</div>';
} }
} }
@ -1631,7 +1631,7 @@ else
$bankaccountstatic->ref=$objp->ref; $bankaccountstatic->ref=$objp->ref;
$bankaccountstatic->label=$objp->ref; $bankaccountstatic->label=$objp->ref;
print '<td align="right">'; print '<td align="right">';
print $bankaccountstatic->getNomUrl(1,'transactions'); if ($objp->baid > 0) print $bankaccountstatic->getNomUrl(1,'transactions');
print '</td>'; print '</td>';
} }
print '<td align="right">'.price($objp->amount).'</td>'; print '<td align="right">'.price($objp->amount).'</td>';