NEW Add a profil to import contact categories
Load roles of contact only when required
This commit is contained in:
parent
05ced30727
commit
f109864670
@ -554,6 +554,8 @@ else
|
||||
setEventMessages($object->error, $object->errors, 'errors');
|
||||
}
|
||||
|
||||
$object->fetchRoles();
|
||||
|
||||
// Show tabs
|
||||
$head = contact_prepare_head($object);
|
||||
|
||||
@ -580,7 +582,7 @@ else
|
||||
$object->country = $tmparray['label'];
|
||||
}
|
||||
|
||||
$title = $addcontact = (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("AddContact") : $langs->trans("AddContactAddress"));
|
||||
$title = (!empty($conf->global->SOCIETE_ADDRESSES_MANAGEMENT) ? $langs->trans("AddContact") : $langs->trans("AddContactAddress"));
|
||||
$linkback = '';
|
||||
print load_fiche_titre($title, $linkback, 'address');
|
||||
|
||||
@ -654,7 +656,7 @@ else
|
||||
|
||||
// Civility
|
||||
print '<tr><td><label for="civility_code">'.$langs->trans("UserTitle").'</label></td><td colspan="3">';
|
||||
print $formcompany->select_civility(GETPOSTISSET("civility_code") ?GETPOST("civility_code", 'alpha') : $object->civility_code, 'civility_code');
|
||||
print $formcompany->select_civility(GETPOSTISSET("civility_code") ? GETPOST("civility_code", 'alpha') : $object->civility_code, 'civility_code');
|
||||
print '</td></tr>';
|
||||
|
||||
print '<tr><td><label for="title">'.$langs->trans("PostOrFunction").'</label></td>';
|
||||
@ -683,13 +685,13 @@ else
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || !empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->zip)) == 0) $object->zip = $objsoc->zip; // Predefined with third party
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || !empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->town)) == 0) $object->town = $objsoc->town; // Predefined with third party
|
||||
print '<tr><td><label for="zipcode">'.$langs->trans("Zip").'</label> / <label for="town">'.$langs->trans("Town").'</label></td><td colspan="'.$colspan.'" class="maxwidthonsmartphone">';
|
||||
print $formcompany->select_ziptown((GETPOST("zipcode", 'alpha') ?GETPOST("zipcode", 'alpha') : $object->zip), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6).' ';
|
||||
print $formcompany->select_ziptown((GETPOST("town", 'alpha') ?GETPOST("town", 'alpha') : $object->town), 'town', array('zipcode', 'selectcountry_id', 'state_id'));
|
||||
print $formcompany->select_ziptown((GETPOST("zipcode", 'alpha') ? GETPOST("zipcode", 'alpha') : $object->zip), 'zipcode', array('town', 'selectcountry_id', 'state_id'), 6).' ';
|
||||
print $formcompany->select_ziptown((GETPOST("town", 'alpha') ? GETPOST("town", 'alpha') : $object->town), 'town', array('zipcode', 'selectcountry_id', 'state_id'));
|
||||
print '</td></tr>';
|
||||
|
||||
// Country
|
||||
print '<tr><td><label for="selectcountry_id">'.$langs->trans("Country").'</label></td><td colspan="'.$colspan.'" class="maxwidthonsmartphone">';
|
||||
print $form->select_country((GETPOST("country_id", 'alpha') ?GETPOST("country_id", 'alpha') : $object->country_id), 'country_id');
|
||||
print $form->select_country((GETPOST("country_id", 'alpha') ? GETPOST("country_id", 'alpha') : $object->country_id), 'country_id');
|
||||
if ($user->admin) print info_admin($langs->trans("YouCanChangeValuesForThisListFromDictionarySetup"), 1);
|
||||
print '</td></tr>';
|
||||
|
||||
@ -707,7 +709,7 @@ else
|
||||
|
||||
if ($object->country_id)
|
||||
{
|
||||
print $formcompany->select_state(GETPOST("state_id", 'alpha') ?GETPOST("state_id", 'alpha') : $object->state_id, $object->country_code, 'state_id');
|
||||
print $formcompany->select_state(GETPOST("state_id", 'alpha') ? GETPOST("state_id", 'alpha') : $object->state_id, $object->country_code, 'state_id');
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -721,23 +723,23 @@ else
|
||||
|
||||
// Phone / Fax
|
||||
print '<tr><td>'.img_picto('', 'object_phoning').' '.$form->editfieldkey('PhonePro', 'phone_pro', '', $object, 0).'</td>';
|
||||
print '<td><input type="text" name="phone_pro" id="phone_pro" class="maxwidth200" value="'.(GETPOSTISSET('phone_pro') ?GETPOST('phone_pro', 'alpha') : $object->phone_pro).'"></td>';
|
||||
print '<td><input type="text" name="phone_pro" id="phone_pro" class="maxwidth200" value="'.(GETPOSTISSET('phone_pro') ? GETPOST('phone_pro', 'alpha') : $object->phone_pro).'"></td>';
|
||||
if ($conf->browser->layout == 'phone') print '</tr><tr>';
|
||||
print '<td>'.img_picto('', 'object_phoning').' '.$form->editfieldkey('PhonePerso', 'phone_perso', '', $object, 0).'</td>';
|
||||
print '<td><input type="text" name="phone_perso" id="phone_perso" class="maxwidth200" value="'.(GETPOSTISSET('phone_perso') ?GETPOST('phone_perso', 'alpha') : $object->phone_perso).'"></td></tr>';
|
||||
print '<td><input type="text" name="phone_perso" id="phone_perso" class="maxwidth200" value="'.(GETPOSTISSET('phone_perso') ? GETPOST('phone_perso', 'alpha') : $object->phone_perso).'"></td></tr>';
|
||||
|
||||
print '<tr><td>'.img_picto('', 'object_phoning_mobile').' '.$form->editfieldkey('PhoneMobile', 'phone_mobile', '', $object, 0).'</td>';
|
||||
print '<td><input type="text" name="phone_mobile" id="phone_mobile" class="maxwidth200" value="'.(GETPOSTISSET('phone_mobile') ?GETPOST('phone_mobile', 'alpha') : $object->phone_mobile).'"></td>';
|
||||
print '<td><input type="text" name="phone_mobile" id="phone_mobile" class="maxwidth200" value="'.(GETPOSTISSET('phone_mobile') ? GETPOST('phone_mobile', 'alpha') : $object->phone_mobile).'"></td>';
|
||||
if ($conf->browser->layout == 'phone') print '</tr><tr>';
|
||||
print '<td>'.img_picto('', 'object_phoning_fax').' '.$form->editfieldkey('Fax', 'fax', '', $object, 0).'</td>';
|
||||
print '<td><input type="text" name="fax" id="fax" class="maxwidth200" value="'.(GETPOSTISSET('fax') ?GETPOST('fax', 'alpha') : $object->fax).'"></td>';
|
||||
print '<td><input type="text" name="fax" id="fax" class="maxwidth200" value="'.(GETPOSTISSET('fax') ? GETPOST('fax', 'alpha') : $object->fax).'"></td>';
|
||||
print '</tr>';
|
||||
|
||||
if (($objsoc->typent_code == 'TE_PRIVATE' || !empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->email)) == 0) $object->email = $objsoc->email; // Predefined with third party
|
||||
|
||||
// Email
|
||||
print '<tr><td>'.img_picto('', 'object_email').' '.$form->editfieldkey('EMail', 'email', '', $object, 0, 'string', '').'</td>';
|
||||
print '<td><input type="text" name="email" id="email" value="'.(GETPOSTISSET('email') ?GETPOST('email', 'alpha') : $object->email).'"></td>';
|
||||
print '<td><input type="text" name="email" id="email" value="'.(GETPOSTISSET('email') ? GETPOST('email', 'alpha') : $object->email).'"></td>';
|
||||
print '</tr>';
|
||||
|
||||
if (!empty($conf->mailing->enabled))
|
||||
@ -757,7 +759,7 @@ else
|
||||
|
||||
print '<tr>';
|
||||
print '<td><label for="no_email">'.$langs->trans("No_Email").'</label></td>';
|
||||
print '<td>'.$form->selectyesno('no_email', (GETPOSTISSET("no_email") ?GETPOST("no_email", 'alpha') : $noemail), 1).'</td>';
|
||||
print '<td>'.$form->selectyesno('no_email', (GETPOSTISSET("no_email") ? GETPOST("no_email", 'alpha') : $noemail), 1).'</td>';
|
||||
print '</tr>';
|
||||
}
|
||||
print '</tr>';
|
||||
|
||||
@ -802,20 +802,19 @@ class Contact extends CommonObject
|
||||
|
||||
|
||||
/**
|
||||
* Load object contact
|
||||
* Load object contact.
|
||||
*
|
||||
* @param int $id id du contact
|
||||
* @param User $user Utilisateur (abonnes aux alertes) qui veut les alertes de ce contact
|
||||
* @param string $ref_ext External reference, not given by Dolibarr
|
||||
* @param string $email Email
|
||||
* @return int -1 if KO, 0 if OK but not found, 1 if OK
|
||||
* @param int $id Id of contact
|
||||
* @param User $user Load also alerts of this user (subscribing to alerts) that want alerts about this contact
|
||||
* @param string $ref_ext External reference, not given by Dolibarr
|
||||
* @param string $email Email
|
||||
* @param int $loadalsoroles Load also roles
|
||||
* @return int >0 if OK, <0 if KO or if two records found for same ref or idprof, 0 if not found.
|
||||
*/
|
||||
public function fetch($id, $user = null, $ref_ext = '', $email = '')
|
||||
public function fetch($id, $user = null, $ref_ext = '', $email = '', $loadalsoroles = 0)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$langs->load("dict");
|
||||
|
||||
dol_syslog(get_class($this)."::fetch id=".$id." ref_ext=".$ref_ext." email=".$email, LOG_DEBUG);
|
||||
|
||||
if (empty($id) && empty($ref_ext) && empty($email))
|
||||
@ -824,7 +823,7 @@ class Contact extends CommonObject
|
||||
return -1;
|
||||
}
|
||||
|
||||
$langs->load("companies");
|
||||
$langs->loadLangs(array("dict", "companies"));
|
||||
|
||||
$sql = "SELECT c.rowid, c.entity, c.fk_soc, c.ref_ext, c.civility as civility_code, c.lastname, c.firstname,";
|
||||
$sql .= " c.address, c.statut, c.zip, c.town,";
|
||||
@ -861,7 +860,15 @@ class Contact extends CommonObject
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
if ($this->db->num_rows($resql))
|
||||
$num = $this->db->num_rows($resql);
|
||||
if ($num > 1)
|
||||
{
|
||||
$this->error = 'Fetch found several records. Rename one of contact to avoid duplicate.';
|
||||
dol_syslog($this->error, LOG_ERR);
|
||||
|
||||
return 2;
|
||||
}
|
||||
elseif ($num) // $num = 1
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
@ -942,7 +949,11 @@ class Contact extends CommonObject
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Charge alertes du user
|
||||
// Retreive all extrafield
|
||||
// fetch optionals attributes and labels
|
||||
$this->fetch_optionals();
|
||||
|
||||
// Load also alerts of this user
|
||||
if ($user)
|
||||
{
|
||||
$sql = "SELECT fk_user";
|
||||
@ -967,13 +978,12 @@ class Contact extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
// Retreive all extrafield
|
||||
// fetch optionals attributes and labels
|
||||
$this->fetch_optionals();
|
||||
|
||||
$resultRole = $this->fetchRoles();
|
||||
if ($resultRole < 0) {
|
||||
return $resultRole;
|
||||
// Load also roles of this address
|
||||
if ($loadalsoroles) {
|
||||
$resultRole = $this->fetchRoles();
|
||||
if ($resultRole < 0) {
|
||||
return $resultRole;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -1587,7 +1597,7 @@ class Contact extends CommonObject
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch Role for a contact
|
||||
* Fetch Roles for a contact
|
||||
*
|
||||
* @return float|int
|
||||
* @throws Exception
|
||||
@ -1599,7 +1609,7 @@ class Contact extends CommonObject
|
||||
$num = 0;
|
||||
|
||||
$sql = "SELECT tc.rowid, tc.element, tc.source, tc.code, tc.libelle, sc.rowid as contactroleid";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe_contacts as sc ";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."societe_contacts as sc";
|
||||
$sql .= " INNER JOIN ".MAIN_DB_PREFIX."c_type_contact as tc";
|
||||
$sql .= " ON tc.rowid = sc.fk_c_type_contact";
|
||||
$sql .= " AND sc.fk_socpeople = ".$this->id;
|
||||
|
||||
@ -425,6 +425,7 @@ class ImportCsv extends ModeleImports
|
||||
// New val can be an id or ref. If it start with id: it is forced to id, if it start with ref: it is forced to ref. It not, we try to guess.
|
||||
$isidorref = 'id';
|
||||
if (!is_numeric($newval) && $newval != '' && !preg_match('/^id:/i', $newval)) $isidorref = 'ref';
|
||||
|
||||
$newval = preg_replace('/^(id|ref):/i', '', $newval); // Remove id: or ref: that was used to force if field is id or ref
|
||||
//print 'Val is now '.$newval.' and is type '.$isidorref."<br>\n";
|
||||
|
||||
@ -448,8 +449,7 @@ class ImportCsv extends ModeleImports
|
||||
$classinstance = new $class($this->db);
|
||||
// Try the fetch from code or ref
|
||||
$param_array = array('', $newval);
|
||||
if ($class == 'AccountingAccount')
|
||||
{
|
||||
if ($class == 'AccountingAccount') {
|
||||
//var_dump($arrayrecord[0]['val']);
|
||||
/*include_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountancysystem.class.php';
|
||||
$tmpchartofaccount = new AccountancySystem($this->db);
|
||||
@ -464,6 +464,7 @@ class ImportCsv extends ModeleImports
|
||||
}*/
|
||||
$param_array = array('', $newval, 0, $arrayrecord[0]['val']); // Param to fetch parent from account, in chart.
|
||||
}
|
||||
|
||||
call_user_func_array(array($classinstance, $method), $param_array);
|
||||
// If not found, try the fetch from label
|
||||
if (! ($classinstance->id != '') && $objimport->array_import_convertvalue[0][$val]['rule']=='fetchidfromcodeorlabel')
|
||||
|
||||
@ -452,7 +452,7 @@ class modCategorie extends DolibarrModules
|
||||
|
||||
if (! empty($conf->societe->enabled))
|
||||
{
|
||||
//Customers
|
||||
// Customers
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->import_label[$r]="CatCusLinks"; // Translation key
|
||||
@ -470,6 +470,25 @@ class modCategorie extends DolibarrModules
|
||||
'cs.fk_soc'=>array('rule'=>'fetchidfromref','classfile'=>'/societe/class/societe.class.php','class'=>'Societe','method'=>'fetch','element'=>'ThirdParty')
|
||||
);
|
||||
$this->import_examplevalues_array[$r]=array('cs.fk_categorie'=>"Imported category",'cs.fk_soc'=>"MyBigCompany");
|
||||
|
||||
// Contacts/Addresses
|
||||
$r++;
|
||||
$this->import_code[$r]=$this->rights_class.'_'.$r;
|
||||
$this->import_label[$r]="CatContactsLinks"; // Translation key
|
||||
$this->import_icon[$r]=$this->picto;
|
||||
$this->import_entities_array[$r]=array(); // We define here only fields that use another icon that the one defined into import_icon
|
||||
$this->import_tables_array[$r]=array('cs'=>MAIN_DB_PREFIX.'categorie_contact');
|
||||
$this->import_fields_array[$r]=array('cs.fk_categorie'=>"Category*",'cs.fk_socpeople'=>"Contact ID*");
|
||||
$this->import_regex_array[$r]=array(
|
||||
'cs.fk_categorie'=>'rowid@'.MAIN_DB_PREFIX.'categorie:type=4'
|
||||
//'cs.fk_socpeople'=>'rowid@'.MAIN_DB_PREFIX.'socpeople'
|
||||
);
|
||||
|
||||
$this->import_convertvalue_array[$r]=array(
|
||||
'cs.fk_categorie'=>array('rule'=>'fetchidfromref','classfile'=>'/categories/class/categorie.class.php','class'=>'Categorie','method'=>'fetch','element'=>'category')
|
||||
//'cs.fk_socpeople'=>array('rule'=>'fetchidfromref','classfile'=>'/contact/class/contact.class.php','class'=>'Contact','method'=>'fetch','element'=>'Contact')
|
||||
);
|
||||
$this->import_examplevalues_array[$r]=array('cs.fk_categorie'=>"Imported category",'cs.fk_socpeople'=>"123");
|
||||
}
|
||||
|
||||
if (! empty($conf->fournisseur->enabled))
|
||||
|
||||
@ -78,6 +78,7 @@ CatMemberList=List of members tags/categories
|
||||
CatContactList=List of contact tags/categories
|
||||
CatSupLinks=Links between suppliers and tags/categories
|
||||
CatCusLinks=Links between customers/prospects and tags/categories
|
||||
CatContactsLinks=Links between contacts/addresses and tags/categories
|
||||
CatProdLinks=Links between products/services and tags/categories
|
||||
CatProJectLinks=Links between projects and tags/categories
|
||||
DeleteFromCat=Remove from tags/category
|
||||
|
||||
Loading…
Reference in New Issue
Block a user