diff --git a/htdocs/install/mysql/migration/14.0.0-15.0.0.sql b/htdocs/install/mysql/migration/14.0.0-15.0.0.sql index a003247219e..1ad93a55508 100644 --- a/htdocs/install/mysql/migration/14.0.0-15.0.0.sql +++ b/htdocs/install/mysql/migration/14.0.0-15.0.0.sql @@ -116,14 +116,14 @@ CREATE TABLE llx_stocktransfer_stocktransfer( -- BEGIN MODULEBUILDER FIELDS rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, entity integer DEFAULT 1 NOT NULL, - ref varchar(128) DEFAULT '(PROV)' NOT NULL, - label varchar(255), - fk_soc integer, + ref varchar(128) DEFAULT '(PROV)' NOT NULL, + label varchar(255), + fk_soc integer, fk_project integer, fk_warehouse_source integer, fk_warehouse_destination integer, description text, - note_public text, + note_public text, note_private text, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, date_creation datetime NOT NULL, @@ -137,7 +137,9 @@ CREATE TABLE llx_stocktransfer_stocktransfer( import_key varchar(14), model_pdf varchar(255), last_main_doc varchar(255), - status smallint NOT NULL + status smallint NOT NULL, + fk_incoterms integer, -- for incoterms + location_incoterms varchar(255) -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer.sql b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer.sql index a891fdc2f5d..e04a6dcb1ec 100644 --- a/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer.sql +++ b/htdocs/install/mysql/tables/llx_stocktransfer_stocktransfer.sql @@ -39,6 +39,8 @@ CREATE TABLE llx_stocktransfer_stocktransfer( import_key varchar(14), model_pdf varchar(255), last_main_doc varchar(255), - status smallint NOT NULL + status smallint NOT NULL, + fk_incoterms integer, -- for incoterms + location_incoterms varchar(255) -- END MODULEBUILDER FIELDS ) ENGINE=innodb; diff --git a/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php b/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php index dd55392b70d..38d3484ec9f 100644 --- a/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php +++ b/htdocs/product/stock/stocktransfer/class/stocktransfer.class.php @@ -25,6 +25,8 @@ // Put here all includes required by your class file require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/commonincoterm.class.php'; + //require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; //require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; @@ -33,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php'; */ class StockTransfer extends CommonObject { + use CommonIncoterm; /** * @var string ID to identify managed object. */ @@ -118,6 +121,8 @@ class StockTransfer extends CommonObject 'fk_user_modif' => array('type'=>'integer:User:user/class/user.class.php', 'label'=>'ChangedBy', 'enabled'=>'1', 'position'=>511, 'notnull'=>-1, 'visible'=>-2,), 'import_key' => array('type'=>'varchar(14)', 'label'=>'ImportId', 'enabled'=>'1', 'position'=>1000, 'notnull'=>-1, 'visible'=>-2,), 'model_pdf' => array('type'=>'varchar(255)', 'label'=>'Model pdf', 'enabled'=>'1', 'position'=>1010, 'notnull'=>-1, 'visible'=>0,), + 'fk_incoterms' =>array('type'=>'integer', 'label'=>'IncotermCode', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-2, 'position'=>220), + 'location_incoterms' =>array('type'=>'varchar(255)', 'label'=>'IncotermLabel', 'enabled'=>'$conf->incoterm->enabled', 'visible'=>-2, 'position'=>225), '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'),), ); public $rowid; diff --git a/htdocs/product/stock/stocktransfer/stocktransfer_card.php b/htdocs/product/stock/stocktransfer/stocktransfer_card.php index f57ffb8078f..1c8eccb2c4f 100644 --- a/htdocs/product/stock/stocktransfer/stocktransfer_card.php +++ b/htdocs/product/stock/stocktransfer/stocktransfer_card.php @@ -70,6 +70,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/modules/stocktransfer/modules_stocktransfe // Load translation files required by the page $langs->loadLangs(array("stocks", "other", "productbatch", "companies")); + if (!empty($conf->incoterm->enabled)) $langs->load('incoterm'); // Get parameters $id = GETPOST('id', 'int'); @@ -361,7 +362,11 @@ if (empty($reshook)) { setEventMessage('StockStransferIncrementedShortCancel', 'warnings'); } } - + // Set incoterm + if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled) && $permissiontoadd) + { + $result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha')); + } // Actions to send emails $triggersendname = 'STOCKTRANSFER_SENTBYMAIL'; $autocopy = 'MAIN_MAIL_AUTOCOPY_STOCKTRANSFER_TO'; @@ -422,6 +427,14 @@ if ($action == 'create') { // Common attributes include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_add.tpl.php'; + if (!empty($conf->incoterm->enabled)) + { + print ''; + print ''; + print ''; + print $form->select_incoterms((!empty($soc->fk_incoterms) ? $soc->fk_incoterms : ''), (!empty($soc->location_incoterms) ? $soc->location_incoterms : ''),'','fk_incoterms'); + print ''; + } // Template to use by default print ''.$langs->trans('DefaultModel').''; print ''; @@ -626,6 +639,29 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea $object->fields['fk_project']['visible']=0; // Already available in banner include DOL_DOCUMENT_ROOT.'/core/tpl/commonfields_view.tpl.php'; + // Incoterms + if (!empty($conf->incoterm->enabled)) + { + print ''; + print '
'; + print $langs->trans('IncotermLabel'); + print ''; + if ($permissiontoadd && $action != 'editincoterm') print ''.img_edit().''; + else print ' '; + print '
'; + print ''; + print ''; + if ($action != 'editincoterm') + { + print $form->textwithpicto($object->display_incoterms(), $object->label_incoterms, 1); + } + else + { + print $form->select_incoterms((!empty($object->fk_incoterms) ? $object->fk_incoterms : ''), (!empty($object->location_incoterms) ? $object->location_incoterms : ''), $_SERVER['PHP_SELF'].'?id='.$object->id); + } + print ''; + } + echo ''; echo ''.$langs->trans('EnhancedValue').' '.strtolower($langs->trans('TotalWoman')); echo ''.price($object->getValorisationTotale(), 0, '', 1, -1, -1, $conf->currency).'';