From 874c65dfda3b5993878e4314d3a4d2bd2789d8ff Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 9 Apr 2016 10:13:56 +0200
Subject: [PATCH] Fix unique key of table

---
 .../install/mysql/migration/3.9.0-4.0.0.sql   |  1 +
 .../mysql/tables/llx_product_lot.key.sql      | 19 +++++++++++++++++++
 .../install/mysql/tables/llx_product_lot.sql  |  5 +++--
 3 files changed, 23 insertions(+), 2 deletions(-)
 create mode 100644 htdocs/install/mysql/tables/llx_product_lot.key.sql

diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql
index 19ea469b0e1..882c45b7ae3 100644
--- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql
+++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql
@@ -39,6 +39,7 @@ ALTER TABLE llx_product_customer_price_log ADD COLUMN localtax2_type varchar(10)
 CREATE TABLE llx_product_lot (
   rowid integer AUTO_INCREMENT PRIMARY KEY,
   tms timestamp,
+  fk_product integer NOT NULL,
   batch varchar(30) NOT NULL,
   eatby datetime DEFAULT NULL,
   sellby datetime DEFAULT NULL,
diff --git a/htdocs/install/mysql/tables/llx_product_lot.key.sql b/htdocs/install/mysql/tables/llx_product_lot.key.sql
new file mode 100644
index 00000000000..d16a0993d55
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_product_lot.key.sql
@@ -0,0 +1,19 @@
+-- ============================================================================
+-- Copyright (C) 2016      Laurent Destailleur  <eldy@users.sourceforge.net>
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ============================================================================
+
+ALTER TABLE llx_product_lot ADD UNIQUE INDEX uk_product_lot(fk_product, batch);
diff --git a/htdocs/install/mysql/tables/llx_product_lot.sql b/htdocs/install/mysql/tables/llx_product_lot.sql
index 91796823a8d..718cb11744c 100644
--- a/htdocs/install/mysql/tables/llx_product_lot.sql
+++ b/htdocs/install/mysql/tables/llx_product_lot.sql
@@ -1,5 +1,4 @@
 -- ============================================================================
--- Copyright (C) 2014      Cédric GROSS         <c.gross@kreiz-it.fr>
 -- Copyright (C) 2016      Laurent Destailleur  <eldy@users.sourceforge.net>
 --
 -- This program is free software; you can redistribute it and/or modify
@@ -15,11 +14,13 @@
 -- You should have received a copy of the GNU General Public License
 -- along with this program. If not, see <http://www.gnu.org/licenses/>.
 --
--- This table is dedicated to store lots with detail of each lot
+-- This table is dedicated to store lots with detail of each lot. Key is fk_product-batch is unique.
 -- ============================================================================
+
 CREATE TABLE llx_product_lot (
   rowid integer AUTO_INCREMENT PRIMARY KEY,
   tms timestamp,
+  fk_product integer NOT NULL,
   batch varchar(30) NOT NULL,
   eatby datetime DEFAULT NULL,
   sellby datetime DEFAULT NULL,
-- 
GitLab