details:   https://code.openbravo.com/erp/devel/pi/rev/04e13cbe6990
changeset: 33501:04e13cbe6990
user:      Atul Gaware <atul.gaware <at> openbravo.com>
date:      Tue Feb 20 18:12:35 2018 +0530
summary:   Fixes Issue 37357:Create Lines From popup on Invoice windows slow
with high number of shipments

** Add iscompletelyinvoiced column in m_inout, add AD elements for it.
** Implement modulescript to update iscompletelyinvoiced flag for old
shipments.
** Define index for iscompletelyinvoiced flag on m_inout and make
use of flag in the where clause of the query.
** Modify M_InOut_Post and C_Invoice_Post db procedures to update
iscompletelyinvoiced flag properly.
** Iscompletelyinvoiced flag is used only in Sales Flow and shown in
Goods Shipment window.
** Add functional index OBEQUALS(QTYDELIVERED,QTYINVOICED) on c_orderline.
** Modify C_Invoice_Candidate_V to make use functional index.
** Add junit test cases to test iscompletelyinvoiced flag updation.

diffstat:

 src-db/database/model/functions/C_INVOICE_POST.xml                             
                                          |   27 +-
 src-db/database/model/functions/M_INOUT_POST.xml                               
                                          |   18 +-
 src-db/database/model/tables/C_ORDERLINE.xml                                   
                                          |    4 +
 src-db/database/model/tables/M_INOUT.xml                                       
                                          |    8 +
 src-db/database/model/views/C_INVOICE_CANDIDATE_V.xml                          
                                          |    2 +-
 src-db/database/sourcedata/AD_COLUMN.xml                                       
                                          |   39 +
 src-db/database/sourcedata/AD_ELEMENT.xml                                      
                                          |   14 +
 src-db/database/sourcedata/AD_FIELD.xml                                        
                                          |   29 +
 src-test/src/org/openbravo/test/AllAntTaskTests.java                           
                                          |    4 +
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIConstants.java
                              |   77 ++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIInvoiceHeaderParameters.java
                |  174 ++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIInvoiceLineParameters.java
                  |  159 ++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIOrderHeaderParameters.java
                  |  184 +++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIOrderLineParameters.java
                    |  191 +++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIShipmentHeaderParameters.java
               |   72 +
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIShipmentLineParameters.java
                 |   75 ++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIUtility.java
                                |  364 ++++++++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/IsCompletelyInvoicedShipment.java
              |   29 +
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/IsCompletelyInvoicedShipmentMultiLineTest.java
 |  218 +++++
 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/IsCompletelyInvoicedShipmentOneLineTest.java
   |  189 +++++
 
src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateIsCompletelyInvoiced.class
                          |  Bin 
 
src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateIsCompletelyInvoicedData.class
                      |  Bin 
 
src-util/modulescript/src/org/openbravo/modulescript/UpdateIsCompletelyInvoiced.java
                                     |   57 +
 
src-util/modulescript/src/org/openbravo/modulescript/UpdateIsCompletelyInvoiced_data.xsql
                                |   71 +
 src/org/openbravo/erpCommon/ad_actionButton/CreateFrom_Invoice_data.xsql       
                                          |   10 +-
 25 files changed, 2006 insertions(+), 9 deletions(-)

diffs (truncated from 2227 to 300 lines):

diff -r ef34142891ad -r 04e13cbe6990 
src-db/database/model/functions/C_INVOICE_POST.xml
--- a/src-db/database/model/functions/C_INVOICE_POST.xml        Wed Feb 21 
10:52:41 2018 +0100
+++ b/src-db/database/model/functions/C_INVOICE_POST.xml        Tue Feb 20 
18:12:35 2018 +0530
@@ -22,7 +22,7 @@
   * parts created by ComPiere are Copyright (C) ComPiere, Inc.;
   * All Rights Reserved.
   * Contributor(s): Openbravo SLU
