28require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
40 public $module =
'bookcal';
45 public $element =
'availabilities';
50 public $table_element =
'bookcal_availabilities';
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' => 2,
'noteditable' => 1,
'index' => 1,
'css' =>
'left',
'comment' =>
"Id"),
108 'label' => array(
'type' =>
'varchar(255)',
'label' =>
'Label',
'enabled' => 1,
'position' => 20,
'notnull' => 0,
'visible' => 1,
'searchall' => 1,
'css' =>
'minwidth300',
'csslist' =>
'tdoverflowmax150',
'cssview' =>
'wordbreak',
'help' =>
"BookcalLabelAvailabilityHelp",
'showoncombobox' => 2,
'validate' => 1,),
109 'fk_bookcal_calendar' => array(
'type' =>
'integer:Calendar:bookcal/class/calendar.class.php:1',
'label' =>
'Calendar',
'enabled' => 1,
'position' => 25,
'notnull' => 1,
'visible' => 1,
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax100'),
110 'description' => array(
'type' =>
'text',
'label' =>
'Description',
'enabled' => 1,
'position' => 60,
'notnull' => 0,
'visible' => 3,
'validate' => 1,),
111 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 61,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
112 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
113 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -2,),
114 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,),
115 'fk_user_creat' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserAuthor',
'picto' =>
'user',
'enabled' => 1,
'position' => 510,
'notnull' => 1,
'visible' => -2,
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax150'),
116 'fk_user_modif' => array(
'type' =>
'integer:User:user/class/user.class.php',
'label' =>
'UserModif',
'picto' =>
'user',
'enabled' => 1,
'position' => 511,
'notnull' => -1,
'visible' => -2,
'css' =>
'maxwidth500 widthcentpercentminusxx',
'csslist' =>
'tdoverflowmax150'),
117 'last_main_doc' => array(
'type' =>
'varchar(255)',
'label' =>
'LastMainDoc',
'enabled' => 1,
'position' => 600,
'notnull' => 0,
'visible' => 0,),
118 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
119 'model_pdf' => array(
'type' =>
'varchar(255)',
'label' =>
'Model pdf',
'enabled' => 1,
'position' => 1010,
'notnull' => -1,
'visible' => 0,),
120 'start' => array(
'type' =>
'date',
'label' =>
'Start Date',
'enabled' => 1,
'position' => 40,
'notnull' => 1,
'visible' => 1,
'searchall' => 1,),
121 'end' => array(
'type' =>
'date',
'label' =>
'End Date',
'enabled' => 1,
'position' => 45,
'notnull' => 1,
'visible' => 1,
'searchall' => 1,),
122 'duration' => array(
'type' =>
'integer',
'label' =>
'DurationOfRange',
'enabled' => 1,
'position' => 47,
'notnull' => 1,
'visible' => 1,
'default' =>
'30',
'css' =>
'width50 right'),
123 'startHour' => array(
'type' =>
'integer',
'label' =>
'Start Hour',
'enabled' => 1,
'position' => 46,
'notnull' => 1,
'visible' => 1,),
124 'endHour' => array(
'type' =>
'integer',
'label' =>
'End Hour',
'enabled' => 1,
'position' => 46.5,
'notnull' => 1,
'visible' => 1,),
125 'status' => array(
'type' =>
'integer',
'label' =>
'Status',
'enabled' => 1,
'position' => 2000,
'notnull' => 1,
'visible' => 1,
'index' => 1,
'arrayofkeyval' => array(
'0' =>
'Draft',
'1' =>
'Validated',
'9' =>
'Closed'),
'default' =>
'1',
'validate' => 1),
131 public $note_private;
132 public $fk_user_creat;
133 public $fk_user_modif;
134 public $last_main_doc;
143 public $fk_bookcal_calendar;
190 global $conf, $langs;
194 $this->ismultientitymanaged =
'fk_bookcal_calendar@bookcal_calendar';
195 $this->isextrafieldmanaged = 1;
197 if (!
getDolGlobalString(
'MAIN_SHOW_TECHNICAL_ID') && isset($this->fields[
'rowid']) && !empty($this->fields[
'ref'])) {
198 $this->fields[
'rowid'][
'visible'] = 0;
200 if (empty($conf->multicompany->enabled) && isset($this->fields[
'entity'])) {
201 $this->fields[
'entity'][
'enabled'] = 0;
211 foreach ($this->fields as $key => $val) {
212 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
213 unset($this->fields[$key]);
218 if (is_object($langs)) {
219 foreach ($this->fields as $key => $val) {
220 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
221 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
222 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
242 return $resultcreate;
254 global $langs, $extrafields;
264 $result =
$object->fetchCommon($fromid);
265 if ($result > 0 && !empty(
$object->table_element_line)) {
279 if (property_exists(
$object,
'ref')) {
280 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
282 if (property_exists(
$object,
'label')) {
283 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
285 if (property_exists(
$object,
'status')) {
286 $object->status = self::STATUS_DRAFT;
288 if (property_exists(
$object,
'date_creation')) {
291 if (property_exists(
$object,
'date_modification')) {
292 $object->date_modification =
null;
296 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
297 $extrafields->fetch_name_optionals_label($this->table_element);
298 foreach (
$object->array_options as $key => $option) {
299 $shortkey = preg_replace(
'/options_/',
'', $key);
300 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
303 unset(
$object->array_options[$key]);
309 $object->context[
'createfromclone'] =
'createfromclone';
310 $result =
$object->createCommon($user);
314 $this->errors =
$object->errors;
326 if (!empty(
$object->socid) && property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
333 unset(
$object->context[
'createfromclone']);
340 $this->db->rollback();
352 public function fetch($id, $ref =
null)
355 if ($result > 0 && !empty($this->table_element_line)) {
368 $this->lines = array();
387 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
395 $sql .=
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
396 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
397 $sql .=
" WHERE t.entity IN (".getEntity($this->element).
")";
399 $sql .=
" WHERE 1 = 1";
406 $this->errors[] = $errormessage;
407 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
411 if (!empty($sortfield)) {
412 $sql .= $this->db->order($sortfield, $sortorder);
414 if (!empty($limit)) {
415 $sql .= $this->db->plimit($limit, $offset);
418 $resql = $this->db->query($sql);
420 $num = $this->db->num_rows($resql);
422 while ($i < ($limit ? min($limit, $num) : $num)) {
423 $obj = $this->db->fetch_object($resql);
425 $record =
new self($this->db);
426 $record->setVarsFromFetchObj($obj);
428 $records[$record->id] = $record;
432 $this->db->free($resql);
436 $this->errors[] =
'Error '.$this->db->lasterror();
437 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
462 public function delete(
User $user, $notrigger = 0)
479 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
496 global $conf, $langs;
498 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
503 if ($this->
status == self::STATUS_VALIDATED) {
504 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
513 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
518 $this->newref = $num;
522 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
523 $sql .=
" SET label = '".$this->db->escape($num).
"',";
524 $sql .=
" status = ".self::STATUS_VALIDATED;
525 if (!empty($this->fields[
'date_validation'])) {
526 $sql .=
", date_validation = '".$this->db->idate($now).
"'";
528 if (!empty($this->fields[
'fk_user_valid'])) {
529 $sql .=
", fk_user_valid = ".((int) $user->id);
531 $sql .=
" WHERE rowid = ".((int) $this->
id);
533 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
534 $resql = $this->db->query($sql);
537 $this->error = $this->db->lasterror();
541 if (!$error && !$notrigger) {
543 $result = $this->
call_trigger(
'AVAILABILITIES_VALIDATE', $user);
552 $this->oldref = $this->ref;
555 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
557 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'availabilities/".$this->db->escape($this->newref).
"'";
558 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'availabilities/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
559 $resql = $this->db->query($sql);
562 $this->error = $this->db->lasterror();
564 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'availabilities/".$this->db->escape($this->newref).
"'";
565 $sql .=
" WHERE filepath = 'availabilities/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
566 $resql = $this->db->query($sql);
569 $this->error = $this->db->lasterror();
575 $dirsource = $conf->bookcal->dir_output.
'/availabilities/'.$oldref;
576 $dirdest = $conf->bookcal->dir_output.
'/availabilities/'.$newref;
577 if (!$error && file_exists($dirsource)) {
578 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
580 if (@rename($dirsource, $dirdest)) {
583 $listoffiles =
dol_dir_list($conf->bookcal->dir_output.
'/availabilities/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
584 foreach ($listoffiles as $fileentry) {
585 $dirsource = $fileentry[
'name'];
586 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
587 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
588 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
589 @rename($dirsource, $dirdest);
599 $this->
status = self::STATUS_VALIDATED;
606 $this->db->rollback();
622 if ($this->
status <= self::STATUS_DRAFT) {
626 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'AVAILABILITIES_UNVALIDATE');
636 public function cancel($user, $notrigger = 0)
639 if ($this->
status != self::STATUS_VALIDATED) {
643 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'AVAILABILITIES_CANCEL');
653 public function reopen($user, $notrigger = 0)
656 if ($this->
status != self::STATUS_CANCELED) {
660 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'AVAILABILITIES_REOPEN');
673 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
675 global $conf, $langs, $hookmanager;
677 if (!empty($conf->dol_no_mouse_hover)) {
683 $label =
img_picto(
'', $this->picto).
' <u>'.$langs->trans(
"Availabilities").
'</u>';
684 if (isset($this->
status)) {
685 $label .=
' '.$this->getLibStatut(5);
688 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
690 $url =
dol_buildpath(
'/bookcal/availabilities_card.php', 1).
'?id='.$this->id;
692 if ($option !=
'nolink') {
694 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
695 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
696 $add_save_lastsearch_values = 1;
698 if ($url && $add_save_lastsearch_values) {
699 $url .=
'&save_lastsearch_values=1';
704 if (empty($notooltip)) {
706 $label = $langs->trans(
"ShowAvailabilities");
707 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
709 $linkclose .=
' title="'.dol_escape_htmltag($label, 1).
'"';
710 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
712 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
715 if ($option ==
'nolink' || empty($url)) {
716 $linkstart =
'<span';
718 $linkstart =
'<a href="'.$url.
'"';
720 $linkstart .= $linkclose.
'>';
721 if ($option ==
'nolink' || empty($url)) {
722 $linkend =
'</span>';
727 $result .= $linkstart;
729 if (empty($this->showphoto_on_popup)) {
731 $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);
735 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
737 list($class, $module) = explode(
'@', $this->picto);
740 $filename = $filearray[0][
'name'];
741 if (!empty($filename)) {
742 $pospoint = strpos($filearray[0][
'name'],
'.');
744 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
746 $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>';
748 $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>';
753 $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);
758 if ($withpicto != 2) {
759 $result .= $this->ref;
765 global $action, $hookmanager;
766 $hookmanager->initHooks(array(
'availabilitiesdao'));
767 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
768 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
770 $result = $hookmanager->resPrint;
772 $result .= $hookmanager->resPrint;
787 global $conf, $langs;
789 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
791 $return =
'<div class="box-flex-item box-flex-grow-zero">';
792 $return .=
'<div class="info-box info-box-sm">';
793 $return .=
'<span class="info-box-icon bg-infobox-action">';
795 $return .=
'</span>';
796 $return .=
'<div class="info-box-content">';
797 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl() : $this->ref).
'</span>';
798 if ($selected >= 0) {
799 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
801 if (property_exists($this,
'label')) {
802 $return .=
' <div class="inline-block opacitymedium valignmiddle tdoverflowmax100">'.$this->label.
'</div>';
804 if (property_exists($this,
'amount')) {
806 $return .=
'<span class="info-box-label amount">'.price($this->amount, 0, $langs, 1, -1, -1, $conf->currency).
'</span>';
808 if (method_exists($this,
'getLibStatut')) {
809 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
851 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
854 $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
855 $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
856 $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
857 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
858 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
859 $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
862 $statusType =
'status'.$status;
863 if ($status == self::STATUS_VALIDATED) {
864 $statusType =
'status4';
866 if ($status == self::STATUS_CANCELED) {
867 $statusType =
'status6';
870 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
881 $sql =
"SELECT rowid,";
882 $sql .=
" date_creation as datec, tms as datem,";
883 $sql .=
" fk_user_creat, fk_user_modif";
884 $sql .=
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
885 $sql .=
" WHERE t.rowid = ".((int) $id);
887 $result = $this->db->query($sql);
889 if ($this->db->num_rows($result)) {
890 $obj = $this->db->fetch_object($result);
892 $this->
id = $obj->rowid;
894 $this->user_creation_id = $obj->fk_user_creat;
895 $this->user_modification_id = $obj->fk_user_modif;
896 $this->date_creation = $this->db->jdate($obj->datec);
897 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
900 $this->db->free($result);
928 $this->lines = array();
931 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_availabilities:=:'.((
int) $this->
id).
')');
933 if (is_numeric($result)) {
934 $this->error = $objectline->error;
935 $this->errors = $objectline->errors;
938 $this->lines = $result;
950 global $langs, $conf;
951 $langs->load(
"agenda");
954 $conf->global->BOOKCAL_AVAILABILITIES_ADDON =
'mod_availabilities_standard';
964 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
965 foreach ($dirmodels as $reldir) {
969 $mybool = ((bool) @include_once $dir.$file) || $mybool;
972 if ($mybool ===
false) {
977 if (class_exists($classname)) {
978 $obj =
new $classname();
979 $numref = $obj->getNextValue($this);
981 if ($numref !=
'' && $numref !=
'-1') {
984 $this->error = $obj->error;
989 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
993 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1009 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1011 global $conf, $langs;
1014 $includedocgeneration = 0;
1016 $langs->load(
"agenda");
1019 $modele =
'standard_availabilities';
1021 if (!empty($this->model_pdf)) {
1022 $modele = $this->model_pdf;
1028 $modelpath =
"core/modules/bookcal/doc/";
1030 if ($includedocgeneration && !empty($modele)) {
1031 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1046 global $conf, $langs;
1062 $this->db->commit();
1069require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
1087 $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...
Class for Availabilities.
create(User $user, $notrigger=0)
Create object into database.
getLabelStatus($mode=0)
Return the label of the status.
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module.
fetch($id, $ref=null)
Load object in memory from the database.
fetchLines()
Load object lines in memory from the database.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionally the picto)
getLibStatut($mode=0)
Return the label of the status.
__construct(DoliDB $db)
Constructor.
LibStatut($status, $mode=0)
Return the status.
createFromClone(User $user, $fromid)
Clone an object into another one.
info($id)
Load the info information in the object.
deleteLine(User $user, $idline, $notrigger=0)
Delete a line of object in database.
update(User $user, $notrigger=0)
Update object into database.
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, $filter='', $filtermode='AND')
Load list of objects in memory from the database.
setDraft($user, $notrigger=0)
Set draft status.
validate($user, $notrigger=0)
Validate object.
getKanbanView($option='', $arraydata=null)
Return a thumb for kanban views.
getLinesArray()
Create an array of lines.
cancel($user, $notrigger=0)
Set cancel status.
reopen($user, $notrigger=0)
Set back to validated status.
Class AvailabilitiesLine.
__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.
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.
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 dolibarr global constant string value.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.