26require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
 
   38  public $module = 
'webhook';
 
   43  public $element = 
'target';
 
   48  public $table_element = 
'webhook_target';
 
   54  public $ismultientitymanaged = 0;
 
   59  public $isextrafieldmanaged = 0;
 
   64  public $picto = 
'webhook';
 
   67  const STATUS_DRAFT = 0;
 
   68  const STATUS_VALIDATED = 1;
 
   69  const STATUS_CANCELED = 9;
 
  104  public $fields=array(
 
  105    'rowid' => array(
'type'=>
'integer', 
'label'=>
'TechnicalID', 
'enabled'=>
'1', 
'position'=>1, 
'notnull'=>1, 
'visible'=>0, 
'noteditable'=>
'1', 
'index'=>1, 
'css'=>
'left', 
'comment'=>
"Id"),
 
  106    'ref' => array(
'type'=>
'varchar(128)', 
'label'=>
'Ref', 
'enabled'=>
'1', 
'position'=>20, 
'notnull'=>1, 
'visible'=>4, 
'noteditable'=>
'1', 
'index'=>1, 
'searchall'=>1, 
'validate'=>
'1', 
'comment'=>
"Reference of object"),
 
  107    'label' => array(
'type'=>
'varchar(255)', 
'label'=>
'Label', 
'enabled'=>
'1', 
'position'=>30, 
'notnull'=>0, 
'visible'=>1, 
'searchall'=>1, 
'css'=>
'minwidth300', 
'cssview'=>
'wordbreak', 
'help'=>
"Help text", 
'showoncombobox'=>
'2', 
'validate'=>
'1',),
 
  108    'url' => array(
'type'=>
'varchar(255)', 
'label'=>
'Url', 
'enabled'=>
'1', 
'position'=>50, 
'notnull'=>1, 
'visible'=>1,),
 
  109    'trigger_codes' => array(
'type'=>
'text', 
'label'=>
'TriggerCodes', 
'enabled'=>
'1', 
'position'=>55, 
'notnull'=>1, 
'visible'=>1, 
'help'=>
"TriggerCodeInfo",),
 
  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', 
'enabled'=>
'1', 
'position'=>510, 
'notnull'=>1, 
'visible'=>-2, 
'foreignkey'=>
'user.rowid',),
 
  116    'fk_user_modif' => array(
'type'=>
'integer:User:user/class/user.class.php', 
'label'=>
'UserModif', 
'enabled'=>
'1', 
'position'=>511, 
'notnull'=>-1, 
'visible'=>-2,),
 
  117    'import_key' => array(
'type'=>
'varchar(14)', 
'label'=>
'ImportId', 
'enabled'=>
'1', 
'position'=>1000, 
'notnull'=>-1, 
'visible'=>-2,),
 
  118    'status' => array(
'type'=>
'integer', 
'label'=>
'Status', 
'enabled'=>
'1', 
'position'=>2000, 
'notnull'=>1, 
'default'=>1, 
'visible'=>1, 
'index'=>1, 
'arrayofkeyval'=>array(
'0'=>
'Disabled', 
'1'=>
'Enabled'), 
'validate'=>
'1',),
 
  125  public $note_private;
 
  126  public $date_creation;
 
  128  public $fk_user_creat;
 
  129  public $fk_user_modif;
 
  133  public $trigger_codes;
 
  180    global $conf, $langs;
 
  184    if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields[
'rowid'])) {
 
  185      $this->fields[
'rowid'][
'visible'] = 0;
 
  187    if (!isModEnabled(
'multicompany') && isset($this->fields[
'entity'])) {
 
  188      $this->fields[
'entity'][
'enabled'] = 0;
 
  198    foreach ($this->fields as $key => $val) {
 
  199      if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
 
  200        unset($this->fields[$key]);
 
  205    if (is_object($langs)) {
 
  206      foreach ($this->fields as $key => $val) {
 
  207        if (!empty($val[
'arrayofkeyval']) && is_array($val[
'arrayofkeyval'])) {
 
  208          foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
 
  209            $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
 
 
  226    $this->
ref = $this->id;
 
  228    if ($resultcreate <= 0) {
 
  229      return $resultcreate;
 
 
  244    global $langs, $extrafields;
 
  249    $object = 
new self($this->db);
 
  254    $result = $object->fetchCommon($fromid);
 
  255    if ($result > 0 && !empty($object->table_element_line)) {
 
  256      $object->fetchLines();
 
  265    unset($object->fk_user_creat);
 
  266    unset($object->import_key);
 
  269    if (property_exists($object, 
'ref')) {
 
  270      $object->ref = empty($this->fields[
'ref'][
'default']) ? 
"Copy_Of_".$object->ref : $this->fields[
'ref'][
'default'];
 
  272    if (property_exists($object, 
'label')) {
 
  273      $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".$object->label : $this->fields[
'label'][
'default'];
 
  275    if (property_exists($object, 
'status')) {
 
  276      $object->status = self::STATUS_DRAFT;
 
  278    if (property_exists($object, 
'date_creation')) {
 
  279      $object->date_creation = 
dol_now();
 
  281    if (property_exists($object, 
'date_modification')) {
 
  282      $object->date_modification = 
null;
 
  286    if (is_array($object->array_options) && count($object->array_options) > 0) {
 
  287      $extrafields->fetch_name_optionals_label($this->table_element);
 
  288      foreach ($object->array_options as $key => $option) {
 
  289        $shortkey = preg_replace(
'/options_/', 
'', $key);
 
  290        if (!empty($extrafields->attributes[$this->table_element][
'unique'][$shortkey])) {
 
  292          unset($object->array_options[$key]);
 
  298    $object->context[
'createfromclone'] = 
'createfromclone';
 
  299    $result = $object->createCommon($user);
 
  302      $this->error = $object->error;
 
  303      $this->errors = $object->errors;
 
  315      if (!empty($object->socid) && property_exists($this, 
'fk_soc') && $this->fk_soc == $object->socid) {
 
  322    unset($object->context[
'createfromclone']);
 
  329      $this->db->rollback();
 
 
  341  public function fetch($id, $ref = 
null)
 
  344    if (empty($this->
ref)) {
 
  345      $this->
ref = $this->id;
 
 
  358    $this->lines = array();
 
 
  376  public function fetchAll($sortorder = 
'', $sortfield = 
'', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 
'AND')
 
  386    $sql .= 
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
 
  387    if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) {
 
  388      $sql .= 
" WHERE t.entity IN (".getEntity($this->element).
")";
 
  390      $sql .= 
" WHERE 1 = 1";
 
  394    if (count($filter) > 0) {
 
  395      foreach ($filter as $key => $value) {
 
  396        if ($key == 
't.rowid') {
 
  397          $sqlwhere[] = $key.
" = ".((int) $value);
 
  398        } elseif (in_array($this->fields[$key][
'type'], array(
'date', 
'datetime', 
'timestamp'))) {
 
  399          $sqlwhere[] = $key.
" = '".$this->db->idate($value).
"'";
 
  400        } elseif ($key == 
'customsql') {
 
  401          $sqlwhere[] = $value;
 
  402        } elseif (strpos($value, 
'%') === 
false) {
 
  403          $sqlwhere[] = $key.
" IN (".$this->db->sanitize($this->db->escape($value)).
")";
 
  405          $sqlwhere[] = $key.
" LIKE '%".$this->db->escape($value).
"%'";
 
  409    if (count($sqlwhere) > 0) {
 
  410      $sql .= 
" AND (".implode(
" ".$filtermode.
" ", $sqlwhere).
")";
 
  413    if (!empty($sortfield)) {
 
  414      $sql .= $this->db->order($sortfield, $sortorder);
 
  416    if (!empty($limit)) {
 
  417      $sql .= $this->db->plimit($limit, $offset);
 
  420    $resql = $this->db->query($sql);
 
  422      $num = $this->db->num_rows($resql);
 
  424      while ($i < ($limit ? min($limit, $num) : $num)) {
 
  425        $obj = $this->db->fetch_object($resql);
 
  427        $record = 
new self($this->db);
 
  428        $record->setVarsFromFetchObj($obj);
 
  430        $records[$record->id] = $record;
 
  434      $this->db->free($resql);
 
  438      $this->errors[] = 
'Error '.$this->db->lasterror();
 
  439      dol_syslog(__METHOD__.
' '.join(
',', $this->errors), LOG_ERR);
 
 
  464  public function delete(
User $user, $notrigger = 
false)
 
 
  480    if ($this->status < 0) {
 
  481      $this->error = 
'ErrorDeleteLineNotAllowedByObjectStatus';
 
 
  498    global $conf, $langs;
 
  500    require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
 
  505    if ($this->status == self::STATUS_VALIDATED) {
 
  506      dol_syslog(get_class($this).
"::validate action abandonned: already validated", LOG_WARNING);
 
  523    if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) { 
 
  528    $this->newref = $num;
 
  532      $sql = 
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
 
  533      $sql .= 
" SET ref = '".$this->db->escape($num).
"',";
 
  534      $sql .= 
" status = ".self::STATUS_VALIDATED;
 
  535      if (!empty($this->fields[
'date_validation'])) {
 
  536        $sql .= 
", date_validation = '".$this->db->idate($now).
"'";
 
  538      if (!empty($this->fields[
'fk_user_valid'])) {
 
  539        $sql .= 
", fk_user_valid = ".((int) $user->id);
 
  541      $sql .= 
" WHERE rowid = ".((int) $this->
id);
 
  543      dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
 
  544      $resql = $this->db->query($sql);
 
  547        $this->error = $this->db->lasterror();
 
  551      if (!$error && !$notrigger) {
 
  553        $result = $this->
call_trigger(
'TARGET_VALIDATE', $user);
 
  562      $this->oldref = $this->ref;
 
  565      if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
 
  567        $sql = 
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'target/".$this->db->escape($this->newref).
"'";
 
  568        $sql .= 
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'target/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
 
  569        $resql = $this->db->query($sql);
 
  571          $error++; $this->error = $this->db->lasterror();
 
  573        $sql = 
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filepath = 'target/".$this->db->escape($this->newref).
"'";
 
  574        $sql .= 
" WHERE filepath = 'target/".$this->db->escape($this->
ref).
"' and entity = ".$conf->entity;
 
  575        $resql = $this->db->query($sql);
 
  577          $error++; $this->error = $this->db->lasterror();
 
  583        $dirsource = $conf->webhook->dir_output.
'/target/'.$oldref;
 
  584        $dirdest = $conf->webhook->dir_output.
'/target/'.$newref;
 
  585        if (!$error && file_exists($dirsource)) {
 
  586          dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
 
  588          if (@rename($dirsource, $dirdest)) {
 
  591            $listoffiles = 
dol_dir_list($conf->webhook->dir_output.
'/target/'.$newref, 
'files', 1, 
'^'.preg_quote($oldref, 
'/'));
 
  592            foreach ($listoffiles as $fileentry) {
 
  593              $dirsource = $fileentry[
'name'];
 
  594              $dirdest = preg_replace(
'/^'.preg_quote($oldref, 
'/').
'/', $newref, $dirsource);
 
  595              $dirsource = $fileentry[
'path'].
'/'.$dirsource;
 
  596              $dirdest = $fileentry[
'path'].
'/'.$dirdest;
 
  597              @rename($dirsource, $dirdest);
 
  607      $this->status = self::STATUS_VALIDATED;
 
  614      $this->db->rollback();
 
 
  630    if ($this->status <= self::STATUS_DRAFT) {
 
  641    return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger, 
'TARGET_UNVALIDATE');
 
 
  651  public function cancel($user, $notrigger = 0)
 
  654    if ($this->status != self::STATUS_VALIDATED) {
 
  665    return $this->
setStatusCommon($user, self::STATUS_CANCELED, $notrigger, 
'TARGET_CANCEL');
 
 
  675  public function reopen($user, $notrigger = 0)
 
  678    if ($this->status != self::STATUS_CANCELED) {
 
  689    return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger, 
'TARGET_REOPEN');
 
 
  702  public function getNomUrl($withpicto = 0, $option = 
'', $notooltip = 0, $morecss = 
'', $save_lastsearch_value = -1)
 
  704    global $conf, $langs, $hookmanager;
 
  706    if (!empty($conf->dol_no_mouse_hover)) {
 
  712    $label = 
img_picto(
'', $this->picto).
' <u>'.$langs->trans(
"Target").
'</u>';
 
  713    if (isset($this->status)) {
 
  714      $label .= 
' '.$this->getLibStatut(5);
 
  717    $label .= 
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
 
  719    $url = 
dol_buildpath(
'/webhook/target_card.php', 1).
'?id='.$this->id;
 
  721    if ($option != 
'nolink') {
 
  723      $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
 
  724      if ($save_lastsearch_value == -1 && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) {
 
  725        $add_save_lastsearch_values = 1;
 
  727      if ($url && $add_save_lastsearch_values) {
 
  728        $url .= 
'&save_lastsearch_values=1';
 
  733    if (empty($notooltip)) {
 
  734      if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
 
  735        $label = $langs->trans(
"ShowTarget");
 
  736        $linkclose .= 
' alt="'.dol_escape_htmltag($label, 1).
'"';
 
  738      $linkclose .= 
' title="'.dol_escape_htmltag($label, 1).
'"';
 
  739      $linkclose .= 
' class="classfortooltip'.($morecss ? 
' '.$morecss : 
'').
'"';
 
  741      $linkclose = ($morecss ? 
' class="'.$morecss.
'"' : 
'');
 
  744    if ($option == 
'nolink' || empty($url)) {
 
  745      $linkstart = 
'<span';
 
  747      $linkstart = 
'<a href="'.$url.
'"';
 
  749    $linkstart .= $linkclose.
'>';
 
  750    if ($option == 
'nolink' || empty($url)) {
 
  751      $linkend = 
'</span>';
 
  756    $result .= $linkstart;
 
  758    if (empty($this->showphoto_on_popup)) {
 
  760        $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);
 
  764        require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
 
  766        list($class, $module) = explode(
'@', $this->picto);
 
  769        $filename = $filearray[0][
'name'];
 
  770        if (!empty($filename)) {
 
  771          $pospoint = strpos($filearray[0][
'name'], 
'.');
 
  773          $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
 
  774          if (empty($conf->global->{strtoupper($module.
'_'.$class).
'_FORMATLISTPHOTOSASUSERS'})) {
 
  775            $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>';
 
  777            $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>';
 
  782          $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);
 
  787    if ($withpicto != 2) {
 
  788      $result .= $this->ref;
 
  794    global $action, $hookmanager;
 
  795    $hookmanager->initHooks(array(
'targetdao'));
 
  796    $parameters = array(
'id'=>$this->
id, 
'getnomurl' => &$result);
 
  797    $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action); 
 
  799      $result = $hookmanager->resPrint;
 
  801      $result .= $hookmanager->resPrint;
 
 
  815    return $this->LibStatut($this->status, $mode);
 
 
  826    return $this->LibStatut($this->status, $mode);
 
 
  840    if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
 
  843      $this->labelStatus[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
 
  844      $this->labelStatus[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
 
  845      $this->labelStatus[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
 
  846      $this->labelStatusShort[self::STATUS_DRAFT] = $langs->transnoentitiesnoconv(
'Draft');
 
  847      $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->transnoentitiesnoconv(
'Enabled');
 
  848      $this->labelStatusShort[self::STATUS_CANCELED] = $langs->transnoentitiesnoconv(
'Disabled');
 
  851    $statusType = 
'status'.$status;
 
  853    if ($status == self::STATUS_CANCELED) {
 
  854      $statusType = 
'status6';
 
  857    return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status], 
'', $statusType, $mode);
 
 
  868    $sql = 
"SELECT rowid, date_creation as datec, tms as datem,";
 
  869    $sql .= 
" fk_user_creat, fk_user_modif";
 
  870    $sql .= 
" FROM ".MAIN_DB_PREFIX.$this->table_element.
" as t";
 
  871    $sql .= 
" WHERE t.rowid = ".((int) $id);
 
  873    $result = $this->db->query($sql);
 
  875      if ($this->db->num_rows($result)) {
 
  876        $obj = $this->db->fetch_object($result);
 
  877        $this->
id = $obj->rowid;
 
  880        $this->user_creation_id = $obj->fk_user_creat;
 
  881        $this->user_modification_id = $obj->fk_user_modif;
 
  882        $this->date_creation     = $this->db->jdate($obj->datec);
 
  883        $this->date_modification = empty($obj->datem) ? 
'' : $this->db->jdate($obj->datem);
 
  886      $this->db->free($result);
 
 
  900    $this->url = 
"https://thisisunurl";
 
  901    $this->trigger_codes = 
"ThisIsATestCode";
 
  902    $this->initAsSpecimenCommon();
 
 
  912    $this->lines = array();
 
  915    $result = $objectline->fetchAll(
'ASC', 
'position', 0, 0, array(
'customsql'=>
'fk_target = '.((
int) $this->
id)));
 
  917    if (is_numeric($result)) {
 
  918      $this->error = $objectline->error;
 
  919      $this->errors = $objectline->errors;
 
  922      $this->lines = $result;
 
 
  934    global $langs, $conf;
 
  936    if (empty($conf->global->WEBHOOK_TARGET_ADDON)) {
 
  937      $conf->global->WEBHOOK_TARGET_ADDON = 
'mod_target_standard';
 
  940    if (!empty($conf->global->WEBHOOK_TARGET_ADDON)) {
 
  943      $file = $conf->global->WEBHOOK_TARGET_ADDON.
".php";
 
  944      $classname = $conf->global->WEBHOOK_TARGET_ADDON;
 
  947      $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
 
  948      foreach ($dirmodels as $reldir) {
 
  952        $mybool |= @include_once $dir.$file;
 
  955      if ($mybool === 
false) {
 
  960      if (class_exists($classname)) {
 
  961        $obj = 
new $classname();
 
  962        $numref = $obj->getNextValue($this);
 
  964        if ($numref != 
'' && $numref != 
'-1') {
 
  967          $this->error = $obj->error;
 
  972        print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
 
  976      print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
 
 
  992  public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = 
null)
 
  994    global $conf, $langs;
 
  997    $includedocgeneration = 0;
 
 1000      $modele = 
'standard_target';
 
 1002      if (!empty($this->model_pdf)) {
 
 1003        $modele = $this->model_pdf;
 
 1004      } elseif (!empty($conf->global->TARGET_ADDON_PDF)) {
 
 1005        $modele = $conf->global->TARGET_ADDON_PDF;
 
 1009    $modelpath = 
"core/modules/webhook/doc/";
 
 1011    if ($includedocgeneration && !empty($modele)) {
 
 1012      $result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
 
 
 1027    global $conf, $langs;
 
 1043    $this->db->commit();
 
 
 
 1050require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobjectline.class.php';
 
 1063  public $isextrafieldmanaged = 0;
 
 
Parent class of all other business classes (invoices, contracts, proposals, orders,...
 
deleteLineCommon(User $user, $idline, $notrigger=false)
Delete a line of object in database.
 
fetchCommon($id, $ref=null, $morewhere='')
Load object in memory from the database.
 
createCommon(User $user, $notrigger=false)
Create object into database.
 
deleteCommon(User $user, $notrigger=false, $forcechilddeletion=0)
Delete object in database.
 
getFieldList($alias='', $excludefields=array())
Function to concat keys of fields.
 
setStatusCommon($user, $status, $notrigger=0, $triggercode='')
Set to a status.
 
copy_linked_contact($objFrom, $source='internal')
Copy contact from one element to current.
 
updateCommon(User $user, $notrigger=false)
Update object into database.
 
fetchLinesCommon($morewhere='')
Load object in memory from the 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.
 
fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, array $filter=array(), $filtermode='AND')
Load list of objects in memory from the database.
 
update(User $user, $notrigger=false)
Update object into database.
 
deleteLine(User $user, $idline, $notrigger=false)
Delete a line of object in database.
 
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
 
getLinesArray()
Create an array of lines.
 
getLabelStatus($mode=0)
Return the label of the status.
 
getNomUrl($withpicto=0, $option='', $notooltip=0, $morecss='', $save_lastsearch_value=-1)
Return a link to the object card (with optionaly the picto)
 
fetchLines()
Load object lines in memory from the database.
 
info($id)
Load the info information in the object.
 
fetch($id, $ref=null)
Load object in memory from the database.
 
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
 
__construct(DoliDB $db)
Constructor.
 
getLibStatut($mode=0)
Return the label of the status.
 
reopen($user, $notrigger=0)
Set back to validated status.
 
createFromClone(User $user, $fromid)
Clone an object into another one.
 
LibStatut($status, $mode=0)
Return the 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.
 
cancel($user, $notrigger=0)
Set cancel status.
 
create(User $user, $notrigger=false)
Create object into database.
 
validate($user, $notrigger=0)
Validate object.
 
setDraft($user, $notrigger=0)
Set draft status.
 
__construct(DoliDB $db)
Constructor.
 
Class to manage Dolibarr users.
 
dol_dir_list($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.
 
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
 
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
 
dol_strlen($string, $stringencoding='UTF-8')
Make a strlen call.
 
dol_now($mode='auto')
Return date for now.
 
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
 
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_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.