svn commit: r892585 - in /ofbiz/trunk/applications/accounting: data/AccountingTypeData.xml data/DemoGeneralChartOfAccounts.xml data/DemoGlSetupData.xml script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r892585 - in /ofbiz/trunk/applications/accounting: data/AccountingTypeData.xml data/DemoGeneralChartOfAccounts.xml data/DemoGlSetupData.xml script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml

jacopoc
Author: jacopoc
Date: Sun Dec 20 11:44:03 2009
New Revision: 892585

URL: http://svn.apache.org/viewvc?rev=892585&view=rev
Log:
Improved and completed implementation of automatic gl postings for payment and applications and added new demo accounts and mappings to show the new feature available:
it is now possible to generate separate gl transactions for payments and for payment applications.
Based on initial suggestions from Scott Gray and Anil Patel.

Minor fixes:
- removed a duplicated gl account type (PREPAID_EXPENSES)
- fixed a typo in a description of an account of the demo chart of accounts


Modified:
    ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
    ofbiz/trunk/applications/accounting/data/DemoGeneralChartOfAccounts.xml
    ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml
    ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml

Modified: ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=892585&r1=892584&r2=892585&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml (original)
+++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml Sun Dec 20 11:44:03 2009
@@ -335,7 +335,6 @@
     <GlAccountType description="Customer Gift Certificate Balances" glAccountTypeId="CUSTOMER_GC_DEPOSIT" hasTable="N" parentTypeId="CURRENT_LIABILITY"/>
     <GlAccountType description="Uninvoiced Shipment Receipts" glAccountTypeId="UNINVOICED_SHIP_RCPT" hasTable="N" parentTypeId="CURRENT_LIABILITY"/>
     <GlAccountType description="Purchase Price Variance" glAccountTypeId="PURCHASE_PRICE_VAR" hasTable="N" parentTypeId="OTHER_EXPENSE"/>
-    <GlAccountType description="Prepaid Expenses" glAccountTypeId="PREPAID_EXPENSES" hasTable="N" parentTypeId="CURRENT_ASSET"/>
 
     <GlAccountType description="Income" glAccountTypeId="INCOME" hasTable="N" parentTypeId=""/>
     <GlAccountType description="Other Income" glAccountTypeId="OTHER_INCOME" hasTable="N" parentTypeId="INCOME"/>
@@ -346,6 +345,8 @@
 
     <GlAccountType description="Receivable from Inventory Transferred Out" glAccountTypeId="INVENTORY_XFER_OUT" hasTable="N" parentTypeId="CURRENT_ASSET"/>
     <GlAccountType description="Payable from Inventory Transferred In" glAccountTypeId="INVENTORY_XFER_IN" hasTable="N" parentTypeId="CURRENT_LIABILITY"/>
+    <GlAccountType description="Accounts Payable - Unapplied Payments" glAccountTypeId="ACCPAYABLE_UNAPPLIED" hasTable="N" parentTypeId="ACCOUNTS_PAYABLE"/>
+    <GlAccountType description="Accounts Receivable - Unapplied Payments" glAccountTypeId="ACCREC_UNAPPLIED" hasTable="N" parentTypeId="ACCOUNTS_RECEIVABLE"/>
 
     <GlAccountType description="Commission Expense" glAccountTypeId="COMMISSION_EXPENSE" hasTable="N" parentTypeId="OPERATING_EXPENSE"/>
     <GlAccountType description="Commissions Payables" glAccountTypeId="COMMISSIONS_PAYABLE" hasTable="N" parentTypeId="CURRENT_LIABILITY"/>

Modified: ofbiz/trunk/applications/accounting/data/DemoGeneralChartOfAccounts.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/DemoGeneralChartOfAccounts.xml?rev=892585&r1=892584&r2=892585&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/data/DemoGeneralChartOfAccounts.xml (original)
+++ ofbiz/trunk/applications/accounting/data/DemoGeneralChartOfAccounts.xml Sun Dec 20 11:44:03 2009
@@ -128,12 +128,16 @@
     accountName="LOANS RECEIVABLE - OWNERS" description="" postedBalance="0.0"/>
   <GlAccount parentGlAccountId="124000" glAccountId="124300" accountCode="124300"
     glAccountClassId="CURRENT_ASSET" glAccountTypeId="CURRENT_ASSET" glResourceTypeId="MONEY"