-  * Contributions are Copyright (C) 2001-2017 Openbravo, S.L.U.
+  * Contributions are Copyright (C) 2001-2018 Openbravo, S.L.U.
   *
   * Specifically, this derivative work is based upon the following Compiere
   * file and version.
@@ -1009,6 +1009,13 @@
                         ELSE 'Y'
                      END)
               WHERE M_InOutLine_ID=Cur_ReactivateInvoiceLine.M_InOutLine_ID;
+              -- Update M_Inout isCompletelyInvoiced flag as No when 
reactivate the invoice.
+              UPDATE M_InOut
+              SET iscompletelyinvoiced = 'N'
+              WHERE iscompletelyinvoiced = 'Y'
+              AND M_INOUT_ID = (SELECT M_INOUT_ID 
+                                FROM M_INOUTLINE
+                                WHERE M_INOUTLINE_ID = 
Cur_ReactivateInvoiceLine.M_InOutLine_ID);
             END IF;
           END IF;
         END LOOP;
@@ -1810,6 +1817,24 @@
         Updated=now(),
         UpdatedBy=v_UpdatedBy
     WHERE C_Invoice_ID=v_Record_ID;
+    -- Update M_Inout isCompletelyInvoiced flag as Yes when m_inoutline
+    -- associated with invoice line is completely invoiced. This flag is
+    -- used only in sales flow and shown in Goods Shipment Header.
+    IF(v_IsSOTrx='Y') THEN
+      UPDATE M_InOut
+      SET iscompletelyinvoiced = 'Y'
+      WHERE iscompletelyinvoiced = 'N'
+      AND NOT EXISTS (SELECT 1 FROM M_INOUTLINE l
+                      LEFT JOIN c_invoiceline il ON l.m_inoutline_id = 
il.m_inoutline_id
+                      LEFT JOIN c_invoice i ON il.c_invoice_id = i.c_invoice_id
+                      WHERE l.M_INOUT_ID = M_InOut.M_INOUT_ID
+                      GROUP BY l.m_inoutline_id, l.movementqty
+                      HAVING ( l.movementqty >= 0 AND l.movementqty > 
Sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)) )
+                           OR ( l.movementqty < 0 AND l.movementqty < 
Sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)) ) 
)
+      AND M_InOut.M_INOUT_ID IN (SELECT DISTINCT M_INOUT_ID
+                                 FROM M_INOUTLINE ML JOIN C_INVOICELINE IL ON 
IL.M_INOUTLINE_ID = ML.M_INOUTLINE_ID
+                                 WHERE IL.C_INVOICE_ID = v_Record_ID);
+    END IF;
   END IF;--FINISH_PROCESS
   IF (NOT FINISH_PROCESS) THEN
     -- End Processing --------------------------------------------------------
diff -r ef34142891ad -r 04e13cbe6990 
src-db/database/model/functions/M_INOUT_POST.xml
--- a/src-db/database/model/functions/M_INOUT_POST.xml  Wed Feb 21 10:52:41 
2018 +0100
+++ b/src-db/database/model/functions/M_INOUT_POST.xml  Tue Feb 20 18:12:35 
2018 +0530
@@ -22,7 +22,7 @@
   * parts created by ComPiere are Copyright (C) ComPiere, Inc.;
   * All Rights Reserved.
   * Contributor(s): Openbravo SLU
-  * Contributions are Copyright (C) 2001-2017 Openbravo, S.L.U.
+  * Contributions are Copyright (C) 2001-2018 Openbravo, S.L.U.
   *
   * Specifically, this derivative work is based upon the following Compiere
   * file and version.
@@ -1040,6 +1040,22 @@
           WHERE M_INOUT.M_INOUT_ID=Cur_InOut.M_INOUT_ID;
           --
           
