[OFBiz] SVN: r6888 - trunk/applications/accounting/src/org/ofbiz/accounting/invoice

sichen@svn.ofbiz.org sichen at svn.ofbiz.org
Wed Mar 1 19:55:51 CST 2006


Author: sichen
Date: 2006-03-01 19:55:47 -0600 (Wed, 01 Mar 2006)
New Revision: 6888

Modified:
   trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java
Log:
Two changes to creating invoices from return. First, we pad the sequence ID so that the invoice item seq ID is correct. Second, we set the invoice to READY
so that the invoice is in a proper status to be processed further by later SECAS.


Modified: trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java
===================================================================
--- trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java	2006-03-02 01:50:41 UTC (rev 6887)
+++ trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java	2006-03-02 01:55:47 UTC (rev 6888)
@@ -894,7 +894,8 @@
             BigDecimal promisedTotal = ZERO;
 
             // loop through shipment receipts to create invoice items and return item billings for each item and adjustment
-            int invoiceItemSeqId = 1;
+            int invoiceItemSeqNum = 1;
+            String invoiceItemSeqId = UtilFormatOut.formatPaddedNumber(invoiceItemSeqNum, 2);
             for (Iterator iter = receipts.iterator(); iter.hasNext(); ) {
                 GenericValue receipt = (GenericValue) iter.next();
 
@@ -941,7 +942,8 @@
                 }
 
                 // increment the seqId counter after creating the invoice item and return item billing
-                invoiceItemSeqId += 1;  
+                invoiceItemSeqNum += 1;  
+                invoiceItemSeqId = UtilFormatOut.formatPaddedNumber(invoiceItemSeqNum, 2);
 
                 // keep a running total
                 BigDecimal actualAmount = returnItem.getBigDecimal("returnPrice").multiply(receipt.getBigDecimal("quantityAccepted")).setScale(decimals, rounding);
@@ -992,8 +994,11 @@
                     if (ServiceUtil.isError(serviceResults)) {
                         return ServiceUtil.returnError(errorMsg, null, null, serviceResults);
                     }
-                    invoiceItemSeqId += 1;  // increment the seqId counter
 
+                    // increment the seqId counter
+                    invoiceItemSeqNum += 1;  
+                    invoiceItemSeqId = UtilFormatOut.formatPaddedNumber(invoiceItemSeqNum, 2);
+
                     // keep a running total
                     invoiceTotal = invoiceTotal.add(amount).setScale(decimals, rounding);
                     promisedTotal = promisedTotal.add(adjustment.getBigDecimal("amount")).setScale(decimals, rounding);
@@ -1040,9 +1045,18 @@
                 if (ServiceUtil.isError(serviceResults)) {
                     return ServiceUtil.returnError(errorMsg, null, null, serviceResults);
                 }
-                invoiceItemSeqId += 1;  // increment the seqId counter
+
+                // increment the seqId counter
+                invoiceItemSeqNum += 1;  
+                invoiceItemSeqId = UtilFormatOut.formatPaddedNumber(invoiceItemSeqNum, 2);
             }
-            
+        
+            // Set the invoice to READY
+            serviceResults = dispatcher.runSync("setInvoiceStatus", UtilMisc.toMap("invoiceId", invoiceId, "statusId", "INVOICE_READY", "userLogin", userLogin));
+            if (ServiceUtil.isError(serviceResults)) {
+                return ServiceUtil.returnError(errorMsg, null, null, serviceResults);
+            }
+
             // return the invoiceId
             Map results = ServiceUtil.returnSuccess();
             results.put("invoiceId", invoiceId);
@@ -1094,8 +1108,10 @@
 
         if (totalPayments.signum() == 1) {
             BigDecimal invoiceTotal = InvoiceWorker.getInvoiceTotalBd(delegator, invoiceId);
-            //Debug.log("Invoice #" + invoiceId + " total: " + invoiceTotal, module);
-            //Debug.log("Total payments : " + totalPayments, module);
+            if (Debug.verboseOn()) {
+                Debug.logInfo("Invoice #" + invoiceId + " total: " + invoiceTotal, module);
+                Debug.logInfo("Total payments : " + totalPayments, module);
+            }
             if (totalPayments.compareTo(invoiceTotal) >= 0) { // this checks that totalPayments is greter than or equal to invoiceTotal
                 // this invoice is paid
                 Map svcCtx = UtilMisc.toMap("statusId", "INVOICE_PAID", "invoiceId", invoiceId, "userLogin", userLogin);



More information about the Svn mailing list