Add more fields to projectcontacts substitution
civility added + extrafields for external contacts + isInternal to decide in template wether to list internal or not
This commit is contained in:
parent
e5c898e0d6
commit
267e66abfa
@ -185,39 +185,50 @@ class doc_generic_project_odt extends ModelePDFProjects
|
|||||||
function get_substitutionarray_project_contacts($contact,$outputlangs)
|
function get_substitutionarray_project_contacts($contact,$outputlangs)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
$pc='projcontacts_'; // prefix to avoid typos
|
||||||
|
|
||||||
// adding phone numbers if external
|
$ret = array(
|
||||||
$phone_pro = '';
|
$pc.'id'=>$contact['id'],
|
||||||
$phone_perso = '';
|
$pc.'rowid'=>$contact['rowid'],
|
||||||
$phone_mobile = '';
|
$pc.'role'=>$contact['libelle'],
|
||||||
|
$pc.'lastname'=>$contact['lastname'],
|
||||||
|
$pc.'firstname'=>$contact['firstname'],
|
||||||
|
$pc.'civility'=>$contact['civility'],
|
||||||
|
$pc.'fullcivname'=>$contact['fullname'],
|
||||||
|
$pc.'socname'=>$contact['socname'],
|
||||||
|
$pc.'email'=>$contact['email']
|
||||||
|
);
|
||||||
|
|
||||||
$ct = new Contact($this->db);
|
|
||||||
if ($contact['source']=='external') {
|
if ($contact['source']=='external') {
|
||||||
|
$ret[$pc.'isInternal'] = ''; // not internal
|
||||||
|
|
||||||
$ct = new Contact($this->db);
|
$ct = new Contact($this->db);
|
||||||
$ct->fetch($contact['id']);
|
$ct->fetch($contact['id']);
|
||||||
$phone_pro = $ct->phone_pro;
|
$ret[$pc.'phone_pro'] = $ct->phone_pro;
|
||||||
$phone_perso = $ct->phone_perso;
|
$ret[$pc.'phone_perso'] = $ct->phone_perso;
|
||||||
$phone_mobile = $ct->phone_mobile;
|
$ret[$pc.'phone_mobile'] = $ct->phone_mobile;
|
||||||
|
|
||||||
|
// fetch external user extrafields
|
||||||
|
require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php');
|
||||||
|
$extrafields=new ExtraFields($this->db);
|
||||||
|
$extralabels=$extrafields->fetch_name_optionals_label($ct->table_element, true);
|
||||||
|
$extrafields_num = $ct->fetch_optionals($ct->id, $extralabels);
|
||||||
|
//dol_syslog(get_class($this)."::get_substitutionarray_project_contacts: ===== Number of Extrafields found: ".$extrafields_num, LOG_DEBUG);
|
||||||
|
foreach($ct->array_options as $efkey => $efval) {
|
||||||
|
dol_syslog(get_class($this)."::get_substitutionarray_project_contacts: +++++ Extrafield ".$efkey." => ".$efval, LOG_DEBUG);
|
||||||
|
$ret[$pc.$efkey] = $efval; // add nothing else because it already comes as 'options_XX'
|
||||||
|
}
|
||||||
} elseif ($contact['source']=='internal') {
|
} elseif ($contact['source']=='internal') {
|
||||||
|
$ret[$pc.'isInternal'] = '1'; // this is an internal user
|
||||||
|
|
||||||
$ct = new User($this->db);
|
$ct = new User($this->db);
|
||||||
$ct->fetch($contact['id']);
|
$ct->fetch($contact['id']);
|
||||||
$phone_pro = $ct->office_phone;
|
$ret[$pc.'phone_pro'] = $ct->office_phone;
|
||||||
$phone_mobile = $ct->user_mobile;
|
$ret[$pc.'phone_perso'] = '';
|
||||||
|
$ret[$pc.'phone_mobile'] = $ct->user_mobile;
|
||||||
|
// do internal users have extrafields ?
|
||||||
}
|
}
|
||||||
|
return $ret;
|
||||||
return array(
|
|
||||||
'projcontacts_id'=>$contact['id'],
|
|
||||||
'projcontacts_rowid'=>$contact['rowid'],
|
|
||||||
'projcontacts_role'=>$contact['libelle'],
|
|
||||||
'projcontacts_lastname'=>$contact['lastname'],
|
|
||||||
'projcontacts_firstname'=>$contact['firstname'],
|
|
||||||
'projcontacts_fullcivname'=>$contact['fullname'],
|
|
||||||
'projcontacts_socname'=>$contact['socname'],
|
|
||||||
'projcontacts_email'=>$contact['email'],
|
|
||||||
'projcontacts_phone_pro'=>$phone_pro,
|
|
||||||
'projcontacts_phone_perso'=>$phone_perso,
|
|
||||||
'projcontacts_phone_mobile'=>$phone_mobile
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user