+          -- Update M_Inout isCompletelyInvoiced flag as Yes when m_inoutline
+          -- associated with invoice line is completely invoiced. This flag is
+          -- used only in sales flow and shown in Goods Shipment Header.
+          IF(Cur_InOut.IsSOTrx='Y') THEN
+            UPDATE M_InOut
+            SET iscompletelyinvoiced = 'Y'
+            WHERE iscompletelyinvoiced = 'N'
+            AND NOT EXISTS (SELECT 1 FROM M_INOUTLINE l
+                            LEFT JOIN c_invoiceline il ON l.m_inoutline_id = 
il.m_inoutline_id
+                            LEFT JOIN c_invoice i ON il.c_invoice_id = 
i.c_invoice_id
+                      WHERE l.M_INOUT_ID = M_InOut.M_INOUT_ID
+                      GROUP BY l.m_inoutline_id, l.movementqty
+                      HAVING ( l.movementqty >= 0 AND l.movementqty > 
Sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)) )
+                           OR ( l.movementqty < 0 AND l.movementqty < 
Sum(COALESCE(CASE WHEN i.docstatus = 'CO' THEN il.qtyinvoiced ELSE 0 END, 0)) ) 
)
+            AND M_INOUT_ID = Cur_InOut.M_INOUT_ID;
+          END IF;
          
           -- Not Processed + Complete --
           /**
diff -r ef34142891ad -r 04e13cbe6990 
src-db/database/model/tables/C_ORDERLINE.xml
--- a/src-db/database/model/tables/C_ORDERLINE.xml      Wed Feb 21 10:52:41 
2018 +0100
+++ b/src-db/database/model/tables/C_ORDERLINE.xml      Tue Feb 20 18:12:35 
2018 +0530
@@ -399,6 +399,10 @@
       <index name="C_ORDERLINE_ORDERED_INVOICED" unique="false">
         <index-column name="functionBasedColumn" 
functionExpression="OBEQUALS(QTYORDERED,QTYINVOICED)"/>
       </index>
+      <index name="C_ORDERLINE_ORDER2" unique="false">
+        <index-column name="C_ORDER_ID"/>
+        <index-column name="functionBasedColumn" 
functionExpression="OBEQUALS(QTYDELIVERED,QTYINVOICED)"/>
+      </index>
       <index name="C_ORDERLINE_PRODUCT" unique="false">
         <index-column name="M_PRODUCT_ID"/>
       </index>
diff -r ef34142891ad -r 04e13cbe6990 src-db/database/model/tables/M_INOUT.xml
--- a/src-db/database/model/tables/M_INOUT.xml  Wed Feb 21 10:52:41 2018 +0100
+++ b/src-db/database/model/tables/M_INOUT.xml  Tue Feb 20 18:12:35 2018 +0530
@@ -261,6 +261,10 @@
         <default><![CDATA[N]]></default>
         <onCreateDefault><![CDATA['N']]></onCreateDefault>
       </column>
+      <column name="ISCOMPLETELYINVOICED" primaryKey="false" required="true" 
type="CHAR" size="1" autoIncrement="false">
+        <default><![CDATA[N]]></default>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="M_FREIGHTCATEGORY" 
name="M_FREIGHTCATEGORY_M_INOUT">
         <reference local="M_FREIGHTCATEGORY_ID" 
foreign="M_FREIGHTCATEGORY_ID"/>
       </foreign-key>
@@ -344,6 +348,9 @@
         <index-column name="C_INVOICE_ID"/>
         <whereClause><![CDATA[C_INVOICE_ID IS NOT NULL]]></whereClause>
       </index>
+      <index name="M_INOUT_ISCOMPLETELYINVOICED" unique="false">
+        <index-column name="ISCOMPLETELYINVOICED"/>
+      </index>
       <index name="M_INOUT_MOVEMENTDATE_ID" unique="false">
         <index-column name="MOVEMENTDATE"/>
         <index-column name="M_INOUT_ID"/>
@@ -363,6 +370,7 @@
       <check name="M_INOUT_GENERATELINES_CHECK"><![CDATA[GENERATELINES IN 
('N', 'Y')]]></check>
       <check name="M_INOUT_GENERATETO_CHECK"><![CDATA[GENERATETO IN ('Y', 
'N')]]></check>
       <check name="M_INOUT_ISACTIVE_CHECK"><![CDATA[ISACTIVE IN ('Y', 
'N')]]></check>
+      <check 
name="M_INOUT_ISCOMPLETELYINV_CHECK"><![CDATA[ISCOMPLETELYINVOICED IN ('Y', 
'N')]]></check>
       <check name="M_INOUT_ISLOGISTIC_CHK"><![CDATA[ISLOGISTIC IN ('N', 
'Y')]]></check>
       <check name="M_INOUT_ISNETTINGSHIPMENT_CHK"><![CDATA[ISNETTINGSHIPMENT 
IN ('Y', 'N')]]></check>
       <check name="M_INOUT_ISPRINTED_CHECK"><![CDATA[ISPRINTED IN ('Y', 
'N')]]></check>
diff -r ef34142891ad -r 04e13cbe6990 
src-db/database/model/views/C_INVOICE_CANDIDATE_V.xml
--- a/src-db/database/model/views/C_INVOICE_CANDIDATE_V.xml     Wed Feb 21 
10:52:41 2018 +0100
+++ b/src-db/database/model/views/C_INVOICE_CANDIDATE_V.xml     Tue Feb 20 
18:12:35 2018 +0530
@@ -1,4 +1,4 @@
 <?xml version="1.0"?>
   <database name="VIEW C_INVOICE_CANDIDATE_V">
-    <view name="C_INVOICE_CANDIDATE_V"><![CDATA[SELECT o.ad_client_id, 
o.ad_org_id, o.c_bpartner_id, o.c_order_id, o.documentno, o.dateordered, 
o.c_doctype_id, o.totallines AS amountlines, o.grandtotal AS amountlinesgross, 
sum(round((l.qtyordered - l.qtyinvoiced) * l.priceactual, c.stdprecision)) AS 
notinvoicedlines, round(sum(round((l.qtyordered - l.qtyinvoiced) * 
l.priceactual, c.stdprecision) * (1 + t.rate / 100)), c.stdprecision) AS 
notinvoicedlinesgross, o.invoicerule AS term, sum(round((l.qtydelivered - 
l.qtyinvoiced) * l.priceactual, c.stdprecision)) AS pendinglines, 
round(sum(round((l.qtydelivered - l.qtyinvoiced) * l.priceactual, 
c.stdprecision) * (1 + t.rate / 100)), c.stdprecision) AS pendinglinesgross, 
sum(abs(l.qtyordered)) AS qtyordered, sum(abs(l.qtydelivered)) AS qtydelivered 
FROM c_order o JOIN c_doctype dt ON o.c_doctype_id = dt.c_doctype_id JOIN 
c_bpartner bp ON o.c_bpartner_id = bp.c_bpartner_id JOIN c_currency c ON 
o.c_currency_id = c.c_currency_id JOIN c_orderline l ON o.c_order_id = 
l.c_order_id JOIN c_tax t ON t.c_tax_id = l.c_tax_id LEFT JOIN 
c_invoiceschedule si ON bp.c_invoiceschedule_id = si.c_invoiceschedule_id WHERE 
(o.docstatus IN ('CO', 'CL', 'IP')) AND dt.docbasetype = 'SOO' AND 
(dt.docsubtypeso NOT IN ('ON', 'OB', 'WR')) AND (o.invoicerule = 'I' OR 
o.invoicerule = 'O' OR o.invoicerule = 'D' OR o.invoicerule = 'S' AND 
(si.invoicefrequency IS NULL OR si.invoicefrequency = 'D' OR 
si.invoicefrequency = 'W' OR si.invoicefrequency = 'T' AND trunc(o.dateordered) 
<= (trunc(now(), 'MM') + si.invoicedaycutoff - 1) AND trunc(now()) >= 
(trunc(o.dateordered, 'MM') + si.invoiceday - 1) OR trunc(o.dateordered) <= 
(trunc(now(), 'MM') + si.invoicedaycutoff + 14) AND trunc(now()) >= 
(trunc(o.dateordered, 'MM') + si.invoiceday + 14) OR si.invoicefrequency = 'M' 
AND trunc(o.dateordered) <= (trunc(now(), 'MM') + si.invoicedaycutoff - 1) AND 
trunc(now()) >= (trunc(o.dateordered, 'MM') + si.invoiceday - 1))) AND 
(abs(l.qtyordered - l.qtyinvoiced) <> 0 OR abs(l.qtydelivered - l.qtyinvoiced) 
<> 0) GROUP BY o.ad_client_id, o.ad_org_id, o.c_bpartner_id, o.c_order_id, 
o.documentno, o.dateordered, o.c_doctype_id, o.totallines, o.grandtotal, 
o.invoicerule, c.c_currency_id, c.stdprecision]]></view>
+    <view name="C_INVOICE_CANDIDATE_V"><![CDATA[SELECT o.ad_client_id, 
o.ad_org_id, o.c_bpartner_id, o.c_order_id, o.documentno, o.dateordered, 
o.c_doctype_id, o.totallines AS amountlines, o.grandtotal AS amountlinesgross, 
sum(round((l.qtyordered - l.qtyinvoiced) * l.priceactual, c.stdprecision)) AS 
notinvoicedlines, round(sum(round((l.qtyordered - l.qtyinvoiced) * 
l.priceactual, c.stdprecision) * (1 + t.rate / 100)), c.stdprecision) AS 
notinvoicedlinesgross, o.invoicerule AS term, sum(round((l.qtydelivered - 
l.qtyinvoiced) * l.priceactual, c.stdprecision)) AS pendinglines, 
round(sum(round((l.qtydelivered - l.qtyinvoiced) * l.priceactual, 
c.stdprecision) * (1 + t.rate / 100)), c.stdprecision) AS pendinglinesgross, 
sum(abs(l.qtyordered)) AS qtyordered, sum(abs(l.qtydelivered)) AS qtydelivered 
FROM c_order o JOIN c_doctype dt ON o.c_doctype_id = dt.c_doctype_id JOIN 
c_bpartner bp ON o.c_bpartner_id = bp.c_bpartner_id JOIN c_currency c ON 
o.c_currency_id = c.c_currency_id JOIN c_orderline l ON o.c_order_id = 
l.c_order_id JOIN c_tax t ON t.c_tax_id = l.c_tax_id LEFT JOIN 
c_invoiceschedule si ON bp.c_invoiceschedule_id = si.c_invoiceschedule_id WHERE 
(o.docstatus IN ('CO', 'CL', 'IP')) AND dt.docbasetype = 'SOO' AND 
(dt.docsubtypeso NOT IN ('ON', 'OB', 'WR')) AND (o.invoicerule = 'I' OR 
o.invoicerule = 'O' OR o.invoicerule = 'D' OR o.invoicerule = 'S' AND 
(si.invoicefrequency IS NULL OR si.invoicefrequency = 'D' OR 
si.invoicefrequency = 'W' OR si.invoicefrequency = 'T' AND trunc(o.dateordered) 
<= (trunc(now(), 'MM') + si.invoicedaycutoff - 1) AND trunc(now()) >= 
(trunc(o.dateordered, 'MM') + si.invoiceday - 1) OR trunc(o.dateordered) <= 
(trunc(now(), 'MM') + si.invoicedaycutoff + 14) AND trunc(now()) >= 
(trunc(o.dateordered, 'MM') + si.invoiceday + 14) OR si.invoicefrequency = 'M' 
AND trunc(o.dateordered) <= (trunc(now(), 'MM') + si.invoicedaycutoff - 1) AND 
trunc(now()) >= (trunc(o.dateordered, 'MM') + si.invoiceday - 1))) AND 
(obequals(l.qtyordered, l.qtyinvoiced) <> 'N' OR obequals(l.qtydelivered, 
l.qtyinvoiced) = 'N') GROUP BY o.ad_client_id, o.ad_org_id, o.c_bpartner_id, 
o.c_order_id, o.documentno, o.dateordered, o.c_doctype_id, o.totallines, 
o.grandtotal, o.invoicerule, c.c_currency_id, c.stdprecision]]></view>
   </database>
diff -r ef34142891ad -r 04e13cbe6990 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml  Wed Feb 21 10:52:41 2018 +0100
+++ b/src-db/database/sourcedata/AD_COLUMN.xml  Tue Feb 20 18:12:35 2018 +0530
@@ -264955,6 +264955,45 @@
 <!--46DAE178799A4016AC3871EB67A60AD8-->  
<ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
 <!--46DAE178799A4016AC3871EB67A60AD8--></AD_COLUMN>
 
+<!--46F57A406BA4498F8B0DF3550F4F98FF--><AD_COLUMN>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_COLUMN_ID><![CDATA[46F57A406BA4498F8B0DF3550F4F98FF]]></AD_COLUMN_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <NAME><![CDATA[Completely 
Invoiced]]></NAME>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <DESCRIPTION><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></DESCRIPTION>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <HELP><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></HELP>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<COLUMNNAME><![CDATA[Iscompletelyinvoiced]]></COLUMNNAME>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_TABLE_ID><![CDATA[319]]></AD_TABLE_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_REFERENCE_ID><![CDATA[20]]></AD_REFERENCE_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<DEFAULTVALUE><![CDATA[N]]></DEFAULTVALUE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <SEQNO><![CDATA[490]]></SEQNO>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_ELEMENT_ID><![CDATA[0C8A533A80214372BA5C7D7295F59D92]]></AD_ELEMENT_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <POSITION><![CDATA[66]]></POSITION>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--46F57A406BA4498F8B0DF3550F4F98FF-->  
<ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--46F57A406BA4498F8B0DF3550F4F98FF--></AD_COLUMN>
+
 <!--47254BD6EF8D4F4D97DE902FDEC55DAC--><AD_COLUMN>
 <!--47254BD6EF8D4F4D97DE902FDEC55DAC-->  
<AD_COLUMN_ID><![CDATA[47254BD6EF8D4F4D97DE902FDEC55DAC]]></AD_COLUMN_ID>
 <!--47254BD6EF8D4F4D97DE902FDEC55DAC-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r ef34142891ad -r 04e13cbe6990 src-db/database/sourcedata/AD_ELEMENT.xml
--- a/src-db/database/sourcedata/AD_ELEMENT.xml Wed Feb 21 10:52:41 2018 +0100
+++ b/src-db/database/sourcedata/AD_ELEMENT.xml Tue Feb 20 18:12:35 2018 +0530
@@ -21264,6 +21264,20 @@
 <!--0BD34701040243379D33B8A27AAD2308-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
 <!--0BD34701040243379D33B8A27AAD2308--></AD_ELEMENT>
 
+<!--0C8A533A80214372BA5C7D7295F59D92--><AD_ELEMENT>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  
<AD_ELEMENT_ID><![CDATA[0C8A533A80214372BA5C7D7295F59D92]]></AD_ELEMENT_ID>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  
<COLUMNNAME><![CDATA[Iscompletelyinvoiced]]></COLUMNNAME>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <NAME><![CDATA[Completely 
Invoiced]]></NAME>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <PRINTNAME><![CDATA[Completely 
Invoiced]]></PRINTNAME>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <DESCRIPTION><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></DESCRIPTION>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <HELP><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></HELP>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--0C8A533A80214372BA5C7D7295F59D92-->  <ISGLOSSARY><![CDATA[N]]></ISGLOSSARY>
+<!--0C8A533A80214372BA5C7D7295F59D92--></AD_ELEMENT>
+
 <!--0CC014AD7EFD4D949B995E8DCC256EEC--><AD_ELEMENT>
 <!--0CC014AD7EFD4D949B995E8DCC256EEC-->  
<AD_ELEMENT_ID><![CDATA[0CC014AD7EFD4D949B995E8DCC256EEC]]></AD_ELEMENT_ID>
 <!--0CC014AD7EFD4D949B995E8DCC256EEC-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r ef34142891ad -r 04e13cbe6990 src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml   Wed Feb 21 10:52:41 2018 +0100
+++ b/src-db/database/sourcedata/AD_FIELD.xml   Tue Feb 20 18:12:35 2018 +0530
@@ -261402,6 +261402,35 @@
 <!--96AE3EFBF5954A1EAB524571FA215DCB-->  
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--96AE3EFBF5954A1EAB524571FA215DCB--></AD_FIELD>
 
+<!--96B26E7865D44F489EC8C92148D1AFE1--><AD_FIELD>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<AD_FIELD_ID><![CDATA[96B26E7865D44F489EC8C92148D1AFE1]]></AD_FIELD_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <NAME><![CDATA[Completely 
Invoiced]]></NAME>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <DESCRIPTION><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></DESCRIPTION>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <HELP><![CDATA[The 
IsCompletelyInvoiced checkbox indicates if this document is completely invoiced 
or not. This flag is used only in sales flow and shown in the Goods Shipment 
Header.]]></HELP>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <AD_TAB_ID><![CDATA[257]]></AD_TAB_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<AD_COLUMN_ID><![CDATA[46F57A406BA4498F8B0DF3550F4F98FF]]></AD_COLUMN_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <ISREADONLY><![CDATA[Y]]></ISREADONLY>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <SEQNO><![CDATA[2050]]></SEQNO>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<SHOWINRELATION><![CDATA[Y]]></SHOWINRELATION>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<GRID_SEQNO><![CDATA[2050]]></GRID_SEQNO>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--96B26E7865D44F489EC8C92148D1AFE1-->  
<EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--96B26E7865D44F489EC8C92148D1AFE1--></AD_FIELD>
+
 <!--96C44F2E2B7A41B092E09E5F4F243B74--><AD_FIELD>
 <!--96C44F2E2B7A41B092E09E5F4F243B74-->  
<AD_FIELD_ID><![CDATA[96C44F2E2B7A41B092E09E5F4F243B74]]></AD_FIELD_ID>
 <!--96C44F2E2B7A41B092E09E5F4F243B74-->  
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r ef34142891ad -r 04e13cbe6990 
src-test/src/org/openbravo/test/AllAntTaskTests.java
--- a/src-test/src/org/openbravo/test/AllAntTaskTests.java      Wed Feb 21 
10:52:41 2018 +0100
+++ b/src-test/src/org/openbravo/test/AllAntTaskTests.java      Tue Feb 20 
18:12:35 2018 +0530
@@ -70,6 +70,7 @@
 import org.openbravo.test.expression.EvaluationTest;
 import org.openbravo.test.expression.OBBindingsTest;
 import org.openbravo.test.inventoryStatus.InventoryStatusTest;
+import 
org.openbravo.test.materialMgmt.iscompletelyinvoicedshipment.IsCompletelyInvoicedShipment;
 import org.openbravo.test.model.ClassLoaderTest;
 import org.openbravo.test.model.IndexesTest;
 import org.openbravo.test.model.OneToManyTest;
@@ -228,6 +229,9 @@
     // Inventory Status
     InventoryStatusTest.class, //
 
+    // Material Management
+    IsCompletelyInvoicedShipment.class, //
+
     // scheduling
     ProcessSchedulingTest.class, //
 
diff -r ef34142891ad -r 04e13cbe6990 
src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIConstants.java
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ 
b/src-test/src/org/openbravo/test/materialMgmt/iscompletelyinvoicedshipment/ICIConstants.java
       Tue Feb 20 18:12:35 2018 +0530
@@ -0,0 +1,77 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html 
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License. 
+ * The Original Code is Openbravo ERP. 
+ * The Initial Developer of the Original Code is Openbravo SLU 
+ * All portions are Copyright (C) 2018 Openbravo SLU
+ * All Rights Reserved. 
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+
+package org.openbravo.test.materialMgmt.iscompletelyinvoicedshipment;
+
+public class ICIConstants {

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to