Fix: Correction suite à remplacement du replace par delete-insert

Doc: Mise à jour doc doxygen.
This commit is contained in:
Laurent Destailleur 2004-08-29 13:06:30 +00:00
parent b64881d120
commit a59af248bd

View File

@ -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;
} }
} }
} }
} }
?> ?>