uniformize code and add feature
This commit is contained in:
parent
0eea44a1ed
commit
e6e7d54431
@ -74,8 +74,8 @@ class CommandeFournisseur extends Commande
|
|||||||
var $mode_reglement_code;
|
var $mode_reglement_code;
|
||||||
|
|
||||||
|
|
||||||
/** \brief Constructeur
|
/** Constructeur
|
||||||
* \param DB Handler d'acces aux bases de donnees
|
* @param DB Handler d'acces aux bases de donnees
|
||||||
*/
|
*/
|
||||||
function CommandeFournisseur($DB)
|
function CommandeFournisseur($DB)
|
||||||
{
|
{
|
||||||
@ -106,12 +106,15 @@ class CommandeFournisseur extends Commande
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
|
// Check parameters
|
||||||
|
if (empty($id) && empty($ref)) return -1;
|
||||||
|
|
||||||
$sql = "SELECT c.rowid, c.ref, c.date_creation, c.fk_soc, c.fk_user_author, c.fk_statut, c.amount_ht, c.total_ht, c.total_ttc, c.tva,";
|
$sql = "SELECT c.rowid, c.ref, c.date_creation, c.fk_soc, c.fk_user_author, c.fk_statut, c.amount_ht, c.total_ht, c.total_ttc, c.tva,";
|
||||||
$sql.= " c.localtax1, c.localtax2, ";
|
$sql.= " c.localtax1, c.localtax2, ";
|
||||||
$sql.= " c.date_commande as date_commande, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,";
|
$sql.= " c.date_commande as date_commande, c.fk_cond_reglement, c.fk_mode_reglement, c.fk_projet as fk_project, c.remise_percent, c.source, c.fk_methode_commande,";
|
||||||
$sql.= " c.note, c.note_public, c.model_pdf,";
|
$sql.= " c.note, c.note_public, c.model_pdf,";
|
||||||
$sql.= " cm.libelle as methode_commande,";
|
$sql.= " cm.libelle as methode_commande,";
|
||||||
$sql.= " cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle";
|
$sql.= " cr.code as cond_reglement_code, cr.libelle as cond_reglement_libelle,";
|
||||||
$sql.= " p.code as mode_reglement_code, p.libelle as mode_reglement_libelle";
|
$sql.= " p.code as mode_reglement_code, p.libelle as mode_reglement_libelle";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c";
|
$sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseur as c";
|
||||||
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_payment_term as cr ON (c.fk_cond_reglement = cr.rowid)";
|
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."c_payment_term as cr ON (c.fk_cond_reglement = cr.rowid)";
|
||||||
@ -151,6 +154,7 @@ class CommandeFournisseur extends Commande
|
|||||||
$this->cond_reglement_id = $obj->fk_cond_reglement;
|
$this->cond_reglement_id = $obj->fk_cond_reglement;
|
||||||
$this->cond_reglement_code = $obj->cond_reglement_code;
|
$this->cond_reglement_code = $obj->cond_reglement_code;
|
||||||
$this->cond_reglement = $obj->cond_reglement_libelle;
|
$this->cond_reglement = $obj->cond_reglement_libelle;
|
||||||
|
$this->cond_reglement_doc = $obj->cond_reglement_libelle_doc;
|
||||||
$this->mode_reglement_id = $obj->fk_mode_reglement;
|
$this->mode_reglement_id = $obj->fk_mode_reglement;
|
||||||
$this->mode_reglement_code = $obj->mode_reglement_code;
|
$this->mode_reglement_code = $obj->mode_reglement_code;
|
||||||
$this->mode_reglement = $obj->mode_reglement_libelle;
|
$this->mode_reglement = $obj->mode_reglement_libelle;
|
||||||
@ -235,12 +239,12 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Add a line in log table
|
* Add a line in log table
|
||||||
* \param user User making action
|
* @param user User making action
|
||||||
* \param statut Status of order
|
* @param statut Status of order
|
||||||
* \param datelog Date of change
|
* @param datelog Date of change
|
||||||
* \param comment Comment
|
* @param comment Comment
|
||||||
* \return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function log($user, $statut, $datelog, $comment='')
|
function log($user, $statut, $datelog, $comment='')
|
||||||
{
|
{
|
||||||
@ -264,8 +268,8 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Validate an order
|
* Validate an order
|
||||||
* \param user Utilisateur qui valide
|
* @param user Utilisateur qui valide
|
||||||
*/
|
*/
|
||||||
function valid($user)
|
function valid($user)
|
||||||
{
|
{
|
||||||
@ -280,7 +284,7 @@ class CommandeFournisseur extends Commande
|
|||||||
{
|
{
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
|
|
||||||
// Definition du nom de module de numerotation de commande
|
// Definition du nom de modele de numerotation de commande
|
||||||
$soc = new Societe($this->db);
|
$soc = new Societe($this->db);
|
||||||
$soc->fetch($this->fourn_id);
|
$soc->fetch($this->fourn_id);
|
||||||
|
|
||||||
@ -305,7 +309,7 @@ class CommandeFournisseur extends Commande
|
|||||||
$resql=$this->db->query($sql);
|
$resql=$this->db->query($sql);
|
||||||
if (! $resql)
|
if (! $resql)
|
||||||
{
|
{
|
||||||
dol_syslog("Commande::valid() Echec update - 10 - sql=".$sql, LOG_ERR);
|
dol_syslog("CommandeFournisseur::valid() Echec update - 10 - sql=".$sql, LOG_ERR);
|
||||||
dol_print_error($this->db);
|
dol_print_error($this->db);
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
@ -373,11 +377,87 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set draft status
|
||||||
|
* @param user Object user that modify
|
||||||
|
* @return int <0 if KO, >0 if OK
|
||||||
|
*/
|
||||||
|
function set_draft($user)
|
||||||
|
{
|
||||||
|
global $conf,$langs;
|
||||||
|
|
||||||
|
$error=0;
|
||||||
|
|
||||||
|
// Protection
|
||||||
|
if ($this->statut == 0)
|
||||||
|
{
|
||||||
|
dol_syslog("CommandeFournisseur::set_draft already draft status", LOG_WARNING);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $user->rights->fournisseur->commande->valider)
|
||||||
|
{
|
||||||
|
$this->error='Permission denied';
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->begin();
|
||||||
|
|
||||||
|
$sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur";
|
||||||
|
$sql.= " SET fk_statut = 0";
|
||||||
|
$sql.= " WHERE rowid = ".$this->id;
|
||||||
|
|
||||||
|
dol_syslog("CommandeFournisseur::set_draft sql=".$sql, LOG_DEBUG);
|
||||||
|
if ($this->db->query($sql))
|
||||||
|
{
|
||||||
|
// If stock is incremented on validate order, we must redecrement it
|
||||||
|
if ($conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_VALIDATE_ORDER == 0)
|
||||||
|
{
|
||||||
|
require_once(DOL_DOCUMENT_ROOT."/product/stock/class/mouvementstock.class.php");
|
||||||
|
|
||||||
|
for ($i = 0 ; $i < sizeof($this->lines) ; $i++)
|
||||||
|
{
|
||||||
|
if ($this->lines[$i]->fk_product > 0 && $this->lines[$i]->product_type == 0)
|
||||||
|
{
|
||||||
|
$mouvP = new MouvementStock($this->db);
|
||||||
|
// We increment stock of product (and sub-products)
|
||||||
|
$entrepot_id = "1"; //Todo: ajouter possibilite de choisir l'entrepot
|
||||||
|
$result=$mouvP->reception($user, $this->lines[$i]->fk_product, $entrepot_id, $this->lines[$i]->qty, $this->lines[$i]->subprice);
|
||||||
|
if ($result < 0) { $error++; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$error)
|
||||||
|
{
|
||||||
|
$this->statut=0;
|
||||||
|
$this->db->commit();
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$mouvP->error;
|
||||||
|
$this->db->rollback();
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->statut=0;
|
||||||
|
$this->db->commit();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=$this->db->error();
|
||||||
|
$this->db->rollback();
|
||||||
|
dol_syslog($this->error, LOG_ERR);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Return label of the status of object
|
* Return label of the status of object
|
||||||
* \param mode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label
|
* @param mode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label
|
||||||
* \return string Label
|
* @return string Label
|
||||||
*/
|
*/
|
||||||
function getLibStatut($mode=0)
|
function getLibStatut($mode=0)
|
||||||
{
|
{
|
||||||
@ -385,10 +465,10 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Return label of a status
|
* Return label of a status
|
||||||
* \param statut Id statut
|
* @param statut Id statut
|
||||||
* \param mode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto
|
* @param mode 0=Long label, 1=Short label, 2=Picto + Short label, 3=Picto, 4=Picto + Long label, 5=Short label + Picto
|
||||||
* \return string Label of status
|
* @return string Label of status
|
||||||
*/
|
*/
|
||||||
function LibStatut($statut,$mode=0)
|
function LibStatut($statut,$mode=0)
|
||||||
{
|
{
|
||||||
@ -444,10 +524,10 @@ class CommandeFournisseur extends Commande
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoie nom clicable (avec eventuellement le picto)
|
* Renvoie nom clicable (avec eventuellement le picto)
|
||||||
* \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
|
* @param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
|
||||||
* \param option Sur quoi pointe le lien
|
* @param option Sur quoi pointe le lien
|
||||||
* \return string Chaine avec URL
|
* @return string Chaine avec URL
|
||||||
*/
|
*/
|
||||||
function getNomUrl($withpicto=0,$option='')
|
function getNomUrl($withpicto=0,$option='')
|
||||||
{
|
{
|
||||||
@ -469,10 +549,10 @@ class CommandeFournisseur extends Commande
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Renvoie la reference de commande suivante non utilisee en fonction du module
|
* Renvoie la reference de commande suivante non utilisee en fonction du module
|
||||||
* de numerotation actif defini dans COMMANDE_SUPPLIER_ADDON
|
* de numerotation actif defini dans COMMANDE_SUPPLIER_ADDON
|
||||||
* \param soc objet societe
|
* @param soc objet societe
|
||||||
* \return string reference libre pour la facture
|
* @return string reference libre pour la facture
|
||||||
*/
|
*/
|
||||||
function getNextNumRef($soc)
|
function getNextNumRef($soc)
|
||||||
{
|
{
|
||||||
@ -523,8 +603,8 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Accept an order
|
* Accept an order
|
||||||
* \param user Object user
|
* @param user Object user
|
||||||
*/
|
*/
|
||||||
function approve($user)
|
function approve($user)
|
||||||
{
|
{
|
||||||
@ -603,8 +683,8 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Refuse an order
|
* Refuse an order
|
||||||
* \param user User making action
|
* @param user User making action
|
||||||
*/
|
*/
|
||||||
function refuse($user)
|
function refuse($user)
|
||||||
{
|
{
|
||||||
@ -646,9 +726,9 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Cancel an approved order
|
* Cancel an approved order
|
||||||
* \param user User making action
|
* @param user User making action
|
||||||
* \remarks L'annulation se fait apres l'approbation
|
* @remarks L'annulation se fait apres l'approbation
|
||||||
*/
|
*/
|
||||||
function Cancel($user)
|
function Cancel($user)
|
||||||
{
|
{
|
||||||
@ -761,6 +841,7 @@ class CommandeFournisseur extends Commande
|
|||||||
$sql.= ", fk_statut";
|
$sql.= ", fk_statut";
|
||||||
$sql.= ", source";
|
$sql.= ", source";
|
||||||
$sql.= ", model_pdf";
|
$sql.= ", model_pdf";
|
||||||
|
$sql.= ", fk_mode_reglement";
|
||||||
$sql.= ") ";
|
$sql.= ") ";
|
||||||
$sql.= " VALUES (";
|
$sql.= " VALUES (";
|
||||||
$sql.= "''";
|
$sql.= "''";
|
||||||
@ -771,6 +852,7 @@ class CommandeFournisseur extends Commande
|
|||||||
$sql.= ", 0";
|
$sql.= ", 0";
|
||||||
$sql.= ", 0";
|
$sql.= ", 0";
|
||||||
$sql.= ", '".$conf->global->COMMANDE_SUPPLIER_ADDON_PDF."'";
|
$sql.= ", '".$conf->global->COMMANDE_SUPPLIER_ADDON_PDF."'";
|
||||||
|
$sql.= ", ".$this->mode_reglement_id;
|
||||||
$sql.= ")";
|
$sql.= ")";
|
||||||
|
|
||||||
dol_syslog("CommandeFournisseur::Create sql=".$sql);
|
dol_syslog("CommandeFournisseur::Create sql=".$sql);
|
||||||
@ -1164,9 +1246,9 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Change les conditions de reglement de la commande
|
* Change les conditions de reglement de la commande
|
||||||
* \param cond_reglement_id Id de la nouvelle condition de reglement
|
* @param cond_reglement_id Id de la nouvelle condition de reglement
|
||||||
* \return int >0 si ok, <0 si ko
|
* @return int >0 si ok, <0 si ko
|
||||||
*/
|
*/
|
||||||
function cond_reglement($cond_reglement_id)
|
function cond_reglement($cond_reglement_id)
|
||||||
{
|
{
|
||||||
@ -1196,10 +1278,10 @@ class CommandeFournisseur extends Commande
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Change le mode de reglement
|
* Change le mode de reglement
|
||||||
* \param mode Id du nouveau mode
|
* @param mode Id du nouveau mode
|
||||||
* \return int >0 si ok, <0 si ko
|
* @return int >0 si ok, <0 si ko
|
||||||
*/
|
*/
|
||||||
function mode_reglement($mode_reglement_id)
|
function mode_reglement($mode_reglement_id)
|
||||||
{
|
{
|
||||||
@ -1288,9 +1370,10 @@ class CommandeFournisseur extends Commande
|
|||||||
return $result ;
|
return $result ;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Cree la commande depuis une propale existante
|
/**
|
||||||
\param user Utilisateur qui cree
|
* Cree la commande depuis une propale existante
|
||||||
\param propale_id id de la propale qui sert de modele
|
* @param user Utilisateur qui cree
|
||||||
|
* @param propale_id id de la propale qui sert de modele
|
||||||
*/
|
*/
|
||||||
function updateFromCommandeClient($user, $idc, $comclientid)
|
function updateFromCommandeClient($user, $idc, $comclientid)
|
||||||
{
|
{
|
||||||
@ -1327,8 +1410,8 @@ class CommandeFournisseur extends Commande
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Met a jour les notes
|
* Met a jour les notes
|
||||||
* \return int <0 si ko, >=0 si ok
|
* @return int <0 si ko, >=0 si ok
|
||||||
*/
|
*/
|
||||||
function UpdateNote($user, $note, $note_public)
|
function UpdateNote($user, $note, $note_public)
|
||||||
{
|
{
|
||||||
@ -1400,9 +1483,9 @@ class CommandeFournisseur extends Commande
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Tag order with a particular status
|
* Tag order with a particular status
|
||||||
* \param user Object user that change status
|
* @param user Object user that change status
|
||||||
* \return int <0 if KO, >0 if OK
|
* @return int <0 if KO, >0 if OK
|
||||||
*/
|
*/
|
||||||
function setStatus($user,$status)
|
function setStatus($user,$status)
|
||||||
{
|
{
|
||||||
@ -1713,8 +1796,8 @@ class CommandeFournisseurLigne extends OrderLine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Load line order
|
* Load line order
|
||||||
* \param rowid id line order
|
* @param rowid id line order
|
||||||
*/
|
*/
|
||||||
function fetch($rowid)
|
function fetch($rowid)
|
||||||
{
|
{
|
||||||
@ -1763,8 +1846,8 @@ class CommandeFournisseurLigne extends OrderLine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Mise a jour de l'objet ligne de commande en base
|
* Mise a jour de l'objet ligne de commande en base
|
||||||
* \return int <0 si ko, >0 si ok
|
* @return int <0 si ko, >0 si ok
|
||||||
*/
|
*/
|
||||||
function update_total()
|
function update_total()
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user