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

@ -411,168 +411,159 @@ class Societe {
*/ */
function fetch($socid, $user=0) function fetch($socid, $user=0)
{ {
global $langs; global $langs;
/* Lecture des permissions */ /* Lecture des permissions */
if ($user <> 0) if ($user <> 0)
{ {
$sql = "SELECT p.pread, p.pwrite, p.pperms"; $sql = "SELECT p.pread, p.pwrite, p.pperms";
$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);
if ($resql)
{
if ($row = $this->db->fetch_row($resql))
{
$this->perm_read = $row[0];
$this->perm_write = $row[1];
$this->perm_perms = $row[2];
}
}
}
$resql=$this->db->query($sql); $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 .= ', 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.fk_typent as typent_id';
$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.code_client, s.code_compta, s.code_fournisseur, s.parent';
$sql .= ', s.fk_departement, s.fk_pays, s.fk_stcomm, s.remise_client';
$sql .= ', p.code as pays_code, p.libelle as pays';
$sql .= ', d.code_departement as departement_code, d.nom as departement';
$sql .= ', st.libelle as stcomm';
$sql .= ' FROM '.MAIN_DB_PREFIX.'societe as s';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_effectif as e ON s.fk_effectif = e.id';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_pays as p ON s.fk_pays = p.rowid';
$sql .= ' LEFT JOIN '.MAIN_DB_PREFIX.'c_stcomm as st ON s.fk_stcomm = st.id';
$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 .= ' WHERE s.idp = '.$socid;
$resql=$this->db->query($sql);
if ($resql)
{
if ($this->db->num_rows($resql))
{
$obj = $this->db->fetch_object($resql);
if ($resql) $this->id = $obj->idp;
{
if ($row = $this->db->fetch_row($resql))
{
$this->perm_read = $row[0];
$this->perm_write = $row[1];
$this->perm_perms = $row[2];
}
}
}
$sql = "SELECT s.idp, s.nom, s.address,".$this->db->pdate("s.datec")." as dc, prefix_comm"; $this->date_update = $obj->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.siret, s.capital, s.ape, s.tva_intra, s.rubrique";
$sql .= ", s.fk_typent as typent_id";
$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.code_client, s.code_compta, s.code_fournisseur, s.parent";
$sql .= ", s.fk_departement, s.fk_pays, s.fk_stcomm, s.remise_client";
$sql .= ", p.code as pays_code, p.libelle as pays";
$sql .= ", d.code_departement as departement_code, d.nom as departement";
$sql .= ", st.libelle as stcomm";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
$sql .= ", ".MAIN_DB_PREFIX."c_effectif as e";
$sql .= ", ".MAIN_DB_PREFIX."c_pays as p";
$sql .= ", ".MAIN_DB_PREFIX."c_stcomm as st";
$sql .= ", ".MAIN_DB_PREFIX."c_forme_juridique as fj";
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d ON s.fk_departement = d.rowid";
$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); $this->nom = stripslashes($obj->nom);
$this->adresse = stripslashes($obj->address);
$this->cp = $obj->cp;
$this->ville = stripslashes($obj->ville);
$this->adresse_full = stripslashes($obj->address) . "\n". $obj->cp . ' '. stripslashes($obj->ville);
if ($resql) $this->pays_id = $obj->fk_pays;
{ $this->pays_code = $obj->fk_pays?$obj->pays_code:'';
if ($this->db->num_rows($resql)) $this->pays = $obj->fk_pays?($langs->trans('Country'.$obj->pays_code)!='Country'.$obj->pays_code?$langs->trans('Country'.$obj->pays_code):$obj->pays):'';
{
$obj = $this->db->fetch_object($resql);
$this->id = $obj->idp; $this->departement_id = $obj->fk_departement;
$this->departement= $obj->fk_departement?$obj->departement:'';
$this->date_update = $obj->date_update; $transcode=$langs->trans('StatusProspect'.$obj->fk_stcomm);
$libelle=($transcode!='StatusProspect'.$obj->fk_stcomm?$transcode:$obj->stcomm);
$this->stcomm_id = $obj->fk_stcomm; // id statut commercial
$this->statut_commercial = $libelle; // libelle statut commercial
$this->nom = stripslashes($obj->nom); $this->url = $obj->url;
$this->adresse = stripslashes($obj->address); $this->tel = $obj->tel;
$this->cp = $obj->cp; $this->fax = $obj->fax;
$this->ville = stripslashes($obj->ville);
$this->adresse_full = stripslashes($obj->address) . "\n". $obj->cp . " ". stripslashes($obj->ville); $this->parent = $obj->parent;
$this->pays_id = $obj->fk_pays; $this->siren = $obj->siren;
$this->pays_code = $obj->fk_pays?$obj->pays_code:''; $this->siret = $obj->siret;
$this->pays = $obj->fk_pays?($langs->trans("Country".$obj->pays_code)!="Country".$obj->pays_code?$langs->trans("Country".$obj->pays_code):$obj->pays):''; $this->ape = $obj->ape;
$this->capital = $obj->capital;
$this->departement_id = $obj->fk_departement; $this->code_client = $obj->code_client;
$this->departement= $obj->fk_departement?$obj->departement:''; $this->code_fournisseur = $obj->code_fournisseur;
$transcode=$langs->trans("StatusProspect".$obj->fk_stcomm); if (! $this->code_client && $this->mod_codeclient->code_modifiable_null == 1)
$libelle=($transcode!="StatusProspect".$obj->fk_stcomm?$transcode:$obj->stcomm); {
$this->stcomm_id = $obj->fk_stcomm; // id statut commercial $this->codeclient_modifiable = 1;
$this->statut_commercial = $libelle; // libelle statut commercial }
$this->url = $obj->url; if (! $this->code_fournisseur && $this->mod_codefournisseur->code_modifiable_null == 1)
$this->tel = $obj->tel; {
$this->fax = $obj->fax; $this->codefournisseur_modifiable = 1;
}
$this->parent = $obj->parent; $this->code_compta = $obj->code_compta;
$this->code_compta_fournisseur = $obj->code_compta_fournisseur;
$this->siren = $obj->siren; $this->tva_intra = $obj->tva_intra;
$this->siret = $obj->siret; $this->tva_intra_code = substr($obj->tva_intra,0,2);
$this->ape = $obj->ape; $this->tva_intra_num = substr($obj->tva_intra,2);
$this->capital = $obj->capital;
$this->code_client = $obj->code_client; $this->typent_id = $obj->typent_id;
$this->code_fournisseur = $obj->code_fournisseur; //$this->typent = $obj->fk_typent?$obj->typeent:'';
if (! $this->code_client && $this->mod_codeclient->code_modifiable_null == 1) $this->effectif_id = $obj->effectif_id;
{ $this->effectif = $obj->effectif_id?$obj->effectif:'';
$this->codeclient_modifiable = 1;
}
if (! $this->code_fournisseur && $this->mod_codefournisseur->code_modifiable_null == 1) $this->forme_juridique_code= $obj->forme_juridique_code;
{ $this->forme_juridique = $obj->forme_juridique_code?$obj->forme_juridique:'';
$this->codefournisseur_modifiable = 1;
}
$this->code_compta = $obj->code_compta; $this->prefix_comm = $obj->prefix_comm;
$this->code_compta_fournisseur = $obj->code_compta_fournisseur;
$this->tva_intra = $obj->tva_intra; $this->remise_client = $obj->remise_client;
$this->tva_intra_code = substr($obj->tva_intra,0,2);
$this->tva_intra_num = substr($obj->tva_intra,2);
$this->typent_id = $obj->typent_id; $this->client = $obj->client;
//$this->typent = $obj->fk_typent?$obj->typeent:''; $this->fournisseur = $obj->fournisseur;
$this->effectif_id = $obj->effectif_id; if ($this->client == 1)
$this->effectif = $obj->effectif_id?$obj->effectif:''; {
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$this->id.'">'.$obj->nom.'</a>';
}
elseif($this->client == 2)
{
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/comm/prospect/fiche.php?id='.$this->id.'">'.$obj->nom.'</a>';
}
else
{
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/soc.php?socid='.$this->id.'">'.$obj->nom.'</a>';
}
$this->forme_juridique_code= $obj->forme_juridique_code; $this->rubrique = $obj->rubrique;
$this->forme_juridique = $obj->forme_juridique_code?$obj->forme_juridique:''; $this->note = $obj->note;
$this->prefix_comm = $obj->prefix_comm; $result = 1;
}
else
{
dolibarr_syslog('Erreur Societe::Fetch aucune societe avec id='.$this->id.' - '.$sql);
$this->error='Erreur Societe::Fetch aucune societe avec id='.$this->id.' - '.$sql;
$result = -2;
}
$this->remise_client = $obj->remise_client; $this->db->free($resql);
}
else
{
dolibarr_syslog('Erreur Societe::Fetch echec sql='.$sql);
dolibarr_syslog('Erreur Societe::Fetch '.$this->db->error());
$this->error=$this->db->error();
$result = -3;
}
$this->client = $obj->client; return $result;
$this->fournisseur = $obj->fournisseur; }
if ($this->client == 1)
{
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/comm/fiche.php?socid='.$this->id.'">'.$obj->nom.'</a>';
}
elseif($this->client == 2)
{
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/comm/prospect/fiche.php?id='.$this->id.'">'.$obj->nom.'</a>';
}
else
{
$this->nom_url = '<a href="'.DOL_URL_ROOT.'/soc.php?socid='.$this->id.'">'.$obj->nom.'</a>';
}
$this->rubrique = $obj->rubrique;
$this->note = $obj->note;
$result = 1;
}
else
{
dolibarr_syslog("Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql);
$this->error="Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql;
$result = -2;
}
$this->db->free($resql);
}
else
{
dolibarr_syslog("Erreur Societe::Fetch echec sql=$sql");
dolibarr_syslog("Erreur Societe::Fetch ".$this->db->error());
$this->error=$this->db->error();
$result = -3;
}
return $result;
}
/** /**
* \brief Suppression d'une societe de la base avec ses dépendances (contacts, rib...) * \brief Suppression d'une societe de la base avec ses dépendances (contacts, rib...)