29require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobject.class.php';
41 public $module =
'hrm';
46 public $element =
'position';
51 public $table_element =
'hrm_job_user';
57 public $ismultientitymanaged = 0;
62 public $isextrafieldmanaged = 0;
67 public $picto =
'user-cog';
70 const STATUS_DRAFT = 0;
71 const STATUS_VALIDATED = 1;
72 const STATUS_CANCELED = 9;
105 public $fields=array(
106 'rowid' => array(
'type'=>
'integer',
'label'=>
'TechnicalID',
'enabled'=>
'1',
'position'=>1,
'notnull'=>1,
'visible'=>2,
'index'=>1,
'css'=>
'left',
'comment'=>
"Id"),
108 'date_creation' => array(
'type'=>
'datetime',
'label'=>
'DateCreation',
'enabled'=>
'1',
'position'=>500,
'notnull'=>1,
'visible'=>-2,),
109 'tms' => array(
'type'=>
'timestamp',
'label'=>
'DateModification',
'enabled'=>
'1',
'position'=>501,
'notnull'=>0,
'visible'=>-2,),
110 'fk_contrat' => array(
'type'=>
'integer:Contrat:contrat/class/contrat.class.php',
'label'=>
'fk_contrat',
'enabled'=>
'isModEnabled("contract")',
'position'=>50,
'notnull'=>0,
'visible'=>0,),
111 'fk_user' => array(
'type'=>
'integer:User:user/class/user.class.php:0:(t.statut:=:1)',
'label'=>
'Employee',
'enabled'=>
'1',
'position'=>55,
'notnull'=>1,
'visible'=>1,
'default'=>0),
112 'fk_job' => array(
'type'=>
'integer:Job:/hrm/class/job.class.php',
'label'=>
'JobProfile',
'enabled'=>
'1',
'position'=>56,
'notnull'=>1,
'visible'=>1,),
113 'date_start' => array(
'type'=>
'date',
'label'=>
'DateStart',
'enabled'=>
'1',
'position'=>101,
'notnull'=>1,
'visible'=>1,),
114 'date_end' => array(
'type'=>
'date',
'label'=>
'DateEnd',
'enabled'=>
'1',
'position'=>102,
'notnull'=>0,
'visible'=>1,),
115 'description' => array(
'type'=>
'text',
'label'=>
'Description',
'enabled'=>
'1',
'position'=>120,
'notnull'=>0,
'visible'=>3,),
116 'abort_comment' => array(
'type'=>
'varchar(255)',
'label'=>
'AbandonmentComment',
'enabled'=>
'getDolGlobalInt("HRM_JOB_POSITON_ENDING_COMMENT")',
'position'=>502,
'notnull'=>0,
'visible'=>1,),
117 'note_public' => array(
'type'=>
'html',
'label'=>
'NotePublic',
'enabled'=>
'1',
'position'=>151,
'notnull'=>0,
'visible'=>0,),
118 'note_private' => array(
'type'=>
'html',
'label'=>
'NotePrivate',
'enabled'=>
'1',
'position'=>152,
'notnull'=>0,
'visible'=>0,),
119 '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',),
120 'fk_user_modif' => array(
'type'=>
'integer:User:user/class/user.class.php',
'label'=>
'UserModif',
'enabled'=>
'1',
'position'=>511,
'notnull'=>-1,
'visible'=>-2,),
125 public $date_creation;
132 public $abort_comment;
134 public $note_private;
135 public $fk_user_creat;
136 public $fk_user_modif;
184 global $conf, $langs;
188 if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields[
'rowid'])) {
191 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
192 $this->fields[
'entity'][
'enabled'] = 0;
202 foreach ($this->fields as $key => $val) {
203 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
204 unset($this->fields[$key]);
209 if (is_object($langs)) {
210 foreach ($this->fields as $key => $val) {
211 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
212 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
213 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
233 return $resultcreate;
245 global $langs, $extrafields;
250 $object =
new self($this->db);
255 $result = $object->fetchCommon($fromid);
256 if ($result > 0 && !empty($object->table_element_line)) {
257 $object->fetchLines();
266 unset($object->fk_user_creat);
267 unset($object->import_key);
270 if (property_exists($object,
'ref')) {
271 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_" . $object->ref : $this->fields[
'ref'][
'default'];
273 if (property_exists($object,
'label')) {
274 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf") .
" " . $object->label : $this->fields[
'label'][
'default'];
276 if (property_exists($object,
'status')) {
277 $object->status = self::STATUS_DRAFT;
279 if (property_exists($object,
'date_creation')) {
280 $object->date_creation =
dol_now();
282 if (property_exists($object,
'date_modification')) {
283 $object->date_modification =
null;
287 if (is_array($object->array_options) && count($object->array_options) > 0) {
288 $extrafields->fetch_name_optionals_label($this->table_element);
289 foreach ($object->array_options as $key => $option) {
290 $shortkey = preg_replace(
'/options_/',
'', $key);
291 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
293 unset($object->array_options[$key]);
299 $object->context[
'createfromclone'] =
'createfromclone';
300 $result = $object->createCommon($user);
303 $this->error = $object->error;
304 $this->errors = $object->errors;
316 if (property_exists($this,
'fk_soc') && $this->fk_soc == $object->socid) {
323 unset($object->context[
'createfromclone']);
330 $this->db->rollback();
342 public function fetch($id, $ref =
null)
345 if ($result > 0 && !empty($this->table_element_line)) {
358 $this->lines = array();
376 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, array $filter = array(), $filtermode =
'AND')
386 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
387 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
388 $sql .=
' WHERE t.entity IN (' .
getEntity($this->element) .
')';
390 $sql .=
' WHERE 1 = 1';
394 if (count($filter) > 0) {
395 foreach ($filter as $key => $value) {
396 if ($key ==
't.rowid') {
397 $sqlwhere[] = $key .
'=' . $value;
398 } elseif ($key ==
'customsql') {
399 $sqlwhere[] = $value;
400 } elseif (in_array($this->fields[$key][
'type'], array(
'date',
'datetime',
'timestamp'))) {
401 $sqlwhere[] = $key .
' = \'' . $this->db->idate($value) .
'\'';
402 } elseif (strpos($value,
'%') ===
false) {
403 $sqlwhere[] = $key .
' IN (' . $this->db->sanitize($this->db->escape($value)) .
')';
405 $sqlwhere[] = $key .
' LIKE \'%' . $this->db->escape($value) .
'%\'';
409 if (count($sqlwhere) > 0) {
410 $sql .=
" AND (".implode(
" ".$filtermode.
" ", $sqlwhere).
")";
413 if (!empty($sortfield)) {
414 $sql .= $this->db->order($sortfield, $sortorder);
416 if (!empty($limit)) {
417 $sql .=
' ' . $this->db->plimit($limit, $offset);
420 $resql = $this->db->query($sql);
422 $num = $this->db->num_rows($resql);
424 while ($i < ($limit ? min($limit, $num) : $num)) {
425 $obj = $this->db->fetch_object($resql);
427 $record =
new self($this->db);
428 $record->setVarsFromFetchObj($obj);
430 $records[$record->id] = $record;
434 $this->db->free($resql);
438 $this->errors[] =
'Error ' . $this->db->lasterror();
439 dol_syslog(__METHOD__ .
' ' . join(
',', $this->errors), LOG_ERR);
464 public function delete(
User $user, $notrigger =
false)
480 if ($this->status < 0) {
481 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
498 global $conf, $langs;
500 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
505 if ($this->status == self::STATUS_VALIDATED) {
506 dol_syslog(get_class($this) .
"::validate action abandonned: already validated", LOG_WARNING);
523 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
528 $this->newref = $num;
532 $sql =
"UPDATE " . MAIN_DB_PREFIX . $this->table_element;
533 $sql .=
" SET ref = '" . $this->db->escape($num) .
"',";
534 $sql .=
" status = " . self::STATUS_VALIDATED;
535 if (!empty($this->fields[
'date_validation'])) {
536 $sql .=
", date_validation = '" . $this->db->idate($now) .
"'";
538 if (!empty($this->fields[
'fk_user_valid'])) {
539 $sql .=
", fk_user_valid = " . ((int) $user->id);
541 $sql .=
" WHERE rowid = " . ((int) $this->
id);
543 dol_syslog(get_class($this) .
"::validate()", LOG_DEBUG);
544 $resql = $this->db->query($sql);
547 $this->error = $this->db->lasterror();
551 if (!$error && !$notrigger) {
553 $result = $this->
call_trigger(
'HRM_POSITION_VALIDATE', $user);
562 $this->oldref = $this->ref;
565 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
567 $sql =
'UPDATE ' . MAIN_DB_PREFIX .
"ecm_files set filename = CONCAT('" . $this->db->escape($this->newref) .
"', SUBSTR(filename, " . (strlen($this->
ref) + 1) .
")), filepath = 'position/" . $this->db->escape($this->newref) .
"'";
568 $sql .=
" WHERE filename LIKE '" . $this->db->escape($this->
ref) .
"%' AND filepath = 'position/" . $this->db->escape($this->
ref) .
"' and entity = " . $conf->entity;
569 $resql = $this->db->query($sql);
572 $this->error = $this->db->lasterror();
574 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'position/".$this->db->escape($this->newref).
"'";
575 $sql .=
" WHERE filepath = 'position/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
576 $resql = $this->db->query($sql);
578 $error++; $this->error = $this->db->lasterror();
584 $dirsource = $conf->hrm->dir_output .
'/position/' . $oldref;
585 $dirdest = $conf->hrm->dir_output .
'/position/' . $newref;
586 if (!$error && file_exists($dirsource)) {
587 dol_syslog(get_class($this) .
"::validate() rename dir " . $dirsource .
" into " . $dirdest);
589 if (@rename($dirsource, $dirdest)) {
592 $listoffiles =
dol_dir_list($conf->hrm->dir_output .
'/position/' . $newref,
'files', 1,
'^' . preg_quote($oldref,
'/'));
593 foreach ($listoffiles as $fileentry) {
594 $dirsource = $fileentry[
'name'];
595 $dirdest = preg_replace(
'/^' . preg_quote($oldref,
'/') .
'/', $newref, $dirsource);
596 $dirsource = $fileentry[
'path'] .
'/' . $dirsource;
597 $dirdest = $fileentry[
'path'] .
'/' . $dirdest;
598 @rename($dirsource, $dirdest);
608 $this->status = self::STATUS_VALIDATED;
615 $this->db->rollback();
631 if ($this->status <= self::STATUS_DRAFT) {
642 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'POSITION_UNVALIDATE');
652 public function cancel($user, $notrigger = 0)
655 if ($this->status != self::STATUS_VALIDATED) {
666 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'POSITION_CANCEL');
676 public function reopen($user, $notrigger = 0)
679 if ($this->status != self::STATUS_CANCELED) {
690 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'POSITION_REOPEN');
703 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
705 global $conf, $langs, $hookmanager;
707 if (!empty($conf->dol_no_mouse_hover)) {
713 $label =
img_picto(
'', $this->picto) .
' <u>' . $langs->trans(
"Position") .
'</u>';
714 if (isset($this->status)) {
718 $label .=
'<b>' . $langs->trans(
'Ref') .
':</b> ' . $this->ref;
720 $url =
dol_buildpath(
'/hrm/position_card.php', 1) .
'?id=' . $this->id;
722 if ($option !=
'nolink') {
724 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
725 if ($save_lastsearch_value == -1 && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
726 $add_save_lastsearch_values = 1;
728 if ($add_save_lastsearch_values) {
729 $url .=
'&save_lastsearch_values=1';
734 if (empty($notooltip)) {
735 if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
736 $label = $langs->trans(
"ShowPosition");
740 $linkclose .=
' class="classfortooltip' . ($morecss ?
' ' . $morecss :
'') .
'"';
742 $linkclose = ($morecss ?
' class="' . $morecss .
'"' :
'');
745 if ($option ==
'nolink') {
746 $linkstart =
'<span';
748 $linkstart =
'<a href="' . $url .
'"';
750 $linkstart .= $linkclose .
'>';
751 if ($option ==
'nolink') {
752 $linkend =
'</span>';
757 $result .= $linkstart;
759 if (empty($this->showphoto_on_popup)) {
761 $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);
765 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
767 list($class, $module) = explode(
'@', $this->picto);
770 $filename = $filearray[0][
'name'];
771 if (!empty($filename)) {
772 $pospoint = strpos($filearray[0][
'name'],
'.');
774 $pathtophoto = $class .
'/' . $this->
ref .
'/thumbs/' . substr($filename, 0, $pospoint) .
'_mini' . substr($filename, $pospoint);
775 if (empty($conf->global->{strtoupper($module .
'_' . $class) .
'_FORMATLISTPHOTOSASUSERS'})) {
776 $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>';
778 $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>';
783 $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);
788 if ($withpicto != 2) {
789 $result .= $this->ref;
795 global $action, $hookmanager;
796 $hookmanager->initHooks(array(
'positiondao'));
797 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
798 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
800 $result = $hookmanager->resPrint;
802 $result .= $hookmanager->resPrint;
816 return $this->LibStatut($this->status, $mode);
831 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
834 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
835 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
836 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
837 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
838 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
839 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
842 $statusType =
'status' . $status;
844 if ($status == self::STATUS_CANCELED) {
845 $statusType =
'status6';
848 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
865 public function showInputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss = 0, $nonewbutton = 0)
869 if ($key ==
'fk_user') {
870 $vacantId = $keyprefix.$key.
'vacant'.$keysuffix;
872 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
873 $out .=
'<label class="nowrap position-fk-user classfortooltip" title="'.dol_escape_js($langs->trans(
'VacantCheckboxHelper')).
'"><input type="checkbox" id="'.$vacantId.
'" name="'.$vacantId.
'" /> '.$langs->trans(
"Vacant").
'</label>';
876 <script
type=
"text/javascript">
877 $(document).ready(
function () {
878 var checkbox = $(
'#<?php print $vacantId; ?>');
879 var searchfkuser = $(
'#<?php print $keyprefix.$key.$keysuffix; ?>');
880 checkbox.click(
function () {
881 if (checkbox.prop(
'checked')) {
882 searchfkuser.val(0).trigger(
'change');
883 searchfkuser.prop(
'disabled', 1);
885 searchfkuser.prop(
'disabled', 0);
892 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
911 public function showOutputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss =
'')
915 if ($key ==
'fk_user' && $this->fk_user == 0) {
916 return $langs->trans(
"VacantPosition");
918 return parent::showOutputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
930 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
931 $sql .=
' fk_user_creat, fk_user_modif';
932 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
933 $sql .=
' WHERE t.rowid = ' . ((int) $id);
934 $result = $this->db->query($sql);
936 if ($this->db->num_rows($result)) {
937 $obj = $this->db->fetch_object($result);
938 $this->
id = $obj->rowid;
940 $this->user_creation_id = $obj->fk_user_creat;
941 $this->user_modification_id = $obj->fk_user_modif;
942 $this->date_creation = $this->db->jdate($obj->datec);
943 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
946 $this->db->free($result);
964 $this->initAsSpecimenCommon();
974 $this->lines = array();
977 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0, array(
'customsql' =>
'fk_position = ' . $this->
id));
979 if (is_numeric($result)) {
980 $this->error = $objectline->error;
981 $this->errors = $objectline->errors;
984 $this->lines = $result;
996 global $langs, $conf;
999 if (empty($conf->global->hrm_POSITION_ADDON)) {
1000 $conf->global->hrm_POSITION_ADDON =
'mod_position_standard';
1003 if (!empty($conf->global->hrm_POSITION_ADDON)) {
1006 $file = $conf->global->hrm_POSITION_ADDON .
".php";
1007 $classname = $conf->global->hrm_POSITION_ADDON;
1010 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
1011 foreach ($dirmodels as $reldir) {
1015 $mybool |= @include_once $dir . $file;
1018 if ($mybool ===
false) {
1023 if (class_exists($classname)) {
1024 $obj =
new $classname();
1025 $numref = $obj->getNextValue($this);
1027 if ($numref !=
'' && $numref !=
'-1') {
1030 $this->error = $obj->error;
1035 print $langs->trans(
"Error") .
" " . $langs->trans(
"ClassNotFound") .
' ' . $classname;
1039 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1052 $TPosition = array();
1054 $TPosition = $this->fetchAll(
'ASC',
't.rowid', 0, 0, array(
'customsql' =>
'fk_user=' . $userid));
1070 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1072 global $conf, $langs;
1075 $includedocgeneration = 0;
1077 $langs->load(
"hrm");
1080 $modele =
'standard_position';
1082 if (!empty($this->model_pdf)) {
1083 $modele = $this->model_pdf;
1084 } elseif (!empty($conf->global->POSITION_ADDON_PDF)) {
1085 $modele = $conf->global->POSITION_ADDON_PDF;
1089 $modelpath =
"core/modules/hrm/doc/";
1091 if ($includedocgeneration && !empty($modele)) {
1092 $result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1107 global $conf, $langs;
1123 $this->db->commit();
1137 global $selected, $langs;
1139 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1141 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1142 $return .=
'<div class="info-box info-box-sm">';
1143 $return .=
'<span class="info-box-icon bg-infobox-action">';
1145 $return .=
'</span>';
1146 $return .=
'<div class="info-box-content">';
1147 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->getNomUrl(1) : $this->ref).
'</span>';
1148 $return .=
'<input class="fright" id="cb'.$this->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1149 if (!empty($arraydata[
'user'])) {
1150 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'user'].
'</span>';
1152 if (!empty($arraydata[
'job'])) {
1154 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'job'].
'</span>';
1156 if (property_exists($this,
'date_start') && property_exists($this,
'date_end')) {
1157 $return .=
'<br><div class ="margintoponly"><span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_start),
'day').
'</span>';
1158 $return .=
' - <span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_end),
'day').
'</span></div>';
1160 $return .=
'</div>';
1161 $return .=
'</div>';
1162 $return .=
'</div>';
1168require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobjectline.class.php';
1181 public $isextrafieldmanaged = 0;
Parent class of all other business classes (invoices, contracts, proposals, orders,...
deleteLineCommon(User $user, $idline, $notrigger=false)
Delete a line of object in database.
fetchCommon($id, $ref=null, $morewhere='')
Load object in memory from the database.
createCommon(User $user, $notrigger=false)
Create object into database.
deleteCommon(User $user, $notrigger=false, $forcechilddeletion=0)
Delete object in database.
getFieldList($alias='', $excludefields=array())
Function to concat keys of fields.
setStatusCommon($user, $status, $notrigger=0, $triggercode='')
Set to a status.
copy_linked_contact($objFrom, $source='internal')
Copy contact from one element to current.
updateCommon(User $user, $notrigger=false)
Update object into database.
fetchLinesCommon($morewhere='')
Load object in memory from the 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.
create(User $user, $notrigger=false)
Create object into database.
validate($user, $notrigger=0)
Validate object.
cancel($user, $notrigger=0)
Set cancel status.
info($id)
Load the info information in the object.
update(User $user, $notrigger=false)
Update object into database.
getLibStatut($mode=0)
Return the label of the status.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
deleteLine(User $user, $idline, $notrigger=false)
Delete a line of object in database.
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module.
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionaly the picto)
getLinesArray()
Create an array of lines.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
setDraft($user, $notrigger=0)
Set draft status.
getKanbanView($option='', $arraydata=null)
Return clicable link of object (with eventually picto)
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, array $filter=array(), $filtermode='AND')
Load list of objects in memory from the database.
fetch($id, $ref=null)
Load object in memory from the database.
showInputField($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss=0, $nonewbutton=0)
Return HTML string to put an input field into a page Code very similar with showInputField of extra f...
showOutputField($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss='')
Return HTML string to show a field into a page Code very similar with showOutputField of extra fields...
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
LibStatut($status, $mode=0)
Return the status.
getForUser($userid)
getForUser
reopen($user, $notrigger=0)
Set back to validated status.
fetchLines()
Load object lines in memory from the database.
createFromClone(User $user, $fromid)
Clone an object into another one.
__construct(DoliDB $db)
Constructor.
__construct(DoliDB $db)
Constructor.
Class to manage Dolibarr users.
dol_dir_list($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.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
dol_now($mode='auto')
Return date for now.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
getEntity($element, $shared=1, $currentobject=null)
Get list of entity id to use.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(preg_match('/crypted:/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type