/[dolibarr]/dolibarr/htdocs/societe.class.php
ViewVC logotype

Diff of /dolibarr/htdocs/societe.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.96 by eldy, Wed Sep 14 22:58:49 2005 UTC revision 1.97 by eldy, Wed Sep 14 23:24:00 2005 UTC
# Line 236  class Societe { Line 236  class Societe {
236      return $result;      return $result;
237    }    }
238    
239    /**      /**
240     *    \brief      Mise a jour des paramètres de la société       *    \brief      Mise a jour des paramètres de la sociét
241     *    \param      id      id societe       *    \param      id      id societe
242     *    \param      user    Utilisateur qui demande la mise à jour       *    \param      user    Utilisateur qui demande la mise à jour
243     *    \return     0 si ok, < 0 si erreur       *    \return     0 si ok, < 0 si erreur
244     */       */
245                function update($id, $user='')
246    function update($id, $user='')      {
247    {          global $langs;
     global $langs;  
248            
249      dolibarr_syslog("Societe::Update");          dolibarr_syslog("Societe::Update");
   
     $this->id=$id;  
     $this->capital=trim($this->capital);  
     $this->nom=trim($this->nom);  
     $this->adresse=trim($this->adresse);  
     $this->cp=trim($this->cp);  
     $this->ville=trim($this->ville);  
     $this->departement_id=trim($this->departement_id);  
     $this->pays_id=trim($this->pays_id);  
     $this->tel=trim($this->tel);  
     $this->fax=trim($this->fax);  
     $this->url=trim($this->url);  
     $this->siren=trim($this->siren);  
     $this->siret=trim($this->siret);  
     $this->ape=trim($this->ape);  
     $this->prefix_comm=trim($this->prefix_comm);  
     $this->tva_intra=trim($this->tva_intra);  
     $this->capital=trim($this->capital);  
     $this->effectif_id=trim($this->effectif_id);  
     $this->forme_juridique_code=trim($this->forme_juridique_code);  
250            
251      $result = $this->verify();          $this->id=$id;
252            $this->capital=trim($this->capital);
253      if ($result == 0)          $this->nom=trim($this->nom);
254        {          $this->adresse=trim($this->adresse);
255          dolibarr_syslog("Societe::Update verify ok");          $this->cp=trim($this->cp);
256            $this->ville=trim($this->ville);
257          if (strlen($this->capital) == 0)          $this->departement_id=trim($this->departement_id);
258            {          $this->pays_id=trim($this->pays_id);
259              $this->capital = 0;          $this->tel=trim($this->tel);
260            }          $this->fax=trim($this->fax);
261                    $this->url=trim($this->url);
262          $this->tel = ereg_replace(" ","",$this->tel);          $this->siren=trim($this->siren);
263          $this->tel = ereg_replace("\.","",$this->tel);          $this->siret=trim($this->siret);
264          $this->fax = ereg_replace(" ","",$this->fax);          $this->ape=trim($this->ape);
265          $this->fax = ereg_replace("\.","",$this->fax);          $this->prefix_comm=trim($this->prefix_comm);
266                    $this->tva_intra=trim($this->tva_intra);
267          /*          $this->capital=trim($this->capital);
268           * \todo simpliste pour l'instant mais remplit 95% des cas à améliorer          $this->effectif_id=trim($this->effectif_id);
269           */          $this->forme_juridique_code=trim($this->forme_juridique_code);
270          if ($this->departement_id == -1 && $this->pays_id == 1)      
271            {          $result = $this->verify();
272              if (strlen($this->cp) == 5)      
273                {          if ($result == 0)
274                  $depid = departement_rowid($this->db, substr($this->cp,0,2), $this->pays_id);          {
275                  if ($depid > 0)              dolibarr_syslog("Societe::Update verify ok");
276                    {      
277                      $this->departement_id = $depid;              if (strlen($this->capital) == 0)
278                    }              {
279                }                  $this->capital = 0;
280            }              }
281                
282          /*              $this->tel = ereg_replace(" ","",$this->tel);
283           * Supression des if (trim(valeur)) pour construire la requete              $this->tel = ereg_replace("\.","",$this->tel);
284           * sinon il est impossible de vider les champs              $this->fax = ereg_replace(" ","",$this->fax);
285           */              $this->fax = ereg_replace("\.","",$this->fax);
286        
287          $sql = "UPDATE ".MAIN_DB_PREFIX."societe ";              /*
288          $sql .= " SET nom = '" . addslashes($this->nom) ."'"; // Champ obligatoire               * Supression des if (trim(valeur)) pour construire la requete
289                         * sinon il est impossible de vider les champs
290          $sql .= ",address = '" . addslashes($this->adresse) ."'";               */
291                
292          if ($this->cp)              $sql = "UPDATE ".MAIN_DB_PREFIX."societe ";
293            { $sql .= ",cp = '" . $this->cp ."'"; }              $sql .= " SET nom = '" . addslashes($this->nom) ."'"; // Champ obligatoire
294                
295          if ($this->ville)              $sql .= ",address = '" . addslashes($this->adresse) ."'";
296            { $sql .= ",ville = '" . addslashes($this->ville) ."'"; }      
297                        if ($this->cp)
298          if ($this->departement_id)              { $sql .= ",cp = '" . $this->cp ."'"; }
299            { $sql .= ",fk_departement = '" . $this->departement_id ."'"; }      
300                        if ($this->ville)
301          if ($this->pays_id)              { $sql .= ",ville = '" . addslashes($this->ville) ."'"; }
302            { $sql .= ",fk_pays = '" . $this->pays_id ."'"; }      
303                              $sql .= ",fk_departement = '" . ($this->departement_id?$this->departement_id:'0') ."'";
304          $sql .= ",tel = ".($this->tel?"'".$this->tel."'":"null");                    $sql .= ",fk_pays = '" . ($this->pays_id?$this->pays_id:'0') ."'";
305          $sql .= ",fax = ".($this->fax?"'".$this->fax."'":"null");            
306          $sql .= ",url = ".($this->url?"'".$this->url."'":"null");                    $sql .= ",tel = ".($this->tel?"'".$this->tel."'":"null");
307                $sql .= ",fax = ".($this->fax?"'".$this->fax."'":"null");
308          $sql .= ",siren = '". $this->siren ."'";              $sql .= ",url = ".($this->url?"'".$this->url."'":"null");
309          $sql .= ",siret = '". $this->siret ."'";      
310          $sql .= ",ape   = '". $this->ape   ."'";              $sql .= ",siren = '". $this->siren ."'";
311                $sql .= ",siret = '". $this->siret ."'";
312          $sql .= ",tva_intra = '" . $this->tva_intra ."'";              $sql .= ",ape   = '". $this->ape   ."'";
313          $sql .= ",capital = '" . $this->capital ."'";      
314                $sql .= ",tva_intra = '" . $this->tva_intra ."'";
315          if ($this->prefix_comm) $sql .= ",prefix_comm = '" . $this->prefix_comm ."'";              $sql .= ",capital = '" . $this->capital ."'";
316        
317          if ($this->effectif_id) $sql .= ",fk_effectif = '" . $this->effectif_id ."'";              if ($this->prefix_comm) $sql .= ",prefix_comm = '" . $this->prefix_comm ."'";
318                
319          if ($this->typent_id)   $sql .= ",fk_typent = '" . $this->typent_id ."'";              if ($this->effectif_id) $sql .= ",fk_effectif = '" . $this->effectif_id ."'";
320        
321          if ($this->forme_juridique_code) $sql .= ",fk_forme_juridique = '".$this->forme_juridique_code."'";              if ($this->typent_id)   $sql .= ",fk_typent = '" . $this->typent_id ."'";
322                
323          $sql .= ",client = " . $this->client;              if ($this->forme_juridique_code) $sql .= ",fk_forme_juridique = '".$this->forme_juridique_code."'";
324          $sql .= ",fournisseur = " . $this->fournisseur;      
325                        $sql .= ",client = " . $this->client;
326          if ($this->creation_bit || $this->codeclient_modifiable)              $sql .= ",fournisseur = " . $this->fournisseur;
327            {        
328              // Attention check_codeclient peut modifier le code              if ($this->creation_bit || $this->codeclient_modifiable)
329              // suivant le module utilisé              {
330                                // Attention check_codeclient peut modifier le code
331              $this->check_codeclient();                  // suivant le module utilis
332                    
333              $sql .= ", code_client = ".($this->code_client?"'".$this->code_client."'":"null");                  $this->check_codeclient();
334                    
335              // Attention check_codecompta_client peut modifier le code                  $sql .= ", code_client = ".($this->code_client?"'".$this->code_client."'":"null");
336              // suivant le module utilisé      
337                                // Attention check_codecompta_client peut modifier le code
338              $this->check_codecompta_client();                  // suivant le module utilis
339                    
340              $sql .= ", code_compta = ".($this->code_compta?"'".$this->code_compta."'":"null");                  $this->check_codecompta_client();
341            }      
342                    $sql .= ", code_compta = ".($this->code_compta?"'".$this->code_compta."'":"null");
343          if ($this->creation_bit || $this->codefournisseur_modifiable)              }
344            {        
345              // Attention check_codefournisseur peut modifier le code              if ($this->creation_bit || $this->codefournisseur_modifiable)
346              // suivant le module utilisé              {
347                                // Attention check_codefournisseur peut modifier le code
348              $this->check_codefournisseur();                  // suivant le module utilis
349                    
350              $sql .= ", code_fournisseur = ".($this->code_fournisseur?"'".$this->code_fournisseur."'":"null");                  $this->check_codefournisseur();
351                    
352              // Attention check_codecompta_fournisseur peut modifier le code                  $sql .= ", code_fournisseur = ".($this->code_fournisseur?"'".$this->code_fournisseur."'":"null");
353              // suivant le module utilisé      
354                                // Attention check_codecompta_fournisseur peut modifier le code
355              $this->check_codecompta_fournisseur();                  // suivant le module utilis
356                    
357              $sql .= ", code_compta_fournisseur = ".($this->code_compta_fournisseur?"'".$this->code_compta_fournisseur."'":"null");                  $this->check_codecompta_fournisseur();
358            }      
359                    $sql .= ", code_compta_fournisseur = ".($this->code_compta_fournisseur?"'".$this->code_compta_fournisseur."'":"null");
360                }
361                
362          if ($user) $sql .= ",fk_user_modif = '".$user->id."'";      
363                
364          $sql .= " WHERE idp = '" . $id ."'";              if ($user) $sql .= ",fk_user_modif = '".$user->id."'";
365                
366          if ($this->db->query($sql))              $sql .= " WHERE idp = '" . $id ."'";
367            {      
368          // Appel des triggers              if ($this->db->query($sql))
369          include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");              {
370          $interface=new Interfaces($this->db);                  // Appel des triggers
371          $interface->run_triggers('COMPANY_MODIFY',$this,$user,$lang,$conf);                  include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
372          // Fin appel triggers                  $interface=new Interfaces($this->db);
373                    $interface->run_triggers('COMPANY_MODIFY',$this,$user,$lang,$conf);
374              $result = 0;                  // Fin appel triggers
375            }      
376          else                  $result = 0;
377            {              }
378              if ($this->db->errno() == DB_ERROR_RECORD_ALREADY_EXISTS)              else
379                {              {
380                  // Doublon                  if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS')
381                  $this->error = $langs->trans("ErrorPrefixAlreadyExists",$this->prefix_comm);                  {
382                  $result =  -1;                      // Doublon
383                }                      $this->error = $langs->trans("ErrorPrefixAlreadyExists",$this->prefix_comm);
384              else                      $result =  -1;
385                {                  }
386                  dolibarr_syslog("Societe::Update echec sql=$sql");                  else
387                  $result =  -2;                  {
388                }                          dolibarr_syslog("Societe::Update echec sql=$sql");
389            }                      $result =  -2;
390        }                  }
391                }
392      return $result;          }
393        
394    }          return $result;
395        
396        }
397        
398      /**      /**
399       *    \brief      Charge depuis la base l'objet societe       *    \brief      Charge depuis la base l'objet societe
400       *    \param      socid       Id de la société à charger en mémoire       *    \param      socid       Id de la société à charger en mémoire
401       *    \param      user        Objet de l'utilisateur       *    \param      user        Objet de l'utilisateur
402       *    \return     int         >0 si ok, <0 si erreur       *    \return     int         >0 si ok, <0 si ko
403       */       */
404      function fetch($socid, $user=0)      function fetch($socid, $user=0)
405      {      {
# Line 460  class Societe { Line 441  class Societe {
441          $sql .= " FROM ".MAIN_DB_PREFIX."societe as s";          $sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
442          $sql .= ", ".MAIN_DB_PREFIX."c_effectif as e";          $sql .= ", ".MAIN_DB_PREFIX."c_effectif as e";
443          $sql .= ", ".MAIN_DB_PREFIX."c_pays as p";          $sql .= ", ".MAIN_DB_PREFIX."c_pays as p";
         $sql .= ", ".MAIN_DB_PREFIX."c_departements as d";  
444          $sql .= ", ".MAIN_DB_PREFIX."c_stcomm as st";          $sql .= ", ".MAIN_DB_PREFIX."c_stcomm as st";
445          $sql .= ", ".MAIN_DB_PREFIX."c_forme_juridique as fj";          $sql .= ", ".MAIN_DB_PREFIX."c_forme_juridique as fj";
446            $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_departements as d ON s.fk_departement = d.rowid";
447          $sql .= " WHERE s.idp = ".$socid;          $sql .= " WHERE s.idp = ".$socid;
448          $sql .= " AND s.fk_stcomm = st.id";          $sql .= " AND s.fk_stcomm = st.id";
449          $sql .= " AND s.fk_effectif = e.id";          $sql .= " AND s.fk_effectif = e.id";
450          $sql .= " AND s.fk_pays = p.rowid";          $sql .= " AND s.fk_pays = p.rowid";
         $sql .= " AND s.fk_departement = d.rowid";  
451          $sql .= " AND s.fk_forme_juridique = fj.code";          $sql .= " AND s.fk_forme_juridique = fj.code";
452            
453          $resql=$this->db->query($sql);          $resql=$this->db->query($sql);
# Line 568  class Societe { Line 548  class Societe {
548              }              }
549              else              else
550              {              {
551                  dolibarr_syslog("Erreur Societe::Fetch aucune societe avec id=".$this->id);                  dolibarr_syslog("Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql);
552                    $this->error="Erreur Societe::Fetch aucune societe avec id=".$this->id." - ".$sql;
553                  $result = -2;                  $result = -2;
554              }              }
555            
# Line 578  class Societe { Line 559  class Societe {
559          {          {
560              dolibarr_syslog("Erreur Societe::Fetch echec sql=$sql");              dolibarr_syslog("Erreur Societe::Fetch echec sql=$sql");
561              dolibarr_syslog("Erreur Societe::Fetch ".$this->db->error());              dolibarr_syslog("Erreur Societe::Fetch ".$this->db->error());
562                $this->error=$this->db->error();
563              $result = -3;              $result = -3;
564          }          }
565            

Legend:
Removed from v.1.96  
changed lines
  Added in v.1.97

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26