From daf472b7816b6ac995ebfdb2ca9d3db962224d35 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Sun, 17 Jan 2021 00:15:32 +0100 Subject: [PATCH 1/9] Update card.php --- htdocs/comm/card.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index cf64e0a1d04..fbf0f83acff 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -226,6 +226,12 @@ if (empty($reshook)) } if ($error) $action = 'edit_extras'; } + + // warehouse + if ($action == 'setwarehouse' && $user->rights->societe->creer) + { + $result = $object->setWarehouse(GETPOST('warehouse_id', 'int')); + } } @@ -480,7 +486,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->warehouse_id, 'warehouse_id', 1); + } else { + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->warehouse_id, 'none'); + } + print ''; + print ''; + } // Preferred shipping Method if (!empty($conf->global->SOCIETE_ASK_FOR_SHIPPING_METHOD)) { print ''; From 89ac5e8803a66751d0d5293be7a62a4d6bf64661 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Sun, 17 Jan 2021 02:09:21 +0100 Subject: [PATCH 2/9] 1 --- htdocs/comm/card.php | 29 +++++++++---------- .../install/mysql/migration/13.0.0-14.0.0.sql | 4 +++ .../install/mysql/tables/llx_societe.key.sql | 4 +-- htdocs/societe/class/societe.class.php | 13 +++++++-- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index fbf0f83acff..897dd48bea6 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -101,6 +101,17 @@ $now = dol_now(); /* * Actions */ +$contactstatic = new Contact($db); +$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); +} $parameters = array('id' => $id, 'socid' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some @@ -230,7 +241,7 @@ if (empty($reshook)) // warehouse if ($action == 'setwarehouse' && $user->rights->societe->creer) { - $result = $object->setWarehouse(GETPOST('warehouse_id', 'int')); + $result = $object->setWarehouse(GETPOST('fk_warehouse', 'int')); } } @@ -239,18 +250,6 @@ if (empty($reshook)) * View */ -$contactstatic = new Contact($db); -$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'; @@ -497,9 +496,9 @@ if ($object->id > 0) print $form->editfieldkey("Warehouse", 'warehouse', '', $object, $user->rights->societe->creer); print ''; if ($action == 'editwarehouse') { - $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->warehouse_id, 'warehouse_id', 1); + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_warehouse, 'fk_warehouse', 1); } else { - $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->warehouse_id, 'none'); + $formproduct->formSelectWarehouses($_SERVER['PHP_SELF'].'?id='.$object->id, $object->fk_warehouse, 'none'); } print ''; print ''; 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..71af8930dd6 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 @@ -105,3 +105,7 @@ 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_societe CHANGE fk_entrepot fk_warehouse INT NULL DEFAULT '0'; +ALTER TABLE llx_societe ADD CONSTRAINT llx_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); +ALTER TABLE llx_societe DROP INDEX idx_societe_entrepot; +ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_societe.key.sql b/htdocs/install/mysql/tables/llx_societe.key.sql index 5e5bf73dcac..7d4f1e743a7 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); - +ALTER TABLE llx_societe ADD CONSTRAINT llx_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index a6f8a9ff3fa..5dd5c36c75b 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'; @@ -1757,6 +1763,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; From 93b421238ade4f3e980265417d4c5031c46ead53 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Sun, 17 Jan 2021 01:26:09 +0000 Subject: [PATCH 3/9] Fixing style errors. --- htdocs/societe/class/societe.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 5dd5c36c75b..35e656a83b5 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -1763,7 +1763,7 @@ class Societe extends CommonObject // multiprix $this->price_level = $obj->price_level; - + // warehouse $this->fk_warehouse = $obj->fk_warehouse; From bb1af10cf1f382d6ab23bb66873bd910bf82ed06 Mon Sep 17 00:00:00 2001 From: Anthony Berton <34568357+bb2a@users.noreply.github.com> Date: Sun, 17 Jan 2021 16:48:51 +0100 Subject: [PATCH 4/9] warehouse thirparty affect on proposal or order --- htdocs/comm/propal/card.php | 4 +--- htdocs/commande/card.php | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) 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; From fe537fb2fce83e3e5c29df76390dcd093e367e2d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 Jan 2021 12:14:54 +0100 Subject: [PATCH 5/9] Fix MVC --- htdocs/comm/card.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 897dd48bea6..e8af0199e5e 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -101,10 +101,6 @@ $now = dol_now(); /* * Actions */ -$contactstatic = new Contact($db); -$userstatic = new User($db); -$form = new Form($db); -$formcompany = new FormCompany($db); if ($id > 0 && empty($object->id)) { @@ -250,6 +246,11 @@ if (empty($reshook)) * View */ +$contactstatic = new Contact($db); +$userstatic = new User($db); +$form = new Form($db); +$formcompany = new FormCompany($db); + $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'; From d82765c6da905210355d37a071060caa0da0a222 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 Jan 2021 12:15:56 +0100 Subject: [PATCH 6/9] Update card.php --- htdocs/comm/card.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index e8af0199e5e..97d61cfdce1 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -97,11 +97,6 @@ if ($object->id > 0) { $now = dol_now(); - -/* - * Actions - */ - if ($id > 0 && empty($object->id)) { // Load data of third party @@ -109,6 +104,12 @@ if ($id > 0 && empty($object->id)) if ($object->id < 0) dol_print_error($db, $object->error, $object->errors); } + + +/* + * Actions + */ + $parameters = array('id' => $id, 'socid' => $id); $reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); From 67d9b38e45529d5e98528781189b5f9bb75a7bdd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 Jan 2021 12:30:16 +0100 Subject: [PATCH 7/9] No foreign key when field stored for a "defaut value" --- .../install/mysql/migration/13.0.0-14.0.0.sql | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) 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 71af8930dd6..b1fbe9d3369 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 @@ -79,7 +79,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,15 +97,17 @@ 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_societe CHANGE fk_entrepot fk_warehouse INT NULL DEFAULT '0'; -ALTER TABLE llx_societe ADD CONSTRAINT llx_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); +ALTER TABLE DROP FOREIGN KEY llx_propal_fk_warehouse; + +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 ADD INDEX idx_societe_warehouse(fk_warehouse); \ No newline at end of file +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); + From 3033b1d5da82c39a369287e3bfaefb8c1520cd5c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 Jan 2021 12:30:50 +0100 Subject: [PATCH 8/9] Update llx_societe.key.sql --- htdocs/install/mysql/tables/llx_societe.key.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/tables/llx_societe.key.sql b/htdocs/install/mysql/tables/llx_societe.key.sql index 7d4f1e743a7..b681343fe38 100644 --- a/htdocs/install/mysql/tables/llx_societe.key.sql +++ b/htdocs/install/mysql/tables/llx_societe.key.sql @@ -36,4 +36,4 @@ ALTER TABLE llx_societe ADD INDEX idx_societe_shipping_method(fk_shipping_method ALTER TABLE llx_societe ADD INDEX idx_societe_warehouse(fk_warehouse); -- ALTER TABLE llx_societe ADD FOREIGN KEY fk_prospectlevel llx_c_prospectlevel(code); -ALTER TABLE llx_societe ADD CONSTRAINT llx_propal_fk_warehouse FOREIGN KEY (fk_warehouse) REFERENCES llx_entrepot(rowid); + From 8e357bf695db2f6c1d3dc6ab9c336d4b6498d222 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 19 Jan 2021 12:37:48 +0100 Subject: [PATCH 9/9] Update 13.0.0-14.0.0.sql --- htdocs/install/mysql/migration/13.0.0-14.0.0.sql | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 b1fbe9d3369..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, @@ -100,8 +105,6 @@ CREATE TABLE llx_workstation_workstation_usergroup( 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 DROP FOREIGN KEY llx_propal_fk_warehouse; - 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);