31require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobject.class.php';
41 public $module =
'hrm';
46 public $element =
'position';
51 public $table_element =
'hrm_job_user';
56 public $picto =
'user-cog';
59 const STATUS_DRAFT = 0;
60 const STATUS_VALIDATED = 1;
61 const STATUS_CANCELED = 9;
94 public $fields = array(
95 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 2,
'index' => 1,
'css' =>
'left',
'comment' =>
"Id"),
97 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -2,),
98 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,),
99 'fk_contrat' => array(
'type' =>
'integer:Contrat:contrat/class/contrat.class.php',
'label' =>
'fk_contrat',
'enabled' =>
'isModEnabled("contract")',
'position' => 50,
'notnull' => 0,
'visible' => 0,),
100 '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'),
101 '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'),
102 'date_start' => array(
'type' =>
'date',
'label' =>
'DateStart',
'enabled' => 1,
'position' => 101,
'notnull' => 1,
'visible' => 1,),
103 'date_end' => array(
'type' =>
'date',
'label' =>
'DateEnd',
'enabled' => 1,
'position' => 102,
'notnull' => 0,
'visible' => 1,),
104 'description' => array(
'type' =>
'text',
'label' =>
'Description',
'enabled' => 1,
'position' => 120,
'notnull' => 0,
'visible' => 3,),
105 'abort_comment' => array(
'type' =>
'varchar(255)',
'label' =>
'AbandonmentComment',
'enabled' =>
'getDolGlobalInt("HRM_JOB_POSITON_ENDING_COMMENT")',
'position' => 502,
'notnull' => 0,
'visible' => 1,),
106 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 151,
'notnull' => 0,
'visible' => 0,),
107 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 152,
'notnull' => 0,
'visible' => 0,),
108 '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',),
109 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,),
146 public $abort_comment;
154 public $note_private;
158 public $fk_user_creat;
162 public $fk_user_modif;
210 global $conf, $langs;
214 $this->ismultientitymanaged = 0;
215 $this->isextrafieldmanaged = 0;
220 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
221 $this->fields[
'entity'][
'enabled'] = 0;
231 foreach ($this->fields as $key => $val) {
232 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
233 unset($this->fields[$key]);
238 if (is_object($langs)) {
239 foreach ($this->fields as $key => $val) {
240 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
241 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
242 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
262 return $resultcreate;
274 global $langs, $extrafields;
284 $result =
$object->fetchCommon($fromid);
285 if ($result > 0 && !empty(
$object->table_element_line)) {
299 if (property_exists(
$object,
'ref')) {
300 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_" .
$object->ref : $this->fields[
'ref'][
'default'];
302 if (property_exists(
$object,
'label')) {
303 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf") .
" " .
$object->label : $this->fields[
'label'][
'default'];
305 if (property_exists(
$object,
'status')) {
306 $object->status = self::STATUS_DRAFT;
308 if (property_exists(
$object,
'date_creation')) {
311 if (property_exists(
$object,
'date_modification')) {
312 $object->date_modification =
null;
316 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
317 $extrafields->fetch_name_optionals_label($this->table_element);
318 foreach (
$object->array_options as $key => $option) {
319 $shortkey = preg_replace(
'/options_/',
'', $key);
320 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
322 unset(
$object->array_options[$key]);
328 $object->context[
'createfromclone'] =
'createfromclone';
329 $result =
$object->createCommon($user);
344 if (property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
351 unset(
$object->context[
'createfromclone']);
358 $this->db->rollback();
370 public function fetch($id, $ref =
null)
373 if ($result > 0 && !empty($this->table_element_line)) {
386 $this->lines = array();
405 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
413 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
414 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
415 $sql .=
' WHERE t.entity IN (' .
getEntity($this->element) .
')';
417 $sql .=
' WHERE 1 = 1';
424 $this->errors[] = $errormessage;
425 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
429 if (!empty($sortfield)) {
430 $sql .= $this->db->order($sortfield, $sortorder);
432 if (!empty($limit)) {
433 $sql .=
' ' . $this->db->plimit($limit, $offset);
436 $resql = $this->db->query($sql);
438 $num = $this->db->num_rows($resql);
440 while ($i < ($limit ? min($limit, $num) : $num)) {
441 $obj = $this->db->fetch_object($resql);
443 $record =
new self($this->db);
444 $record->setVarsFromFetchObj($obj);
446 $records[$record->id] = $record;
450 $this->db->free($resql);
454 $this->errors[] =
'Error ' . $this->db->lasterror();
455 dol_syslog(__METHOD__ .
' ' . implode(
',', $this->errors), LOG_ERR);
480 public function delete(
User $user, $notrigger = 0)
497 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
514 global $conf, $langs;
516 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
521 if ($this->
status == self::STATUS_VALIDATED) {
522 dol_syslog(get_class($this) .
"::validate action abandoned: already validated", LOG_WARNING);
539 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
544 $this->newref = $num;
548 $sql =
"UPDATE " . MAIN_DB_PREFIX . $this->table_element;
549 $sql .=
" SET ref = '" . $this->db->escape($num) .
"',";
550 $sql .=
" status = " . self::STATUS_VALIDATED;
551 if (!empty($this->fields[
'date_validation'])) {
552 $sql .=
", date_validation = '" . $this->db->idate($now) .
"'";
554 if (!empty($this->fields[
'fk_user_valid'])) {
555 $sql .=
", fk_user_valid = " . ((int) $user->id);
557 $sql .=
" WHERE rowid = " . ((int) $this->
id);
559 dol_syslog(get_class($this) .
"::validate()", LOG_DEBUG);
560 $resql = $this->db->query($sql);
563 $this->error = $this->db->lasterror();
567 if (!$error && !$notrigger) {
569 $result = $this->
call_trigger(
'HRM_POSITION_VALIDATE', $user);
578 $this->oldref = $this->ref;
581 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
583 $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) .
"'";
584 $sql .=
" WHERE filename LIKE '" . $this->db->escape($this->
ref) .
"%' AND filepath = 'position/" . $this->db->escape($this->
ref) .
"' and entity = " . $conf->entity;
585 $resql = $this->db->query($sql);
588 $this->error = $this->db->lasterror();
590 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'position/".$this->db->escape($this->newref).
"'";
591 $sql .=
" WHERE filepath = 'position/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
592 $resql = $this->db->query($sql);
595 $this->error = $this->db->lasterror();
601 $dirsource = $conf->hrm->dir_output .
'/position/' . $oldref;
602 $dirdest = $conf->hrm->dir_output .
'/position/' . $newref;
603 if (!$error && file_exists($dirsource)) {
604 dol_syslog(get_class($this) .
"::validate() rename dir " . $dirsource .
" into " . $dirdest);
606 if (@rename($dirsource, $dirdest)) {
609 $listoffiles =
dol_dir_list($conf->hrm->dir_output .
'/position/' . $newref,
'files', 1,
'^' . preg_quote($oldref,
'/'));
610 foreach ($listoffiles as $fileentry) {
611 $dirsource = $fileentry[
'name'];
612 $dirdest = preg_replace(
'/^' . preg_quote($oldref,
'/') .
'/', $newref, $dirsource);
613 $dirsource = $fileentry[
'path'] .
'/' . $dirsource;
614 $dirdest = $fileentry[
'path'] .
'/' . $dirdest;
615 @rename($dirsource, $dirdest);
625 $this->
status = self::STATUS_VALIDATED;
632 $this->db->rollback();
648 if ($this->
status <= self::STATUS_DRAFT) {
659 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'POSITION_UNVALIDATE');
669 public function cancel($user, $notrigger = 0)
672 if ($this->
status != self::STATUS_VALIDATED) {
683 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'POSITION_CANCEL');
693 public function reopen($user, $notrigger = 0)
696 if ($this->
status != self::STATUS_CANCELED) {
707 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'POSITION_REOPEN');
720 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
722 global $conf, $langs, $hookmanager;
724 if (!empty($conf->dol_no_mouse_hover)) {
730 $label =
img_picto(
'', $this->picto) .
' <u>' . $langs->trans(
"Position") .
'</u>';
731 if (isset($this->
status)) {
735 $label .=
'<b>' . $langs->trans(
'Ref') .
':</b> ' . $this->ref;
737 $url =
dol_buildpath(
'/hrm/position_card.php', 1) .
'?id=' . $this->id;
739 if ($option !=
'nolink') {
741 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
742 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
743 $add_save_lastsearch_values = 1;
745 if ($add_save_lastsearch_values) {
746 $url .=
'&save_lastsearch_values=1';
751 if (empty($notooltip)) {
753 $label = $langs->trans(
"ShowPosition");
757 $linkclose .=
' class="classfortooltip' . ($morecss ?
' ' . $morecss :
'') .
'"';
759 $linkclose = ($morecss ?
' class="' . $morecss .
'"' :
'');
762 if ($option ==
'nolink') {
763 $linkstart =
'<span';
765 $linkstart =
'<a href="' . $url .
'"';
767 $linkstart .= $linkclose .
'>';
768 if ($option ==
'nolink') {
769 $linkend =
'</span>';
774 $result .= $linkstart;
776 if (empty($this->showphoto_on_popup)) {
778 $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);
782 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
784 list($class, $module) = explode(
'@', $this->picto);
787 $filename = $filearray[0][
'name'];
788 if (!empty($filename)) {
789 $pospoint = strpos($filearray[0][
'name'],
'.');
791 $pathtophoto = $class .
'/' . $this->
ref .
'/thumbs/' . substr($filename, 0, $pospoint) .
'_mini' . substr($filename, $pospoint);
792 if (!
getDolGlobalString(strtoupper($module .
'_' . $class) .
'_FORMATLISTPHOTOSASUSERS')) {
793 $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>';
795 $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>';
800 $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);
805 if ($withpicto != 2) {
806 $result .= $this->ref;
812 global $action, $hookmanager;
813 $hookmanager->initHooks(array(
'positiondao'));
814 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
815 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
817 $result = $hookmanager->resPrint;
819 $result .= $hookmanager->resPrint;
848 if (is_null($status)) {
852 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
855 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
856 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
857 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
858 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
859 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
860 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
863 $statusType =
'status' . $status;
865 if ($status == self::STATUS_CANCELED) {
866 $statusType =
'status6';
869 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
886 public function showInputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss = 0, $nonewbutton = 0)
890 if ($key ==
'fk_user') {
891 $vacantId = $keyprefix.$key.
'vacant'.$keysuffix;
893 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
894 $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>'; ?>
895 <script
type=
"text/javascript">
896 $(document).ready(
function () {
897 var checkbox = $(
'#<?php print $vacantId; ?>');
898 var searchfkuser = $(
'#<?php print $keyprefix.$key.$keysuffix; ?>');
899 checkbox.click(
function () {
900 if (checkbox.prop(
'checked')) {
901 searchfkuser.val(0).trigger(
'change');
902 searchfkuser.prop(
'disabled', 1);
904 searchfkuser.prop(
'disabled', 0);
911 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
930 public function showOutputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss =
'')
934 if ($key ==
'fk_user' && $this->fk_user == 0) {
935 return $langs->trans(
"VacantPosition");
937 return parent::showOutputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
949 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
950 $sql .=
' fk_user_creat, fk_user_modif';
951 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
952 $sql .=
' WHERE t.rowid = ' . ((int) $id);
953 $result = $this->db->query($sql);
955 if ($this->db->num_rows($result)) {
956 $obj = $this->db->fetch_object($result);
958 $this->
id = $obj->rowid;
960 $this->user_creation_id = $obj->fk_user_creat;
961 $this->user_modification_id = $obj->fk_user_modif;
962 $this->date_creation = $this->db->jdate($obj->datec);
963 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
966 $this->db->free($result);
994 $this->lines = array();
997 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_position:=:'.((
int) $this->
id).
')');
999 if (is_numeric($result)) {
1003 $this->lines = $result;
1004 return $this->lines;
1015 global $langs, $conf;
1016 $langs->load(
"hrm");
1019 $conf->global->hrm_POSITION_ADDON =
'mod_position_standard';
1029 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
1030 foreach ($dirmodels as $reldir) {
1034 $mybool = ((bool) @include_once $dir.$file) || $mybool;
1042 if (class_exists($classname)) {
1043 $obj =
new $classname();
1044 '@phan-var-force ModeleNumRefEvaluation $obj';
1045 $numref = $obj->getNextValue($this);
1047 if ($numref !=
'' && $numref !=
'-1') {
1050 $this->error = $obj->error;
1055 print $langs->trans(
"Error") .
" " . $langs->trans(
"ClassNotFound") .
' ' . $classname;
1059 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1072 $TPosition = array();
1074 $TPosition = $this->
fetchAll(
'ASC',
't.rowid', 0, 0,
'(fk_user:=:'.((
int) $userid).
')');
1090 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1092 global $conf, $langs;
1095 $includedocgeneration = 0;
1097 $langs->load(
"hrm");
1100 $modele =
'standard_position';
1102 if (!empty($this->model_pdf)) {
1103 $modele = $this->model_pdf;
1109 $modelpath =
"core/modules/hrm/doc/";
1111 if ($includedocgeneration && !empty($modele)) {
1112 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1127 global $selected, $langs;
1129 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1131 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1132 $return .=
'<div class="info-box info-box-sm">';
1133 $return .=
'<span class="info-box-icon bg-infobox-action">';
1135 $return .=
'</span>';
1136 $return .=
'<div class="info-box-content">';
1137 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1138 $return .=
'<input class="fright" id="cb'.$this->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1139 if (!empty($arraydata[
'user'])) {
1140 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'user'].
'</span>';
1142 if (!empty($arraydata[
'job'])) {
1144 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'job'].
'</span>';
1146 if (property_exists($this,
'date_start') && property_exists($this,
'date_end')) {
1147 $return .=
'<br><div class ="nothing"><span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_start),
'day').
'</span>';
1148 $return .=
' - <span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_end),
'day').
'</span></div>';
1150 $return .=
'</div>';
1151 $return .=
'</div>';
1152 $return .=
'</div>';
1158require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobjectline.class.php';
1177 $this->isextrafieldmanaged = 0;
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.
setErrorsFromObject($object)
setErrorsFromObject
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.
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=0)
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.
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the 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 optionally 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 clickable link of object (with eventually picto)
deleteLine(User $user, $idline, $notrigger=0)
Delete a line of object in 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...
create(User $user, $notrigger=0)
Create object into database.
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...
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.
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...
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_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (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.
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_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.
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