From 11ece5603816221f531c35dbede74d84e61b58a0 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 5 May 2019 19:08:27 +0200 Subject: [PATCH 1/9] NEW add API shipment mode --- htdocs/api/class/api_setup.class.php | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index 783ec6540e3fd..e3bb7f4a79987 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -4,6 +4,7 @@ * Copyright (C) 2017 Regis Houssin * Copyright (C) 2017 Neil Orley * Copyright (C) 2018 Frédéric France + * Copyright (C) 2018 Thibault FOUCART * * * This program is free software; you can redistribute it and/or modify @@ -706,6 +707,67 @@ public function getPaymentTerms($sortfield = "sortorder", $sortorder = 'ASC', $l return $list; } + + /** + * Get the list of shipping methods. + * + * @param int $limit Number of items per page + * @param int $page Page number {@min 0} + * @param int $active Shipping methodsm is active or not {@min 0} {@max 1} + * @param string $sqlfilters SQL criteria to filter. Syntax example "(t.code:=:'CHQ')" + * + * @url GET dictionary/shipping_methods + * + * @return array List of shipping methods + * + * @throws 400 RestException + * @throws 200 OK + */ + public function getShippingModes($limit = 100, $page = 0, $active = 1, $sqlfilters = '') + { + $list = array(); + + $sql = "SELECT rowid as id, code, libelle as label, description, tracking, module"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_shipment_mode as t"; + $sql.= " WHERE t.entity IN (".getEntity('c_shipment_mode').")"; + $sql.= " AND t.active = ".$active; + // Add sql filters + if ($sqlfilters) + { + if (! DolibarrApi::_checkFilters($sqlfilters)) + { + throw new RestException(400, 'Error when validating parameter sqlfilters '.$sqlfilters); + } + $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + } + + + //$sql.= $this->db->order($sortfield, $sortorder); + + if ($limit) { + if ($page < 0) { + $page = 0; + } + $offset = $limit * $page; + + $sql .= $this->db->plimit($limit, $offset); + } + + $result = $this->db->query($sql); + + if ($result) { + $num = $this->db->num_rows($result); + $min = min($num, ($limit <= 0 ? $num : $limit)); + for ($i = 0; $i < $min; $i++) { + $list[] = $this->db->fetch_object($result); + } + } else { + throw new RestException(400, $this->db->lasterror()); + } + + return $list; + } /** * Get the list of tickets categories. From 15cff25bbc68738e6c11a7d12081fa7842c2f9b0 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 5 May 2019 19:10:39 +0200 Subject: [PATCH 2/9] Update llx_c_shipment_mode.sql --- htdocs/install/mysql/tables/llx_c_shipment_mode.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/install/mysql/tables/llx_c_shipment_mode.sql b/htdocs/install/mysql/tables/llx_c_shipment_mode.sql index 7945c9f9fb0ca..efacec420c970 100644 --- a/htdocs/install/mysql/tables/llx_c_shipment_mode.sql +++ b/htdocs/install/mysql/tables/llx_c_shipment_mode.sql @@ -19,6 +19,7 @@ create table llx_c_shipment_mode ( rowid integer AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, -- multi company id tms timestamp, code varchar(30) NOT NULL, libelle varchar(50) NOT NULL, From 499798b2e01b725b35027dd94dcc2dadf2bb2340 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 5 May 2019 19:11:18 +0200 Subject: [PATCH 3/9] Update llx_c_shipment_mode.key.sql --- htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql b/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql index 15058c0630e7f..3a90d15330fd2 100644 --- a/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql +++ b/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql @@ -16,5 +16,5 @@ -- -- =================================================================== -ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (code); +ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (entity, code); From e65c8399e60b0310648bd8368dc48fd0c6428706 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 5 May 2019 19:14:09 +0200 Subject: [PATCH 4/9] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index e5b925b0d834f..2e143209d9a6c 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -108,6 +108,8 @@ ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_id varchar(12 ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_site varchar(128) NULL; -- Fix if table exists +ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer; + ALTER TABLE llx_c_units DROP INDEX uk_c_units_code; ALTER TABLE llx_c_units ADD COLUMN scale integer; ALTER TABLE llx_c_units ADD COLUMN unit_type varchar(10); From a0ba8d98a1fee2b2d414c4a6ed137e792cfaa755 Mon Sep 17 00:00:00 2001 From: ptibogxiv Date: Sun, 5 May 2019 20:54:31 +0200 Subject: [PATCH 5/9] Update api_setup.class.php --- htdocs/api/class/api_setup.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/api/class/api_setup.class.php b/htdocs/api/class/api_setup.class.php index e3bb7f4a79987..78b794a996c5e 100644 --- a/htdocs/api/class/api_setup.class.php +++ b/htdocs/api/class/api_setup.class.php @@ -4,7 +4,7 @@ * Copyright (C) 2017 Regis Houssin * Copyright (C) 2017 Neil Orley * Copyright (C) 2018 Frédéric France - * Copyright (C) 2018 Thibault FOUCART + * Copyright (C) 2018 Thibault FOUCART * * * This program is free software; you can redistribute it and/or modify @@ -767,7 +767,7 @@ public function getShippingModes($limit = 100, $page = 0, $active = 1, $sqlfilte } return $list; - } + } /** * Get the list of tickets categories. From 53b1dec317f9b8bee27e39437916f899021cbd37 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 8 May 2019 01:56:52 +0200 Subject: [PATCH 6/9] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 2e143209d9a6c..66839713bb795 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -107,9 +107,11 @@ ALTER TABLE llx_prelevement_facture_demande ADD COLUMN sourcetype varchar(32); ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_id varchar(128) NULL; ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_site varchar(128) NULL; --- Fix if table exists -ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer; +ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer DEFAULT 1; +ALTER TABLE llx_c_shipment_mode DROP INDEX uk_c_shipment_mode; +ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (entity, code); +-- Fix if table exists ALTER TABLE llx_c_units DROP INDEX uk_c_units_code; ALTER TABLE llx_c_units ADD COLUMN scale integer; ALTER TABLE llx_c_units ADD COLUMN unit_type varchar(10); From 249893a4ab1774b55fb8bf4e066aebb962ba450a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 8 May 2019 01:57:23 +0200 Subject: [PATCH 7/9] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 66839713bb795..43e12c6c05f04 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -109,7 +109,7 @@ ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_site varchar( ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer DEFAULT 1; ALTER TABLE llx_c_shipment_mode DROP INDEX uk_c_shipment_mode; -ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (entity, code); +ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (code, entity); -- Fix if table exists ALTER TABLE llx_c_units DROP INDEX uk_c_units_code; From 95bb8a1f755f323fef09be8a8f6129a3951ef612 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 8 May 2019 01:57:39 +0200 Subject: [PATCH 8/9] Update llx_c_shipment_mode.key.sql --- htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql b/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql index 3a90d15330fd2..a75dfaf27400d 100644 --- a/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql +++ b/htdocs/install/mysql/tables/llx_c_shipment_mode.key.sql @@ -16,5 +16,5 @@ -- -- =================================================================== -ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (entity, code); +ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (code, entity); From 5fe91afdc29e0aed5e87a7456e4aef69c94f390b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Thu, 20 Jun 2019 03:54:50 +0200 Subject: [PATCH 9/9] Update 9.0.0-10.0.0.sql --- htdocs/install/mysql/migration/9.0.0-10.0.0.sql | 4 ---- 1 file changed, 4 deletions(-) diff --git a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql index 43e12c6c05f04..e5b925b0d834f 100644 --- a/htdocs/install/mysql/migration/9.0.0-10.0.0.sql +++ b/htdocs/install/mysql/migration/9.0.0-10.0.0.sql @@ -107,10 +107,6 @@ ALTER TABLE llx_prelevement_facture_demande ADD COLUMN sourcetype varchar(32); ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_id varchar(128) NULL; ALTER TABLE llx_prelevement_facture_demande ADD COLUMN ext_payment_site varchar(128) NULL; -ALTER TABLE llx_c_shipment_mode ADD COLUMN entity integer DEFAULT 1; -ALTER TABLE llx_c_shipment_mode DROP INDEX uk_c_shipment_mode; -ALTER TABLE llx_c_shipment_mode ADD UNIQUE INDEX uk_c_shipment_mode (code, entity); - -- Fix if table exists ALTER TABLE llx_c_units DROP INDEX uk_c_units_code; ALTER TABLE llx_c_units ADD COLUMN scale integer;