28require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
40 public $module =
'bookcal';
45 public $element =
'calendar';
50 public $table_element =
'bookcal_calendar';
55 public $picto =
'fa-calendar-check';
58 const STATUS_DRAFT = 0;
59 const STATUS_VALIDATED = 1;
60 const STATUS_CANCELED = 9;
106 public $fields = array(
107 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 0,
'noteditable' => 1,
'index' => 1,
'css' =>
'right',
'comment' =>
"Id"),
108 'entity' => array(
'type' =>
'integer',
'label' =>
'Entity',
'default' =>
'1',
'enabled' => 1,
'visible' => -2,
'notnull' => 1,
'position' => 40,
'index' => 1),
109 'ref' => array(
'type' =>
'varchar(128)',
'label' =>
'Ref',
'enabled' => 1,
'position' => 20,
'notnull' => 1,
'visible' => 1,
'index' => 1,
'searchall' => 1,
'showoncombobox' => 1,
'validate' => 1,
'comment' =>
"Reference of object",
'css' =>
'width100'),
110 'label' => array(
'type' =>
'varchar(255)',
'label' =>
'Label',
'enabled' => 1,
'position' => 30,
'notnull' => 0,
'visible' => 1,
'alwayseditable' => 1,
'searchall' => 1,
'css' =>
'minwidth300',
'cssview' =>
'wordbreak',
'help' =>
"Help text",
'showoncombobox' => 2,
'validate' => 1,),
111 'visibility' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'Owner',
'enabled' => 1,
'position' => 40,
'notnull' => 1,
'visible' => 1,
'picto' =>
'user',
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax150',),
112 'type' => array(
'type' =>
'integer',
'label' =>
'Type',
'enabled' => 1,
'position' => 42,
'notnull' => 1,
'visible' => 1,
'arrayofkeyval' => array(
'0' =>
'Customer',
'1' =>
'Supplier',
'3' =>
'Other'),),
113 'fk_soc' => array(
'type' =>
'integer:Societe:societe/class/societe.class.php:1:((status:=:1) AND (entity:IN:__SHARED_ENTITIES__))',
'label' =>
'ThirdParty',
'picto' =>
'company',
'enabled' =>
'isModEnabled("societe")',
'position' => 50,
'notnull' => -1,
'visible' => 1,
'index' => 1,
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax150',
'help' =>
"ThirdPartyBookCalHelp",
'validate' => 1,),
114 'fk_project' => array(
'type' =>
'integer:Project:projet/class/project.class.php:1',
'label' =>
'Project',
'picto' =>
'project',
'enabled' =>
'isModEnabled("project")',
'position' => 52,
'notnull' => -1,
'visible' => -1,
'index' => 1,
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax150',
'validate' => 1,),
115 'description' => array(
'type' =>
'text',
'label' =>
'Description',
'enabled' => 1,
'position' => 60,
'notnull' => 0,
'visible' => 3,
'validate' => 1,),
116 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 61,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
117 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
118 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -2,),
119 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,),
120 'fk_user_creat' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserAuthor',
'picto' =>
'user',
'enabled' => 1,
'position' => 510,
'notnull' => 1,
'visible' => -2,
'foreignkey' =>
'user.rowid',
'csslist' =>
'tdoverflowmax150',),
121 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'picto' =>
'user',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,
'csslist' =>
'tdoverflowmax150',),
122 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
123 'status' => array(
'type' =>
'integer',
'label' =>
'Status',
'enabled' => 1,
'position' => 2000,
'notnull' => 1,
'default' =>
'0',
'visible' => 1,
'index' => 1,
'arrayofkeyval' => array(
'0' =>
'Draft',
'1' =>
'Validated',
'9' =>
'Closed'),
'validate' => 1,),
168 public $note_private;
172 public $fk_user_creat;
176 public $fk_user_modif;
195 global $langs, $user;
199 $this->ismultientitymanaged = 1;
200 $this->isextrafieldmanaged = 1;
202 if (!
getDolGlobalInt(
'MAIN_SHOW_TECHNICAL_ID') && isset($this->fields[
'rowid']) && !empty($this->fields[
'ref'])) {
203 $this->fields[
'rowid'][
'visible'] = 0;
205 if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
206 $this->fields[
'entity'][
'enabled'] = 0;
214 $this->fields[
'visibility'][
'default'] = $user->id;
217 foreach ($this->fields as $key => $val) {
218 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
219 unset($this->fields[$key]);
224 if (is_object($langs)) {
225 foreach ($this->fields as $key => $val) {
226 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
227 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
228 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
248 return $resultcreate;
260 global $langs, $extrafields;
270 $result =
$object->fetchCommon($fromid);
271 if ($result > 0 && !empty(
$object->table_element_line)) {
285 if (property_exists(
$object,
'ref')) {
286 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
288 if (property_exists(
$object,
'label')) {
289 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
291 if (property_exists(
$object,
'status')) {
292 $object->status = self::STATUS_DRAFT;
294 if (property_exists(
$object,
'date_creation')) {
297 if (property_exists(
$object,
'date_modification')) {
298 $object->date_modification =
null;
302 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
303 $extrafields->fetch_name_optionals_label($this->table_element);
304 foreach (
$object->array_options as $key => $option) {
305 $shortkey = preg_replace(
'/options_/',
'', $key);
306 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
309 unset(
$object->array_options[$key]);
315 $object->context[
'createfromclone'] =
'createfromclone';
316 $result =
$object->createCommon($user);
331 if (!empty(
$object->socid) && property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
338 unset(
$object->context[
'createfromclone']);
345 $this->db->rollback();
357 public function fetch($id, $ref =
null)
360 if ($result > 0 && !empty($this->table_element_line)) {
373 $this->lines = array();
392 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
400 $sql .=
" FROM ".$this->db->prefix().$this->table_element.
" as t";
401 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
402 $sql .=
" WHERE t.entity IN (".getEntity($this->element).
")";
404 $sql .=
" WHERE 1 = 1";
411 $this->errors[] = $errormessage;
412 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
416 if (!empty($sortfield)) {
417 $sql .= $this->db->order($sortfield, $sortorder);
419 if (!empty($limit)) {
420 $sql .= $this->db->plimit($limit, $offset);
423 $resql = $this->db->query($sql);
425 $num = $this->db->num_rows($resql);
427 while ($i < ($limit ? min($limit, $num) : $num)) {
428 $obj = $this->db->fetch_object($resql);
430 $record =
new self($this->db);
431 $record->setVarsFromFetchObj($obj);
433 $records[$record->id] = $record;
437 $this->db->free($resql);
441 $this->errors[] =
'Error '.$this->db->lasterror();
442 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
467 public function delete(
User $user, $notrigger = 0)
484 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
503 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
508 if ($this->
status == self::STATUS_VALIDATED) {
509 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
518 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
523 $this->newref = $num;
527 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
528 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
529 $sql .=
" status = ".self::STATUS_VALIDATED;
530 if (!empty($this->fields[
'date_validation'])) {
531 $sql .=
", date_validation = '".$this->db->idate($now).
"'";
533 if (!empty($this->fields[
'fk_user_valid'])) {
534 $sql .=
", fk_user_valid = ".((int) $user->id);
536 $sql .=
" WHERE rowid = ".((int) $this->
id);
538 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
539 $resql = $this->db->query($sql);
542 $this->error = $this->db->lasterror();
546 if (!$error && !$notrigger) {
548 $result = $this->
call_trigger(
'MYOBJECT_VALIDATE', $user);
557 $this->oldref = $this->ref;
560 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
562 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'calendar/".$this->db->escape($this->newref).
"'";
563 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'calendar/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
564 $resql = $this->db->query($sql);
567 $this->error = $this->db->lasterror();
569 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'calendar/".$this->db->escape($this->newref).
"'";
570 $sql .=
" WHERE filepath = 'calendar/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
571 $resql = $this->db->query($sql);
574 $this->error = $this->db->lasterror();
580 $dirsource = $conf->bookcal->dir_output.
'/calendar/'.$oldref;
581 $dirdest = $conf->bookcal->dir_output.
'/calendar/'.$newref;
582 if (!$error && file_exists($dirsource)) {
583 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
585 if (@rename($dirsource, $dirdest)) {
588 $listoffiles =
dol_dir_list($conf->bookcal->dir_output.
'/calendar/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
589 foreach ($listoffiles as $fileentry) {
590 $dirsource = $fileentry[
'name'];
591 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
592 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
593 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
594 @rename($dirsource, $dirdest);
604 $this->
status = self::STATUS_VALIDATED;
611 $this->db->rollback();
627 if ($this->
status <= self::STATUS_DRAFT) {
631 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'MYOBJECT_UNVALIDATE');
641 public function cancel($user, $notrigger = 0)
644 if ($this->
status != self::STATUS_VALIDATED) {
648 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'MYOBJECT_CANCEL');
658 public function reopen($user, $notrigger = 0)
661 if ($this->
status == self::STATUS_VALIDATED) {
665 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'MYOBJECT_REOPEN');
682 return [
'optimize' => $langs->trans(
"ShowCalendar")];
684 $datas[
'picto'] =
img_picto(
'', $this->picto).
' <u>'.$langs->trans(
"Calendar").
'</u>';
685 if (isset($this->
status)) {
686 $datas[
'picto'] .=
' '.$this->getLibStatut(5);
688 $datas[
'ref'] =
'<br><b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
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)) {
714 'objecttype' => $this->element.($this->module ?
'@'.$this->module :
''),
717 $classfortooltip =
'classfortooltip';
720 $classfortooltip =
'classforajaxtooltip';
721 $dataparams =
' data-params="'.dol_escape_htmltag(json_encode($params)).
'"';
727 $url =
dol_buildpath(
'/bookcal/calendar_card.php', 1).
'?id='.$this->id;
729 if ($option !==
'nolink') {
731 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
732 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
733 $add_save_lastsearch_values = 1;
735 if ($url && $add_save_lastsearch_values) {
736 $url .=
'&save_lastsearch_values=1';
741 if (empty($notooltip)) {
743 $label = $langs->trans(
"ShowCalendar");
744 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
746 $linkclose .= ($label ?
' title="'.dol_escape_htmltag($label, 1).
'"' :
' title="tocomplete"');
747 $linkclose .= $dataparams.
' class="'.$classfortooltip.($morecss ?
' '.$morecss :
'').
'"';
749 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
752 if ($option ==
'nolink' || empty($url)) {
753 $linkstart =
'<span';
755 $linkstart =
'<a href="'.$url.
'"';
757 $linkstart .= $linkclose.
'>';
758 if ($option ==
'nolink' || empty($url)) {
759 $linkend =
'</span>';
764 $result .= $linkstart;
766 if (empty($this->showphoto_on_popup)) {
768 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), (($withpicto != 2) ?
'class="paddingright"' :
''), 0, 0, $notooltip ? 0 : 1);
772 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
774 list($class, $module) = explode(
'@', $this->picto);
777 $filename = $filearray[0][
'name'];
778 if (!empty($filename)) {
779 $pospoint = strpos($filearray[0][
'name'],
'.');
781 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
782 if (!
getDolGlobalInt(strtoupper($module.
'_'.$class).
'_FORMATLISTPHOTOSASUSERS')) {
783 $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>';
785 $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>';
790 $result .=
img_object(($notooltip ?
'' : $label), ($this->picto ? $this->picto :
'generic'), ($notooltip ? (($withpicto != 2) ?
'class="paddingright"' :
'') :
'class="'.(($withpicto != 2) ?
'paddingright ' :
'').
'"'), 0, 0, $notooltip ? 0 : 1);
795 if ($withpicto != 2) {
796 $result .= $this->ref;
802 global $action, $hookmanager;
803 $hookmanager->initHooks(array($this->element.
'dao'));
804 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
805 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
807 $result = $hookmanager->resPrint;
809 $result .= $hookmanager->resPrint;
824 global $conf, $langs;
826 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
828 $return =
'<div class="box-flex-item box-flex-grow-zero">';
829 $return .=
'<div class="info-box info-box-sm">';
830 $return .=
'<span class="info-box-icon bg-infobox-action">';
832 $return .=
'</span>';
833 $return .=
'<div class="info-box-content">';
834 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl() : $this->ref).
'</span>';
835 if ($selected >= 0) {
836 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
838 if (property_exists($this,
'label')) {
839 $return .=
' <div class="inline-block opacitymedium valignmiddle tdoverflowmax100">'.$this->label.
'</div>';
841 if (property_exists($this,
'amount')) {
843 $return .=
'<span class="info-box-label amount">'.price($this->amount, 0, $langs, 1, -1, -1, $conf->currency).
'</span>';
845 if (method_exists($this,
'getLibStatut')) {
846 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
888 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
891 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
892 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
893 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
894 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
895 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
896 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
899 $statusType =
'status'.$status;
900 if ($status == self::STATUS_VALIDATED) {
901 $statusType =
'status4';
903 if ($status == self::STATUS_CANCELED) {
904 $statusType =
'status6';
907 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
918 $sql =
"SELECT rowid,";
919 $sql .=
" date_creation as datec, tms as datem,";
920 $sql .=
" fk_user_creat, fk_user_modif";
921 $sql .=
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
922 $sql .=
" WHERE t.rowid = ".((int) $id);
924 $result = $this->db->query($sql);
926 if ($this->db->num_rows($result)) {
927 $obj = $this->db->fetch_object($result);
929 $this->
id = $obj->rowid;
931 $this->user_creation_id = $obj->fk_user_creat;
932 $this->user_modification_id = $obj->fk_user_modif;
933 $this->date_creation = $this->db->jdate($obj->datec);
934 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
937 $this->db->free($result);
965 $this->lines = array();
968 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_calendar:=:'.((
int) $this->
id).
')');
970 if (is_numeric($result)) {
974 $this->lines = $result;
986 global $langs, $conf;
987 $langs->load(
"agenda");
990 $conf->global->BOOKCAL_MYOBJECT_ADDON =
'mod_calendar_standard';
1000 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
1001 foreach ($dirmodels as $reldir) {
1005 $mybool = ((bool) @include_once $dir.$file) || $mybool;
1013 if (class_exists($classname)) {
1014 $obj =
new $classname();
1015 '@phan-var-force CommonNumRefGenerator $obj';
1017 $numref = $obj->getNextValue($this);
1019 if ($numref !=
'' && $numref !=
'-1') {
1022 $this->error = $obj->error;
1027 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
1031 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1047 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1049 global $conf, $langs;
1052 $includedocgeneration = 0;
1054 $langs->load(
"agenda");
1057 $modele =
'standard_calendar';
1059 if (!empty($this->model_pdf)) {
1060 $modele = $this->model_pdf;
1066 $modelpath =
"core/modules/bookcal/doc/";
1068 if ($includedocgeneration && !empty($modele)) {
1069 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1100 $this->db->commit();
1107require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
1127 $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...
createFromClone(User $user, $fromid)
Clone an object into another one.
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the database.
getLinesArray()
Create an array of lines.
getKanbanView($option='', $arraydata=null)
Return a thumb for kanban views.
getTooltipContentArray($params)
getTooltipContentArray
getLabelStatus($mode=0)
Return the label of the status.
__construct(DoliDB $db)
Constructor.
setDraft($user, $notrigger=0)
Set draft status.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
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)
info($id)
Load the info information in the object.
LibStatut($status, $mode=0)
Return the label of a given status.
validate($user, $notrigger=0)
Validate object.
cancel($user, $notrigger=0)
Set cancel status.
getLibStatut($mode=0)
Return the label of the status.
create(User $user, $notrigger=0)
Create object into database.
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=0)
Delete a line of object in database.
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
reopen($user, $notrigger=0)
Set back to validated status.
fetch($id, $ref=null)
Load object in memory from the database.
fetchLines()
Load object lines in memory from the database.
update(User $user, $notrigger=0)
Update object into database.
__construct(DoliDB $db)
Constructor.
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.
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.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
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.