details:   https://code.openbravo.com/erp/devel/pi/rev/d4708d99d1bb
changeset: 19015:d4708d99d1bb
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Mon Dec 10 13:48:42 2012 +0100
summary:   Fixes issue 22495: Generate invoices fails when selecting a lot of 
orders.

details:   https://code.openbravo.com/erp/devel/pi/rev/b8adf9e3f452
changeset: 19016:b8adf9e3f452
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Tue Dec 11 12:22:35 2012 +0100
summary:   Fixes issue 21980: 'Fully paid documents' Commissions.
Commission defined as Basis Status 'Fully Paid Documents' should consider 
payment date (instead of document date).

diffstat:

 src-db/database/model/functions/C_COMMISSION_PROCESS.xml |  14 +++++++++++---
 src-db/database/model/functions/C_INVOICE_CREATE.xml     |  14 +++++++-------
 2 files changed, 18 insertions(+), 10 deletions(-)

diffs (75 lines):

diff -r af172edc22e2 -r b8adf9e3f452 
src-db/database/model/functions/C_COMMISSION_PROCESS.xml
--- a/src-db/database/model/functions/C_COMMISSION_PROCESS.xml  Wed Dec 12 
13:23:08 2012 +0100
+++ b/src-db/database/model/functions/C_COMMISSION_PROCESS.xml  Tue Dec 11 
12:22:35 2012 +0100
@@ -271,11 +271,19 @@
             || 'FROM C_Invoice h JOIN C_InvoiceLine l ON h.C_Invoice_ID = 
l.C_Invoice_ID'
             || '    JOIN c_doctype dt ON h.c_doctype_id = dt.c_doctype_id ';
           END IF;
+          IF (v_BasisStatus='F') THEN
+            v_Cmd:= v_Cmd || ' left join fin_payment_sched_inv_v psv ON 
psv.C_Invoice_ID = h.C_Invoice_ID ';
+          END IF;
           v_Cmd := v_Cmd || ' WHERE h.DocStatus IN (''CL'',''CO'')'
           || ' AND h.ISSOTRX = ''Y'''
-          || ' AND h.AD_Client_ID = '':1'''
-          || ' AND h.DateInvoiced >= to_date('':2'')'
-          || ' AND h.DateInvoiced < to_date('':3'') +1';
+          || ' AND h.AD_Client_ID = '':1''';
+          IF (v_BasisStatus='F') THEN
+            v_Cmd:= v_Cmd || ' AND psv.LastPayment >= to_date('':2'')'
+            || ' AND psv.LastPayment < to_date('':3'') +1';
+          ELSE
+            v_Cmd:= v_Cmd || ' AND h.DateInvoiced >= to_date('':2'')'
+            || ' AND h.DateInvoiced < to_date('':3'') +1';
+          END IF;
         -- Order Basis
         ELSE
           IF(v_ListDetails='Y') THEN
diff -r af172edc22e2 -r b8adf9e3f452 
src-db/database/model/functions/C_INVOICE_CREATE.xml
--- a/src-db/database/model/functions/C_INVOICE_CREATE.xml      Wed Dec 12 
13:23:08 2012 +0100
+++ b/src-db/database/model/functions/C_INVOICE_CREATE.xml      Tue Dec 11 
12:22:35 2012 +0100
@@ -693,10 +693,10 @@
                          FROM C_INVOICE
                          WHERE C_INVOICE_ID = p_Invoice_ID;
                          IF(v_Message_Check <= 10) THEN
-                               v_Message:=v_Message||', 
'||'@InvoiceDocumentno@ ' || v_DocumentNo;
+                               v_Message:=SUBSTR(v_Message||', 
'||'@InvoiceDocumentno@ ' || v_DocumentNo, 0, 2000);
                          ELSE
                                IF(v_Message_Check = 11) THEN
-                                       v_Message :=v_Message ||' 
@InvoiceNumberCheck@';
+                                       v_Message :=SUBSTR(v_Message ||' 
@InvoiceNumberCheck@', 0, 2000);
                                END IF;
                          END IF;
                          v_Message_Check := v_Message_Check+1;
@@ -1109,9 +1109,9 @@
                   v_LineNo:=0;
                   v_InOut_ID:='-1';
                   IF(v_Message NOT LIKE '%@InvoiceDocumentno@%') THEN
-                    v_Message:=v_Message||', '||'@InvoiceDocumentno@ ' || 
v_DocumentNo;
+                      v_Message:=SUBSTR(v_Message||', '||'@InvoiceDocumentno@ 
' || v_DocumentNo, 0, 2000);
                   ELSE
-                    v_Message:=v_Message||', '|| v_DocumentNo;
+                      v_Message:=SUBSTR(v_Message||', '|| v_DocumentNo, 0, 
2000);
                   END IF;
                 END IF;
               ELSIF (v_isfinaldoctype = 'N') THEN --If docType is not a final 
one update it
@@ -1231,9 +1231,9 @@
                          WHERE C_INVOICE_ID = p_Invoice_ID;
                          IF(v_Message NOT LIKE '%'||v_DocumentNo||'%') THEN
                            IF(v_Message NOT LIKE '%@InvoiceDocumentno@%') THEN
-                             v_Message:=v_Message||', '||'@InvoiceDocumentno@ 
' || v_DocumentNo;
+                                       v_Message:=SUBSTR(v_Message||', 
'||'@InvoiceDocumentno@ ' || v_DocumentNo, 0, 2000);
                            ELSE
-                             v_Message:=v_Message||', '|| v_DocumentNo;
+                               v_Message:=SUBSTR(v_Message||', '|| 
v_DocumentNo, 0, 2000);
                            END IF;
                          END IF;
                    END IF;
@@ -1242,7 +1242,7 @@
           END; -- Block
         END IF; -- PInstance not null
         --<<FINISH_PROCESS>>
-        v_Message:='@Created@: ' || v_NoRecords||v_Message;
+        v_Message:=SUBSTR('@Created@: ' || v_NoRecords||v_Message, 0, 2000);
         IF(p_PInstance_ID IS NOT NULL) THEN
           --  Update AD_PInstance
           DBMS_OUTPUT.PUT_LINE('Updating PInstance - Finished ' || v_Message) ;

------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to