-    accountName="LOANS RECEIVABLE -OTHERS" description="" postedBalance="0.0"/>
+    accountName="LOANS RECEIVABLE - OTHERS" description="" postedBalance="0.0"/>
 
   <GlAccount parentGlAccountId="120000" glAccountId="125000" accountCode="125000"
     glAccountClassId="CURRENT_ASSET" glAccountTypeId="INVENTORY_XFER_OUT" glResourceTypeId="MONEY"
     accountName="RECEIVABLE FROM INVENTORY TRANSFERRED OUT" description="" postedBalance="0.0"/>
 
+  <GlAccount parentGlAccountId="120000" glAccountId="126000" accountCode="126000"
+    glAccountClassId="CURRENT_ASSET" glAccountTypeId="ACCREC_UNAPPLIED" glResourceTypeId="MONEY"
+    accountName="ACCOUNTS RECEIVABLE - UNAPPLIED PAYMENTS" description="" postedBalance="0.0"/>
+
   <GlAccount parentGlAccountId="120000" glAccountId="129000" accountCode="129000"
     glAccountClassId="CURRENT_ASSET" glAccountTypeId="CURRENT_ASSET" glResourceTypeId="MONEY"
     accountName="A/R MISCELLANEOUS" description="" postedBalance="0.0"/>
@@ -332,6 +336,10 @@
     glAccountClassId="CURRENT_LIABILITY" glAccountTypeId="INVENTORY_XFER_IN" glResourceTypeId="MONEY"
     accountName="PAYABLE FOR INVENTORY TRANSFERRED IN" description="" postedBalance="0.0"/>
 
+  <GlAccount parentGlAccountId="210000" glAccountId="216000" accountCode="216000"
+    glAccountClassId="CURRENT_LIABILITY" glAccountTypeId="ACCPAYABLE_UNAPPLIED" glResourceTypeId="MONEY"
+    accountName="ACCOUNTS PAYABLE - UNAPPLIED PAYMENTS" description="" postedBalance="0.0"/>
+
   <GlAccount parentGlAccountId="200000" glAccountId="220000" accountCode="220000"
     glAccountClassId="CURRENT_LIABILITY" glAccountTypeId="CURRENT_LIABILITY" glResourceTypeId="MONEY"
     accountName="ACCRUED EXPENSES" description="" postedBalance="0.0"/>

Modified: ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml?rev=892585&r1=892584&r2=892585&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml (original)
+++ ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml Sun Dec 20 11:44:03 2009
@@ -228,6 +228,7 @@
     <GlAccountOrganization organizationPartyId="Company" glAccountId="122200" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="122300" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="122500" fromDate="2001-01-01 00:00:00.0"/>
+    <GlAccountOrganization organizationPartyId="Company" glAccountId="126000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="140000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="141000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="142000" fromDate="2001-01-01 00:00:00.0"/>
@@ -241,6 +242,7 @@
     <GlAccountOrganization organizationPartyId="Company" glAccountId="213500" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="214000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="215000" fromDate="2001-01-01 00:00:00.0"/>
+    <GlAccountOrganization organizationPartyId="Company" glAccountId="216000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="221100" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="224000" fromDate="2001-01-01 00:00:00.0"/>
     <GlAccountOrganization organizationPartyId="Company" glAccountId="224100" fromDate="2001-01-01 00:00:00.0"/>
@@ -287,6 +289,7 @@
 
     <!-- Default mapping between account types and account ids -->
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="ACCOUNTS_RECEIVABLE" glAccountId="120000"/>
+    <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="ACCREC_UNAPPLIED" glAccountId="126000"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="INTRSTINC_RECEIVABLE" glAccountId="121800"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="INVENTORY_XFER_OUT" glAccountId="125000"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="INVENTORY_ACCOUNT" glAccountId="140000"/>
@@ -298,6 +301,7 @@
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="CUSTOMER_DEPOSIT" glAccountId="213300"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="UNINVOICED_SHIP_RCPT" glAccountId="214000"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="INVENTORY_XFER_IN" glAccountId="215000"/>
+    <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="ACCPAYABLE_UNAPPLIED" glAccountId="216000"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="COMMISSIONS_PAYABLE" glAccountId="221100"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="RETAINED_EARNINGS" glAccountId="336000"/>
     <GlAccountTypeDefault organizationPartyId="Company" glAccountTypeId="SALES_ACCOUNT" glAccountId="400000"/>
