27require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
28require_once DOL_DOCUMENT_ROOT.
'/core/class/commonpeople.class.php';
40 public $module =
'recruitment';
45 public $element =
'recruitmentcandidature';
50 public $table_element =
'recruitment_recruitmentcandidature';
55 public $picto =
'recruitmentcandidature';
60 public $email_fields_no_propagate_in_actioncomm;
63 const STATUS_DRAFT = 0;
64 const STATUS_VALIDATED = 1;
66 const STATUS_CONTRACT_PROPOSED = 3;
67 const STATUS_CONTRACT_SIGNED = 5;
68 const STATUS_CONTRACT_REFUSED = 6;
69 const STATUS_REFUSED = 8;
70 const STATUS_CANCELED = 9;
102 public $fields = array(
103 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 0,
'noteditable' => 1,
'index' => 1,
'comment' =>
"Id"),
104 'entity' => array(
'type' =>
'integer',
'label' =>
'Entity',
'enabled' => 1,
'visible' => 0,
'position' => 5,
'notnull' => 1,
'default' =>
'1',
'index' => 1),
105 'ref' => array(
'type' =>
'varchar(128)',
'label' =>
'Ref',
'enabled' => 1,
'position' => 10,
'notnull' => 1,
'visible' => 4,
'noteditable' => 1,
'default' =>
'(PROV)',
'index' => 1,
'searchall' => 1,
'showoncombobox' => 1,
'comment' =>
"Reference of candidature",
'csslist' =>
'nowraponall'),
106 'fk_recruitmentjobposition' => array(
'type' =>
'integer:RecruitmentJobPosition:recruitment/class/recruitmentjobposition.class.php:0',
'label' =>
'Job',
'enabled' =>
'1',
'position' => 15,
'notnull' => 0,
'visible' => 1,
'index' => 1,
'picto' =>
'recruitmentjobposition',
'css' =>
'minwidth300 maxwidth500 widthcentpercentminusx',
'csslist' =>
'minwidth100 nowraponall'),
107 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 61,
'notnull' => 0,
'visible' => 0,),
108 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 0,),
109 'fk_user_creat' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserAuthor',
'enabled' => 1,
'position' => 510,
'notnull' => -1,
'visible' => -2,
'foreignkey' =>
'user.rowid',
'csslist' =>
'tdoverflowmax100'),
110 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,
'csslist' =>
'tdoverflowmax100'),
111 'lastname' => array(
'type' =>
'varchar(128)',
'label' =>
'Lastname',
'enabled' => 1,
'position' => 20,
'notnull' => 0,
'visible' => 1,
'csslist' =>
'tdoverflowmax150'),
112 'firstname' => array(
'type' =>
'varchar(128)',
'label' =>
'Firstname',
'enabled' => 1,
'position' => 21,
'notnull' => 0,
'visible' => 1,
'csslist' =>
'tdoverflowmax150'),
113 'email' => array(
'type' =>
'email',
'label' =>
'EMail',
'enabled' => 1,
'position' => 30,
'notnull' => 1,
'visible' => 1,
'picto' =>
'email',
'csslist' =>
'tdoverflowmax150'),
114 'phone' => array(
'type' =>
'phone',
'label' =>
'Phone',
'enabled' => 1,
'position' => 31,
'notnull' => 0,
'visible' => 1,
'picto' =>
'phone',
'csslist' =>
'tdoverflowmax150'),
115 'date_birth' => array(
'type' =>
'date',
'label' =>
'DateOfBirth',
'enabled' => 1,
'position' => 70,
'visible' => -1,),
116 'email_msgid' => array(
'type' =>
'varchar(255)',
'label' =>
'EmailMsgID',
'visible' => -2,
'enabled' => 1,
'position' => 540,
'notnull' => -1,
'help' =>
'EmailMsgIDDesc'),
117 'email_date' => array(
'type' =>
'datetime',
'label' =>
'EmailDate',
'visible' => -2,
'enabled' => 1,
'position' => 541),
119 'remuneration_requested' => array(
'type' =>
'integer',
'label' =>
'RequestedRemuneration',
'enabled' => 1,
'position' => 80,
'notnull' => 0,
'visible' => -1,),
120 'remuneration_proposed' => array(
'type' =>
'integer',
'label' =>
'ProposedRemuneration',
'enabled' => 1,
'position' => 81,
'notnull' => 0,
'visible' => -1,),
121 'description' => array(
'type' =>
'html',
'label' =>
'Description',
'enabled' => 1,
'position' => 300,
'notnull' => 0,
'visible' => 3,
'cssview' =>
'wordbreak'),
122 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -4,
'csslist' =>
'nowraponall'),
123 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,
'csslist' =>
'nowraponall'),
124 'fk_user' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'Employee',
'picto' =>
'user',
'help' =>
'LinkToUserCreated',
'enabled' => 1,
'position' => 600,
'notnull' => 0,
'visible' => -1,
'css' =>
'minwidth300 maxwidth500 widthcentpercentminusx',
'csslist' =>
'tdoverflowmax100'),
125 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
126 'model_pdf' => array(
'type' =>
'varchar(255)',
'label' =>
'Model pdf',
'enabled' => 1,
'position' => 1010,
'notnull' => -1,
'visible' => 0,),
127 'status' => array(
'type' =>
'smallint',
'label' =>
'Status',
'enabled' => 1,
'position' => 1000,
'notnull' => 1,
'visible' => 2,
'index' => 1,
'default' =>
'0',
'arrayofkeyval' => array(0 =>
'Draft', 1 =>
'Received', 3 =>
'ContractProposed', 5 =>
'ContractSigned', 8 =>
'Refused', 9 =>
'Canceled')),
128 "ip" => array(
"type" =>
"varchar(250)",
"label" =>
"Ip",
"enabled" => 1,
'position' => 700,
'notnull' => 0,
"visible" => 0,
"comment" =>
"ip used to create record (for public submission page)"),
145 public $fk_recruitmentjobposition;
153 public $fk_user_creat;
157 public $fk_user_modif;
193 public $remuneration_requested;
197 public $remuneration_proposed;
201 public $fk_recruitment_origin;
231 $this->ismultientitymanaged = 1;
232 $this->isextrafieldmanaged = 1;
235 $this->fields[
'rowid'][
'visible'] = 0;
237 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
238 $this->fields[
'entity'][
'enabled'] = 0;
248 foreach ($this->fields as $key => $val) {
249 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
250 unset($this->fields[$key]);
255 if (is_object($langs)) {
256 foreach ($this->fields as $key => $val) {
257 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
258 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
259 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
287 global $langs, $extrafields;
297 $result =
$object->fetchCommon($fromid);
298 if ($result > 0 && !empty(
$object->table_element_line)) {
312 if (property_exists(
$object,
'ref')) {
314 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
317 $object->status = self::STATUS_DRAFT;
319 $object->date_modification =
null;
322 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
323 $extrafields->fetch_name_optionals_label($this->table_element);
324 foreach (
$object->array_options as $key => $option) {
325 $shortkey = preg_replace(
'/options_/',
'', $key);
326 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
329 unset(
$object->array_options[$key]);
335 $object->context[
'createfromclone'] =
'createfromclone';
336 $result =
$object->createCommon($user);
340 $this->errors =
$object->errors;
352 if (property_exists($this,
'socid') && $this->socid ==
$object->socid) {
359 unset(
$object->context[
'createfromclone']);
366 $this->db->rollback();
379 public function fetch($id, $ref =
null, $email_msgid =
'')
383 $morewhere =
" AND email_msgid = '".$this->db->escape($email_msgid).
"'";
385 $result = $this->
fetchCommon($id, $ref, $morewhere);
386 if ($result > 0 && !empty($this->table_element_line)) {
399 $this->lines = array();
418 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
426 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
427 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
428 $sql .=
' WHERE t.entity IN ('.getEntity($this->element).
')';
430 $sql .=
' WHERE 1 = 1';
437 $this->errors[] = $errormessage;
438 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
442 if (!empty($sortfield)) {
443 $sql .= $this->db->order($sortfield, $sortorder);
445 if (!empty($limit)) {
446 $sql .= $this->db->plimit($limit, $offset);
449 $resql = $this->db->query($sql);
451 $num = $this->db->num_rows($resql);
453 while ($i < ($limit ? min($limit, $num) : $num)) {
454 $obj = $this->db->fetch_object($resql);
456 $record =
new self($this->db);
457 $record->setVarsFromFetchObj($obj);
459 $records[$record->id] = $record;
463 $this->db->free($resql);
467 $this->errors[] =
'Error '.$this->db->lasterror();
468 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
493 public function delete(
User $user, $notrigger = 0)
510 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
527 global
$conf, $langs;
529 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
534 if ($this->
status == self::STATUS_VALIDATED) {
535 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
552 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
557 $this->newref = $num;
561 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
562 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
563 $sql .=
" status = ".self::STATUS_VALIDATED;
564 if (!empty($this->fields[
'date_validation'])) {
565 $sql .=
", date_validation = '".$this->db->idate($now).
"',";
567 if (!empty($this->fields[
'fk_user_valid'])) {
568 $sql .=
", fk_user_valid = ".((int) $user->id);
570 $sql .=
" WHERE rowid = ".((int) $this->
id);
572 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
573 $resql = $this->db->query($sql);
576 $this->error = $this->db->lasterror();
580 if (!$error && !$notrigger) {
582 $result = $this->
call_trigger(
'RECRUITMENTCANDIDATURE_VALIDATE', $user);
591 $this->oldref = $this->ref;
594 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
596 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'recruitmentcandidature/".$this->db->escape($this->newref).
"'";
597 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'recruitmentcandidature/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
598 $resql = $this->db->query($sql);
601 $this->error = $this->db->lasterror();
603 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'recruitmentcandidature/".$this->db->escape($this->newref).
"'";
604 $sql .=
" WHERE filepath = 'recruitmentcandidature/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
605 $resql = $this->db->query($sql);
608 $this->error = $this->db->lasterror();
614 $dirsource =
$conf->recruitment->dir_output.
'/recruitmentcandidature/'.$oldref;
615 $dirdest =
$conf->recruitment->dir_output.
'/recruitmentcandidature/'.$newref;
616 if (!$error && file_exists($dirsource)) {
617 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
619 if (@rename($dirsource, $dirdest)) {
622 $listoffiles =
dol_dir_list(
$conf->recruitment->dir_output.
'/recruitmentcandidature/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
623 foreach ($listoffiles as $fileentry) {
624 $dirsource = $fileentry[
'name'];
625 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
626 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
627 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
628 @rename($dirsource, $dirdest);
638 $this->
status = self::STATUS_VALIDATED;
645 $this->db->rollback();
661 if ($this->
status <= self::STATUS_DRAFT) {
672 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'RECRUITMENTCANDIDATURE_UNVALIDATE');
682 public function cancel($user, $notrigger = 0)
685 if ($this->
status != self::STATUS_VALIDATED) {
696 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'RECRUITMENTCANDIDATURE_CLOSE');
706 public function reopen($user, $notrigger = 0)
709 if ($this->
status != self::STATUS_REFUSED && $this->
status != self::STATUS_CANCELED && $this->
status != self::STATUS_CONTRACT_REFUSED) {
720 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'RECRUITMENTCANDIDATURE_REOPEN');
732 public function getFullName($langs, $option = 0, $nameorder = -1, $maxlen = 0)
734 $lastname = $this->lastname;
735 $firstname = $this->firstname;
736 if (empty($lastname)) {
737 $lastname = (isset($this->lastname) ? $this->lastname : (isset($this->
name) ? $this->
name : (isset($this->nom) ? $this->nom : (isset($this->societe) ? $this->societe : (isset($this->company) ? $this->company :
'')))));
757 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
759 global
$conf, $langs, $hookmanager;
761 if (!empty(
$conf->dol_no_mouse_hover)) {
767 $label =
img_picto(
'', $this->picto).
' <u class="paddingrightonly">'.$langs->trans(
"RecruitmentCandidature").
'</u>';
768 if (isset($this->
status)) {
769 $label .=
' '.$this->getLibStatut(5);
772 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
773 $label .=
'<br><b>'.$langs->trans(
'Email').
':</b> '.$this->email;
774 $label .=
'<br><b>'.$langs->trans(
'Name').
':</b> '.$this->
getFullName($langs);
776 $url =
dol_buildpath(
'/recruitment/recruitmentcandidature_card.php', 1).
'?id='.$this->id;
778 if ($option !=
'nolink') {
780 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
781 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
782 $add_save_lastsearch_values = 1;
784 if ($add_save_lastsearch_values) {
785 $url .=
'&save_lastsearch_values=1';
790 if (empty($notooltip)) {
792 $label = $langs->trans(
"ShowRecruitmentCandidature");
793 $linkclose .=
' alt="'.dolPrintHTMLForAttribute($label).
'"';
795 $linkclose .=
' title="'.dolPrintHTMLForAttribute($label).
'"';
796 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
798 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
801 $linkstart =
'<a href="'.$url.
'"';
802 $linkstart .= $linkclose.
'>';
805 $result .= $linkstart;
807 if (empty($this->showphoto_on_popup)) {
809 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
813 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
815 list($class, $module) = explode(
'@', $this->picto);
818 $filename = $filearray[0][
'name'];
819 if (!empty($filename)) {
820 $pospoint = strpos($filearray[0][
'name'],
'.');
822 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
824 $result .=
'<div class="floatleft inline-block valignmiddle divphotoref"><div class="photoref"><img class="photo'.$module.
'" alt="No photo" border="0" src="'.DOL_URL_ROOT.
'/viewimage.php?modulepart='.$module.
'&entity='.
$conf->entity.
'&file='.urlencode($pathtophoto).
'"></div></div>';
826 $result .=
'<div class="floatleft inline-block valignmiddle divphotoref"><img class="photouserphoto userphoto" alt="No photo" border="0" src="'.DOL_URL_ROOT.
'/viewimage.php?modulepart='.$module.
'&entity='.
$conf->entity.
'&file='.urlencode($pathtophoto).
'"></div>';
831 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'classfortooltip"'), 0, 0, $notooltip ? 0 : 1);
836 if ($withpicto != 2) {
837 $result .= $this->ref;
843 global $action, $hookmanager;
844 $hookmanager->initHooks(array(
'recruitmentcandidaturedao'));
845 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
846 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
848 $result = $hookmanager->resPrint;
850 $result .= $hookmanager->resPrint;
878 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
881 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
882 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Received').
' ('.$langs->transnoentitiesnoconv(
"InterviewToDo").
')';
883 $this->labelStatus[self::STATUS_CONTRACT_PROPOSED] = $langs->transnoentitiesnoconv(
'ContractProposed');
884 $this->labelStatus[self::STATUS_CONTRACT_SIGNED] = $langs->transnoentitiesnoconv(
'ContractSigned');
885 $this->labelStatus[self::STATUS_CONTRACT_REFUSED] = $langs->transnoentitiesnoconv(
'ContractRefused');
886 $this->labelStatus[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv(
'Refused');
887 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Canceled');
888 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
889 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Received');
890 $this->labelStatusShort[self::STATUS_CONTRACT_PROPOSED] = $langs->transnoentitiesnoconv(
'ContractProposed');
891 $this->labelStatusShort[self::STATUS_CONTRACT_SIGNED] = $langs->transnoentitiesnoconv(
'ContractSigned');
892 $this->labelStatusShort[self::STATUS_CONTRACT_REFUSED] = $langs->transnoentitiesnoconv(
'ContractRefused');
893 $this->labelStatusShort[self::STATUS_REFUSED] = $langs->transnoentitiesnoconv(
'Refused');
894 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Canceled');
897 $statusType =
'status'.$status;
899 if ($status == self::STATUS_CANCELED) {
900 $statusType =
'status9';
902 if ($status == self::STATUS_CONTRACT_PROPOSED) {
903 $statusType =
'status4';
905 if ($status == self::STATUS_CONTRACT_SIGNED) {
906 $statusType =
'status6';
908 if ($status == self::STATUS_REFUSED) {
909 $statusType =
'status10';
912 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
923 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
924 $sql .=
' fk_user_creat, fk_user_modif';
925 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
926 $sql .=
' WHERE t.rowid = '.((int) $id);
927 $result = $this->db->query($sql);
929 if ($this->db->num_rows($result)) {
930 $obj = $this->db->fetch_object($result);
932 $this->
id = $obj->rowid;
934 $this->user_creation_id = $obj->fk_user_creat;
935 $this->user_modification_id = $obj->fk_user_modif;
936 $this->date_creation = $this->db->jdate($obj->datec);
937 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
940 $this->db->free($result);
964 $this->lines = array();
967 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_recruitmentcandidature:=:'.((
int) $this->
id).
')');
969 if (is_numeric($result)) {
970 $this->error = $objectline->error;
971 $this->errors = $objectline->errors;
974 $this->lines = $result;
987 global $langs,
$conf;
988 $langs->load(
"recruitment@recruitment");
991 $conf->global->RECRUITMENT_RECRUITMENTCANDIDATURE_ADDON =
'mod_recruitmentcandidature_standard';
1001 $dirmodels = array_merge(array(
'/'), (array)
$conf->modules_parts[
'models']);
1002 foreach ($dirmodels as $reldir) {
1006 $mybool = ((bool) @include_once $dir.$file) || $mybool;
1014 if (class_exists($classname)) {
1015 $obj =
new $classname();
1016 '@phan-var-force ModeleNumRefRecruitmentCandidature $obj';
1017 $numref = $obj->getNextValue($this);
1019 if ($numref !=
'' && $numref !=
'-1') {
1022 $this->error = $obj->error;
1027 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
1031 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1047 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1049 global
$conf, $langs;
1052 $includedocgeneration = 0;
1054 $langs->load(
"recruitment@recruitment");
1064 $modelpath =
"core/modules/recruitment/doc/";
1066 if ($includedocgeneration && !empty($modele)) {
1067 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1082 global
$conf, $langs;
1098 $this->db->commit();
1114 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1116 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1117 $return .=
'<div class="info-box info-box-sm">';
1118 $return .=
'<span class="info-box-icon bg-infobox-action">';
1120 $return .=
'</span>';
1121 $return .=
'<div class="info-box-content">';
1122 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1123 if ($selected >= 0) {
1124 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1126 if (property_exists($this,
'fk_recruitmentjobposition')) {
1130 $return .=
'<div class="info-box-label tdoverflowmax150">';
1132 $tmpjob->fetch($this->fk_recruitmentjobposition);
1135 $return .=
'</div>';
1137 if (property_exists($this,
'phone') && $this->phone) {
1138 $return .=
'<div class="info-box-label small">'.dol_print_phone($this->phone, $mysoc->country_code, 0, 0,
'AC_TEL',
' ',
'phone').
'</div>';
1140 if (property_exists($this,
'email') && $this->
email) {
1141 $return .=
'<div class="info-box-label small">'.dol_print_email($this->
email, 0, 0, 1, 64, 1, 1).
'</div>';
1143 if (method_exists($this,
'getLibStatut')) {
1144 $return .=
'<div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
1146 $return .=
'</div>';
1147 $return .=
'</div>';
1148 $return .=
'</div>';
1154require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
Parent class of all other business classes (invoices, contracts, proposals, orders,...
deleteLineCommon(User $user, $idline, $notrigger=0)
Delete a line of object in database.
commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams=null)
Common function for all objects extending CommonObject for generating documents.
createCommon(User $user, $notrigger=0)
Create object in the database.
getFieldList($alias='', $excludefields=array())
Function to concat keys of fields.
updateCommon(User $user, $notrigger=0)
Update object into database.
setStatusCommon($user, $status, $notrigger=0, $triggercode='')
Set to a status.
initAsSpecimenCommon()
Initialise object with example values Id must be 0 if object instance is a specimen.
copy_linked_contact($objFrom, $source='internal')
Copy contact from one element to current.
fetchLinesCommon($morewhere='', $noextrafields=0)
Load object in memory from the database.
fetchCommon($id, $ref=null, $morewhere='', $noextrafields=0)
Load object in memory from the database.
deleteCommon(User $user, $notrigger=0, $forcechilddeletion=0)
Delete object in database.
call_trigger($triggerName, $user)
Call trigger based on this instance.
Parent class for class inheritance lines of business objects This class is useless for the moment so ...
Class to manage Dolibarr database access.
Class for RecruitmentCandidature.
getLinesArray()
Create an array of lines.
createFromClone(User $user, $fromid)
Clone an object into another one.
cancel($user, $notrigger=0)
Set cancel status.
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
getKanbanView($option='', $arraydata=null)
Return clickable link of object (with eventually picto)
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionally the picto)
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module.
reopen($user, $notrigger=0)
Set back to validated status.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
__construct(DoliDB $db)
Constructor.
getLibStatut($mode=0)
Return label of the status.
fetch($id, $ref=null, $email_msgid='')
Load object in memory from the database.
fetchLines()
Load object lines in memory from the database.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
update(User $user, $notrigger=0)
Update object into database.
validate($user, $notrigger=0)
Validate object.
deleteLine(User $user, $idline, $notrigger=0)
Delete a line of object in database.
LibStatut($status, $mode=0)
Return the status.
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the database.
getFullName($langs, $option=0, $nameorder=-1, $maxlen=0)
Return full name ('name+' '+lastname)
setDraft($user, $notrigger=0)
Set draft status.
create(User $user, $notrigger=0)
Create object into database.
info($id)
Load the info information in the object.
Class RecruitmentCandidatureLine.
__construct(DoliDB $db)
Constructor.
Class for RecruitmentJobPosition.
Class to manage Dolibarr users.
print $langs trans("Ref").' m titre as m m statut as status
Or an array listing all the potential status of the object: array: int of the status => translated la...
print $script_file $mode $langs defaultlang(is_numeric($duration_value) ? " delay=". $duration_value :"").(is_numeric($duration_value2) ? " after cd cd cd description as p label as s rowid as s nom as s email
Sender: Who sends the email ("Sender" has sent emails on behalf of "From").
dol_dir_list($utf8_path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0, $nbsecondsold=0)
Scan a directory and return a list of files/directories.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $allowothertags=array())
Show a picto called object_picto (generic function)
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
forgeSQLFromUniversalSearchCriteria($filter, &$errorstr='', $noand=0, $nopar=0, $noerror=0)
forgeSQLFromUniversalSearchCriteria
dol_now($mode='auto')
Return date for now.
dolGetFirstLastname($firstname, $lastname, $nameorder=-1)
Return firstname and lastname in correct order.
dolGetStatus($statusLabel='', $statusLabelShort='', $html='', $statusType='status0', $displayMode=0, $url='', $params=array())
Output the badge of a status.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
$conf db name
Only used if Module[ID]Name translation string is not found.