Qual: Mutualize and uniformize code

This commit is contained in:
Laurent Destailleur 2010-09-19 13:31:54 +00:00
parent 64581c555b
commit fdf14d0499
5 changed files with 75 additions and 106 deletions

View File

@ -158,7 +158,7 @@ if ($_POST['action'] == 'confirm_paiement' && $_POST['confirm'] == 'yes')
if (! $error) if (! $error)
{ {
$paiement_id = $paiement->create($user); $paiement_id = $paiement->create($user);
if (! $paiement_id > 0) if ($paiement_id < 0)
{ {
$errmsg=$paiement->error; $errmsg=$paiement->error;
$error++; $error++;
@ -168,7 +168,7 @@ if ($_POST['action'] == 'confirm_paiement' && $_POST['confirm'] == 'yes')
if (! $error) if (! $error)
{ {
$result=$paiement->addPaymentToBank($user,'payment','(CustomerInvoicePayment)',$_POST['accountid'],$_POST['chqemetteur'],$_POST['chqbank']); $result=$paiement->addPaymentToBank($user,'payment','(CustomerInvoicePayment)',$_POST['accountid'],$_POST['chqemetteur'],$_POST['chqbank']);
if (! $result > 0) if ($result < 0)
{ {
$errmsg=$paiement->error; $errmsg=$paiement->error;
$error++; $error++;

View File

@ -32,7 +32,12 @@
*/ */
class Paiement class Paiement
{ {
var $id; var $db;
var $error;
var $element='payment';
var $table_element='paiement';
var $id;
var $ref; var $ref;
var $facid; var $facid;
var $datepaye; var $datepaye;
@ -49,8 +54,6 @@ class Paiement
// fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...) // fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...)
// fk_paiement dans llx_paiement_facture est le rowid du paiement // fk_paiement dans llx_paiement_facture est le rowid du paiement
var $db;
/** /**
* \brief Constructeur de la classe * \brief Constructeur de la classe
@ -352,47 +355,53 @@ class Paiement
} }
// Add link 'payment', 'payment_supplier' in bank_url between payment and bank transaction // Add link 'payment', 'payment_supplier' in bank_url between payment and bank transaction
$url=''; if ( ! $error)
if ($mode == 'payment') $url=DOL_URL_ROOT.'/compta/paiement/fiche.php?id=';
if ($mode == 'payment_supplier') $url=DOL_URL_ROOT.'/fourn/paiement/fiche.php?id=';
if ($url)
{ {
$result=$acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode); $url='';
if ($result <= 0) if ($mode == 'payment') $url=DOL_URL_ROOT.'/compta/paiement/fiche.php?id=';
if ($mode == 'payment_supplier') $url=DOL_URL_ROOT.'/fourn/paiement/fiche.php?id=';
if ($url)
{ {
$error++; $result=$acc->add_url_line($bank_line_id, $this->id, $url, '(paiement)', $mode);
dol_print_error($this->db); if ($result <= 0)
{
$error++;
dol_print_error($this->db);
}
} }
} }
// Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment) // Add link 'company' in bank_url between invoice and bank transaction (for each invoice concerned by payment)
$linkaddedforthirdparty=array(); if (! $error)
foreach ($this->amounts as $key => $value)
{ {
if ($mode == 'payment') $linkaddedforthirdparty=array();
foreach ($this->amounts as $key => $value)
{ {
$fac = new Facture($this->db); if ($mode == 'payment')
$fac->fetch($key);
$fac->fetch_thirdparty(); // This should be always same third party but we loop in case of.
if (! in_array($fac->client->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
{ {
$result=$acc->add_url_line($bank_line_id, $fac->client->id, $fac = new Facture($this->db);
DOL_URL_ROOT.'/compta/fiche.php?socid=', $fac->client->nom, 'company'); $fac->fetch($key);
if ($result <= 0) dol_print_error($this->db); $fac->fetch_thirdparty(); // This should be always same third party but we loop in case of.
$linkaddedforthirdparty[$fac->client->id]=$fac->client->id; // Mark as done for this thirdparty if (! in_array($fac->client->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
{
$result=$acc->add_url_line($bank_line_id, $fac->client->id,
DOL_URL_ROOT.'/compta/fiche.php?socid=', $fac->client->nom, 'company');
if ($result <= 0) dol_print_error($this->db);
$linkaddedforthirdparty[$fac->client->id]=$fac->client->id; // Mark as done for this thirdparty
}
} }
} if ($mode == 'payment_supplier')
if ($mode == 'payment_supplier')
{
$fac = new FactureFournisseur($this->db);
$fac->fetch($key);
$fac->fetch_fournisseur(); // This should be always same third party but we loop in case of.
if (! in_array($fac->client->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
{ {
$result=$acc->add_url_line($bank_line_id, $fac->fournisseur->id, $fac = new FactureFournisseur($this->db);
DOL_URL_ROOT.'/fourn/fiche.php?socid=', $fac->fournisseur->nom, 'company'); $fac->fetch($key);
if ($result <= 0) dol_print_error($this->db); $fac->fetch_fournisseur(); // This should be always same third party but we loop in case of.
$linkaddedforthirdparty[$fac->fournisseur->id]=$fac->fournisseur->id; // Mark as done for this thirdparty if (! in_array($fac->client->id,$linkaddedforthirdparty)) // Not yet done for this thirdparty
{
$result=$acc->add_url_line($bank_line_id, $fac->fournisseur->id,
DOL_URL_ROOT.'/fourn/fiche.php?socid=', $fac->fournisseur->nom, 'company');
if ($result <= 0) dol_print_error($this->db);
$linkaddedforthirdparty[$fac->fournisseur->id]=$fac->fournisseur->id; // Mark as done for this thirdparty
}
} }
} }
} }
@ -416,12 +425,12 @@ class Paiement
/** /**
* \brief Mise a jour du lien entre le paiement et la ligne generee dans llx_bank * Mise a jour du lien entre le paiement et la ligne generee dans llx_bank
* \param id_bank Id compte bancaire * @param id_bank Id compte bancaire
*/ */
function update_fk_bank($id_bank) function update_fk_bank($id_bank)
{ {
$sql = 'UPDATE llx_paiement set fk_bank = '.$id_bank; $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' set fk_bank = '.$id_bank;
$sql.= ' WHERE rowid = '.$this->id; $sql.= ' WHERE rowid = '.$this->id;
dol_syslog(get_class($this).'::update_fk_bank sql='.$sql); dol_syslog(get_class($this).'::update_fk_bank sql='.$sql);
@ -432,18 +441,19 @@ class Paiement
} }
else else
{ {
dol_print_error($this->db); $this->error=$this->db->lasterror();
return 0; dol_syslog(get_class($this).'::update_fk_bank '.$this->error);
return -1;
} }
} }
/** /**
* \brief Valide le paiement * Validate payment
* \return int <0 si ko, >0 si ok * @return int <0 if KO, >0 if OK
*/ */
function valide() function valide()
{ {
$sql = 'UPDATE '.MAIN_DB_PREFIX.'paiement SET statut = 1 WHERE rowid = '.$this->id; $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET statut = 1 WHERE rowid = '.$this->id;
dol_syslog(get_class($this).'::valide sql='.$sql); dol_syslog(get_class($this).'::valide sql='.$sql);
$result = $this->db->query($sql); $result = $this->db->query($sql);
@ -453,7 +463,8 @@ class Paiement
} }
else else
{ {
dol_syslog(get_class($this).'::valide Error -1'); $this->error=$this->db->lasterror();
dol_syslog(get_class($this).'::valide '.$this->error);
return -1; return -1;
} }
} }

View File

@ -26,17 +26,21 @@
\remarks Cette classe est presque identique a paiement.class.php \remarks Cette classe est presque identique a paiement.class.php
\version $Id$ \version $Id$
*/ */
require_once(DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'); require_once(DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php');
require_once(DOL_DOCUMENT_ROOT.'/compta/paiement/class/paiement.class.php');
/** /**
\class PaiementFourn \class PaiementFourn
\brief Classe permettant la gestion des paiements des factures fournisseurs \brief Classe permettant la gestion des paiements des factures fournisseurs
*/ */
class PaiementFourn extends Paiement
class PaiementFourn
{ {
var $id; var $db;
var $error;
var $element='payment_supplier';
var $table_element='paiementfourn';
var $id;
var $ref; var $ref;
var $facid; var $facid;
var $datepaye; var $datepaye;
@ -54,8 +58,6 @@ class PaiementFourn
// fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...) // fk_paiement dans llx_paiement est l'id du type de paiement (7 pour CHQ, ...)
// fk_paiement dans llx_paiement_facture est le rowid du paiement // fk_paiement dans llx_paiement_facture est le rowid du paiement
var $db;
/** /**
* \brief Constructeur de la classe * \brief Constructeur de la classe
* \param DB handler acces base de donnees * \param DB handler acces base de donnees
@ -294,48 +296,6 @@ class PaiementFourn
} }
} }
/**
* \brief Mise a jour du lien entre le paiement et la ligne generee dans llx_bank
* \param id_bank Id compte bancaire
*/
function update_fk_bank($id_bank)
{
$sql = 'UPDATE '.MAIN_DB_PREFIX.'paiementfourn set fk_bank = '.$id_bank;
$sql.= ' WHERE rowid = '.$this->id;
$result = $this->db->query($sql);
if ($result)
{
return 1;
}
else
{
dol_print_error($this->db);
return 0;
}
}
/**
* \brief Valide le paiement
* \return int <0 si ko, >0 si ok
*/
function valide()
{
$sql = 'UPDATE '.MAIN_DB_PREFIX.'paiementfourn SET statut = 1 WHERE rowid = '.$this->id;
dol_syslog("PaiementFourn::valide sql=".$sql);
$result = $this->db->query($sql);
if ($result)
{
return 0;
}
else
{
$this->error='Paiement::Valide Error -1 '.$this->db->error();
dol_syslog('PaiementFourn::valide error '.$this->error, LOG_ERR);
return -1;
}
}
/* /*
* \brief Information sur l'objet * \brief Information sur l'objet
* \param id id du paiement dont il faut afficher les infos * \param id id du paiement dont il faut afficher les infos

View File

@ -136,7 +136,7 @@ if ($action == 'add_paiement')
if (! $error) if (! $error)
{ {
$result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$_POST['accountid'],'',''); $result=$paiement->addPaymentToBank($user,'payment_supplier','(SupplierInvoicePayment)',$_POST['accountid'],'','');
if (! $result > 0) if ($result < 0)
{ {
$errmsg='<div class="error">'.$paiement->error.'</div>'; $errmsg='<div class="error">'.$paiement->error.'</div>';
$error++; $error++;

View File

@ -227,24 +227,22 @@ if ($result > 0)
print '<tr><td valign="top" colspan="2">'.$langs->trans('Note').'</td><td colspan="3">'.nl2br($paiement->note).'</td></tr>'; print '<tr><td valign="top" colspan="2">'.$langs->trans('Note').'</td><td colspan="3">'.nl2br($paiement->note).'</td></tr>';
// Bank account
if ($conf->banque->enabled) if ($conf->banque->enabled)
{ {
if ($paiement->bank_account) if ($paiement->bank_account)
{ {
// Si compte renseigne, on affiche libelle $bankline=new AccountLine($db);
$bank=new Account($db); $bankline->fetch($paiement->bank_line);
$bank->fetch($paiement->bank_account);
$bankline=new AccountLine($db); print '<tr>';
$bankline->fetch($paiement->bank_line); print '<td colspan="2">'.$langs->trans('BankTransactionLine').'</td>';
print '<td colspan="3">';
print '<tr>'; print $bankline->getNomUrl(1,0,'showall');
print '<td valign="top" colspan="2">'.$langs->trans('BankAccount').'</td>'; print '</td>';
print '<td><a href="'.DOL_URL_ROOT.'/compta/bank/account.php?account='.$bank->id.'">'.img_object($langs->trans('ShowAccount'),'account').' '.$bank->label.'</a></td>'; print '</tr>';
print '<td>'.$langs->trans('BankLineConciliated').'</td><td>'.yn($bankline->rappro).'</td>'; }
print '</tr>'; }
}
}
print '</table>'; print '</table>';