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 |
{ |
{ |
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); |
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 |
|
|
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 |
|
|