Fix: encryption of special char of contacts

This commit is contained in:
Laurent Destailleur 2009-01-19 22:41:26 +00:00
parent 7ad8b95295
commit 52dfed2d53
6 changed files with 172 additions and 108 deletions

View File

@ -41,7 +41,7 @@ class Contact extends CommonObject
var $error; var $error;
var $element='contact'; var $element='contact';
var $table_element='socpeople'; var $table_element='socpeople';
var $id; var $id;
var $civilite_id; var $civilite_id;
var $name; var $name;
@ -52,7 +52,7 @@ class Contact extends CommonObject
var $fk_pays; var $fk_pays;
var $socid; // fk_soc var $socid; // fk_soc
var $status; // 0=brouillon, 1=4=actif, 5=inactif var $status; // 0=brouillon, 1=4=actif, 5=inactif
var $code; var $code;
var $email; var $email;
var $birthday; var $birthday;
@ -71,11 +71,11 @@ class Contact extends CommonObject
* \param DB Habler d'acc<EFBFBD>s base * \param DB Habler d'acc<EFBFBD>s base
* \param id Id contact * \param id Id contact
*/ */
function Contact($DB, $id=0) function Contact($DB, $id=0)
{ {
$this->db = $DB; $this->db = $DB;
$this->id = $id; $this->id = $id;
return 1; return 1;
} }
@ -87,7 +87,7 @@ class Contact extends CommonObject
function create($user) function create($user)
{ {
global $conf, $langs; global $conf, $langs;
// Clean parameters // Clean parameters
$this->name=trim($this->name); $this->name=trim($this->name);
if (! $this->socid) $this->socid = 0; if (! $this->socid) $this->socid = 0;
@ -101,13 +101,13 @@ class Contact extends CommonObject
$sql.= " ".($user->id > 0 ? "'".$user->id."'":"null").","; $sql.= " ".($user->id > 0 ? "'".$user->id."'":"null").",";
$sql.= $this->priv; $sql.= $this->priv;
$sql.= ")"; $sql.= ")";
dolibarr_syslog("Contact::create sql=".$sql); dolibarr_syslog("Contact::create sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."socpeople"); $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."socpeople");
$result=$this->update($this->id, $user, 1); $result=$this->update($this->id, $user, 1);
if ($result < 0) if ($result < 0)
{ {
@ -142,19 +142,19 @@ class Contact extends CommonObject
function update($id, $user=0, $notrigger=0) function update($id, $user=0, $notrigger=0)
{ {
global $conf, $langs; global $conf, $langs;
$this->id = $id; $this->id = $id;
// Nettoyage parametres // Nettoyage parametres
$this->name=trim($this->name); $this->name=trim($this->name);
$this->firstname=trim($this->firstname); $this->firstname=trim($this->firstname);
$this->email=trim($this->email); $this->email=trim($this->email);
$this->phone_pro=trim($this->phone_pro); $this->phone_pro=trim($this->phone_pro);
$this->phone_perso=trim($this->phone_perso); $this->phone_perso=trim($this->phone_perso);
$this->phone_mobile=trim($this->phone_mobile); $this->phone_mobile=trim($this->phone_mobile);
$this->fax=trim($this->fax); $this->fax=trim($this->fax);
$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET "; $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET ";
if ($this->socid > 0) $sql .= " fk_soc='".addslashes($this->socid)."',"; if ($this->socid > 0) $sql .= " fk_soc='".addslashes($this->socid)."',";
if ($this->socid == -1) $sql .= " fk_soc=null,"; if ($this->socid == -1) $sql .= " fk_soc=null,";
@ -198,8 +198,8 @@ class Contact extends CommonObject
return 1; return 1;
} }
/* /*
* \brief Retourne chaine DN complete dans l'annuaire LDAP pour l'objet * \brief Retourne chaine DN complete dans l'annuaire LDAP pour l'objet
* \param info Info string loaded by _load_ldap_info * \param info Info string loaded by _load_ldap_info
@ -229,8 +229,8 @@ class Contact extends CommonObject
// Object classes // Object classes
$info["objectclass"]=split(',',$conf->global->LDAP_CONTACT_OBJECT_CLASS); $info["objectclass"]=split(',',$conf->global->LDAP_CONTACT_OBJECT_CLASS);
// Champs // Champs
if ($this->getFullName($langs) && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = utf8_encode($this->getFullName($langs)); if ($this->getFullName($langs) && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = utf8_encode($this->getFullName($langs));
if ($this->name && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = utf8_encode($this->name); if ($this->name && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = utf8_encode($this->name);
if ($this->firstname && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = utf8_encode($this->firstname); if ($this->firstname && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = utf8_encode($this->firstname);
@ -281,11 +281,11 @@ class Contact extends CommonObject
if ($this->email) $info["rfc822Mailbox"] = $this->email; if ($this->email) $info["rfc822Mailbox"] = $this->email;
if ($this->phone_mobile) $info["phpgwCellTelephoneNumber"] = $this->phone_mobile; if ($this->phone_mobile) $info["phpgwCellTelephoneNumber"] = $this->phone_mobile;
} }
return $info; return $info;
} }
/* /*
* \brief Mise <EFBFBD> jour des alertes * \brief Mise <EFBFBD> jour des alertes
* \param id id du contact * \param id id du contact
@ -295,30 +295,30 @@ class Contact extends CommonObject
{ {
// Mis a jour contact // Mis a jour contact
$sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET rowid=".$id; $sql = "UPDATE ".MAIN_DB_PREFIX."socpeople SET rowid=".$id;
if ($this->birthday) // <0 si avant 1970, >0 si apres 1970 if ($this->birthday) // <0 si avant 1970, >0 si apres 1970
{ {
if (eregi('^[0-9]+\-',$this->birthday)) if (eregi('^[0-9]+\-',$this->birthday))
{ {
// Si date = chaine (ne devrait pas arriver) // Si date = chaine (ne devrait pas arriver)
$sql .= ", birthday='".$this->birthday."'"; $sql .= ", birthday='".$this->birthday."'";
} }
else else
{ {
// Si date = timestamp // Si date = timestamp
$sql .= ", birthday=".$this->db->idate($this->birthday); $sql .= ", birthday=".$this->db->idate($this->birthday);
} }
} }
if ($user) $sql .= ", fk_user_modif=".$user->id; if ($user) $sql .= ", fk_user_modif=".$user->id;
$sql .= " WHERE rowid=".$id; $sql .= " WHERE rowid=".$id;
//print "update_perso: ".$this->birthday.'-'.$this->db->idate($this->birthday); //print "update_perso: ".$this->birthday.'-'.$this->db->idate($this->birthday);
dolibarr_syslog("Contact::update_perso this->birthday=".$this->birthday." - sql=".$sql); dolibarr_syslog("Contact::update_perso this->birthday=".$this->birthday." - sql=".$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (! $resql) if (! $resql)
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
} }
// Mis a jour alerte birthday // Mis a jour alerte birthday
if ($this->birthday_alert) if ($this->birthday_alert)
{ {
@ -378,7 +378,7 @@ class Contact extends CommonObject
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON c.rowid = u.fk_socpeople"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u ON c.rowid = u.fk_socpeople";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON c.fk_soc = s.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON c.fk_soc = s.rowid";
$sql.= " WHERE c.rowid = ". $id; $sql.= " WHERE c.rowid = ". $id;
dolibarr_syslog("Contact::fetch sql=".$sql); dolibarr_syslog("Contact::fetch sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
@ -386,7 +386,7 @@ class Contact extends CommonObject
if ($this->db->num_rows($resql)) if ($this->db->num_rows($resql))
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->ref = $obj->rowid; $this->ref = $obj->rowid;
$this->civilite_id = $obj->civilite_id; $this->civilite_id = $obj->civilite_id;
@ -402,12 +402,12 @@ class Contact extends CommonObject
$this->fk_pays = $obj->fk_pays; $this->fk_pays = $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 > 0)?$langs->transnoentities("Country".$obj->pays_code):$langs->transnoentities("SelectCountry"); $this->pays = ($obj->fk_pays > 0)?$langs->transnoentities("Country".$obj->pays_code):$langs->transnoentities("SelectCountry");
$this->societeid = $obj->fk_soc; $this->societeid = $obj->fk_soc;
$this->socid = $obj->fk_soc; $this->socid = $obj->fk_soc;
$this->socname = $obj->socname; $this->socname = $obj->socname;
$this->poste = $obj->poste; $this->poste = $obj->poste;
$this->phone_pro = trim($obj->phone); $this->phone_pro = trim($obj->phone);
$this->fax = trim($obj->fax); $this->fax = trim($obj->fax);
$this->phone_perso = trim($obj->phone_perso); $this->phone_perso = trim($obj->phone_perso);
@ -417,7 +417,7 @@ class Contact extends CommonObject
$this->jabberid = $obj->jabberid; $this->jabberid = $obj->jabberid;
$this->priv = $obj->priv; $this->priv = $obj->priv;
$this->mail = $obj->email; $this->mail = $obj->email;
$this->birthday = dol_stringtotime($obj->birthday); $this->birthday = dol_stringtotime($obj->birthday);
//print "fetch: ".$obj->birthday.'-'.$this->birthday; //print "fetch: ".$obj->birthday.'-'.$this->birthday;
$this->birthday_alert = $obj->birthday_alert; $this->birthday_alert = $obj->birthday_alert;
@ -429,14 +429,14 @@ class Contact extends CommonObject
$sql = "SELECT u.rowid "; $sql = "SELECT u.rowid ";
$sql .= " FROM ".MAIN_DB_PREFIX."user as u"; $sql .= " FROM ".MAIN_DB_PREFIX."user as u";
$sql .= " WHERE u.fk_socpeople = ". $this->id; $sql .= " WHERE u.fk_socpeople = ". $this->id;
$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))
{ {
$uobj = $this->db->fetch_object($resql); $uobj = $this->db->fetch_object($resql);
$this->user_id = $uobj->rowid; $this->user_id = $uobj->rowid;
} }
$this->db->free($resql); $this->db->free($resql);
@ -447,21 +447,21 @@ class Contact extends CommonObject
dolibarr_syslog("Contact::fetch ".$this->error, LOG_ERR); dolibarr_syslog("Contact::fetch ".$this->error, LOG_ERR);
return -1; return -1;
} }
// Charge alertes du user // Charge alertes du user
if ($user) if ($user)
{ {
$sql = "SELECT fk_user"; $sql = "SELECT fk_user";
$sql .= " FROM ".MAIN_DB_PREFIX."user_alert"; $sql .= " FROM ".MAIN_DB_PREFIX."user_alert";
$sql .= " WHERE fk_user = ".$user->id." AND fk_contact = ".$id; $sql .= " WHERE fk_user = ".$user->id." AND fk_contact = ".$id;
$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))
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->birthday_alert = 1; $this->birthday_alert = 1;
} }
$this->db->free($resql); $this->db->free($resql);
@ -489,8 +489,8 @@ class Contact extends CommonObject
return -1; return -1;
} }
} }
/* /*
* \brief Charge le nombre d'elements auquel est li<EFBFBD> ce contact * \brief Charge le nombre d'elements auquel est li<EFBFBD> ce contact
* ref_facturation * ref_facturation
@ -509,7 +509,7 @@ class Contact extends CommonObject
$sql.=" GROUP BY tc.element"; $sql.=" GROUP BY tc.element";
dolibarr_syslog("Contact::load_ref_elements sql=".$sql); dolibarr_syslog("Contact::load_ref_elements sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -541,14 +541,14 @@ class Contact extends CommonObject
function delete($notrigger=0) function delete($notrigger=0)
{ {
global $conf, $langs, $user; global $conf, $langs, $user;
$error=0; $error=0;
$this->old_name = $obj->name; $this->old_name = $obj->name;
$this->old_firstname = $obj->firstname; $this->old_firstname = $obj->firstname;
$this->db->begin(); $this->db->begin();
if (! $error) if (! $error)
{ {
// Get all rowid of element_contact linked to a type that is link to llx_socpeople // Get all rowid of element_contact linked to a type that is link to llx_socpeople
@ -563,7 +563,7 @@ class Contact extends CommonObject
if ($resql) if ($resql)
{ {
$num=$this->db->num_rows($resql); $num=$this->db->num_rows($resql);
$i=0; $i=0;
while ($i < $num && ! $error) while ($i < $num && ! $error)
{ {
@ -588,7 +588,7 @@ class Contact extends CommonObject
$this->error=$this->db->error().' sql='.$sql; $this->error=$this->db->error().' sql='.$sql;
} }
} }
if (! $error) if (! $error)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."socpeople";
@ -611,10 +611,10 @@ class Contact extends CommonObject
if ($result < 0) { $error++; $this->errors=$interface->errors; } if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers // Fin appel triggers
} }
if (! $error) if (! $error)
{ {
$this->db->commit(); $this->db->commit();
return 1; return 1;
} }
@ -625,7 +625,7 @@ class Contact extends CommonObject
} }
} }
/* /*
* \brief Charge les informations sur le contact, depuis la base * \brief Charge les informations sur le contact, depuis la base
* \param id id du contact <EFBFBD> charger * \param id id du contact <EFBFBD> charger
@ -636,33 +636,33 @@ class Contact extends CommonObject
$sql .= ", ".$this->db->pdate("c.tms")." as tms, c.fk_user_modif"; $sql .= ", ".$this->db->pdate("c.tms")." as tms, c.fk_user_modif";
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c"; $sql .= " FROM ".MAIN_DB_PREFIX."socpeople as c";
$sql .= " WHERE c.rowid = ".$id; $sql .= " WHERE c.rowid = ".$id;
$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))
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid; $this->id = $obj->rowid;
if ($obj->fk_user_creat) { if ($obj->fk_user_creat) {
$cuser = new User($this->db, $obj->fk_user_creat); $cuser = new User($this->db, $obj->fk_user_creat);
$cuser->fetch(); $cuser->fetch();
$this->user_creation = $cuser; $this->user_creation = $cuser;
} }
if ($obj->fk_user_modif) { if ($obj->fk_user_modif) {
$muser = new User($this->db, $obj->fk_user_modif); $muser = new User($this->db, $obj->fk_user_modif);
$muser->fetch(); $muser->fetch();
$this->user_modification = $muser; $this->user_modification = $muser;
} }
$this->date_creation = $obj->datec; $this->date_creation = $obj->datec;
$this->date_modification = $obj->tms; $this->date_modification = $obj->tms;
} }
$this->db->free($resql); $this->db->free($resql);
} }
else else
@ -670,7 +670,7 @@ class Contact extends CommonObject
print $this->db->error(); print $this->db->error();
} }
} }
/* /*
* \brief Renvoi nombre d'emailings re<EFBFBD>u par le contact avec son email * \brief Renvoi nombre d'emailings re<EFBFBD>u par le contact avec son email
* \return int Nombre d'emailings * \return int Nombre d'emailings
@ -686,7 +686,7 @@ class Contact extends CommonObject
{ {
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$nb=$obj->nb; $nb=$obj->nb;
$this->db->free($resql); $this->db->free($resql);
return $nb; return $nb;
} }
@ -695,7 +695,7 @@ class Contact extends CommonObject
$this->error=$this->db->error(); $this->error=$this->db->error();
return -1; return -1;
} }
} }
/** /**
* \brief Renvoie nom clicable (avec eventuellement le picto) * \brief Renvoie nom clicable (avec eventuellement le picto)
@ -708,9 +708,9 @@ class Contact extends CommonObject
function getNomUrl($withpicto=0,$option='',$maxlen=0) function getNomUrl($withpicto=0,$option='',$maxlen=0)
{ {
global $langs; global $langs;
$result=''; $result='';
$lien = '<a href="'.DOL_URL_ROOT.'/contact/fiche.php?id='.$this->id.'">'; $lien = '<a href="'.DOL_URL_ROOT.'/contact/fiche.php?id='.$this->id.'">';
$lienfin='</a>'; $lienfin='</a>';
@ -736,40 +736,42 @@ class Contact extends CommonObject
$langs->load("dict"); $langs->load("dict");
$code=$this->civilite_id; $code=$this->civilite_id;
return $langs->trans("Civility".$code)!="Civility".$code ? $langs->trans("Civility".$code) : $code; return $langs->trans("Civility".$code)!="Civility".$code ? $langs->trans("Civility".$code) : $code;
} }
/** /**
* \brief Return full name (name+' '+lastname) * \brief Return full name (name+' '+lastname)
* \param langs Lang for output * \param langs Lang object for output
* \param option 0=No option, 1=Add civility * \param option 0=No option, 1=Add civility
* \param nameorder 0=Lastname+Firstname, 1=Firstname+Lastname * \param nameorder 0=Lastname+Firstname, 1=Firstname+Lastname
* \return string String with full name * \return string String with full name
*/ */
function getFullName($langs,$option=0,$nameorder=0) function getFullName($langs,$option=0,$nameorder=0)
{ {
$ret=''; $ret='';
if ($option && $this->civilite_id) if ($option && $this->civilite_id)
{ {
if ($langs->transnoentities("Civility".$this->civilite_id)!="Civility".$this->civilite_id) $ret.=$langs->transnoentities("Civility".$this->civilite_id).' '; if ($langs->transnoentities("Civility".$this->civilite_id)!="Civility".$this->civilite_id) $ret.=$langs->transnoentities("Civility".$this->civilite_id).' ';
else $ret.=$this->civilite_id.' '; else $ret.=$this->civilite_id.' ';
} }
if ($nameorder) if ($nameorder)
{ {
if ($this->firstname) $ret.=$this->firstname.' '; if ($this->firstname) $ret.=$langs->convToOutputCharset($this->firstname);
if ($this->name) $ret.=$this->name.' '; if ($this->firstname && $this->name) $ret.=' ';
if ($this->name) $ret.=$langs->convToOutputCharset($this->name);
} }
else else
{ {
if ($this->name) $ret.=$this->name.' '; if ($this->name) $ret.=$langs->convToOutputCharset($this->name);
if ($this->firstname) $ret.=$this->firstname.' '; if ($this->firstname && $this->name) $ret.=' ';
if ($this->firstname) $ret.=$langs->convToOutputCharset($this->firstname);
} }
return trim($ret); return trim($ret);
} }
/** /**
* \brief Retourne le libell<EFBFBD> du statut du contact * \brief Retourne le libell<EFBFBD> du statut du contact
* \param mode 0=libell<EFBFBD> long, 1=libell<EFBFBD> court, 2=Picto + Libell<EFBFBD> court, 3=Picto, 4=Picto + Libell<EFBFBD> long, 5=Libell<EFBFBD> court + Picto * \param mode 0=libell<EFBFBD> long, 1=libell<EFBFBD> court, 2=Picto + Libell<EFBFBD> court, 3=Picto, 4=Picto + Libell<EFBFBD> long, 5=Libell<EFBFBD> court + Picto
@ -789,7 +791,7 @@ class Contact extends CommonObject
function LibStatut($statut,$mode) function LibStatut($statut,$mode)
{ {
global $langs; global $langs;
if ($mode == 0) if ($mode == 0)
{ {
if ($statut==0) return $langs->trans('StatusContactDraft'); if ($statut==0) return $langs->trans('StatusContactDraft');

View File

@ -869,11 +869,11 @@ class pdf_einstein extends ModelePDFCommandes
$pdf->SetFont('Arial','B',11); $pdf->SetFont('Arial','B',11);
$pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L'); $pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L');
// Nom client // Customer name
$carac_client = "\n".$outputlangs->convToOutputCharset($object->contact->getFullName($outputlangs,1,1)); $carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
// Caract<EFBFBD>ristiques client // Customer properties
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->adresse); $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->address);
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n"; $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n";
//Pays si different de l'emetteur //Pays si different de l'emetteur
if ($this->emetteur->pays_code != $object->contact->pays_code) if ($this->emetteur->pays_code != $object->contact->pays_code)
@ -883,7 +883,7 @@ class pdf_einstein extends ModelePDFCommandes
} }
else else
{ {
// Nom client // Customer name
$pdf->SetXY(102,$posy+3); $pdf->SetXY(102,$posy+3);
$pdf->SetFont('Arial','B',11); $pdf->SetFont('Arial','B',11);
$pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L'); $pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L');
@ -896,7 +896,7 @@ class pdf_einstein extends ModelePDFCommandes
// On v<>rifie si c'est une soci<63>t<EFBFBD> ou un particulier // On v<>rifie si c'est une soci<63>t<EFBFBD> ou un particulier
if( !preg_match('#'.$object->contact->getFullName($outputlangs,1).'#isU',$object->client->nom) ) if( !preg_match('#'.$object->contact->getFullName($outputlangs,1).'#isU',$object->client->nom) )
{ {
$carac_client .= "\n".$outputlangs->convToOutputCharset($object->contact->getFullName($outputlangs,1,1)); $carac_client .= "\n".$object->contact->getFullName($outputlangs,1,1);
} }
} }

View File

@ -1077,6 +1077,7 @@ class pdf_crabe extends ModelePDFFactures
// Cadre client destinataire // Cadre client destinataire
$pdf->rect(100, $posy, 100, $hautcadre); $pdf->rect(100, $posy, 100, $hautcadre);
// If BILLING contact defined on invoice, we use it // If BILLING contact defined on invoice, we use it
$usecontact=false; $usecontact=false;
if ($conf->global->FACTURE_USE_BILL_CONTACT_AS_RECIPIENT) if ($conf->global->FACTURE_USE_BILL_CONTACT_AS_RECIPIENT)
@ -1094,21 +1095,15 @@ class pdf_crabe extends ModelePDFFactures
$pdf->SetXY(102,$posy+3); $pdf->SetXY(102,$posy+3);
$pdf->SetFont('Arial','B',11); $pdf->SetFont('Arial','B',11);
// On peut utiliser le nom de la societe du contact facturation // On peut utiliser le nom de la societe du contact facturation
if ($conf->global->FACTURE_USE_COMPANY_NAME_OF_BILL_CONTACT) if ($conf->global->FACTURE_USE_COMPANY_NAME_OF_BILL_CONTACT) $socname = $object->contact->socname;
{ else $socname = $object->client->nom;
$socname = $object->contact->socname;
}
else
{
$socname = $object->client->nom;
}
$pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($socname), 0, 'L'); $pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($socname), 0, 'L');
// Nom client // Customer name
$carac_client = "\n".$object->contact->getFullName($outputlangs,1,1); $carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
// Caracteristiques client // Customer properties
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->adresse); $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->address);
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n"; $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n";
//Pays si different de l'emetteur //Pays si different de l'emetteur
if ($this->emetteur->pays_code != $object->contact->pays_code) if ($this->emetteur->pays_code != $object->contact->pays_code)

View File

@ -845,12 +845,12 @@ class pdf_propale_azur extends ModelePDFPropales
$pdf->SetXY($this->marge_gauche+2,$posy+3); $pdf->SetXY($this->marge_gauche+2,$posy+3);
// Nom emetteur // Customer name
$pdf->SetTextColor(0,0,60); $pdf->SetTextColor(0,0,60);
$pdf->SetFont('Arial','B',11); $pdf->SetFont('Arial','B',11);
$pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->nom), 0, 'L'); $pdf->MultiCell(80, 4, $outputlangs->convToOutputCharset($this->emetteur->nom), 0, 'L');
// Caracteristiques emetteur // Customer properties
$carac_emetteur = ''; $carac_emetteur = '';
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->adresse); $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->adresse);
$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->cp).' '.$outputlangs->convToOutputCharset($this->emetteur->ville); $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->cp).' '.$outputlangs->convToOutputCharset($this->emetteur->ville);
@ -879,7 +879,9 @@ class pdf_propale_azur extends ModelePDFPropales
// Cadre client destinataire // Cadre client destinataire
$pdf->rect(100, $posy, 100, $hautcadre); $pdf->rect(100, $posy, 100, $hautcadre);
// If BILLING contact defined on invoice, we use it
// If BILLING contact defined, we use it
$pdf->SetTextColor(0,0,0);
$usecontact=false; $usecontact=false;
if ($conf->global->PROPALE_USE_CUSTOMER_CONTACT_AS_RECIPIENT) if ($conf->global->PROPALE_USE_CUSTOMER_CONTACT_AS_RECIPIENT)
{ {
@ -890,7 +892,6 @@ class pdf_propale_azur extends ModelePDFPropales
$result=$object->fetch_contact($arrayidcontact[0]); $result=$object->fetch_contact($arrayidcontact[0]);
} }
} }
if ($usecontact) if ($usecontact)
{ {
// Nom societe // Nom societe
@ -902,7 +903,7 @@ class pdf_propale_azur extends ModelePDFPropales
$carac_client = "\n".$object->contact->getFullName($outputlangs,1,1); $carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
// Caractéristiques client // Caractéristiques client
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->adresse); $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->address);
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n"; $carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n";
//Pays si different de l'emetteur //Pays si different de l'emetteur
if ($this->emetteur->pays_code != $object->contact->pays_code) if ($this->emetteur->pays_code != $object->contact->pays_code)

View File

@ -348,6 +348,8 @@ class pdf_propale_jaune extends ModelePDFPropales
function _pagehead(&$pdf, $propale, $outputlangs) function _pagehead(&$pdf, $propale, $outputlangs)
{ {
global $conf,$langs;
//Affiche le filigrane brouillon - Print Draft Watermark //Affiche le filigrane brouillon - Print Draft Watermark
if($propale->statut==0 && defined("PROPALE_DRAFT_WATERMARK") ) if($propale->statut==0 && defined("PROPALE_DRAFT_WATERMARK") )
{ {
@ -394,17 +396,7 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf->SetTextColor(0,0,200); $pdf->SetTextColor(0,0,200);
$pdf->MultiCell(200, 20, $outputlangs->transnoentities("CommercialProposal"), '' , 'C'); $pdf->MultiCell(200, 20, $outputlangs->transnoentities("CommercialProposal"), '' , 'C');
/* // Cadre client destinataire
* Adresse Client
*/
$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','B',12);
$propale->fetch_client();
$pdf->SetXY(102,42);
$pdf->MultiCell(96,5, $outputlangs->convToOutputCharset($propale->client->nom));
$pdf->SetFont('Arial','B',11);
$pdf->SetXY(102,$pdf->GetY());
$pdf->MultiCell(96,5, $outputlangs->convToOutputCharset($propale->client->adresse) . "\n" . $outputlangs->convToOutputCharset($propale->client->cp) . " " . $outputlangs->convToOutputCharset($propale->client->ville));
$pdf->rect(100, 40, 100, 40); $pdf->rect(100, 40, 100, 40);
$pdf->SetTextColor(200,0,0); $pdf->SetTextColor(200,0,0);
@ -417,6 +409,80 @@ class pdf_propale_jaune extends ModelePDFPropales
$pdf->MultiCell(110, 10, $outputlangs->transnoentities("Ref")." : ".$outputlangs->convToOutputCharset($propale->ref)); $pdf->MultiCell(110, 10, $outputlangs->transnoentities("Ref")." : ".$outputlangs->convToOutputCharset($propale->ref));
$pdf->SetXY(110,90); $pdf->SetXY(110,90);
$pdf->MultiCell(100, 10, $outputlangs->transnoentities("Date")." : " . dolibarr_print_date($propale->date,'day',false,$outputlangs)); $pdf->MultiCell(100, 10, $outputlangs->transnoentities("Date")." : " . dolibarr_print_date($propale->date,'day',false,$outputlangs));
$posy=39;
$object=$propale;
$object->fetch_client();
// If BILLING contact defined, we use it
$pdf->SetTextColor(0,0,0);
$usecontact=false;
if ($conf->global->PROPALE_USE_CUSTOMER_CONTACT_AS_RECIPIENT)
{
$arrayidcontact=$object->getIdContact('external','CUSTOMER');
if (sizeof($arrayidcontact) > 0)
{
$usecontact=true;
$result=$object->fetch_contact($arrayidcontact[0]);
}
}
if ($usecontact)
{
// Nom societe
$pdf->SetXY(102,$posy+3);
$pdf->SetFont('Arial','B',11);
$pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L');
// Nom client
$carac_client = "\n".$object->contact->getFullName($outputlangs,1,1);
// Caractéristiques client
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->address);
$carac_client.="\n".$outputlangs->convToOutputCharset($object->contact->cp) . " " . $outputlangs->convToOutputCharset($object->contact->ville)."\n";
//Pays si different de l'emetteur
if ($this->emetteur->pays_code != $object->contact->pays_code)
{
$carac_client.=$outputlangs->convToOutputCharset($object->contact->pays)."\n";
}
}
else
{
// Nom client
$pdf->SetXY(102,$posy+3);
$pdf->SetFont('Arial','B',11);
$pdf->MultiCell(96,4, $outputlangs->convToOutputCharset($object->client->nom), 0, 'L');
// Nom du contact suivi propal si c'est une société
$arrayidcontact = $object->getIdContact('external','CUSTOMER');
if (sizeof($arrayidcontact) > 0)
{
$object->fetch_contact($arrayidcontact[0]);
// On vérifie si c'est une société ou un particulier
if( !preg_match('#'.$object->contact->getFullName($outputlangs,1).'#isU',$object->client->nom) )
{
$carac_client .= "\n".$object->contact->getFullName($outputlangs,1,1);
}
}
// Caractéristiques client
$carac_client.="\n".$outputlangs->convToOutputCharset($object->client->adresse);
$carac_client.="\n".$outputlangs->convToOutputCharset($object->client->cp) . " " . $outputlangs->convToOutputCharset($object->client->ville)."\n";
//Pays si different de l'emetteur
if ($this->emetteur->pays_code != $object->client->pays_code)
{
$carac_client.=$outputlangs->convToOutputCharset($object->client->pays)."\n";
}
}
// Numéro TVA intracom
if ($object->client->tva_intra) $carac_client.="\n".$outputlangs->transnoentities("VATIntraShort").': '.$object->client->tva_intra;
$pdf->SetFont('Arial','',9);
$posy=$pdf->GetY()-9; //Auto Y coord readjust for multiline name
$pdf->SetXY(102,$posy+6);
$pdf->MultiCell(86,4, $carac_client);
} }
/* /*

View File

@ -378,10 +378,10 @@ class Translate {
/** /**
* \brief Retourne la version traduite du texte pass<EFBFBD> en param<EFBFBD>tre * \brief Return translated value of a text string
* Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif * Si il n'y a pas de correspondance pour ce texte, on cherche dans fichier alternatif
* et si toujours pas trouv<EFBFBD>, il est retourn<EFBFBD> tel quel. * et si toujours pas trouve, il est retourne tel quel.
* Les param<EFBFBD>tres de cette m<EFBFBD>thode ne doivent pas contenir de balises HTML. * Parameters of this method must not contains any HTML tags.
* \param key cl<EFBFBD> de chaine a traduire * \param key cl<EFBFBD> de chaine a traduire
* \param param1 chaine de param1 * \param param1 chaine de param1
* \param param2 chaine de param1 * \param param2 chaine de param1