From 57b13fb13354488928b8592f121455af99d23059 Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Fri, 1 Feb 2008 17:16:25 +0000 Subject: [PATCH] Fix [ 1621517 ] Duplicate vendor invoice document numbers permitted --- migration/331b-trunk/088_BF1621517.sql | 22 +++++++++++++++++++ .../331b-trunk/postgresql/088_BF1621517.sql | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 migration/331b-trunk/088_BF1621517.sql create mode 100644 migration/331b-trunk/postgresql/088_BF1621517.sql diff --git a/migration/331b-trunk/088_BF1621517.sql b/migration/331b-trunk/088_BF1621517.sql new file mode 100644 index 0000000000..cbd2b87acf --- /dev/null +++ b/migration/331b-trunk/088_BF1621517.sql @@ -0,0 +1,22 @@ +-- Fix [ 1621517 ] Duplicate vendor invoice document numbers permitted + +/* +WARNING - The create index on this script could fail if you have already wrong data on your DB +If this script fails you need to detect the duplicate data and change the DocumentNo column to a unique value + +To review your duplicate data you can execute next query: + +SELECT c1.c_invoice_id, c2.c_invoice_id, c1.c_bpartner_id, c1.documentno, + c1.c_doctypetarget_id + FROM C_INVOICE c1, C_INVOICE c2 + WHERE c1.c_bpartner_id = c2.c_bpartner_id + AND c1.documentno = c2.documentno + AND c1.c_doctypetarget_id = c2.c_doctypetarget_id + AND c1.c_invoice_id <> c2.c_invoice_id; + +*/ + +CREATE UNIQUE INDEX c_invoice_documentno_target ON C_INVOICE + (c_bpartner_id, documentno, c_doctypetarget_id); + +DROP INDEX c_invoice_bpartner; diff --git a/migration/331b-trunk/postgresql/088_BF1621517.sql b/migration/331b-trunk/postgresql/088_BF1621517.sql new file mode 100644 index 0000000000..cbd2b87acf --- /dev/null +++ b/migration/331b-trunk/postgresql/088_BF1621517.sql @@ -0,0 +1,22 @@ +-- Fix [ 1621517 ] Duplicate vendor invoice document numbers permitted + +/* +WARNING - The create index on this script could fail if you have already wrong data on your DB +If this script fails you need to detect the duplicate data and change the DocumentNo column to a unique value + +To review your duplicate data you can execute next query: + +SELECT c1.c_invoice_id, c2.c_invoice_id, c1.c_bpartner_id, c1.documentno, + c1.c_doctypetarget_id + FROM C_INVOICE c1, C_INVOICE c2 + WHERE c1.c_bpartner_id = c2.c_bpartner_id + AND c1.documentno = c2.documentno + AND c1.c_doctypetarget_id = c2.c_doctypetarget_id + AND c1.c_invoice_id <> c2.c_invoice_id; + +*/ + +CREATE UNIQUE INDEX c_invoice_documentno_target ON C_INVOICE + (c_bpartner_id, documentno, c_doctypetarget_id); + +DROP INDEX c_invoice_bpartner;