Fix: no accent

Fix: error if no product translation
This commit is contained in:
Regis Houssin 2009-06-08 10:56:54 +00:00
parent 1de47d6a02
commit 240d8486a2
5 changed files with 88 additions and 86 deletions

View File

@ -823,7 +823,6 @@ class Form
dol_syslog("Form::select_produits_do sql=".$sql, LOG_DEBUG); dol_syslog("Form::select_produits_do sql=".$sql, LOG_DEBUG);
$resultd = $this->db->query($sqld); $resultd = $this->db->query($sqld);
if ( $resultd ) $objtp = $this->db->fetch_object($resultd);
} }
if ($result) if ($result)
@ -859,10 +858,10 @@ class Form
// Multilangs : modification des donnée si une traduction existe // Multilangs : modification des donnée si une traduction existe
if ($conf->global->MAIN_MULTILANGS) if ($conf->global->MAIN_MULTILANGS)
{ {
if ( $resultd ) $objtp = $this->db->fetch_object($resultd);
if ( $objp->rowid == $objtp->fk_product ) // si on a une traduction if ( $objp->rowid == $objtp->fk_product ) // si on a une traduction
{ {
if ( $objtp->label != '') $objp->label = $objtp->label; if ( $objtp->label != '') $objp->label = $objtp->label;
if ( $resultd ) $objtp = $this->db->fetch_object($resultd); // on charge la traduction suivante
} }
} }
$opt = '<option value="'.$objp->rowid.'"'; $opt = '<option value="'.$objp->rowid.'"';
@ -883,21 +882,24 @@ class Form
dol_syslog("Form::select_produits_do sql=".$sql); dol_syslog("Form::select_produits_do sql=".$sql);
$result2 = $this->db->query($sql); $result2 = $this->db->query($sql);
$objp2 = $this->db->fetch_object($result2); if ($result2)
if ($objp2)
{ {
if ($objp2->price_base_type == 'HT') $objp2 = $this->db->fetch_object($result2);
$opt.= price($objp2->price,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("HT"); if ($objp2)
{
if ($objp2->price_base_type == 'HT')
$opt.= price($objp2->price,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("HT");
else
$opt.= price($objp2->price_ttc,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("TTC");
}
//si il n'y a pas de prix multiple on prend le prix de base du produit/service
else else
$opt.= price($objp2->price_ttc,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("TTC"); {
} if ($objp->price_base_type == 'HT')
//si il n'y a pas de prix multiple on prend le prix de base du produit/service $opt.= price($objp->price,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("HT");
else else
{ $opt.= price($objp->price_ttc,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("TTC");
if ($objp->price_base_type == 'HT') }
$opt.= price($objp->price,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("HT");
else
$opt.= price($objp->price_ttc,1).' '.$langs->trans("Currency".$conf->monnaie).' '.$langs->trans("TTC");
} }
} }
else else

View File

@ -343,7 +343,7 @@ class DoliDb
} }
/** /**
\brief Effectue une requete et renvoi le resultset de r<EFBFBD>ponse de la base \brief Effectue une requete et renvoi le resultset de reponse de la base
\param query Contenu de la query \param query Contenu de la query
\return resource Resultset de la reponse \return resource Resultset de la reponse
*/ */
@ -390,7 +390,7 @@ class DoliDb
} }
/** /**
\brief Renvoie les donn<EFBFBD>es dans un tableau. \brief Renvoie les donnees dans un tableau.
\param resultset Curseur de la requete voulue \param resultset Curseur de la requete voulue
\return array \return array
*/ */
@ -403,7 +403,7 @@ class DoliDb
/** /**
\brief Renvoie les donn<EFBFBD>es comme un tableau. \brief Renvoie les donnees comme un tableau.
\param resultset Curseur de la requete voulue \param resultset Curseur de la requete voulue
\return array \return array
*/ */
@ -422,7 +422,7 @@ class DoliDb
*/ */
function num_rows($resultset=0) function num_rows($resultset=0)
{ {
// Si le resultset n'est pas fourni, on prend le dernier utilis<EFBFBD> sur cette connexion // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
if (! is_resource($resultset)) { $resultset=$this->results; } if (! is_resource($resultset)) { $resultset=$this->results; }
return mysql_num_rows($resultset); return mysql_num_rows($resultset);
} }
@ -435,7 +435,7 @@ class DoliDb
*/ */
function affected_rows($resultset=0) function affected_rows($resultset=0)
{ {
// Si le resultset n'est pas fourni, on prend le dernier utilis<EFBFBD> sur cette connexion // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
if (! is_resource($resultset)) { $resultset=$this->results; } if (! is_resource($resultset)) { $resultset=$this->results; }
// mysql necessite un link de base pour cette fonction contrairement // mysql necessite un link de base pour cette fonction contrairement
// a pqsql qui prend un resultset // a pqsql qui prend un resultset
@ -444,14 +444,14 @@ class DoliDb
/** /**
\brief Lib<EFBFBD>re le dernier resultset utilis<EFBFBD> sur cette connexion. \brief Libere le dernier resultset utilise sur cette connexion.
\param resultset Curseur de la requete voulue \param resultset Curseur de la requete voulue
*/ */
function free($resultset=0) function free($resultset=0)
{ {
// Si le resultset n'est pas fourni, on prend le dernier utilis<EFBFBD> sur cette connexion // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
if (! is_resource($resultset)) { $resultset=$this->results; } if (! is_resource($resultset)) { $resultset=$this->results; }
// Si resultset en est un, on libere la m<EFBFBD>moire // Si resultset en est un, on libere la memoire
if (is_resource($resultset)) mysql_free_result($resultset); if (is_resource($resultset)) mysql_free_result($resultset);
} }

View File

@ -435,7 +435,7 @@ class DoliDb
*/ */
function num_rows($resultset=0) function num_rows($resultset=0)
{ {
// Si le resultset n'est pas fourni, on prend le dernier utilis<EFBFBD> sur cette connexion // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion
if (! is_object($resultset)) { $resultset=$this->results; } if (! is_object($resultset)) { $resultset=$this->results; }
return mysqli_num_rows($resultset); return mysqli_num_rows($resultset);
} }

View File

@ -543,7 +543,7 @@ class Product extends CommonObject
} }
/** /**
* \brief update ou cr<EFBFBD>e les traductions des infos produits * \brief update ou cree les traductions des infos produits
*/ */
function setMultiLangs() function setMultiLangs()
{ {
@ -558,47 +558,47 @@ class Product extends CommonObject
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($value == $current_lang) if ($value == $current_lang)
{ {
if ($this->db->num_rows($result)) // si aucune ligne dans la base if ($this->db->num_rows($result)) // si aucune ligne dans la base
{ {
$sql2 = "UPDATE ".MAIN_DB_PREFIX."product_det"; $sql2 = "UPDATE ".MAIN_DB_PREFIX."product_det";
$sql2.= " SET label='".addslashes($this->libelle)."',"; $sql2.= " SET label='".addslashes($this->libelle)."',";
$sql2.= " description='".addslashes($this->description)."',"; $sql2.= " description='".addslashes($this->description)."',";
$sql2.= " note='".addslashes($this->note)."'"; $sql2.= " note='".addslashes($this->note)."'";
$sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'"; $sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'";
} }
else else
{ {
$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_det (fk_product, lang, label, description, note)"; $sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_det (fk_product, lang, label, description, note)";
$sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->libelle); $sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->libelle);
$sql2.= "','".addslashes($this->description); $sql2.= "','".addslashes($this->description);
$sql2.= "','".addslashes($this->note)."')"; $sql2.= "','".addslashes($this->note)."')";
} }
if (!$this->db->query($sql2)) return -1; if (!$this->db->query($sql2)) return -1;
} }
else else
{ {
if ($this->db->num_rows($result)) // si aucune ligne dans la base if ($this->db->num_rows($result)) // si aucune ligne dans la base
{ {
$sql2 = "UPDATE ".MAIN_DB_PREFIX."product_det"; $sql2 = "UPDATE ".MAIN_DB_PREFIX."product_det";
$sql2.= " SET label='".addslashes($this->multilangs["$value"]["libelle"])."',"; $sql2.= " SET label='".addslashes($this->multilangs["$value"]["libelle"])."',";
$sql2.= " description='".addslashes($this->multilangs["$value"]["description"])."',"; $sql2.= " description='".addslashes($this->multilangs["$value"]["description"])."',";
$sql2.= " note='".addslashes($this->multilangs["$value"]["note"])."'"; $sql2.= " note='".addslashes($this->multilangs["$value"]["note"])."'";
$sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'"; $sql2.= " WHERE fk_product=".$this->id." AND lang='".$value."'";
} }
else else
{ {
$sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_det (fk_product, lang, label, description, note)"; $sql2 = "INSERT INTO ".MAIN_DB_PREFIX."product_det (fk_product, lang, label, description, note)";
$sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->multilangs["$value"]["libelle"]); $sql2.= " VALUES(".$this->id.",'".$value."','". addslashes($this->multilangs["$value"]["libelle"]);
$sql2.= "','".addslashes($this->multilangs["$value"]["description"]); $sql2.= "','".addslashes($this->multilangs["$value"]["description"]);
$sql2.= "','".addslashes($this->multilangs["$value"]["note"])."')"; $sql2.= "','".addslashes($this->multilangs["$value"]["note"])."')";
} }
// on ne sauvegarde pas des champs vides // on ne sauvegarde pas des champs vides
if ( $this->multilangs["$value"]["libelle"] || $this->multilangs["$value"]["description"] || $this->multilangs["$value"]["note"] ) if ( $this->multilangs["$value"]["libelle"] || $this->multilangs["$value"]["description"] || $this->multilangs["$value"]["note"] )
if (!$this->db->query($sql2)) return -1; if (!$this->db->query($sql2)) return -1;
} }
} }
return 1; return 1;
} }
@ -627,18 +627,18 @@ class Product extends CommonObject
if ($result) if ($result)
{ {
while ( $obj = $this->db->fetch_object($result) ) while ( $obj = $this->db->fetch_object($result) )
{ {
if( $obj->lang == $current_lang ) // si on a les traduct. dans la langue courant on les charge en infos principales. if( $obj->lang == $current_lang ) // si on a les traduct. dans la langue courant on les charge en infos principales.
{ {
$this->libelle = $obj->label; $this->libelle = $obj->label;
$this->description = $obj->description; $this->description = $obj->description;
$this->note = $obj->note; $this->note = $obj->note;
}
$this->multilangs["$obj->lang"]["libelle"] = $obj->label;
$this->multilangs["$obj->lang"]["description"] = $obj->description;
$this->multilangs["$obj->lang"]["note"] = $obj->note;
} }
$this->multilangs["$obj->lang"]["libelle"] = $obj->label;
$this->multilangs["$obj->lang"]["description"] = $obj->description;
$this->multilangs["$obj->lang"]["note"] = $obj->note;
}
} }
else else
{ {

View File

@ -308,7 +308,7 @@ class Propal extends CommonObject
$total_tva = $tabprice[1]; $total_tva = $tabprice[1];
$total_ttc = $tabprice[2]; $total_ttc = $tabprice[2];
// \TODO A virer // TODO A virer
// Anciens indicateurs: $price, $remise (a ne plus utiliser) // Anciens indicateurs: $price, $remise (a ne plus utiliser)
$price = $pu; $price = $pu;
$remise = 0; $remise = 0;
@ -340,7 +340,7 @@ class Propal extends CommonObject
//if ($conf->global->PROPALE_USE_OPTION_LINE && !$qty) $ligne->special_code=3; //if ($conf->global->PROPALE_USE_OPTION_LINE && !$qty) $ligne->special_code=3;
if (empty($qty)) $ligne->special_code=3; if (empty($qty)) $ligne->special_code=3;
// \TODO deprecated // TODO deprecated
$ligne->price=$price; $ligne->price=$price;
$ligne->remise=$remise; $ligne->remise=$remise;
@ -2088,9 +2088,9 @@ class PropaleLigne
// Bit 0: 0 si TVA normal - 1 si TVA NPR // Bit 0: 0 si TVA normal - 1 si TVA NPR
// Bit 1: 0 ligne normale - 1 si ligne de remise fixe // Bit 1: 0 ligne normale - 1 si ligne de remise fixe
var $total_ht; // Total HT de la ligne toute quantit<EFBFBD> et incluant la remise ligne var $total_ht; // Total HT de la ligne toute quantite et incluant la remise ligne
var $total_tva; // Total TVA de la ligne toute quantit<EFBFBD> et incluant la remise ligne var $total_tva; // Total TVA de la ligne toute quantite et incluant la remise ligne
var $total_ttc; // Total TTC de la ligne toute quantit<EFBFBD> et incluant la remise ligne var $total_ttc; // Total TTC de la ligne toute quantite et incluant la remise ligne
// Ne plus utiliser // Ne plus utiliser
var $remise; var $remise;
@ -2104,7 +2104,7 @@ class PropaleLigne
/** /**
* \brief Constructeur d'objets ligne de propal * \brief Constructeur d'objets ligne de propal
* \param DB handler d'acc<EFBFBD>s base de donn<EFBFBD>e * \param DB handler d'acces base de donnee
*/ */
function PropaleLigne($DB) function PropaleLigne($DB)
{ {