Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 522 lines (475 sloc) 16.81 kb
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
1 <?php
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
2 /* Copyright (C) 2006-2007 Laurent Destailleur <eldy@users.sourceforge.net>
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 *
18 * $Id$
19 * $Source$
20 */
21
22 /**
23 \file htdocs/commonobject.class.php
24 \ingroup core
25 \brief Fichier de la classe mere des classes metiers (facture, contrat, propal, commande, etc...)
26 \version $Revision$
27 */
28
29
30 /**
0bdc1ea Laurent Destailleur Fix: Plantage contact not found
eldy authored
31 \class CommonObject
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
32 \brief Classe mere pour héritage des classes metiers
33 */
34
35 class CommonObject
36 {
37
38 /**
39 * \brief Ajoute un contact associé au l'entité définie dans $this->element
40 * \param fk_socpeople Id du contact a ajouter
41 * \param type_contact Type de contact (code ou id)
42 * \param source external=Contact externe (llx_socpeople), internal=Contact interne (llx_user)
43 * \return int <0 si erreur, >0 si ok
44 */
45 function add_contact($fk_socpeople, $type_contact, $source='external')
46 {
47 global $langs;
48
49 dolibarr_syslog("CommonObject::add_contact $fk_socpeople, $type_contact, $source");
50
51 // Vérification parametres
52 if ($fk_socpeople <= 0)
53 {
54 $this->error=$langs->trans("ErrorWrongValueForParameter","1");
55 dolibarr_syslog("CommonObject::add_contact ".$this->error,LOG_ERR);
56 return -1;
57 }
58 if (! $type_contact)
59 {
60 $this->error=$langs->trans("ErrorWrongValueForParameter","2");
61 dolibarr_syslog("CommonObject::add_contact ".$this->error,LOG_ERR);
62 return -2;
63 }
64
65 $id_type_contact=0;
66 if (is_numeric($type_contact))
67 {
68 $id_type_contact=$type_contact;
69 }
70 else
71 {
72 // On recherche id type_contact
73 $sql = "SELECT tc.rowid";
74 $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as tc";
75 $sql.= " WHERE element='".$this->element."'";
76 $sql.= " AND source='".$source."'";
77 $sql.= " AND code='".$type_contact."' AND active=1";
78 $resql=$this->db->query($sql);
79 if ($resql)
80 {
81 $obj = $this->db->fetch_object($resql);
82 $id_type_contact=$obj->rowid;
83 }
84 }
85
86 $datecreate = time();
87
88 // Insertion dans la base
89 $sql = "INSERT INTO ".MAIN_DB_PREFIX."element_contact";
90 $sql.= " (element_id, fk_socpeople, datecreate, statut, fk_c_type_contact) ";
91 $sql.= " VALUES (".$this->id.", ".$fk_socpeople." , " ;
92 $sql.= $this->db->idate($datecreate);
93 $sql.= ", 4, '". $id_type_contact . "' ";
94 $sql.= ")";
95 dolibarr_syslog("CommonObject::add_contact sql=".$sql);
96
97 $resql=$this->db->query($sql);
98 if ($resql)
99 {
100 return 1;
101 }
102 else
103 {
104 $this->error=$this->db->error()." - $sql";
105 dolibarr_syslog($this->error,LOG_ERR);
106 return -1;
107 }
108 }
109
110 /**
111 * \brief Mise a jour du statut d'un contact
112 * \param rowid La reference du lien contact-entité
113 * \param statut Le nouveau statut
114 * \param type_contact_id Description du type de contact
115 * \return int <0 si erreur, =0 si ok
116 */
117 function update_contact($rowid, $statut, $type_contact_id)
118 {
119 // Insertion dans la base
120 $sql = "UPDATE ".MAIN_DB_PREFIX."element_contact set";
897f40d Laurent Destailleur Fix: La recup des contacts d'entit� �chouait dans certains cas.
eldy authored
121 $sql.= " statut = ".$statut.",";
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
122 $sql.= " fk_c_type_contact = '".$type_contact_id ."'";
123 $sql.= " where rowid = ".$rowid;
124 // Retour
125 if ( $this->db->query($sql) )
126 {
127 return 0;
128 }
129 else
130 {
131 dolibarr_print_error($this->db);
132 return -1;
133 }
134 }
135
136 /**
137 * \brief Supprime une ligne de contact
138 * \param rowid La reference du contact
139 * \return statur >0 si ok, <0 si ko
140 */
141 function delete_contact($rowid)
142 {
143
144 $sql = "DELETE FROM ".MAIN_DB_PREFIX."element_contact";
145 $sql.= " WHERE rowid =".$rowid;
146 if ($this->db->query($sql))
147 {
148 return 1;
149 }
150 else
151 {
152 return -1;
153 }
154 }
155
156 /**
157 * \brief Récupère les lignes de contact de l'objet
158 * \param statut Statut des lignes detail à récupérer
159 * \param source Source du contact external (llx_socpeople) ou internal (llx_user)
160 * \return array Tableau des rowid des contacts
161 */
162 function liste_contact($statut=-1,$source='external')
163 {
164 global $langs;
165
166 $tab=array();
167
168 $sql = "SELECT ec.rowid, ec.statut, ec.fk_socpeople as id,";
169 if ($source == 'internal') $sql.=" '-1' as socid,";
170 if ($source == 'external') $sql.=" t.fk_soc as socid,";
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
171 $sql.=" t.name as nom,";
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
172 $sql.= "tc.source, tc.element, tc.code, tc.libelle";
0bfb774 Laurent Destailleur Fix: La suppression d'un contact n'effacait pas les liens sur element_co...
eldy authored
173 $sql.= " FROM (".MAIN_DB_PREFIX."element_contact ec,";
174 $sql.= " ".MAIN_DB_PREFIX."c_type_contact tc)";
175 if ($source == 'internal') $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."user t on ec.fk_socpeople = t.rowid";
176 if ($source == 'external') $sql.=" LEFT JOIN ".MAIN_DB_PREFIX."socpeople t on ec.fk_socpeople = t.rowid";
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
177 $sql.= " WHERE ec.element_id =".$this->id;
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
178 $sql.= " AND ec.fk_c_type_contact=tc.rowid";
179 $sql.= " AND tc.element='".$this->element."'";
180 if ($source == 'internal') $sql.= " AND tc.source = 'internal'";
181 if ($source == 'external') $sql.= " AND tc.source = 'external'";
182 $sql.= " AND tc.active=1";
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
183 if ($statut >= 0) $sql.= " AND ec.statut = '".$statut."'";
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
184 $sql.=" ORDER BY t.name ASC";
185
c99f3d7 Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact propal)...
eldy authored
186 dolibarr_syslog("CommonObject::liste_contact sql=".$sql);
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
187 $resql=$this->db->query($sql);
188 if ($resql)
189 {
190 $num=$this->db->num_rows($resql);
191 $i=0;
192 while ($i < $num)
193 {
194 $obj = $this->db->fetch_object($resql);
195
196 $transkey="TypeContact_".$obj->element."_".$obj->source."_".$obj->code;
197 $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle);
198 $tab[$i]=array('source'=>$obj->source,'socid'=>$obj->socid,'id'=>$obj->id,'nom'=>$obj->nom,
199 'rowid'=>$obj->rowid,'code'=>$obj->code,'libelle'=>$libelle_type,'status'=>$obj->statut);
200 $i++;
201 }
202 return $tab;
203 }
204 else
205 {
206 $this->error=$this->db->error();
207 dolibarr_print_error($this->db);
208 return -1;
209 }
210 }
211
212 /**
213 * \brief Le détail d'un contact
214 * \param rowid L'identifiant du contact
215 * \return object L'objet construit par DoliDb.fetch_object
216 */
217 function detail_contact($rowid)
218 {
219 $sql = "SELECT ec.datecreate, ec.statut, ec.fk_socpeople, ec.fk_c_type_contact,";
897f40d Laurent Destailleur Fix: La recup des contacts d'entit� �chouait dans certains cas.
eldy authored
220 $sql.= " tc.code, tc.libelle,";
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
221 $sql.= " s.fk_soc";
897f40d Laurent Destailleur Fix: La recup des contacts d'entit� �chouait dans certains cas.
eldy authored
222 $sql.= " FROM (".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc)";
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
223 $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as s ON ec.fk_socpeople=s.rowid"; // Si contact de type external, alors il est lié à une societe
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
224 $sql.= " WHERE ec.rowid =".$rowid;
225 $sql.= " AND ec.fk_c_type_contact=tc.rowid";
226 $sql.= " AND tc.element = '".$this->element."'";
227
228 $resql=$this->db->query($sql);
229 if ($resql)
230 {
231 $obj = $this->db->fetch_object($resql);
232 return $obj;
233 }
234 else
235 {
236 $this->error=$this->db->error();
237 dolibarr_print_error($this->db);
238 return null;
239 }
240 }
241
242 /**
243 * \brief La liste des valeurs possibles de type de contacts
244 * \param source internal ou externam
245 * \return array La liste des natures
246 */
247 function liste_type_contact($source)
248 {
249 global $langs;
250
251 $tab = array();
252
253 $sql = "SELECT distinct tc.rowid, tc.code, tc.libelle";
254 $sql.= " FROM ".MAIN_DB_PREFIX."c_type_contact as tc";
255 $sql.= " WHERE element='".$this->element."'";
256 $sql.= " AND source='".$source."'";
257 $sql.= " ORDER by tc.code";
258
259 $resql=$this->db->query($sql);
260 if ($resql)
261 {
262 $num=$this->db->num_rows($resql);
263 $i=0;
264 while ($i < $num)
265 {
266 $obj = $this->db->fetch_object($resql);
267
268 $transkey="TypeContact_".$this->element."_".$source."_".$obj->code;
269 $libelle_type=($langs->trans($transkey)!=$transkey ? $langs->trans($transkey) : $obj->libelle);
270 $tab[$obj->rowid]=$libelle_type;
271 $i++;
272 }
273 return $tab;
274 }
275 else
276 {
277 $this->error=$this->db->error();
278 // dolibarr_print_error($this->db);
279 return null;
280 }
281 }
282
283 /**
c99f3d7 Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact propal)...
eldy authored
284 * \brief Retourne id des contacts d'une source et d'un type actif donné
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
285 * Exemple: contact client de facturation ('external', 'BILLING')
286 * Exemple: contact client de livraison ('external', 'SHIPPING')
287 * Exemple: contact interne suivi paiement ('internal', 'SALESREPFOLL')
0bfb774 Laurent Destailleur Fix: La suppression d'un contact n'effacait pas les liens sur element_co...
eldy authored
288 * \param source 'external' or 'internal'
289 * \param source 'BILLING', 'SHIPPING', 'SALESREPFOLL', ...
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
290 * \return array Liste des id contacts
291 */
292 function getIdContact($source,$code)
293 {
294 $result=array();
295 $i=0;
296
297 $sql = "SELECT ec.fk_socpeople";
298 $sql.= " FROM ".MAIN_DB_PREFIX."element_contact as ec, ".MAIN_DB_PREFIX."c_type_contact as tc";
299 $sql.= " WHERE ec.element_id = ".$this->id;
300 $sql.= " AND ec.fk_c_type_contact=tc.rowid";
301 $sql.= " AND tc.element = '".$this->element."'";
302 $sql.= " AND tc.source = '".$source."'";
303 $sql.= " AND tc.code = '".$code."'";
0bfb774 Laurent Destailleur Fix: La suppression d'un contact n'effacait pas les liens sur element_co...
eldy authored
304 $sql.= " AND tc.active = 1";
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
305
c99f3d7 Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact propal)...
eldy authored
306 dolibarr_syslog("CommonObject::getIdContact sql=".$sql);
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
307 $resql=$this->db->query($sql);
308 if ($resql)
309 {
310 while ($obj = $this->db->fetch_object($resql))
311 {
312 $result[$i]=$obj->fk_socpeople;
313 $i++;
314 }
315 }
316 else
317 {
318 $this->error=$this->db->error();
319 return null;
320 }
321
322 return $result;
323 }
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
324
325 /**
326 * \brief Charge le contact d'id $id dans this->contact
327 * \param contactid Id du contact
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
328 * \return int <0 if KO, >0 if OK
fc7dfdf ajout de la fonction fetch_contact pour r�cup�rer le d�tail d'un contact...
Regis Houssin authored
329 */
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
330 function fetch_contact($contactid)
331 {
9ed072a Laurent Destailleur Optimisation m�moire et ajout info
eldy authored
332 require_once(DOL_DOCUMENT_ROOT."/contact.class.php");
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
333 $contact = new Contact($this->db);
334 $result=$contact->fetch($contactid);
335 $this->contact = $contact;
336 return $result;
337 }
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
338
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
339 /**
340 * \brief Charge le tiers d'id $this->socid dans this->client
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
341 * \return int <0 if KO, >0 if OK
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
342 */
343 function fetch_client()
344 {
345 $client = new Societe($this->db);
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
346 $result=$client->fetch($this->socid);
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
347 $this->client = $client;
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
348 return $result;
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
349 }
350
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
351 /**
352 * \brief Charge le projet d'id $this->projet_id dans this->projet
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
353 * \return int <0 if KO, >0 if OK
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
354 */
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
355 function fetch_projet()
356 {
357 $projet = new Project($this->db);
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
358 $result=$projet->fetch($this->projet_id);
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
359 $this->projet = $projet;
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
360 return $result;
8fabb78 Laurent Destailleur Qual: Mise en facteur des methodes fetch_client et fetch_projet
eldy authored
361 }
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
362
363 /**
364 * \brief Charge le user d'id userid dans this->user
365 * \param userid Id du contact
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
366 * \return int <0 if KO, >0 if OK
1dc6dbc ajout du fetch_user pour r�cup�rer les infos d'un contact interne
Regis Houssin authored
367 */
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
368 function fetch_user($userid)
369 {
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
370 $user = new User($this->db, $userid);
371 $result=$user->fetch();
372 $this->user = $user;
373 return $result;
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
374 }
65a25a4 Fix: d�placement de la fonction fetch_adresse_livraison dans la partie c...
Regis Houssin authored
375
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
376 /**
377 * \brief Charge l'adresse de livraison d'id $this->adresse_livraison_id dans this->deliveryaddress
378 * \param userid Id du contact
379 * \return int <0 if KO, >0 if OK
380 */
65a25a4 Fix: d�placement de la fonction fetch_adresse_livraison dans la partie c...
Regis Houssin authored
381 function fetch_adresse_livraison($deliveryaddressid)
0c46bbc Laurent Destailleur Feature: Choix du destinataire (adresse tiers ou adresse contact facutra...
eldy authored
382 {
383 $address = new Societe($this->db);
384 $result=$address->fetch_adresse_livraison($deliveryaddressid);
385 $this->deliveryaddress = $address;
386 return $result;
387 }
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
388
389 /**
390 * \brief Retourne la liste déroulante des sociétés
391 * \param object Fetch du document
392 * \param var_id Nom de la variable de l'id du document
393 * \param selected Societe présélectionnée
394 * \param htmlname Nom champ formulaire
395 */
396 function selectCompaniesForNewContact($object, $var_id, $selected = '', $htmlname = 'newcompany')
397 {
15de773 Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
398 global $conf, $langs;
399
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
400 // On recherche les societes
59a3a32 Fix: changement de idp en rowid pour llx_societe et llx_socpeople afin d...
Regis Houssin authored
401 $sql = "SELECT s.rowid, s.nom FROM";
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
402 $sql .= " ".MAIN_DB_PREFIX."societe as s";
26190fc Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
403 if ($conf->use_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT)
15de773 Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
404 {
405 $sql.= " WHERE rowid = ".$selected;
406 }
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
407 $sql .= " ORDER BY nom ASC";
408
409 $resql = $object->db->query($sql);
410 if ($resql)
411 {
26190fc Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
412 if ($conf->use_ajax && $conf->global->COMPANY_USE_SEARCH_TO_SELECT)
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
413 {
15de773 Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
414 $langs->load("companies");
415 $obj = $this->db->fetch_object($resql);
416 $socid = $obj->rowid?$obj->rowid:'';
417 $javaScript = "window.location=\'./contact.php?".$var_id."=".$object->id."&amp;".$htmlname."=\' + document.getElementById(\'newcompany_id\').value;";
418
419 // On applique un delai d'execution pour le bon fonctionnement
420 $htmloption = 'onChange="ac_delay(\''.$javaScript.'\',\'500\')"';
421
26190fc Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
422 print '<table class="nobordernopadding"><tr class="nocellnopadd">';
423 print '<td class="nobordernopadding">';
15de773 Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
424 print '<div>';
425 if ($obj->rowid == 0)
426 {
427 print '<input type="text" size="30" id="newcompany" name="newcompany" value="'.$langs->trans("SelectCompany").'" '.$htmloption.' />';
428 }
429 else
430 {
431 print '<input type="text" size="30" id="newcompany" name="newcompany" value="'.$obj->nom.'" '.$htmloption.' />';
432 }
26190fc Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
433 print ajax_autocompleter($socid,'newcompany','/societe/ajaxcompanies.php','');
434 print '</td>';
435 print '<td class="nobordernopadding" align="left" width="16">';
436 print ajax_indicator($htmlname,'working');
437 print '</td></tr>';
438 print '</table>';
15de773 Add: d�but ajout autocompletion ajax sur la liste des soci�t�s
Regis Houssin authored
439 return $socid;
440 }
441 else
442 {
443 $javaScript = "window.location='./contact.php?".$var_id."=".$object->id."&amp;".$htmlname."=' + form.".$htmlname.".options[form.".$htmlname.".selectedIndex].value;";
444 print '<select class="flat" name="'.$htmlname.'" onChange="'.$javaScript.'">';
445 $num = $object->db->num_rows($resql);
446 $i = 0;
447 if ($num)
448 {
449 while ($i < $num)
450 {
451 $obj = $object->db->fetch_object($resql);
452 if ($i == 0) $firstCompany = $obj->rowid;
453 if ($selected > 0 && $selected == $obj->rowid)
454 {
455 print '<option value="'.$obj->rowid.'" selected="true">'.dolibarr_trunc($obj->nom,24).'</option>';
456 $firstCompany = $obj->rowid;
457 }
458 else
459 {
460 print '<option value="'.$obj->rowid.'">'.dolibarr_trunc($obj->nom,24).'</option>';
461 }
462 $i ++;
463 }
464 }
465 print "</select>\n";
466 return $firstCompany;
467 }
468 }
469 else
470 {
471 dolibarr_print_error($object->db);
472 }
473 }
474
b4c399b Fix: mise en commun des fonctions
Regis Houssin authored
475
476 /**
477 *
478 */
479 function selectTypeContact($object, $defValue, $htmlname = 'type', $source)
480 {
481 $lesTypes = $object->liste_type_contact($source);
482 print '<select class="flat" name="'.$htmlname.'">';
483 foreach($lesTypes as $key=>$value)
484 {
485 print '<option value="'.$key.'">'.$value.'</option>';
486 }
487 print "</select>\n";
488 }
1aacf7d Laurent Destailleur Doc: doxygen
eldy authored
489
fa3c193 Laurent Destailleur On deplace le bouton Retour Liste au niveau de la ligne de ref car les b...
eldy authored
490
491 /**
492 * \brief Charge les propriétés ref_previous et ref_next
493 * \param filter filtre
494 * \return int <0 si ko, >0 si ok
495 */
496 function load_previous_next_ref($filter='')
497 {
498 return 1;
499 }
9b1f74d Fix: mise en fonction du code
Regis Houssin authored
500
501 /**
502 * \brief On récupère les id de liste_contact
503 * \param source Source du contact external (llx_socpeople) ou internal (llx_user)
504 * \return array
505 */
506 function getListContactId($source='external')
507 {
508 $contactAlreadySelected = array();
509 $tab = $this->liste_contact(-1,$source);
510 $num=sizeof($tab);
511 $i = 0;
512 while ($i < $num)
513 {
514 $contactAlreadySelected[$i] = $tab[$i]['id'];
515 $i++;
516 }
517 return $contactAlreadySelected;
518 }
f4b21a3 Laurent Destailleur Mega grosse mise en facteur de code commun.
eldy authored
519 }
520
521 ?>
Something went wrong with that request. Please try again.