28 require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
40 public $module =
'bookcal';
45 public $element =
'calendar';
50 public $table_element =
'bookcal_calendar';
56 public $ismultientitymanaged = 1;
61 public $isextrafieldmanaged = 1;
66 public $picto =
'fa-calendar-check';
69 const STATUS_DRAFT = 0;
70 const STATUS_VALIDATED = 1;
71 const STATUS_CANCELED = 9;
117 public $fields = array(
118 'rowid' => array(
'type' =>
'integer',
'label' =>
'TechnicalID',
'enabled' => 1,
'position' => 1,
'notnull' => 1,
'visible' => 0,
'noteditable' => 1,
'index' => 1,
'css' =>
'right',
'comment' =>
"Id"),
119 'entity' => array(
'type' =>
'integer',
'label' =>
'Entity',
'default' =>
'1',
'enabled' => 1,
'visible' => -2,
'notnull' => 1,
'position' => 40,
'index' => 1),
120 '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'),
121 '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,),
122 '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',),
123 'type' => array(
'type' =>
'integer',
'label' =>
'Type',
'enabled' => 1,
'position' => 42,
'notnull' => 1,
'visible' => 1,
'arrayofkeyval' => array(
'0' =>
'Customer',
'1' =>
'Supplier',
'3' =>
'Other'),),
124 '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,),
125 '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,),
126 'description' => array(
'type' =>
'text',
'label' =>
'Description',
'enabled' => 1,
'position' => 60,
'notnull' => 0,
'visible' => 3,
'validate' => 1,),
127 'note_public' => array(
'type' =>
'html',
'label' =>
'NotePublic',
'enabled' => 1,
'position' => 61,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
128 'note_private' => array(
'type' =>
'html',
'label' =>
'NotePrivate',
'enabled' => 1,
'position' => 62,
'notnull' => 0,
'visible' => 0,
'cssview' =>
'wordbreak',
'validate' => 1,),
129 'date_creation' => array(
'type' =>
'datetime',
'label' =>
'DateCreation',
'enabled' => 1,
'position' => 500,
'notnull' => 1,
'visible' => -2,),
130 'tms' => array(
'type' =>
'timestamp',
'label' =>
'DateModification',
'enabled' => 1,
'position' => 501,
'notnull' => 0,
'visible' => -2,),
131 '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',),
132 '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',),
133 'import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'position' => 1000,
'notnull' => -1,
'visible' => -2,),
134 '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,),
146 public $note_private;
147 public $date_creation;
148 public $fk_user_creat;
149 public $fk_user_modif;
162 global $langs, $user;
166 if (!
getDolGlobalInt(
'MAIN_SHOW_TECHNICAL_ID') && isset($this->fields[
'rowid']) && !empty($this->fields[
'ref'])) {
167 $this->fields[
'rowid'][
'visible'] = 0;
169 if (!
isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
170 $this->fields[
'entity'][
'enabled'] = 0;
178 $this->fields[
'visibility'][
'default'] = $user->id;
181 foreach ($this->fields as $key => $val) {
182 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
183 unset($this->fields[$key]);
188 if (is_object($langs)) {
189 foreach ($this->fields as $key => $val) {
190 if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
191 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
192 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
212 return $resultcreate;
224 global $langs, $extrafields;
234 $result =
$object->fetchCommon($fromid);
235 if ($result > 0 && !empty(
$object->table_element_line)) {
249 if (property_exists(
$object,
'ref')) {
250 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
252 if (property_exists(
$object,
'label')) {
253 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".
$object->label : $this->fields[
'label'][
'default'];
255 if (property_exists(
$object,
'status')) {
256 $object->status = self::STATUS_DRAFT;
258 if (property_exists(
$object,
'date_creation')) {
261 if (property_exists(
$object,
'date_modification')) {
262 $object->date_modification =
null;
266 if (is_array(
$object->array_options) && count(
$object->array_options) > 0) {
267 $extrafields->fetch_name_optionals_label($this->table_element);
268 foreach (
$object->array_options as $key => $option) {
269 $shortkey = preg_replace(
'/options_/',
'', $key);
270 if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
273 unset(
$object->array_options[$key]);
279 $object->context[
'createfromclone'] =
'createfromclone';
280 $result =
$object->createCommon($user);
295 if (!empty(
$object->socid) && property_exists($this,
'fk_soc') && $this->fk_soc ==
$object->socid) {
302 unset(
$object->context[
'createfromclone']);
309 $this->db->rollback();
321 public function fetch($id, $ref =
null)
324 if ($result > 0 && !empty($this->table_element_line)) {
337 $this->lines = array();
356 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, $filter =
'', $filtermode =
'AND')
364 $sql .=
" FROM ".$this->db->prefix().$this->table_element.
" as t";
365 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
366 $sql .=
" WHERE t.entity IN (".getEntity($this->element).
")";
368 $sql .=
" WHERE 1 = 1";
375 $this->errors[] = $errormessage;
376 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
380 if (!empty($sortfield)) {
381 $sql .= $this->db->order($sortfield, $sortorder);
383 if (!empty($limit)) {
384 $sql .= $this->db->plimit($limit, $offset);
387 $resql = $this->db->query(
$sql);
389 $num = $this->db->num_rows($resql);
391 while ($i < ($limit ? min($limit, $num) : $num)) {
392 $obj = $this->db->fetch_object($resql);
394 $record =
new self($this->db);
395 $record->setVarsFromFetchObj($obj);
397 $records[$record->id] = $record;
401 $this->db->free($resql);
405 $this->errors[] =
'Error '.$this->db->lasterror();
406 dol_syslog(__METHOD__.
' '.implode(
',', $this->errors), LOG_ERR);
431 public function delete(
User $user, $notrigger = 0)
448 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
467 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
472 if ($this->
status == self::STATUS_VALIDATED) {
473 dol_syslog(get_class($this).
"::validate action abandoned: already validated", LOG_WARNING);
482 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
487 $this->newref = $num;
491 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
492 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
493 $sql .=
" status = ".self::STATUS_VALIDATED;
494 if (!empty($this->fields[
'date_validation'])) {
495 $sql .=
", date_validation = '".$this->db->idate($now).
"'";
497 if (!empty($this->fields[
'fk_user_valid'])) {
498 $sql .=
", fk_user_valid = ".((int) $user->id);
500 $sql .=
" WHERE rowid = ".((int) $this->
id);
502 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
503 $resql = $this->db->query(
$sql);
506 $this->error = $this->db->lasterror();
510 if (!$error && !$notrigger) {
512 $result = $this->
call_trigger(
'MYOBJECT_VALIDATE', $user);
521 $this->oldref = $this->ref;
524 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
526 $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).
"'";
527 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'calendar/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
528 $resql = $this->db->query(
$sql);
531 $this->error = $this->db->lasterror();
533 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'calendar/".$this->db->escape($this->newref).
"'";
534 $sql .=
" WHERE filepath = 'calendar/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
535 $resql = $this->db->query(
$sql);
538 $this->error = $this->db->lasterror();
544 $dirsource = $conf->bookcal->dir_output.
'/calendar/'.$oldref;
545 $dirdest = $conf->bookcal->dir_output.
'/calendar/'.$newref;
546 if (!$error && file_exists($dirsource)) {
547 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
549 if (@rename($dirsource, $dirdest)) {
552 $listoffiles =
dol_dir_list($conf->bookcal->dir_output.
'/calendar/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
553 foreach ($listoffiles as $fileentry) {
554 $dirsource = $fileentry[
'name'];
555 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
556 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
557 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
558 @rename($dirsource, $dirdest);
568 $this->
status = self::STATUS_VALIDATED;
575 $this->db->rollback();
591 if ($this->
status <= self::STATUS_DRAFT) {
595 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'MYOBJECT_UNVALIDATE');
605 public function cancel($user, $notrigger = 0)
608 if ($this->
status != self::STATUS_VALIDATED) {
612 return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger,
'MYOBJECT_CANCEL');
622 public function reopen($user, $notrigger = 0)
625 if ($this->
status == self::STATUS_VALIDATED) {
629 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'MYOBJECT_REOPEN');
646 return [
'optimize' => $langs->trans(
"ShowCalendar")];
648 $datas[
'picto'] =
img_picto(
'', $this->picto).
' <u>'.$langs->trans(
"Calendar").
'</u>';
649 if (isset($this->
status)) {
650 $datas[
'picto'] .=
' '.$this->getLibStatut(5);
652 $datas[
'ref'] =
'<br><b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
667 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
669 global $conf, $langs, $hookmanager;
671 if (!empty($conf->dol_no_mouse_hover)) {
678 'objecttype' => $this->element.($this->module ?
'@'.$this->module :
''),
681 $classfortooltip =
'classfortooltip';
684 $classfortooltip =
'classforajaxtooltip';
685 $dataparams =
' data-params="'.dol_escape_htmltag(json_encode($params)).
'"';
691 $url =
dol_buildpath(
'/bookcal/calendar_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(
"ShowCalendar");
708 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
710 $linkclose .= ($label ?
' title="'.dol_escape_htmltag($label, 1).
'"' :
' title="tocomplete"');
711 $linkclose .= $dataparams.
' 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'), (($withpicto != 2) ?
'class="paddingright"' :
''), 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);
746 if (!
getDolGlobalInt(strtoupper($module.
'_'.$class).
'_FORMATLISTPHOTOSASUSERS')) {
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 ' :
'').
'"'), 0, 0, $notooltip ? 0 : 1);
759 if ($withpicto != 2) {
760 $result .= $this->ref;
766 global $action, $hookmanager;
767 $hookmanager->initHooks(array($this->element.
'dao'));
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_calendar:=:'.((
int) $this->
id).
')');
934 if (is_numeric($result)) {
938 $this->lines = $result;
950 global $langs, $conf;
951 $langs->load(
"agenda");
954 $conf->global->BOOKCAL_MYOBJECT_ADDON =
'mod_calendar_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_calendar';
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);
1062 $this->db->commit();
1069 require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
1082 public $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 into 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.
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
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.
dolGetStatus($statusLabel='', $statusLabelShort='', $html='', $statusType='status0', $displayMode=0, $url='', $params=array())
Output the badge of a status.
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.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.