@@ -315,10 +319,10 @@
     <!-- mappings for payments -->
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="CUSTOMER_REFUND" glAccountTypeId="CUSTOMER_CREDIT"/>
     <!-- NOTE: do not change this -->
-    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="VENDOR_PAYMENT" glAccountTypeId="ACCOUNTS_PAYABLE"/>
+    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="VENDOR_PAYMENT" glAccountTypeId="ACCPAYABLE_UNAPPLIED"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="VENDOR_PREPAY" glAccountTypeId="PREPAID_EXPENSES"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="COMMISSION_PAYMENT" glAccountTypeId="COMMISSIONS_PAYABLE"/>
-    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="PAY_CHECK" glAccountTypeId="ACCOUNTS_PAYABLE"/>
+    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="PAY_CHECK" glAccountTypeId="ACCPAYABLE_UNAPPLIED"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="GC_WITHDRAWAL" glAccountTypeId="CUSTOMER_CREDIT"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="SALES_TAX_PAYMENT" glAccountTypeId="TAX_ACCOUNT"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="PAYROL_PAYMENT" glAccountTypeId="OPERATING_EXPENSE"/>
@@ -326,7 +330,7 @@
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="INCOME_TAX_PAYMENT" glAccountTypeId="TAX_ACCOUNT"/>
 
     <!-- NOTE: do not change this -->
-    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="CUSTOMER_PAYMENT" glAccountTypeId="ACCOUNTS_RECEIVABLE"/>
+    <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="CUSTOMER_PAYMENT" glAccountTypeId="ACCREC_UNAPPLIED"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="CUSTOMER_DEPOSIT" glAccountTypeId="CUSTOMER_DEPOSIT"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="INTEREST_RECEIPT" glAccountTypeId="INTRSTINC_RECEIVABLE"/>
     <PaymentGlAccountTypeMap organizationPartyId="Company" paymentTypeId="GC_DEPOSIT" glAccountTypeId="CUSTOMER_DEPOSIT"/>

Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml?rev=892585&r1=892584&r2=892585&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml Sun Dec 20 11:44:03 2009
@@ -1913,11 +1913,10 @@
                 <field-map field-name="organizationPartyId"/>
             </entity-one>
             <set field="creditGlAccountTypeId" from-field="paymentGlAccountTypeMap.glAccountTypeId"/>
-
+            <!-- This is now delegated to the createAcctgTransAndEntriesForPaymentApplication calls at the bottom of this service
             <get-related value-field="payment" relation-name="PaymentApplication" list="paymentApplications"/>
             <iterate list="paymentApplications" entry="paymentApplication">
 
-                <!-- credit -->
                 <make-value entity-name="AcctgTransEntry" value-field="creditEntry"/>
                 <set field="creditEntry.debitCreditFlag" value="C"/>
                 <set field="creditEntry.origAmount" from-field="paymentApplication.amountApplied"/>
@@ -1935,7 +1934,7 @@
                 </calculate>
                 <set field="acctgTransEntries[]" from-field="creditEntry" type="Object"/>
             </iterate>
-
+            -->
             <calculate field="diffAmount" decimal-scale="${ledgerDecimals}" rounding-mode="${roundingMode}">
                 <calcop operator="subtract">
                     <calcop operator="get" field="payment.amount"/>
@@ -1966,6 +1965,15 @@
                 <result-to-field result-name="acctgTransId"/>
             </call-service>
             <field-to-result field="acctgTransId" result-name="acctgTransId"/>
