Bonjour,
En utilisant la fonction fetch de product.class de la version 2.4.1, je me suis
aperçu qu’elle ne retournait pas d’erreur lorsque le produit n’existe pas en
base.
Voici le code de la fonction avec la ligne(en fin de message) que j’ai ajouté
pour retourné -1 lorsque le produit n’est pas en base
Je vous laisse reporter la modif.
/**
* \brief Charge le produit/service en m�moire
* \param id Id du produit/service � charger
* \param ref Ref du produit/service � charger
* \return int <0 si ko, >0 si ok
*/
function fetch($id='',$ref='')
{
global $langs;
global $conf;
dolibarr_syslog("Product::fetch id=$id ref=$ref");
// Verification parametres
if (! $id && ! $ref)
{
$this->error=$langs->trans('ErrorWrongParameters');
dolibarr_print_error("Product::fetch ".$this->error);
return -1;
}
$sql = "SELECT rowid, ref, label, description, note, price,
price_ttc, price_base_type, tva_tx, envente,";
$sql.= " nbvente, fk_product_type, duration,
seuil_stock_alerte,canvas,";
$sql.= " stock_commande, stock_loc, weight, weight_units, volume,
volume_units, barcode, fk_barcode_type";
$sql.= " FROM ".MAIN_DB_PREFIX."product";
if ($id) $sql.= " WHERE rowid = '".$id."'";
if ($ref) $sql.= " WHERE ref = '".addslashes($ref)."'";
dolibarr_syslog("Product::fetch sql=".$sql);
echo $sql."<br>";
$result = $this->db->query($sql);
if ( $result )
{
$result = $this->db->fetch_array();
if (!$result ) return -1; //produit n'est
pas dans la base, Ajout le 08-12-2008
_______________________________________________
Dolibarr-dev mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/dolibarr-dev