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,
'picto'=>
'user',
'css'=>
'maxwidth300 widthcentpercentminusxx',
'csslist'=>
'tdoverflowmax150'),
112 'fk_job' => array(
'type'=>
'integer:Job:/hrm/class/job.class.php',
'label'=>
'JobProfile',
'enabled'=>
'1',
'position'=>56,
'notnull'=>1,
'visible'=>1,
'picto'=>
'jobprofile',
'css'=>
'maxwidth300 widthcentpercentminusxx',
'csslist'=>
'tdoverflowmax150'),
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;
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 (array_key_exists($key, $this->fields) && 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)
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);
579 $this->error = $this->db->lasterror();
585 $dirsource = $conf->hrm->dir_output .
'/position/' . $oldref;
586 $dirdest = $conf->hrm->dir_output .
'/position/' . $newref;
587 if (!$error && file_exists($dirsource)) {
588 dol_syslog(get_class($this) .
"::validate() rename dir " . $dirsource .
" into " . $dirdest);
590 if (@rename($dirsource, $dirdest)) {
593 $listoffiles =
dol_dir_list($conf->hrm->dir_output .
'/position/' . $newref,
'files', 1,
'^' . preg_quote($oldref,
'/'));
594 foreach ($listoffiles as $fileentry) {
595 $dirsource = $fileentry[
'name'];
596 $dirdest = preg_replace(
'/^' . preg_quote($oldref,
'/') .
'/', $newref, $dirsource);
597 $dirsource = $fileentry[
'path'] .
'/' . $dirsource;
598 $dirdest = $fileentry[
'path'] .
'/' . $dirdest;
599 @rename($dirsource, $dirdest);
609 $this->
status = self::STATUS_VALIDATED;
616 $this->db->rollback();
632 if ($this->
status <= self::STATUS_DRAFT) {
643 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'POSITION_UNVALIDATE');
653 public function cancel($user, $notrigger = 0)
656 if ($this->
status != self::STATUS_VALIDATED) {
667 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'POSITION_CANCEL');
677 public function reopen($user, $notrigger = 0)
680 if ($this->
status != self::STATUS_CANCELED) {
691 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'POSITION_REOPEN');
704 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
706 global $conf, $langs, $hookmanager;
708 if (!empty($conf->dol_no_mouse_hover)) {
714 $label =
img_picto(
'', $this->picto) .
' <u>' . $langs->trans(
"Position") .
'</u>';
715 if (isset($this->
status)) {
719 $label .=
'<b>' . $langs->trans(
'Ref') .
':</b> ' . $this->ref;
721 $url =
dol_buildpath(
'/hrm/position_card.php', 1) .
'?id=' . $this->id;
723 if ($option !=
'nolink') {
725 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
726 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
727 $add_save_lastsearch_values = 1;
729 if ($add_save_lastsearch_values) {
730 $url .=
'&save_lastsearch_values=1';
735 if (empty($notooltip)) {
737 $label = $langs->trans(
"ShowPosition");
741 $linkclose .=
' class="classfortooltip' . ($morecss ?
' ' . $morecss :
'') .
'"';
743 $linkclose = ($morecss ?
' class="' . $morecss .
'"' :
'');
746 if ($option ==
'nolink') {
747 $linkstart =
'<span';
749 $linkstart =
'<a href="' . $url .
'"';
751 $linkstart .= $linkclose .
'>';
752 if ($option ==
'nolink') {
753 $linkend =
'</span>';
758 $result .= $linkstart;
760 if (empty($this->showphoto_on_popup)) {
762 $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);
766 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
768 list($class, $module) = explode(
'@', $this->picto);
771 $filename = $filearray[0][
'name'];
772 if (!empty($filename)) {
773 $pospoint = strpos($filearray[0][
'name'],
'.');
775 $pathtophoto = $class .
'/' . $this->
ref .
'/thumbs/' . substr($filename, 0, $pospoint) .
'_mini' . substr($filename, $pospoint);
776 if (!
getDolGlobalString(strtoupper($module .
'_' . $class) .
'_FORMATLISTPHOTOSASUSERS')) {
777 $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>';
779 $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>';
784 $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);
789 if ($withpicto != 2) {
790 $result .= $this->ref;
796 global $action, $hookmanager;
797 $hookmanager->initHooks(array(
'positiondao'));
798 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
799 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
801 $result = $hookmanager->resPrint;
803 $result .= $hookmanager->resPrint;
832 if (is_null($status)) {
836 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
839 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
840 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
841 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
842 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
843 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
844 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
847 $statusType =
'status' . $status;
849 if ($status == self::STATUS_CANCELED) {
850 $statusType =
'status6';
853 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
870 public function showInputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss = 0, $nonewbutton = 0)
874 if ($key ==
'fk_user') {
875 $vacantId = $keyprefix.$key.
'vacant'.$keysuffix;
877 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
878 $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>'; ?>
879 <script
type=
"text/javascript">
880 $(document).ready(
function () {
881 var checkbox = $(
'#<?php print $vacantId; ?>');
882 var searchfkuser = $(
'#<?php print $keyprefix.$key.$keysuffix; ?>');
883 checkbox.click(
function () {
884 if (checkbox.prop(
'checked')) {
885 searchfkuser.val(0).trigger(
'change');
886 searchfkuser.prop(
'disabled', 1);
888 searchfkuser.prop(
'disabled', 0);
895 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
914 public function showOutputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss =
'')
918 if ($key ==
'fk_user' && $this->fk_user == 0) {
919 return $langs->trans(
"VacantPosition");
921 return parent::showOutputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
933 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
934 $sql .=
' fk_user_creat, fk_user_modif';
935 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
936 $sql .=
' WHERE t.rowid = ' . ((int) $id);
937 $result = $this->db->query($sql);
939 if ($this->db->num_rows($result)) {
940 $obj = $this->db->fetch_object($result);
942 $this->
id = $obj->rowid;
944 $this->user_creation_id = $obj->fk_user_creat;
945 $this->user_modification_id = $obj->fk_user_modif;
946 $this->date_creation = $this->db->jdate($obj->datec);
947 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
950 $this->db->free($result);
978 $this->lines = array();
981 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0, array(
'customsql' =>
'fk_position = ' . $this->
id));
983 if (is_numeric($result)) {
984 $this->error = $objectline->error;
985 $this->errors = $objectline->errors;
988 $this->lines = $result;
1000 global $langs, $conf;
1001 $langs->load(
"hrm");
1004 $conf->global->hrm_POSITION_ADDON =
'mod_position_standard';
1011 $classname = $conf->global->hrm_POSITION_ADDON;
1014 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
1015 foreach ($dirmodels as $reldir) {
1019 $mybool |= @include_once $dir . $file;
1022 if ($mybool ===
false) {
1027 if (class_exists($classname)) {
1028 $obj =
new $classname();
1029 $numref = $obj->getNextValue($this);
1031 if ($numref !=
'' && $numref !=
'-1') {
1034 $this->error = $obj->error;
1039 print $langs->trans(
"Error") .
" " . $langs->trans(
"ClassNotFound") .
' ' . $classname;
1043 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1056 $TPosition = array();
1058 $TPosition = $this->
fetchAll(
'ASC',
't.rowid', 0, 0, array(
'customsql' =>
'fk_user=' . $userid));
1074 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1076 global $conf, $langs;
1079 $includedocgeneration = 0;
1081 $langs->load(
"hrm");
1084 $modele =
'standard_position';
1086 if (!empty($this->model_pdf)) {
1087 $modele = $this->model_pdf;
1089 $modele = $conf->global->POSITION_ADDON_PDF;
1093 $modelpath =
"core/modules/hrm/doc/";
1095 if ($includedocgeneration && !empty($modele)) {
1096 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1111 global $conf, $langs;
1127 $this->db->commit();
1141 global $selected, $langs;
1143 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1145 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1146 $return .=
'<div class="info-box info-box-sm">';
1147 $return .=
'<span class="info-box-icon bg-infobox-action">';
1149 $return .=
'</span>';
1150 $return .=
'<div class="info-box-content">';
1151 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1152 $return .=
'<input class="fright" id="cb'.$this->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1153 if (!empty($arraydata[
'user'])) {
1154 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'user'].
'</span>';
1156 if (!empty($arraydata[
'job'])) {
1158 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'job'].
'</span>';
1160 if (property_exists($this,
'date_start') && property_exists($this,
'date_end')) {
1161 $return .=
'<br><div class ="nothing"><span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_start),
'day').
'</span>';
1162 $return .=
' - <span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_end),
'day').
'</span></div>';
1164 $return .=
'</div>';
1165 $return .=
'</div>';
1166 $return .=
'</div>';
1172require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobjectline.class.php';
1185 public $isextrafieldmanaged = 0;
print $langs trans("AuditedSecurityEvents").'</strong >< span class="opacitymedium"></span >< br > status
Parent class of all other business classes (invoices, contracts, proposals, orders,...
commonGenerateDocument($modelspath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams=null)
Common function for all objects extending CommonObject for generating documents.
deleteLineCommon(User $user, $idline, $notrigger=false)
Delete a line of object in 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.
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.
updateCommon(User $user, $notrigger=false)
Update object into database.
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.
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.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
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