+            <!-- Now create accounting transactions for the payment applications -->
+            <get-related value-field="payment" relation-name="PaymentApplication" list="paymentApplications"/>
+            <iterate list="paymentApplications" entry="paymentApplication">
+                <set field="createAcctgTransAndEntriesForPaymentApplicationInMap.paymentApplicationId" from-field="paymentApplication.paymentApplicationId"/>
+                <call-service service-name="createAcctgTransAndEntriesForPaymentApplication" in-map-name="createAcctgTransAndEntriesForPaymentApplicationInMap">
+                    <result-to-field result-name="acctgTransId"/>
+                </call-service>
+                <log level="info" message="Accounting transaction ${acctgTransId} created for payment application ${paymentApplication.paymentApplicationId}"/>                
+            </iterate>
         </if-compare>
     </simple-method>
 
@@ -2238,12 +2246,11 @@
             <set field="creditEntry.partyId" from-field="payment.partyIdTo"/>
             <set field="creditEntry.roleTypeId" value="BILL_FROM_VENDOR"/>
             <set field="acctgTransEntries[]" from-field="creditEntry" type="Object"/>
-
+            <!-- This is now delegated to the createAcctgTransAndEntriesForPaymentApplication calls at the bottom of this service
             <entity-and entity-name="PaymentApplication" list="paymentApplications">
                 <field-map field-name="paymentId" from-field="payment.paymentId"/>
             </entity-and>
             <iterate list="paymentApplications" entry="paymentApplication">
-                <!-- Debit -->
                 <make-value entity-name="AcctgTransEntry" value-field="debitEntry"/>
                 <set field="debitEntry.debitCreditFlag" value="D"/>
                 <set field="debitEntry.origAmount" from-field="paymentApplication.amountApplied"/>
@@ -2271,6 +2278,7 @@
                 </calculate>
                 <set field="acctgTransEntries[]" from-field="debitEntry" type="Object"/>
             </iterate>
+            -->
             <calculate field="amount" decimal-scale="${ledgerDecimals}" rounding-mode="${roundingMode}">
                 <calcop operator="subtract">
                     <calcop operator="get" field="payment.amount"/>
@@ -2298,6 +2306,17 @@
                 <result-to-field result-name="acctgTransId"/>
             </call-service>
             <field-to-result field="acctgTransId" result-name="acctgTransId"/>
+            <!-- Now create accounting transactions for the payment applications -->
+            <entity-and entity-name="PaymentApplication" list="paymentApplications">
+                <field-map field-name="paymentId" from-field="payment.paymentId"/>
+            </entity-and>
+            <iterate list="paymentApplications" entry="paymentApplication">
+                <set field="createAcctgTransAndEntriesForPaymentApplicationInMap.paymentApplicationId" from-field="paymentApplication.paymentApplicationId"/>
+                <call-service service-name="createAcctgTransAndEntriesForPaymentApplication" in-map-name="createAcctgTransAndEntriesForPaymentApplicationInMap">
+                    <result-to-field result-name="acctgTransId"/>
+                </call-service>
+                <log level="info" message="Accounting transaction ${acctgTransId} created for payment application ${paymentApplication.paymentApplicationId}"/>
+            </iterate>
         </if-compare>
     </simple-method>
 
@@ -2411,6 +2430,19 @@
             <set field="debitEntry.origAmount" from-field="paymentApplication.amountApplied"/>
             <set field="debitEntry.origCurrencyUomId" from-field="payment.currencyUomId"/>
             <set field="debitEntry.glAccountTypeId" value="ACCOUNTS_PAYABLE"/>
+            <if-not-empty field="paymentApplication.overrideGlAccountId">
+                <set field="debitEntry.glAccountId" from-field="paymentApplication.overrideGlAccountId"/>
+            <else>
+                <if-not-empty field="paymentApplication.taxAuthGeoId">
+                    <entity-one entity-name="TaxAuthorityGlAccount" value-field="taxAuthorityGlAccount">
+                        <field-map field-name="organizationPartyId" from-field="organizationPartyId"/>
+                        <field-map field-name="taxAuthGeoId" from-field="paymentApplication.taxAuthGeoId"/>
+                        <field-map field-name="taxAuthPartyId" from-field="partyId"/>
+                    </entity-one>
+                    <set field="debitEntry.glAccountId" from-field="taxAuthorityGlAccount.glAccountId"/>
+                </if-not-empty>
+            </else>
+            </if-not-empty>
         </else>
         </if-compare>
         <set field="acctgTransEntries[]" from-field="debitEntry" type="Object"/>