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 $date_creation;
133 public $fk_user_creat;
134 public $fk_user_modif;
135 public $last_main_doc;
144 public $fk_bookcal_calendar;
191 global $conf, $langs;
195 $this->ismultientitymanaged =
'fk_bookcal_calendar@bookcal_calendar';
196 $this->isextrafieldmanaged = 1;
198 if (!
getDolGlobalString(
'MAIN_SHOW_TECHNICAL_ID') && isset($this->fields[
'rowid']) && !empty($this->fields[
'ref'])) {
199 $this->fields[
'rowid'][
'visible'] = 0;
201 if (empty($conf->multicompany->enabled) && isset($this->fields[
'entity'])) {
202 $this->fields[
'entity'][
'enabled'] = 0;
212 foreach ($this->fields as $key => $val) {
213 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
214 unset($this->fields[$key]);
219 if (is_object($langs)) {
220 foreach ($this->fields as $key => $val) {
221 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
222 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
223 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
243 return $resultcreate;
255 global $langs, $extrafields;
265 $result =
$object->fetchCommon($fromid);
266 if ($result > 0 && !empty(
$object->table_element_line)) {
280 if (property_exists(
$object,
'ref')) {
281 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
283 if (property_exists(
$object,
'label')) {
284 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
286 if (property_exists(
$object,
'status')) {
287 $object->status = self::STATUS_DRAFT;
289 if (property_exists(
$object,
'date_creation')) {
292 if (property_exists(
$object,
'date_modification')) {
293 $object->date_modification =
null;
297 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
298 $extrafields->fetch_name_optionals_label($this->table_element);
299 foreach (
$object->array_options as $key => $option) {
300 $shortkey = preg_replace(
'/options_/',
'', $key);
301 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
304 unset(
$object->array_options[$key]);
310 $object->context[
'createfromclone'] =
'createfromclone';
311 $result =
$object->createCommon($user);
315 $this->errors =
$object->errors;
327 if (!empty(
$object->socid) && property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
334 unset(
$object->context[
'createfromclone']);
341 $this->db->rollback();
353 public function fetch($id, $ref =
null)
356 if ($result > 0 && !empty($this->table_element_line)) {
369 $this->lines = array();
388 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
396 $sql .=
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
397 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
398 $sql .=
" WHERE t.entity IN (".getEntity($this->element).
")";
400 $sql .=
" WHERE 1 = 1";
407 $this->errors[] = $errormessage;
408 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
412 if (!empty($sortfield)) {
413 $sql .= $this->db->order($sortfield, $sortorder);
415 if (!empty($limit)) {
416 $sql .= $this->db->plimit($limit, $offset);
419 $resql = $this->db->query($sql);
421 $num = $this->db->num_rows($resql);
423 while ($i < ($limit ? min($limit, $num) : $num)) {
424 $obj = $this->db->fetch_object($resql);
426 $record =
new self($this->db);
427 $record->setVarsFromFetchObj($obj);
429 $records[$record->id] = $record;
433 $this->db->free($resql);
437 $this->errors[] =
'Error '.$this->db->lasterror();
438 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
463 public function delete(
User $user, $notrigger = 0)
480 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
497 global $conf, $langs;
499 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
504 if ($this->
status == self::STATUS_VALIDATED) {
505 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
514 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
519 $this->newref = $num;
523 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
524 $sql .=
" SET label = '".$this->db->escape($num).
"',";
525 $sql .=
" status = ".self::STATUS_VALIDATED;
526 if (!empty($this->fields[
'date_validation'])) {
527 $sql .=
", date_validation = '".$this->db->idate($now).
"'";
529 if (!empty($this->fields[
'fk_user_valid'])) {
530 $sql .=
", fk_user_valid = ".((int) $user->id);
532 $sql .=
" WHERE rowid = ".((int) $this->
id);
534 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
535 $resql = $this->db->query($sql);
538 $this->error = $this->db->lasterror();
542 if (!$error && !$notrigger) {
544 $result = $this->
call_trigger(
'AVAILABILITIES_VALIDATE', $user);
553 $this->oldref = $this->ref;
556 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
558 $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).
"'";
559 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'availabilities/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
560 $resql = $this->db->query($sql);
563 $this->error = $this->db->lasterror();
565 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'availabilities/".$this->db->escape($this->newref).
"'";
566 $sql .=
" WHERE filepath = 'availabilities/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
567 $resql = $this->db->query($sql);
570 $this->error = $this->db->lasterror();
576 $dirsource = $conf->bookcal->dir_output.
'/availabilities/'.$oldref;
577 $dirdest = $conf->bookcal->dir_output.
'/availabilities/'.$newref;
578 if (!$error && file_exists($dirsource)) {
579 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
581 if (@rename($dirsource, $dirdest)) {
584 $listoffiles =
dol_dir_list($conf->bookcal->dir_output.
'/availabilities/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
585 foreach ($listoffiles as $fileentry) {
586 $dirsource = $fileentry[
'name'];
587 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
588 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
589 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
590 @rename($dirsource, $dirdest);
600 $this->
status = self::STATUS_VALIDATED;
607 $this->db->rollback();
623 if ($this->
status <= self::STATUS_DRAFT) {
627 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'AVAILABILITIES_UNVALIDATE');
637 public function cancel($user, $notrigger = 0)
640 if ($this->
status != self::STATUS_VALIDATED) {
644 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'AVAILABILITIES_CANCEL');
654 public function reopen($user, $notrigger = 0)
657 if ($this->
status != self::STATUS_CANCELED) {
661 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'AVAILABILITIES_REOPEN');
674 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
676 global $conf, $langs, $hookmanager;
678 if (!empty($conf->dol_no_mouse_hover)) {
684 $label =
img_picto(
'', $this->picto).
' <u>'.$langs->trans(
"Availabilities").
'</u>';
685 if (isset($this->
status)) {
686 $label .=
' '.$this->getLibStatut(5);
689 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
691 $url =
dol_buildpath(
'/bookcal/availabilities_card.php', 1).
'?id='.$this->id;
693 if ($option !=
'nolink') {
695 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
696 if ($save_lastsearch_value == -1 && isset($_SERVER[
"PHP_SELF"]) && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
697 $add_save_lastsearch_values = 1;
699 if ($url && $add_save_lastsearch_values) {
700 $url .=
'&save_lastsearch_values=1';
705 if (empty($notooltip)) {
707 $label = $langs->trans(
"ShowAvailabilities");
708 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
710 $linkclose .=
' title="'.dol_escape_htmltag($label, 1).
'"';
711 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
713 $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
716 if ($option ==
'nolink' || empty($url)) {
717 $linkstart =
'<span';
719 $linkstart =
'<a href="'.$url.
'"';
721 $linkstart .= $linkclose.
'>';
722 if ($option ==
'nolink' || empty($url)) {
723 $linkend =
'</span>';
728 $result .= $linkstart;
730 if (empty($this->showphoto_on_popup)) {
732 $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);
736 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
738 list($class, $module) = explode(
'@', $this->picto);
741 $filename = $filearray[0][
'name'];
742 if (!empty($filename)) {
743 $pospoint = strpos($filearray[0][
'name'],
'.');
745 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
747 $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>';
749 $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>';
754 $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);
759 if ($withpicto != 2) {
760 $result .= $this->ref;
766 global $action, $hookmanager;
767 $hookmanager->initHooks(array(
'availabilitiesdao'));
768 $parameters = array(
'id' => $this->
id,
'getnomurl' => &$result);
769 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
771 $result = $hookmanager->resPrint;
773 $result .= $hookmanager->resPrint;
788 global $conf, $langs;
790 $selected = (empty($arraydata[
'selected']) ? 0 : $arraydata[
'selected']);
792 $return =
'<div class="box-flex-item box-flex-grow-zero">';
793 $return .=
'<div class="info-box info-box-sm">';
794 $return .=
'<span class="info-box-icon bg-infobox-action">';
796 $return .=
'</span>';
797 $return .=
'<div class="info-box-content">';
798 $return .=
'<span class="info-box-ref inline-block tdoverflowmax150 valignmiddle">'.(method_exists($this,
'getNomUrl') ? $this->
getNomUrl() : $this->ref).
'</span>';
799 if ($selected >= 0) {
800 $return .=
'<input id="cb'.$this->id.
'" class="flat checkforselect fright" type="checkbox" name="toselect[]" value="'.$this->
id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
802 if (property_exists($this,
'label')) {
803 $return .=
' <div class="inline-block opacitymedium valignmiddle tdoverflowmax100">'.$this->label.
'</div>';
805 if (property_exists($this,
'amount')) {
807 $return .=
'<span class="info-box-label amount">'.price($this->amount, 0, $langs, 1, -1, -1, $conf->currency).
'</span>';
809 if (method_exists($this,
'getLibStatut')) {
810 $return .=
'<br><div class="info-box-status">'.$this->getLibStatut(3).
'</div>';
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;
864 if ($status == self::STATUS_VALIDATED) {
865 $statusType =
'status4';
867 if ($status == self::STATUS_CANCELED) {
868 $statusType =
'status6';
871 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
882 $sql =
"SELECT rowid,";
883 $sql .=
" date_creation as datec, tms as datem,";
884 $sql .=
" fk_user_creat, fk_user_modif";
885 $sql .=
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
886 $sql .=
" WHERE t.rowid = ".((int) $id);
888 $result = $this->db->query($sql);
890 if ($this->db->num_rows($result)) {
891 $obj = $this->db->fetch_object($result);
893 $this->
id = $obj->rowid;
895 $this->user_creation_id = $obj->fk_user_creat;
896 $this->user_modification_id = $obj->fk_user_modif;
897 $this->date_creation = $this->db->jdate($obj->datec);
898 $this->date_modification = empty($obj->datem) ?
'' : $this->db->jdate($obj->datem);
901 $this->db->free($result);
929 $this->lines = array();
932 $result = $objectline->fetchAll(
'ASC',
'position', 0, 0,
'(fk_availabilities:=:'.((
int) $this->
id).
')');
934 if (is_numeric($result)) {
935 $this->error = $objectline->error;
936 $this->errors = $objectline->errors;
939 $this->lines = $result;
951 global $langs, $conf;
952 $langs->load(
"agenda");
955 $conf->global->BOOKCAL_AVAILABILITIES_ADDON =
'mod_availabilities_standard';
965 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
966 foreach ($dirmodels as $reldir) {
970 $mybool = ((bool) @include_once $dir.$file) || $mybool;
973 if ($mybool ===
false) {
978 if (class_exists($classname)) {
979 $obj =
new $classname();
980 $numref = $obj->getNextValue($this);
982 if ($numref !=
'' && $numref !=
'-1') {
985 $this->error = $obj->error;
990 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
994 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
1010 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams =
null)
1012 global $conf, $langs;
1015 $includedocgeneration = 0;
1017 $langs->load(
"agenda");
1020 $modele =
'standard_availabilities';
1022 if (!empty($this->model_pdf)) {
1023 $modele = $this->model_pdf;
1029 $modelpath =
"core/modules/bookcal/doc/";
1031 if ($includedocgeneration && !empty($modele)) {
1032 $result = $this->
commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1047 global $conf, $langs;
1063 $this->db->commit();
1070require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
1088 $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.