diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index cf64e0a1d04..97d61cfdce1 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -97,6 +97,14 @@ if ($object->id > 0) { $now = dol_now(); +if ($id > 0 && empty($object->id)) +{ + // Load data of third party + $res = $object->fetch($id); + if ($object->id < 0) dol_print_error($db, $object->error, $object->errors); +} + + /* * Actions @@ -226,6 +234,12 @@ if (empty($reshook)) } if ($error) $action = 'edit_extras'; } + + // warehouse + if ($action == 'setwarehouse' && $user->rights->societe->creer) + { + $result = $object->setWarehouse(GETPOST('fk_warehouse', 'int')); + } } @@ -238,13 +252,6 @@ $userstatic = new User($db); $form = new Form($db); $formcompany = new FormCompany($db); -if ($id > 0 && empty($object->id)) -{ - // Load data of third party - $res = $object->fetch($id); - if ($object->id < 0) dol_print_error($db, $object->error, $object->errors); -} - $title = $langs->trans("CustomerCard"); if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/thirdpartynameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) $title = $object->name; $help_url = 'EN:Module_Third_Parties|FR:Module_Tiers|ES:Empresas'; @@ -480,7 +487,24 @@ if ($object->id > 0) print ""; print ''; } - + // Warehouse + if (!empty($conf->stock->enabled)) + { + $langs->load('stocks'); + require_once DOL_DOCUMENT_ROOT.'/product/class/html.formproduct.class.php'; + $formproduct = new FormProduct($db); + print ''; + print ''; + print $form->editfieldkey("Warehouse", 'warehouse', '', $object, $user->rights->societe->creer); + print ''; + if ($action == 'editwarehouse') { + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_warehouse, 'fk_warehouse', 1); + } else { + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_warehouse, 'none'); + } + print ''; + print ''; + } // Preferred shipping Method if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD)) { print ''; diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index b81ac502552..8b5054afd7f 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -129,9 +129,6 @@ $permissionnote = $usercancreate; // Used by the include of actions_setnotes.inc $permissiondellink = $usercancreate; // Used by the include of actions_dellink.inc.php $permissiontoedit = $usercancreate; // Used by the include of actions_lineupdown.inc.php - -//if ($thirdparty->fk_warehouse > 0) $object->warehouse_id = $thirdparty->fk_warehouse; - /* * Actions */ @@ -1495,6 +1492,7 @@ if ($action == 'create') } //Warehouse default if null + if ($soc->fk_warehouse > 0) $warehouse_id = $soc->fk_warehouse; if (!empty($conf->stock->enabled) && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { if (empty($object->warehouse_id) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) $warehouse_id = $conf->global->MAIN_DEFAULT_WAREHOUSE; diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index 66105e06fff..287150e6ca2 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1534,6 +1534,7 @@ if ($action == 'create' && $usercancreate) } //Warehouse default if null + if ($soc->fk_warehouse > 0) $warehouse_id = $soc->fk_warehouse; if (!empty($conf->stock->enabled) && empty($warehouse_id) && !empty($conf->global->WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER)) { if (empty($object->warehouse_id) && !empty($conf->global->MAIN_DEFAULT_WAREHOUSE)) $warehouse_id = $conf->global->MAIN_DEFAULT_WAREHOUSE; diff --git a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql index 90839fe6e95..b26ac99ad1d 100644 --- a/htdocs/install/mysql/migration/13.0.0-14.0.0.sql +++ b/htdocs/install/mysql/migration/13.0.0-14.0.0.sql @@ -56,6 +56,11 @@ ALTER TABLE llx_website ADD COLUMN pageviews_month BIGINT UNSIGNED DEFAULT 0; ALTER TABLE llx_website ADD COLUMN pageviews_total BIGINT UNSIGNED DEFAULT 0; +-- Drop foreign key with bad name or not required +ALTER TABLE DROP FOREIGN KEY llx_workstation_workstation_fk_user_creat; +ALTER TABLE DROP FOREIGN KEY llx_propal_fk_warehouse; + + CREATE TABLE llx_workstation_workstation( -- BEGIN MODULEBUILDER FIELDS rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, @@ -79,7 +84,7 @@ CREATE TABLE llx_workstation_workstation( ALTER TABLE llx_workstation_workstation ADD INDEX idx_workstation_workstation_rowid (rowid); ALTER TABLE llx_workstation_workstation ADD INDEX idx_workstation_workstation_ref (ref); -ALTER TABLE llx_workstation_workstation ADD CONSTRAINT llx_workstation_workstation_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); +ALTER TABLE llx_workstation_workstation ADD CONSTRAINT fk_workstation_workstation_fk_user_creat FOREIGN KEY (fk_user_creat) REFERENCES llx_user(rowid); ALTER TABLE llx_workstation_workstation ADD INDEX idx_workstation_workstation_status (status); CREATE TABLE llx_workstation_workstation_resource( @@ -97,11 +102,15 @@ CREATE TABLE llx_workstation_workstation_usergroup( ) ENGINE=innodb; -ALTER TABLE llx_propal ADD COLUMN fk_warehouse integer DEFAULT NULL AFTER fk_shipping_method; -ALTER TABLE llx_propal ADD CONSTRAINT llx_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); -ALTER TABLE llx_propal ADD INDEX idx_propal_fk_warehouse(fk_warehouse); - - ALTER TABLE llx_product_customer_price ADD COLUMN ref_customer varchar(30); ALTER TABLE llx_product_customer_price_log ADD COLUMN ref_customer varchar(30); +ALTER TABLE llx_propal ADD COLUMN fk_warehouse integer DEFAULT NULL AFTER fk_shipping_method; +--ALTER TABLE llx_propal ADD CONSTRAINT fk_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); +ALTER TABLE llx_propal ADD INDEX idx_propal_fk_warehouse(fk_warehouse); + +ALTER TABLE llx_societe DROP INDEX idx_societe_entrepot; +ALTER TABLE llx_societe CHANGE fk_entrepot fk_warehouse INTEGER DEFAULT NULL; +--ALTER TABLE llx_societe ADD CONSTRAINT fk_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); +ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); + diff --git a/htdocs/install/mysql/tables/llx_societe.key.sql b/htdocs/install/mysql/tables/llx_societe.key.sql index 5e5bf73dcac..b681343fe38 100644 --- a/htdocs/install/mysql/tables/llx_societe.key.sql +++ b/htdocs/install/mysql/tables/llx_societe.key.sql @@ -33,7 +33,7 @@ ALTER TABLE llx_societe ADD INDEX idx_societe_prospectlevel(fk_prospectlevel); ALTER TABLE llx_societe ADD INDEX idx_societe_typent(fk_typent); ALTER TABLE llx_societe ADD INDEX idx_societe_forme_juridique(fk_forme_juridique); ALTER TABLE llx_societe ADD INDEX idx_societe_shipping_method(fk_shipping_method); -ALTER TABLE llx_societe ADD INDEX idx_societe_entrepot(fk_entrepot); +ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); -- ALTER TABLE llx_societe ADD FOREIGN KEY fk_prospectlevel llx_c_prospectlevel(code); diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index a6f8a9ff3fa..35e656a83b5 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -214,7 +214,7 @@ class Societe extends CommonObject 'fk_multicurrency' =>array('type'=>'integer', 'label'=>'Fk multicurrency', 'enabled'=>1, 'visible'=>-1, 'position'=>440), 'multicurrency_code' =>array('type'=>'varchar(255)', 'label'=>'Multicurrency code', 'enabled'=>1, 'visible'=>-1, 'position'=>445), 'fk_account' =>array('type'=>'integer', 'label'=>'Fk account', 'enabled'=>1, 'visible'=>-1, 'position'=>450), - 'fk_entrepot' =>array('type'=>'integer', 'label'=>'Fk entrepot', 'enabled'=>1, 'visible'=>-1, 'position'=>455), + 'fk_warehouse' =>array('type'=>'integer', 'label'=>'warehouse', 'enabled'=>1, 'visible'=>-1, 'position'=>455), 'logo' =>array('type'=>'varchar(255)', 'label'=>'Logo', 'enabled'=>1, 'visible'=>-1, 'position'=>400), 'logo_squarred' =>array('type'=>'varchar(255)', 'label'=>'Logo squarred', 'enabled'=>1, 'visible'=>-1, 'position'=>401), 'status' =>array('type'=>'tinyint(4)', 'label'=>'Status', 'enabled'=>1, 'visible'=>-1, 'position'=>500), @@ -709,6 +709,12 @@ class Societe extends CommonObject */ public $fk_multicurrency; + // Warehouse + /** + * @var int ID + */ + public $fk_warehouse; + /** * @var string Multicurrency code */ @@ -1551,7 +1557,7 @@ class Societe extends CommonObject } $sql = 'SELECT s.rowid, s.nom as name, s.name_alias, s.entity, s.ref_ext, s.address, s.datec as date_creation, s.prefix_comm'; - $sql .= ', s.status'; + $sql .= ', s.status, s.fk_warehouse'; $sql .= ', s.price_level'; $sql .= ', s.tms as date_modification, s.fk_user_creat, s.fk_user_modif'; $sql .= ', s.phone, s.fax, s.email'; @@ -1758,6 +1764,9 @@ class Societe extends CommonObject // multiprix $this->price_level = $obj->price_level; + // warehouse + $this->fk_warehouse = $obj->fk_warehouse; + $this->import_key = $obj->import_key; //Incoterms