Fix: Solve pb of duplicate stock increase when using back navigation

This commit is contained in:
Laurent Destailleur 2009-07-09 23:58:01 +00:00
parent 70323388c6
commit e2242a4e02
2 changed files with 21 additions and 15 deletions

View File

@ -1238,14 +1238,14 @@ class Facture extends CommonObject
// Protection // Protection
if (! $this->brouillon) if (! $this->brouillon)
{ {
dol_syslog("Facture::valid no draft status", LOG_WARNING); dol_syslog("Facture::set_valid no draft status", LOG_WARNING);
return 0; return 0;
} }
if (! $user->rights->facture->valider) if (! $user->rights->facture->valider)
{ {
$this->error='Permission denied'; $this->error='Permission denied';
dol_syslog("Facture::valid ".$this->error, LOG_ERR); dol_syslog("Facture::set_valid ".$this->error, LOG_ERR);
return -1; return -1;
} }
@ -1326,11 +1326,11 @@ class Facture extends CommonObject
} }
$sql.= ' WHERE rowid = '.$this->id; $sql.= ' WHERE rowid = '.$this->id;
dol_syslog("Facture::set_valid() sql=".$sql); dol_syslog("Facture::set_valid sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if (! $resql) if (! $resql)
{ {
dol_syslog("Facture::set_valid() Echec update - 10 - sql=".$sql, LOG_ERR); dol_syslog("Facture::set_valid Echec update - 10 - sql=".$sql, LOG_ERR);
dol_print_error($this->db); dol_print_error($this->db);
$error++; $error++;
} }
@ -1379,7 +1379,7 @@ class Facture extends CommonObject
$dirdest = $conf->facture->dir_output.'/'.$snumfa; $dirdest = $conf->facture->dir_output.'/'.$snumfa;
if (file_exists($dirsource)) if (file_exists($dirsource))
{ {
dol_syslog("Facture::set_valid() rename dir ".$dirsource." into ".$dirdest); dol_syslog("Facture::set_valid rename dir ".$dirsource." into ".$dirdest);
if (@rename($dirsource, $dirdest)) if (@rename($dirsource, $dirdest))
{ {

View File

@ -21,20 +21,19 @@
*/ */
/** /**
\file htdocs/fourn/fournisseur.facture.class.php * \file htdocs/fourn/fournisseur.facture.class.php
\ingroup fournisseur,facture * \ingroup fournisseur,facture
\brief Fichier de la classe des factures fournisseurs * \brief Fichier de la classe des factures fournisseurs
\version $Id$ * \version $Id$
*/ */
include_once(DOL_DOCUMENT_ROOT."/facture.class.php"); include_once(DOL_DOCUMENT_ROOT."/facture.class.php");
/** /**
\class FactureFournisseur * \class FactureFournisseur
\brief Classe permettant la gestion des factures fournisseurs * \brief Classe permettant la gestion des factures fournisseurs
*/ */
class FactureFournisseur extends Facture class FactureFournisseur extends Facture
{ {
var $id; var $id;
@ -426,14 +425,21 @@ class FactureFournisseur extends Facture
/** /**
* \brief Set invoice status as validate * \brief Set invoice status as validated
* \param user Objet utilisateur qui valide la facture * \param user Object user
* \return int <0 si ko, >0 si ok * \return int <0 if KO, =0 if nothing to do, >0 if OK
*/ */
function set_valid($user) function set_valid($user)
{ {
global $conf,$langs; global $conf,$langs;
// Protection
if ($this->statut > 0) // This is to avoid to validate twice (avoid errors on logs and stock management)
{
dol_syslog("FactureFournisseur::set_valid no draft status", LOG_WARNING);
return 0;
}
$this->db->begin(); $this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn"; $sql = "UPDATE ".MAIN_DB_PREFIX."facture_fourn";