Fix: fetch() ne récupérait pas les sociétés dont certains champs n'étaient pas renseignés

This commit is contained in:
marc_ocebo 2005-10-05 13:05:30 +00:00
parent 90823bcab2
commit e8ba82f6b0

View File

@ -420,9 +420,7 @@ class Societe {
$sql .= " FROM ".MAIN_DB_PREFIX."societe_perms as p"; $sql .= " FROM ".MAIN_DB_PREFIX."societe_perms as p";
$sql .= " WHERE p.fk_user = '".$user->id."'"; $sql .= " WHERE p.fk_user = '".$user->id."'";
$sql .= " AND p.fk_soc = '".$socid."';"; $sql .= " AND p.fk_soc = '".$socid."';";
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
if ($row = $this->db->fetch_row($resql)) if ($row = $this->db->fetch_row($resql))
@ -434,32 +432,26 @@ class Societe {
} }
} }
$sql = "SELECT s.idp, s.nom, s.address,".$this->db->pdate("s.datec")." as dc, prefix_comm"; $sql = 'SELECT s.idp, s.nom, s.address,'.$this->db->pdate('s.datec').' as dc, prefix_comm';
$sql .= ",". $this->db->pdate("s.tms")." as date_update"; $sql .= ','. $this->db->pdate('s.tms').' as date_update';
$sql .= ", s.tel, s.fax, s.url,s.cp,s.ville, s.note, s.siren, client, fournisseur"; $sql .= ', s.tel, s.fax, s.url,s.cp,s.ville, s.note, s.siren, client, fournisseur';
$sql .= ", s.siret, s.capital, s.ape, s.tva_intra, s.rubrique"; $sql .= ', s.siret, s.capital, s.ape, s.tva_intra, s.rubrique';
$sql .= ", s.fk_typent as typent_id"; $sql .= ', s.fk_typent as typent_id';
$sql .= ", s.fk_effectif as effectif_id, e.libelle as effectif"; $sql .= ', s.fk_effectif as effectif_id, e.libelle as effectif';
$sql .= ", s.fk_forme_juridique as forme_juridique_code, fj.libelle as forme_juridique"; $sql .= ', s.fk_forme_juridique as forme_juridique_code, fj.libelle as forme_juridique';
$sql .= ", s.code_client, s.code_compta, s.code_fournisseur, s.parent"; $sql .= ', s.code_client, s.code_compta, s.code_fournisseur, s.parent';
$sql .= ", s.fk_departement, s.fk_pays, s.fk_stcomm, s.remise_client"; $sql .= ', s.fk_departement, s.fk_pays, s.fk_stcomm, s.remise_client';
$sql .= ", p.code as pays_code, p.libelle as pays"; $sql .= ', p.code as pays_code, p.libelle as pays';
$sql .= ", d.code_departement as departement_code, d.nom as departement"; $sql .= ', d.code_departement as departement_code, d.nom as departement';
$sql .= ", st.libelle as stcomm"; $sql .= ', st.libelle as stcomm';
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s';
$sql .= ", ".MAIN_DB_PREFIX."c_effectif as e"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_effectif as e ON s.fk_effectif = e.id';
$sql .= ", ".MAIN_DB_PREFIX."c_pays as p"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON s.fk_pays = p.rowid';
$sql .= ", ".MAIN_DB_PREFIX."c_stcomm as st"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_stcomm as st ON s.fk_stcomm = st.id';
$sql .= ", ".MAIN_DB_PREFIX."c_forme_juridique as fj"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_forme_juridique as fj ON s.fk_forme_juridique = fj.code';
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d ON s.fk_departement = d.rowid"; $sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_departements as d ON s.fk_departement = d.rowid';
$sql .= " WHERE s.idp = ".$socid; $sql .= ' WHERE s.idp = '.$socid;
$sql .= " AND s.fk_stcomm = st.id";
$sql .= " AND s.fk_effectif = e.id";
$sql .= " AND s.fk_pays = p.rowid";
$sql .= " AND s.fk_forme_juridique = fj.code";
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
if ($this->db->num_rows($resql)) if ($this->db->num_rows($resql))
@ -474,18 +466,17 @@ class Societe {
$this->adresse = stripslashes($obj->address); $this->adresse = stripslashes($obj->address);
$this->cp = $obj->cp; $this->cp = $obj->cp;
$this->ville = stripslashes($obj->ville); $this->ville = stripslashes($obj->ville);
$this->adresse_full = stripslashes($obj->address) . "\n". $obj->cp . ' '. stripslashes($obj->ville);
$this->adresse_full = stripslashes($obj->address) . "\n". $obj->cp . " ". stripslashes($obj->ville);
$this->pays_id = $obj->fk_pays; $this->pays_id = $obj->fk_pays;
$this->pays_code = $obj->fk_pays?$obj->pays_code:''; $this->pays_code = $obj->fk_pays?$obj->pays_code:'';
$this->pays = $obj->fk_pays?($langs->trans("Country".$obj->pays_code)!="Country".$obj->pays_code?$langs->trans("Country".$obj->pays_code):$obj->pays):''; $this->pays = $obj->fk_pays?($langs->trans('Country'.$obj->pays_code)!='Country'.$obj->pays_code?$langs->trans('Country'.$obj->pays_code):$obj->pays):'';
$this->departement_id = $obj->fk_departement; $this->departement_id = $obj->fk_departement;
$this->departement= $obj->fk_departement?$obj->departement:''; $this->departement= $obj->fk_departement?$obj->departement:'';
$transcode=$langs->trans("StatusProspect".$obj->fk_stcomm); $transcode=$langs->trans('StatusProspect'.$obj->fk_stcomm);
$libelle=($transcode!="StatusProspect".$obj->fk_stcomm?$transcode:$obj->stcomm); $libelle=($transcode!='StatusProspect'.$obj->fk_stcomm?$transcode:$obj->stcomm);
$this->stcomm_id = $obj->fk_stcomm; // id statut commercial $this->stcomm_id = $obj->fk_stcomm; // id statut commercial
$this->statut_commercial = $libelle; // libelle statut commercial $this->statut_commercial = $libelle; // libelle statut commercial
@ -556,8 +547,8 @@ class Societe {
} }
else else
{ {
dolibarr_syslog("Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql); dolibarr_syslog('Erreur Societe::Fetch aucune societe avec id='.$this->id.' - '.$sql);
$this->error="Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql; $this->error='Erreur Societe::Fetch aucune societe avec id='.$this->id.' - '.$sql;
$result = -2; $result = -2;
} }
@ -565,8 +556,8 @@ class Societe {
} }
else else
{ {
dolibarr_syslog("Erreur Societe::Fetch echec sql=$sql"); dolibarr_syslog('Erreur Societe::Fetch echec sql='.$sql);
dolibarr_syslog("Erreur Societe::Fetch ".$this->db->error()); dolibarr_syslog('Erreur Societe::Fetch '.$this->db->error());
$this->error=$this->db->error(); $this->error=$this->db->error();
$result = -3; $result = -3;
} }