27 require_once DOL_DOCUMENT_ROOT.
'/core/class/commonobject.class.php';
28 require_once DOL_DOCUMENT_ROOT.
'/core/class/commonincoterm.class.php';
42 public $element =
'stocktransfer';
47 public $table_element =
'stocktransfer_stocktransfer';
53 public $ismultientitymanaged = 0;
58 public $isextrafieldmanaged = 1;
63 public $picto =
'stock';
65 public $date_prevue_depart;
66 public $date_prevue_arrivee;
67 public $date_reelle_depart;
68 public $date_reelle_arrivee;
71 const STATUS_DRAFT = 0;
72 const STATUS_VALIDATED = 1;
73 const STATUS_TRANSFERED = 2;
74 const STATUS_CLOSED = 3;
106 public $fields=array(
107 'rowid' => array(
'type'=>
'integer',
'label'=>
'TechnicalID',
'enabled'=>
'1',
'position'=>1,
'notnull'=>1,
'visible'=>0,
'noteditable'=>
'1',
'index'=>1,
'comment'=>
"Id"),
108 'entity' => array(
'type'=>
'integer',
'label'=>
'Entity',
'enabled'=>
'1',
'position'=>1,
'default'=>1,
'notnull'=>1,
'visible'=>0,
'noteditable'=>
'1',
'index'=>1,
'comment'=>
"Id"),
109 'ref' => array(
'type'=>
'varchar(128)',
'label'=>
'Ref',
'enabled'=>
'1',
'position'=>10,
'notnull'=>1,
'visible'=>4,
'noteditable'=>
'1',
'default'=>
'(PROV)',
'index'=>1,
'searchall'=>1,
'showoncombobox'=>
'1',
'comment'=>
"Reference of object"),
110 'label' => array(
'type'=>
'varchar(255)',
'label'=>
'Label',
'enabled'=>
'1',
'position'=>30,
'notnull'=>0,
'visible'=>1,
'searchall'=>1,
'css'=>
'minwidth200',
'showoncombobox'=>
'1',),
111 'description' => array(
'type'=>
'text',
'label'=>
'Description',
'enabled'=>
'1',
'position'=>31,
'notnull'=>0,
'visible'=>3,),
112 'fk_project' => array(
'type'=>
'integer:Project:projet/class/project.class.php:1',
'label'=>
'Project',
'enabled'=>
'$conf->project->enabled',
'position'=>32,
'notnull'=>-1,
'visible'=>-1,
'index'=>1,),
113 'fk_soc' => array(
'type'=>
'integer:Societe:societe/class/societe.class.php:1:status=1 AND entity IN (__SHARED_ENTITIES__)',
'label'=>
'ThirdParty',
'enabled'=>
'1',
'position'=>50,
'notnull'=>-1,
'visible'=>1,
'index'=>1,),
114 'fk_warehouse_source' => array(
'type'=>
'integer:Entrepot:product/stock/class/entrepot.class.php',
'label'=>
'Entrepôt source',
'enabled'=>
'1',
'position'=>50,
'notnull'=>0,
'visible'=>1,
'help'=>
'HelpWarehouseStockTransferSource',),
115 'fk_warehouse_destination' => array(
'type'=>
'integer:Entrepot:product/stock/class/entrepot.class.php',
'label'=>
'Entrepôt de destination',
'enabled'=>
'1',
'position'=>51,
'notnull'=>0,
'visible'=>1,
'help'=>
'HelpWarehouseStockTransferDestination'),
116 'note_public' => array(
'type'=>
'html',
'label'=>
'NotePublic',
'enabled'=>
'1',
'position'=>61,
'notnull'=>0,
'visible'=>0,),
117 'note_private' => array(
'type'=>
'html',
'label'=>
'NotePrivate',
'enabled'=>
'1',
'position'=>62,
'notnull'=>0,
'visible'=>0,),
118 'date_creation' => array(
'type'=>
'datetime',
'label'=>
'DateCreation',
'enabled'=>
'1',
'position'=>500,
'notnull'=>1,
'visible'=>-2,),
119 'date_prevue_depart' => array(
'type'=>
'date',
'label'=>
'DatePrevueDepart',
'enabled'=>
'1',
'position'=>100,
'notnull'=>0,
'visible'=>1,),
120 'date_reelle_depart' => array(
'type'=>
'date',
'label'=>
'DateReelleDepart',
'enabled'=>
'1',
'position'=>101,
'notnull'=>0,
'visible'=>5,),
121 'date_prevue_arrivee' => array(
'type'=>
'date',
'label'=>
'DatePrevueArrivee',
'enabled'=>
'1',
'position'=>102,
'notnull'=>0,
'visible'=>1,),
122 'date_reelle_arrivee' => array(
'type'=>
'date',
'label'=>
'DateReelleArrivee',
'enabled'=>
'1',
'position'=>103,
'notnull'=>0,
'visible'=>5,),
123 'lead_time_for_warning' => array(
'type'=>
'integer',
'label'=>
'LeadTimeForWarning',
'enabled'=>
'1',
'position'=>200,
'default'=>0,
'notnull'=>0,
'visible'=>1),
124 'tms' => array(
'type'=>
'timestamp',
'label'=>
'DateModification',
'enabled'=>
'1',
'position'=>501,
'notnull'=>0,
'visible'=>-2,),
125 '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',),
126 'fk_user_modif' => array(
'type'=>
'integer:User:user/class/user.class.php',
'label'=>
'ChangedBy',
'enabled'=>
'1',
'position'=>511,
'notnull'=>-1,
'visible'=>-2,),
127 'import_key' => array(
'type'=>
'varchar(14)',
'label'=>
'ImportId',
'enabled'=>
'1',
'position'=>1000,
'notnull'=>-1,
'visible'=>-2,),
128 'model_pdf' => array(
'type'=>
'varchar(255)',
'label'=>
'Model pdf',
'enabled'=>
'1',
'position'=>1010,
'notnull'=>-1,
'visible'=>0,),
129 'fk_incoterms' =>array(
'type'=>
'integer',
'label'=>
'IncotermCode',
'enabled'=>
'$conf->incoterm->enabled',
'visible'=>-2,
'position'=>220),
130 'location_incoterms' =>array(
'type'=>
'varchar(255)',
'label'=>
'IncotermLabel',
'enabled'=>
'$conf->incoterm->enabled',
'visible'=>-2,
'position'=>225),
131 'status' => array(
'type'=>
'smallint',
'label'=>
'Status',
'enabled'=>
'1',
'position'=>1000,
'notnull'=>1,
'visible'=>5,
'index'=>1,
'arrayofkeyval'=>array(
'0'=>
'Draft',
'1'=>
'Validated',
'2'=>
'StockStransferDecremented',
'3'=>
'StockStransferIncremented'),),
140 public $note_private;
141 public $date_creation;
143 public $fk_user_creat;
144 public $fk_user_modif;
156 public $table_element_line =
'stocktransfer_stocktransferline';
161 public $fk_element =
'fk_stocktransfer';
178 protected $childtablesoncascade = array(
'stocktransfer_stocktransferline');
194 global $conf, $langs;
197 $this->origin_type =
'StockTransfer@product/stock/stocktransfer';
199 if (empty($conf->global->MAIN_SHOW_TECHNICAL_ID) && isset($this->fields[
'rowid'])) $this->fields[
'rowid'][
'visible'] = 0;
200 if (empty($conf->multicompany->enabled) && isset($this->fields[
'entity'])) $this->fields[
'entity'][
'enabled'] = 0;
209 foreach ($this->fields as $key => $val) {
210 if (isset($val[
'enabled']) && empty($val[
'enabled'])) {
211 unset($this->fields[$key]);
216 if (is_object($langs)) {
217 foreach ($this->fields as $key => $val) {
218 if (is_array($val[
'arrayofkeyval'])) {
219 foreach ($val[
'arrayofkeyval'] as $key2 => $val2) {
220 $this->fields[$key][
'arrayofkeyval'][$key2] = $langs->trans($val2);
237 if (!empty($model_pdf)) $this->model_pdf = $model_pdf;
238 $this->status = (int) $this->status;
239 if ($this->fk_warehouse_source <= 0) $this->fk_warehouse_source = 0;
240 if ($this->fk_warehouse_destination <= 0) $this->fk_warehouse_destination = 0;
253 global $langs, $extrafields;
258 $object =
new self($this->db);
263 $result = $object->fetchCommon($fromid);
264 if ($result > 0 && !empty($object->table_element_line)) $object->fetchLines();
272 unset($object->fk_user_creat);
273 unset($object->import_key);
274 unset($object->date_prevue_depart);
275 unset($object->date_prevue_arrivee);
276 unset($object->date_reelle_depart);
277 unset($object->date_reelle_arrivee);
281 $object->ref = empty($this->fields[
'ref'][
'default']) ?
"copy_of_".$object->ref : $this->fields[
'ref'][
'default'];
282 $object->label = empty($this->fields[
'label'][
'default']) ? $langs->trans(
"CopyOf").
" ".$object->label : $this->fields[
'label'][
'default'];
283 $object->status = self::STATUS_DRAFT;
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 (property_exists($this,
'socid') && $this->socid == $object->socid) {
321 unset($object->context[
'createfromclone']);
328 $this->
db->rollback();
340 public function fetch($id, $ref = null)
343 if ($result > 0 && !empty($this->table_element_line)) $this->
fetchLines();
354 require_once DOL_DOCUMENT_ROOT .
'/product/stock/stocktransfer/class/stocktransferline.class.php';
355 $this->lines = array();
358 usort($this->lines, array(
'stocktransfer',
'cmp'));
369 public function cmp($a, $b)
371 if ($a->rang == $b->rang) {
374 return ($a->rang < $b->rang) ? -1 : 1;
388 if (!empty($this->lines)) {
389 foreach ($this->lines as $l) $total_pmp+= ($l->pmp * $l->qty);
406 public function fetchAll($sortorder =
'', $sortfield =
'', $limit = 0, $offset = 0, array $filter = array(), $filtermode =
'AND')
416 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
417 if (isset($this->ismultientitymanaged) && $this->ismultientitymanaged == 1) $sql .=
' WHERE t.entity IN ('.getEntity($this->table_element).
')';
418 else $sql .=
' WHERE 1 = 1';
421 if (count($filter) > 0) {
422 foreach ($filter as $key => $value) {
423 if ($key ==
't.rowid') {
424 $sqlwhere[] = $key.
'='.$value;
425 } elseif (strpos($key,
'date') !==
false) {
426 $sqlwhere[] = $key.
' = \''.$this->
db->idate($value).
'\'';
427 } elseif ($key ==
'customsql') {
428 $sqlwhere[] = $value;
430 $sqlwhere[] = $key.
' LIKE \'%'.$this->
db->escape($value).
'%\'';
434 if (count($sqlwhere) > 0) {
435 $sql .=
" AND (".implode(
" ".$filtermode.
" ", $sqlwhere).
")";
438 if (!empty($sortfield)) {
439 $sql .= $this->
db->order($sortfield, $sortorder);
441 if (!empty($limit)) {
442 $sql .=
' '.$this->db->plimit($limit, $offset);
449 while ($i < ($limit ? min($limit, $num) : $num)) {
450 $obj = $this->
db->fetch_object(
$resql);
452 $record =
new self($this->db);
453 $record->setVarsFromFetchObj($obj);
455 $records[$record->id] = $record;
463 $this->errors[] =
'Error '.$this->db->lasterror();
464 dol_syslog(__METHOD__.
' '.join(
',', $this->errors), LOG_ERR);
481 if ($this->socid > 0 || $this->fk_soc > 0 && empty($this->thirdparty)) $this->
fetch_thirdparty();
482 if (empty($this->socid) && empty($this->fk_soc)) unset($this->thirdparty);
493 public function delete(
User $user, $notrigger =
false)
495 if ($this->status > self::STATUS_VALIDATED) {
512 if ($this->status < 0) {
513 $this->error =
'ErrorDeleteLineNotAllowedByObjectStatus';
532 global $conf, $langs;
534 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
539 if ($this->status == self::STATUS_VALIDATED) {
540 dol_syslog(get_class($this).
"::validate action abandonned: already validated", LOG_WARNING);
557 if (!$error && (preg_match(
'/^[\(]?PROV/i', $this->
ref) || empty($this->
ref))) {
562 $this->newref = $num;
566 $sql =
"UPDATE ".MAIN_DB_PREFIX.$this->table_element;
567 $sql .=
" SET ref = '".$this->db->escape($num).
"',";
568 $sql .=
" status = ".self::STATUS_VALIDATED;
569 if (!empty($this->fields[
'date_validation'])) $sql .=
", date_validation = '".$this->db->idate($now).
"',";
570 if (!empty($this->fields[
'fk_user_valid'])) $sql .=
", fk_user_valid = ".((int) $user->id);
571 $sql .=
" WHERE rowid = ".((int) $this->
id);
573 dol_syslog(get_class($this).
"::validate()", LOG_DEBUG);
577 $this->error = $this->
db->lasterror();
581 if (!$error && !$notrigger) {
583 $result = $this->
call_trigger(
'STOCKTRANSFER_VALIDATE', $user);
584 if ($result < 0) $error++;
590 $this->oldref = $this->ref;
593 if (preg_match(
'/^[\(]?PROV/i', $this->
ref)) {
595 $sql =
'UPDATE '.MAIN_DB_PREFIX.
"ecm_files set filename = CONCAT('".$this->
db->escape($this->newref).
"', SUBSTR(filename, ".(strlen($this->
ref) + 1).
")), filepath = 'stocktransfer/".$this->
db->escape($this->newref).
"'";
596 $sql .=
" WHERE filename LIKE '".$this->db->escape($this->
ref).
"%' AND filepath = 'stocktransfer/".$this->
db->escape($this->
ref).
"' and entity = ".((int) $conf->entity);
598 if (!
$resql) { $error++; $this->error = $this->
db->lasterror(); }
603 $dirsource = $conf->stocktransfer->dir_output.
'/stocktransfer/'.$oldref;
604 $dirdest = $conf->stocktransfer->dir_output.
'/stocktransfer/'.$newref;
605 if (!$error && file_exists($dirsource)) {
606 dol_syslog(get_class($this).
"::validate() rename dir ".$dirsource.
" into ".$dirdest);
608 if (@rename($dirsource, $dirdest)) {
611 $listoffiles =
dol_dir_list($conf->stocktransfer->dir_output.
'/stocktransfer/'.$newref,
'files', 1,
'^'.preg_quote($oldref,
'/'));
612 foreach ($listoffiles as $fileentry) {
613 $dirsource = $fileentry[
'name'];
614 $dirdest = preg_replace(
'/^'.preg_quote($oldref,
'/').
'/', $newref, $dirsource);
615 $dirsource = $fileentry[
'path'].
'/'.$dirsource;
616 $dirdest = $fileentry[
'path'].
'/'.$dirdest;
617 @rename($dirsource, $dirdest);
627 $this->status = self::STATUS_VALIDATED;
634 $this->
db->rollback();
650 if ($this->status <= self::STATUS_DRAFT) {
661 return $this->
setStatusCommon($user, self::STATUS_DRAFT, $notrigger,
'STOCKTRANSFER_UNVALIDATE');
671 public function cancel($user, $notrigger = 0)
674 if ($this->status != self::STATUS_VALIDATED) {
685 return $this->
setStatusCommon($user, self::STATUS_CLOSED, $notrigger,
'STOCKTRANSFER_CLOSE');
695 public function reopen($user, $notrigger = 0)
698 if ($this->status != self::STATUS_CLOSED) {
709 return $this->
setStatusCommon($user, self::STATUS_VALIDATED, $notrigger,
'STOCKTRANSFER_REOPEN');
722 public function getNomUrl($withpicto = 0, $option =
'', $notooltip = 0, $morecss =
'', $save_lastsearch_value = -1)
724 global $conf, $langs, $hookmanager;
726 if (!empty($conf->dol_no_mouse_hover)) $notooltip = 1;
730 $label =
'<u>'.$langs->trans(
"StockTransfer").
'</u>';
732 $label .=
'<b>'.$langs->trans(
'Ref').
':</b> '.$this->ref;
733 if (isset($this->status)) {
734 $label .=
'<br><b>'.$langs->trans(
"Status").
":</b> ".$this->
getLibStatut(5);
737 $url =
dol_buildpath(
'/product/stock/stocktransfer/stocktransfer_card.php', 1).
'?id='.$this->id;
739 if ($option !=
'nolink') {
741 $add_save_lastsearch_values = ($save_lastsearch_value == 1 ? 1 : 0);
742 if ($save_lastsearch_value == -1 && preg_match(
'/list\.php/', $_SERVER[
"PHP_SELF"])) $add_save_lastsearch_values = 1;
743 if ($add_save_lastsearch_values) $url .=
'&save_lastsearch_values=1';
747 if (empty($notooltip)) {
748 if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
749 $label = $langs->trans(
"ShowStockTransfer");
750 $linkclose .=
' alt="'.dol_escape_htmltag($label, 1).
'"';
752 $linkclose .=
' title="'.dol_escape_htmltag($label, 1).
'"';
753 $linkclose .=
' class="classfortooltip'.($morecss ?
' '.$morecss :
'').
'"';
754 }
else $linkclose = ($morecss ?
' class="'.$morecss.
'"' :
'');
756 $linkstart =
'<a href="'.$url.
'"';
757 $linkstart .= $linkclose.
'>';
760 $result .= $linkstart;
762 if (empty($this->showphoto_on_popup)) {
763 if ($withpicto) $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);
766 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
768 list($class, $module) = explode(
'@', $this->picto);
771 $filename = $filearray[0][
'name'];
772 if (!empty($filename)) {
773 $pospoint = strpos($filearray[0][
'name'],
'.');
775 $pathtophoto = $class.
'/'.$this->
ref.
'/thumbs/'.substr($filename, 0, $pospoint).
'_mini'.substr($filename, $pospoint);
776 if (empty($conf->global->{strtoupper($module.
'_'.$class).
'_FORMATLISTPHOTOSASUSERS'})) {
777 $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>';
779 $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>';
784 $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);
789 if ($withpicto != 2) $result .= $this->ref;
794 global $action, $hookmanager;
795 $hookmanager->initHooks(array(
'stocktransferdao'));
796 $parameters = array(
'id'=>$this->
id,
'getnomurl'=>$result);
797 $reshook = $hookmanager->executeHooks(
'getNomUrl', $parameters, $this, $action);
798 if ($reshook > 0) $result = $hookmanager->resPrint;
799 else $result .= $hookmanager->resPrint;
812 return $this->LibStatut($this->status, $mode);
826 if (empty($this->labelStatus) || empty($this->labelStatusShort)) {
829 $this->labelStatus[self::STATUS_DRAFT] = $langs->trans(
'Draft');
830 $this->labelStatus[self::STATUS_VALIDATED] = $langs->trans(
'Validated');
831 $this->labelStatus[self::STATUS_TRANSFERED] = $langs->trans(
'StockStransferDecremented');
832 $this->labelStatus[self::STATUS_CLOSED] = $langs->trans(
'StockStransferIncremented');
833 $this->labelStatusShort[self::STATUS_DRAFT] = $langs->trans(
'Draft');
834 $this->labelStatusShort[self::STATUS_VALIDATED] = $langs->trans(
'Validated');
835 $this->labelStatusShort[self::STATUS_TRANSFERED] = $langs->trans(
'StockStransferDecremented');
836 $this->labelStatusShort[self::STATUS_CLOSED] = $langs->trans(
'StockStransferIncremented');
839 $statusType =
'status'.$status;
841 if ($status == self::STATUS_CLOSED) $statusType =
'status6';
843 return dolGetStatus($this->labelStatus[$status], $this->labelStatusShort[$status],
'', $statusType, $mode);
854 $sql =
'SELECT rowid, date_creation as datec, tms as datem,';
855 $sql .=
' fk_user_creat, fk_user_modif';
856 $sql .=
' FROM '.MAIN_DB_PREFIX.$this->table_element.
' as t';
857 $sql .=
' WHERE t.rowid = '.((int) $id);
858 $result = $this->
db->query($sql);
860 if ($this->
db->num_rows($result)) {
861 $obj = $this->
db->fetch_object($result);
862 $this->
id = $obj->rowid;
864 $this->user_creation_id = $obj->fk_user_creat;
865 $this->user_modification_id = $obj->fk_user_modif;
866 $this->date_creation = $this->
db->jdate($obj->datec);
867 $this->date_modification = empty($obj->datem) ?
'' : $this->
db->jdate($obj->datem);
870 $this->
db->free($result);
884 $this->initAsSpecimenCommon();
894 $this->lines = array();
897 $result = $objectline->fetchAll(
'ASC',
'rang', 0, 0, array(
'customsql'=>
'fk_stocktransfer = '.$this->
id));
899 if (is_numeric($result)) {
900 $this->error = $this->error;
901 $this->errors = $this->errors;
904 $this->lines = $result;
916 global $langs, $conf;
917 $langs->load(
"stocks");
919 if (empty($conf->global->STOCKTRANSFER_STOCKTRANSFER_ADDON)) {
920 $conf->global->STOCKTRANSFER_STOCKTRANSFER_ADDON =
'mod_stocktransfer_standard';
923 if (!empty($conf->global->STOCKTRANSFER_STOCKTRANSFER_ADDON)) {
926 $file = $conf->global->STOCKTRANSFER_STOCKTRANSFER_ADDON.
".php";
927 $classname = $conf->global->STOCKTRANSFER_STOCKTRANSFER_ADDON;
930 $dirmodels = array_merge(array(
'/'), (array) $conf->modules_parts[
'models']);
931 foreach ($dirmodels as $reldir) {
935 $mybool |= @include_once $dir.$file;
938 if ($mybool ===
false) {
943 if (class_exists($classname)) {
944 $obj =
new $classname();
945 $numref = $obj->getNextValue($this);
947 if ($numref !=
'' && $numref !=
'-1') {
950 $this->error = $obj->error;
955 print $langs->trans(
"Error").
" ".$langs->trans(
"ClassNotFound").
' '.$classname;
959 print $langs->trans(
"ErrorNumberingModuleNotSetup", $this->element);
975 public function generateDocument($modele, $outputlangs, $hidedetails = 0, $hidedesc = 0, $hideref = 0, $moreparams = null)
977 global $conf, $langs;
980 $includedocgeneration = 1;
982 $langs->load(
"stocks");
987 if ($this->modelpdf) {
988 $modele = $this->modelpdf;
989 } elseif (!empty($conf->global->STOCKTRANSFER_ADDON_PDF)) {
990 $modele = $conf->global->STOCKTRANSFER_ADDON_PDF;
994 $modelpath =
"core/modules/stocktransfer/doc/";
996 if ($includedocgeneration) {
997 $result = $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref, $moreparams);
1012 global $conf, $langs;
1028 $this->
db->commit();
setDraft($user, $notrigger=0)
Set draft status.
validate($user, $notrigger=0)
Validate object.
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
fetchAll($sortorder= '', $sortfield= '', $limit=0, $offset=0, array $filter=array(), $filtermode= 'AND')
Load list of objects in memory from the database.
Class for StockTransferLine.
deleteCommon(User $user, $notrigger=false, $forcechilddeletion=0)
Delete object in database.
__construct(DoliDB $db)
Constructor.
fetchLinesCommon($morewhere= '')
Load object in memory from the database.
$conf db
API class for accounts.
update(User $user, $notrigger=false)
Update object into database.
dol_now($mode= 'auto')
Return date for now.
line_order($renum=false, $rowidorder= 'ASC', $fk_parent_line=true)
Save a new position (field rang) for details lines.
create(User $user, $notrigger=false)
Create object into database.
getNextNumRef()
Returns the reference to the following non used object depending on the active numbering module...
Class to manage Dolibarr users.
getValorisationTotale()
Used to get total PMP amount of all quantities of products of Stock Transfer.
Class to manage Dolibarr database access.
createFromClone(User $user, $fromid)
Clone an object into another one.
createCommon(User $user, $notrigger=false)
Create object into database.
cancel($user, $notrigger=0)
Set cancel status.
getLinesArray()
Create an array of lines.
deleteLine(User $user, $idline, $notrigger=false)
Delete a line of object in database.
fetch_thirdparty($force_thirdparty_id=0)
Load the third party of object, from id $this->socid or $this->fk_soc, into this->thirdparty.
LibStatut($status, $mode=0)
Return the status.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
fetchLines()
Load object lines in memory from the database.
getLibStatut($mode=0)
Return label of the status.
generateDocument($modele, $outputlangs, $hidedetails=0, $hidedesc=0, $hideref=0, $moreparams=null)
Create a document onto disk according to template module.
dol_strlen($string, $stringencoding= 'UTF-8')
Make a strlen call.
info($id)
Load the info information in the object.
getFieldList($alias= '')
Function to concat keys of fields.
doScheduledJob()
Action executed by scheduler CAN BE A CRON TASK.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
img_object($titlealt, $picto, $moreatt= '', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
updateCommon(User $user, $notrigger=false)
Update object into database.
dol_sanitizeFileName($str, $newstr= '_', $unaccent=1)
Clean a string to use it as a file name.
dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter=null, $sortcriteria="name", $sortorder=SORT_ASC, $mode=0, $nohook=0, $relativename="", $donotfollowsymlinks=0)
Scan a directory and return a list of files/directories.
initAsSpecimen()
Initialise object with example values Id must be 0 if object instance is a specimen.
if(isModEnabled('facture')&&!empty($user->rights->facture->lire)) if((isModEnabled('fournisseur')&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)&&$user->rights->fournisseur->facture->lire)||(isModEnabled('supplier_invoice')&&$user->rights->supplier_invoice->lire)) if(isModEnabled('don')&&!empty($user->rights->don->lire)) if(isModEnabled('tax')&&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture')&&isModEnabled('commande')&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $resql
Social contributions to pay.
cmp($a, $b)
Used to sort lines by rank.
deleteLineCommon(User $user, $idline, $notrigger=false)
Delete a line of object in database.
copy_linked_contact($objFrom, $source= 'internal')
Copy contact from one element to current.
trait CommonIncoterm
Superclass for incoterm classes.
call_trigger($triggerName, $user)
Call trigger based on this instance.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
fetch($id, $ref=null)
Load object in memory from the database.
setStatusCommon($user, $status, $notrigger=0, $triggercode= '')
Set to a status.
getNomUrl($withpicto=0, $option= '', $notooltip=0, $morecss= '', $save_lastsearch_value=-1)
Return a link to the object card (with optionaly the picto)
dolGetStatus($statusLabel= '', $statusLabelShort= '', $html= '', $statusType= 'status0', $displayMode=0, $url= '', $params=array())
Output the badge of a status.
reopen($user, $notrigger=0)
Set back to validated status.
Parent class of all other business classes (invoices, contracts, proposals, orders, ...)
fetchCommon($id, $ref=null, $morewhere= '')
Load object in memory from the database.