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,),
119 public $abort_comment;
121 public $note_private;
122 public $fk_user_creat;
123 public $fk_user_modif;
171 global $conf, $langs;
175 $this->ismultientitymanaged = 0;
176 $this->isextrafieldmanaged = 0;
181 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
182 $this->fields[
'entity'][
'enabled'] = 0;
192 foreach ($this->fields as $key => $val) {
193 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
194 unset($this->fields[$key]);
199 if (is_object($langs)) {
200 foreach ($this->fields as $key => $val) {
201 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
202 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
203 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
223 return $resultcreate;
235 global $langs, $extrafields;
245 $result =
$object->fetchCommon($fromid);
246 if ($result > 0 && !empty(
$object->table_element_line)) {
260 if (property_exists(
$object,
'ref')) {
261 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_" .
$object->ref : $this->fields[
'ref'][
'default'];
263 if (property_exists(
$object,
'label')) {
264 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf") .
" " .
$object->label : $this->fields[
'label'][
'default'];
266 if (property_exists(
$object,
'status')) {
267 $object->status = self::STATUS_DRAFT;
269 if (property_exists(
$object,
'date_creation')) {
272 if (property_exists(
$object,
'date_modification')) {
273 $object->date_modification =
null;
277 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
278 $extrafields->fetch_name_optionals_label($this->table_element);
279 foreach (
$object->array_options as $key => $option) {
280 $shortkey = preg_replace(
'/options_/',
'', $key);
281 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
283 unset(
$object->array_options[$key]);
289 $object->context[
'createfromclone'] =
'createfromclone';
290 $result =
$object->createCommon($user);
305 if (property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
312 unset(
$object->context[
'createfromclone']);
319 $this->db->rollback();
331 public function fetch($id, $ref =
null)
334 if ($result > 0 && !empty($this->table_element_line)) {
347 $this->lines = array();
366 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
374 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
375 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
376 $sql .=
' WHERE t.entity IN (' .
getEntity($this->element) .
')';
378 $sql .=
' WHERE 1 = 1';
385 $this->errors[] = $errormessage;
386 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
390 if (!empty($sortfield)) {
391 $sql .= $this->db->order($sortfield, $sortorder);
393 if (!empty($limit)) {
394 $sql .=
' ' . $this->db->plimit($limit, $offset);
397 $resql = $this->db->query($sql);
399 $num = $this->db->num_rows($resql);
401 while ($i < ($limit ? min($limit, $num) : $num)) {
402 $obj = $this->db->fetch_object($resql);
404 $record =
new self($this->db);
405 $record->setVarsFromFetchObj($obj);
407 $records[$record->id] = $record;
411 $this->db->free($resql);
415 $this->errors[] =
'Error ' . $this->db->lasterror();
416 dol_syslog(__METHOD__ .
' ' . implode(
',', $this->errors), LOG_ERR);
441 public function delete(
User $user, $notrigger = 0)
458 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
475 global $conf, $langs;
477 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
482 if ($this->
status == self::STATUS_VALIDATED) {
483 dol_syslog(get_class($this) .
"::validate action abandoned: already validated", LOG_WARNING);
500 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
505 $this->newref = $num;
509 $sql =
"UPDATE " . MAIN_DB_PREFIX . $this->table_element;
510 $sql .=
" SET ref = '" . $this->db->escape($num) .
"',";
511 $sql .=
" status = " . self::STATUS_VALIDATED;
512 if (!empty($this->fields[
'date_validation'])) {
513 $sql .=
", date_validation = '" . $this->db->idate($now) .
"'";
515 if (!empty($this->fields[
'fk_user_valid'])) {
516 $sql .=
", fk_user_valid = " . ((int) $user->id);
518 $sql .=
" WHERE rowid = " . ((int) $this->
id);
520 dol_syslog(get_class($this) .
"::validate()", LOG_DEBUG);
521 $resql = $this->db->query($sql);
524 $this->error = $this->db->lasterror();
528 if (!$error && !$notrigger) {
530 $result = $this->
call_trigger(
'HRM_POSITION_VALIDATE', $user);
539 $this->oldref = $this->ref;
542 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
544 $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) .
"'";
545 $sql .=
" WHERE filename LIKE '" . $this->db->escape($this->
ref) .
"%' AND filepath = 'position/" . $this->db->escape($this->
ref) .
"' and entity = " . $conf->entity;
546 $resql = $this->db->query($sql);
549 $this->error = $this->db->lasterror();
551 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'position/".$this->db->escape($this->newref).
"'";
552 $sql .=
" WHERE filepath = 'position/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
553 $resql = $this->db->query($sql);
556 $this->error = $this->db->lasterror();
562 $dirsource = $conf->hrm->dir_output .
'/position/' . $oldref;
563 $dirdest = $conf->hrm->dir_output .
'/position/' . $newref;
564 if (!$error && file_exists($dirsource)) {
565 dol_syslog(get_class($this) .
"::validate() rename dir " . $dirsource .
" into " . $dirdest);
567 if (@rename($dirsource, $dirdest)) {
570 $listoffiles =
dol_dir_list($conf->hrm->dir_output .
'/position/' . $newref,
'files', 1,
'^' . preg_quote($oldref,
'/'));
571 foreach ($listoffiles as $fileentry) {
572 $dirsource = $fileentry[
'name'];
573 $dirdest = preg_replace(
'/^' . preg_quote($oldref,
'/') .
'/', $newref, $dirsource);
574 $dirsource = $fileentry[
'path'] .
'/' . $dirsource;
575 $dirdest = $fileentry[
'path'] .
'/' . $dirdest;
576 @rename($dirsource, $dirdest);
586 $this->
status = self::STATUS_VALIDATED;
593 $this->db->rollback();
609 if ($this->
status <= self::STATUS_DRAFT) {
620 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'POSITION_UNVALIDATE');
630 public function cancel($user, $notrigger = 0)
633 if ($this->
status != self::STATUS_VALIDATED) {
644 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'POSITION_CANCEL');
654 public function reopen($user, $notrigger = 0)
657 if ($this->
status != self::STATUS_CANCELED) {
668 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'POSITION_REOPEN');
681 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
683 global $conf, $langs, $hookmanager;
685 if (!empty($conf->dol_no_mouse_hover)) {
691 $label =
img_picto(
'', $this->picto) .
' <u>' . $langs->trans(
"Position") .
'</u>';
692 if (isset($this->
status)) {
696 $label .=
'<b>' . $langs->trans(
'Ref') .
':</b> ' . $this->ref;
698 $url =
dol_buildpath(
'/hrm/position_card.php', 1) .
'?id=' . $this->id;
700 if ($option !=
'nolink') {
702 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
703 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
704 $add_save_lastsearch_values = 1;
706 if ($add_save_lastsearch_values) {
707 $url .=
'&save_lastsearch_values=1';
712 if (empty($notooltip)) {
714 $label = $langs->trans(
"ShowPosition");
718 $linkclose .=
' class="classfortooltip' . ($morecss ?
' ' . $morecss :
'') .
'"';
720 $linkclose = ($morecss ?
' class="' . $morecss .
'"' :
'');
723 if ($option ==
'nolink') {
724 $linkstart =
'<span';
726 $linkstart =
'<a href="' . $url .
'"';
728 $linkstart .= $linkclose .
'>';
729 if ($option ==
'nolink') {
730 $linkend =
'</span>';
735 $result .= $linkstart;
737 if (empty($this->showphoto_on_popup)) {
739 $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);
743 require_once DOL_DOCUMENT_ROOT .
'/core/lib/files.lib.php';
745 list($class, $module) = explode(
'@', $this->picto);
748 $filename = $filearray[0][
'name'];
749 if (!empty($filename)) {
750 $pospoint = strpos($filearray[0][
'name'],
'.');
752 $pathtophoto = $class .
'/' . $this->
ref .
'/thumbs/' . substr($filename, 0, $pospoint) .
'_mini' . substr($filename, $pospoint);
753 if (!
getDolGlobalString(strtoupper($module .
'_' . $class) .
'_FORMATLISTPHOTOSASUSERS')) {
754 $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>';
756 $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>';
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);
766 if ($withpicto != 2) {
767 $result .= $this->ref;
773 global $action, $hookmanager;
774 $hookmanager->initHooks(array(
'positiondao'));
775 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
776 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
778 $result = $hookmanager->resPrint;
780 $result .= $hookmanager->resPrint;
809 if (is_null($status)) {
813 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
816 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
817 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
818 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
819 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
820 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
821 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
824 $statusType =
'status' . $status;
826 if ($status == self::STATUS_CANCELED) {
827 $statusType =
'status6';
830 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
847 public function showInputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss = 0, $nonewbutton = 0)
851 if ($key ==
'fk_user') {
852 $vacantId = $keyprefix.$key.
'vacant'.$keysuffix;
854 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
855 $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>'; ?>
856 <script
type=
"text/javascript">
857 $(document).ready(
function () {
858 var checkbox = $(
'#<?php print $vacantId; ?>');
859 var searchfkuser = $(
'#<?php print $keyprefix.$key.$keysuffix; ?>');
860 checkbox.click(
function () {
861 if (checkbox.prop(
'checked')) {
862 searchfkuser.val(0).trigger(
'change');
863 searchfkuser.prop(
'disabled', 1);
865 searchfkuser.prop(
'disabled', 0);
872 $out = parent::showInputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
891 public function showOutputField($val, $key, $value, $moreparam =
'', $keysuffix =
'', $keyprefix =
'', $morecss =
'')
895 if ($key ==
'fk_user' && $this->fk_user == 0) {
896 return $langs->trans(
"VacantPosition");
898 return parent::showOutputField($val, $key, $value, $moreparam, $keysuffix, $keyprefix, $morecss);
910 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
911 $sql .=
' fk_user_creat, fk_user_modif';
912 $sql .=
' FROM ' . MAIN_DB_PREFIX . $this->table_element .
' as t';
913 $sql .=
' WHERE t.rowid = ' . ((int) $id);
914 $result = $this->db->query($sql);
916 if ($this->db->num_rows($result)) {
917 $obj = $this->db->fetch_object($result);
919 $this->
id = $obj->rowid;
921 $this->user_creation_id = $obj->fk_user_creat;
922 $this->user_modification_id = $obj->fk_user_modif;
923 $this->date_creation = $this->db->jdate($obj->datec);
924 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
927 $this->db->free($result);
955 $this->lines = array();
958 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_position:=:'.((
int) $this->
id).
')');
960 if (is_numeric($result)) {
964 $this->lines = $result;
976 global $langs, $conf;
980 $conf->global->hrm_POSITION_ADDON =
'mod_position_standard';
990 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
991 foreach ($dirmodels as $reldir) {
995 $mybool = ((bool) @include_once $dir.$file) || $mybool;
1003 if (class_exists($classname)) {
1004 $obj =
new $classname();
1005 $numref = $obj->getNextValue($this);
1007 if ($numref !=
'' && $numref !=
'-1') {
1010 $this->error = $obj->error;
1015 print $langs->trans(
"Error") .
" " . $langs->trans(
"ClassNotFound") .
' ' . $classname;
1019 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1032 $TPosition = array();
1034 $TPosition = $this->
fetchAll(
'ASC',
't.rowid', 0, 0,
'(fk_user:=:'.((
int) $userid).
')');
1050 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1052 global $conf, $langs;
1055 $includedocgeneration = 0;
1057 $langs->load(
"hrm");
1060 $modele =
'standard_position';
1062 if (!empty($this->model_pdf)) {
1063 $modele = $this->model_pdf;
1069 $modelpath =
"core/modules/hrm/doc/";
1071 if ($includedocgeneration && !empty($modele)) {
1072 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1087 global $selected, $langs;
1089 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
1091 $return =
'<div class="box-flex-item box-flex-grow-zero">';
1092 $return .=
'<div class="info-box info-box-sm">';
1093 $return .=
'<span class="info-box-icon bg-infobox-action">';
1095 $return .=
'</span>';
1096 $return .=
'<div class="info-box-content">';
1097 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl(1) : $this->ref).
'</span>';
1098 $return .=
'<input class="fright" id="cb'.$this->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1099 if (!empty($arraydata[
'user'])) {
1100 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'user'].
'</span>';
1102 if (!empty($arraydata[
'job'])) {
1104 $return .=
'<br><span class="info-box-label ">'.$arraydata[
'job'].
'</span>';
1106 if (property_exists($this,
'date_start') && property_exists($this,
'date_end')) {
1107 $return .=
'<br><div class ="nothing"><span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_start),
'day').
'</span>';
1108 $return .=
' - <span class="info-box-label ">'.dol_print_date($this->db->jdate($this->date_end),
'day').
'</span></div>';
1110 $return .=
'</div>';
1111 $return .=
'</div>';
1112 $return .=
'</div>';
1118require_once DOL_DOCUMENT_ROOT .
'/core/class/commonobjectline.class.php';
1137 $this->isextrafieldmanaged = 0;
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
print $langs trans("AuditedSecurityEvents").'</strong >< span class="opacitymedium"></span >< br > status
Or an array listing all the potential status of the object: array: int of the status => translated la...
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.
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