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);