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

Répondre à