Fix: Correction suite à remplacement du replace par delete-insert
Doc: Mise à jour doc doxygen.
This commit is contained in:
parent
b64881d120
commit
a59af248bd
@ -1,5 +1,6 @@
|
|||||||
<?PHP
|
<?PHP
|
||||||
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
/* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
||||||
|
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -20,6 +21,18 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\file htdocs/product.class.php
|
||||||
|
\ingroup produit
|
||||||
|
\brief Fichier de la classe des produits prédéfinis
|
||||||
|
\version $Revision$
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*! \class Product
|
||||||
|
\brief Classe permettant la gestion des produits prédéfinis
|
||||||
|
*/
|
||||||
|
|
||||||
class Product
|
class Product
|
||||||
{
|
{
|
||||||
var $db ;
|
var $db ;
|
||||||
@ -35,16 +48,21 @@ class Product
|
|||||||
var $duration_value;
|
var $duration_value;
|
||||||
var $duration_unit;
|
var $duration_unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Constructeur de la classe
|
||||||
|
* \param DB handler accès base de données
|
||||||
|
* \param id id produit (0 par defaut)
|
||||||
|
*/
|
||||||
function Product($DB, $id=0)
|
function Product($DB, $id=0)
|
||||||
{
|
{
|
||||||
$this->db = $DB;
|
$this->db = $DB;
|
||||||
$this->id = $id ;
|
$this->id = $id ;
|
||||||
$this->envente = 0;
|
$this->envente = 0;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Vérifie que la référence produit est non null
|
||||||
*
|
* \return int 1 si ok, 0 sinon
|
||||||
*/
|
*/
|
||||||
function check()
|
function check()
|
||||||
{
|
{
|
||||||
@ -67,9 +85,10 @@ class Product
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* \brief Insère le produit en base
|
||||||
*
|
* \param user utilisateur qui effectue l'insertion
|
||||||
*/
|
*/
|
||||||
function create($user)
|
function create($user)
|
||||||
{
|
{
|
||||||
@ -116,7 +135,7 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -126,10 +145,11 @@ class Product
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* \brief Mise à jour du produit en base
|
||||||
*
|
* \param id id du produit
|
||||||
*
|
* \param user utilisateur qui effectue l'insertion
|
||||||
*/
|
*/
|
||||||
function update($id, $user)
|
function update($id, $user)
|
||||||
{
|
{
|
||||||
@ -161,32 +181,34 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* \brief Ajoute un changement de prix en base dans l'historique des prix
|
||||||
*
|
* \param user utilisateur qui modifie le prix
|
||||||
*/
|
*/
|
||||||
function _log_price($user)
|
function _log_price($user)
|
||||||
{
|
{
|
||||||
|
|
||||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price ";
|
$sql = "DELETE FROM ".MAIN_DB_PREFIX."product_price ";
|
||||||
$sql .= "WHERE fk_product = ".$this->id;
|
$sql .= "WHERE date_price = now()";
|
||||||
$sql .= " ,fk_user_author = ".$user->id;
|
$sql .= " and fk_product = ".$this->id;
|
||||||
$sql .= " ,price = ".ereg_replace(",",".",$this->price);
|
$sql .= " and fk_user_author = ".$user->id;
|
||||||
$sql .= " ,envente = ".$this->envente;
|
$sql .= " and price = ".ereg_replace(",",".",$this->price);
|
||||||
$sql .= " ,tva_tx = ".$this->tva_tx;
|
$sql .= " and envente = ".$this->envente;
|
||||||
|
$sql .= " and tva_tx = ".$this->tva_tx;
|
||||||
|
|
||||||
$this->db->query($sql);
|
$this->db->query($sql);
|
||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_price ";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."product_price ";
|
||||||
$sql .= " SET date_price= now()";
|
$sql .= " SET date_price = now()";
|
||||||
$sql .= " ,fk_product = ".$this->id;
|
$sql .= " ,fk_product = ".$this->id;
|
||||||
$sql .= " ,fk_user_author = ".$user->id;
|
$sql .= " ,fk_user_author = ".$user->id;
|
||||||
$sql .= " ,price = ".ereg_replace(",",".",$this->price);
|
$sql .= " ,price = ".ereg_replace(",",".",$this->price);
|
||||||
$sql .= " ,envente = ".$this->envente;
|
$sql .= " ,envente = ".$this->envente;
|
||||||
$sql .= " ,tva_tx = ".$this->tva_tx;
|
$sql .= " ,tva_tx = ".$this->tva_tx;
|
||||||
|
|
||||||
if ($this->db->query($sql) )
|
if ($this->db->query($sql) )
|
||||||
{
|
{
|
||||||
@ -194,13 +216,15 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Modifie le prix d'un produit/service
|
||||||
|
* \param id id du produit/service à modifier
|
||||||
|
* \param user utilisateur qui modifie le prix
|
||||||
*/
|
*/
|
||||||
function update_price($id, $user)
|
function update_price($id, $user)
|
||||||
{
|
{
|
||||||
@ -218,7 +242,7 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,10 +252,10 @@ class Product
|
|||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* \brief Charge le produit/service en mémoire
|
||||||
*
|
* \param id id du produit/service à charger
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
function fetch ($id)
|
function fetch ($id)
|
||||||
{
|
{
|
||||||
@ -292,13 +316,15 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error();
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Renvoie le nombre de propale incluant le produit/service
|
||||||
|
* \param socid id societe
|
||||||
|
* \return int nombre d'inclusion
|
||||||
*/
|
*/
|
||||||
function count_propale($socid=0)
|
function count_propale($socid=0)
|
||||||
{
|
{
|
||||||
@ -322,9 +348,11 @@ class Product
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Renvoie le nombre de client avec propale incluant le produit/service
|
||||||
|
* \param socid id societe
|
||||||
|
* \return int nombre d'inclusion
|
||||||
*/
|
*/
|
||||||
function count_propale_client($socid=0)
|
function count_propale_client($socid=0)
|
||||||
{
|
{
|
||||||
@ -348,9 +376,11 @@ class Product
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Renvoie le nombre de facture incluant le produit/service
|
||||||
|
* \param socid id societe
|
||||||
|
* \return int nombre d'inclusion
|
||||||
*/
|
*/
|
||||||
function count_facture($socid=0)
|
function count_facture($socid=0)
|
||||||
{
|
{
|
||||||
@ -375,11 +405,12 @@ class Product
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Renvoie des stats
|
||||||
|
* \param sql requete a exécuter
|
||||||
|
* \return array tableau ?
|
||||||
|
*/
|
||||||
function _get_stats($sql)
|
function _get_stats($sql)
|
||||||
{
|
{
|
||||||
$result = $this->db->query($sql) ;
|
$result = $this->db->query($sql) ;
|
||||||
@ -426,9 +457,11 @@ class Product
|
|||||||
return array_reverse($result);
|
return array_reverse($result);
|
||||||
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Renvoie le nombre de ventes du produit/service par mois
|
||||||
|
* \param socid id societe
|
||||||
|
* \return array nombre de vente par mois
|
||||||
*/
|
*/
|
||||||
function get_nb_vente($socid=0)
|
function get_nb_vente($socid=0)
|
||||||
{
|
{
|
||||||
@ -443,9 +476,11 @@ class Product
|
|||||||
|
|
||||||
return $this->_get_stats($sql);
|
return $this->_get_stats($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*Renvoie le nombre de facture dans lesquelles figure le produit
|
* \brief Renvoie le nombre de factures dans lesquelles figure le produit par mois
|
||||||
*
|
* \param socid id societe
|
||||||
|
* \return array nombre de factures par mois
|
||||||
*/
|
*/
|
||||||
function get_num_vente($socid=0)
|
function get_num_vente($socid=0)
|
||||||
{
|
{
|
||||||
@ -460,9 +495,11 @@ class Product
|
|||||||
|
|
||||||
return $this->_get_stats($sql);
|
return $this->_get_stats($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*Renvoie le nombre de proaple dans lesquelles figure le produit
|
* \brief Renvoie le nombre de propales dans lesquelles figure le produit par mois
|
||||||
*
|
* \param socid id societe
|
||||||
|
* \return array nombre de propales par mois
|
||||||
*/
|
*/
|
||||||
function get_num_propal($socid=0)
|
function get_num_propal($socid=0)
|
||||||
{
|
{
|
||||||
@ -477,9 +514,12 @@ class Product
|
|||||||
|
|
||||||
return $this->_get_stats($sql);
|
return $this->_get_stats($sql);
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Lie un fournisseur au produit/service
|
||||||
|
* \param user utilisateur qui fait le lien
|
||||||
|
* \param id_fourn id du fournisseur
|
||||||
|
* \param ref_fourn reference chez le fournisseur
|
||||||
*/
|
*/
|
||||||
function add_fournisseur($user, $id_fourn, $ref_fourn)
|
function add_fournisseur($user, $id_fourn, $ref_fourn)
|
||||||
{
|
{
|
||||||
@ -502,7 +542,7 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,13 +553,15 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Délie un fournisseur au produit/service
|
||||||
|
* \param user utilisateur qui défait le lien
|
||||||
|
* \param id_fourn id du fournisseur
|
||||||
*/
|
*/
|
||||||
function remove_fournisseur($user, $id_fourn)
|
function remove_fournisseur($user, $id_fourn)
|
||||||
{
|
{
|
||||||
@ -532,13 +574,15 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Entre un nombre de piece du produit en stock dans un entrepôt
|
||||||
|
* \param id_entrepot id de l'entrepot
|
||||||
|
* \param nbpiece nombre de pieces
|
||||||
*/
|
*/
|
||||||
function create_stock($id_entrepot, $nbpiece)
|
function create_stock($id_entrepot, $nbpiece)
|
||||||
{
|
{
|
||||||
@ -553,13 +597,17 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Ajuste le stock d'un entrepôt pour le produit à une valeure donnée
|
||||||
|
* \param user utilisateur qui demande l'ajustement
|
||||||
|
* \param id_entrepot id de l'entrepot
|
||||||
|
* \param nbpiece nombre de pieces
|
||||||
|
* \param mouvement 0 = ajout, 1 = suppression
|
||||||
*/
|
*/
|
||||||
function correct_stock($user, $id_entrepot, $nbpiece, $mouvement)
|
function correct_stock($user, $id_entrepot, $nbpiece, $mouvement)
|
||||||
{
|
{
|
||||||
@ -581,20 +629,21 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
*
|
/**
|
||||||
*
|
* \brief Augment ou réduit la valeur de stock pour le produit
|
||||||
|
* \param user utilisateur qui demande l'ajustement
|
||||||
|
* \param id_entrepot id de l'entrepot
|
||||||
|
* \param nbpiece nombre de pieces
|
||||||
|
* \param mouvement 0 = ajout, 1 = suppression
|
||||||
*/
|
*/
|
||||||
function ajust_stock($user, $id_entrepot, $nbpiece, $mouvement)
|
function ajust_stock($user, $id_entrepot, $nbpiece, $mouvement)
|
||||||
{
|
{
|
||||||
/* mouvement = 0 -> ajouter
|
|
||||||
* mouvement = 1 -> supprimer
|
|
||||||
*/
|
|
||||||
$op[0] = "+" . trim($nbpiece);
|
$op[0] = "+" . trim($nbpiece);
|
||||||
$op[1] = "-" . trim($nbpiece);
|
$op[1] = "-" . trim($nbpiece);
|
||||||
|
|
||||||
@ -623,25 +672,26 @@ class Product
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print $this->db->error() . ' in ' . $sql;
|
dolibarr_print_error($this->db);
|
||||||
$this->db->rollback();
|
$this->db->rollback();
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user