svn commit: r522886 - in /ofbiz/trunk/applications/accounting: entitydef/entitymodel.xml script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml

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

svn commit: r522886 - in /ofbiz/trunk/applications/accounting: entitydef/entitymodel.xml script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml

jonesde
Author: jonesde
Date: Tue Mar 27 05:20:45 2007
New Revision: 522886

URL: http://svn.apache.org/viewvc?view=rev&rev=522886
Log:
More progress on the FinAccountTrans GL posting, some now partially complete

Modified:
    ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
    ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml

Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?view=diff&rev=522886&r1=522885&r2=522886
==============================================================================
--- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml Tue Mar 27 05:20:45 2007
@@ -1293,6 +1293,7 @@
       <field name="roleTypeId" type="id"></field>
       <field name="invoiceId" type="id"></field>
       <field name="paymentId" type="id"></field>
+      <field name="finAccountTransId" type="id"></field>
       <field name="shipmentId" type="id"></field>
       <field name="receiptId" type="id"></field>
       <field name="workEffortId" type="id"></field>
@@ -1340,6 +1341,9 @@
       </relation>
       <relation type="one" fk-name="ACCTTX_PAYMENT" rel-entity-name="Payment">
         <key-map field-name="paymentId"/>
+      </relation>
+      <relation type="one" fk-name="ACCTTX_FNACTTR" rel-entity-name="FinAccountTrans">
+        <key-map field-name="finAccountTransId"/>
       </relation>
       <relation type="one" fk-name="ACCTTX_SHIPMENT" rel-entity-name="Shipment">
         <key-map field-name="shipmentId"/>

Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml?view=diff&rev=522886&r1=522885&r2=522886
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountGlPostServices.xml Tue Mar 27 05:20:45 2007
@@ -26,6 +26,8 @@
         <!-- NOTE: this is not yet complete -->
         <!-- NOTE: this will behave differently depending on how the FinAccount is used, see comments on different GlAccounts for trans entries below -->
         
+        <now-timestamp-to-env env-name="nowTimestamp"/>
+        
         <entity-one entity-name="FinAccountTrans" value-name="finAccountTrans"/>
         <set field="finAccountId" from-field="finAccountTrans.finAccountId"/>
         <entity-one entity-name="FinAccount" value-name="finAccount"/>
@@ -47,21 +49,94 @@
             </else>
         </if-not-empty>
 
-        <!-- Make sure we have the organizationPartyId and the glAccountId -->
-        <if-empty field-name="glAccountId">
-            <add-error><fail-message message="Cannot post FinAccountTrans with ID [${parameters.finAccountTransId}] to GL, could not find glAccountId"/></add-error>
-        </if-empty>
-        <if-empty field-name="organizationPartyId">
-            <add-error><fail-message message="Cannot post FinAccountTrans with ID [${parameters.finAccountTransId}] to GL, could not find organizationPartyId"/></add-error>
-        </if-empty>
-        <check-errors/>
+        <!-- set initial values for AcctgTrans -->
+        <set field="createAcctgTransAndEntriesMap.finAccountTransId" from-field="parameters.finAccountTransId"/>
+        <set field="createAcctgTransAndEntriesMap.transactionDate" from-field="nowTimestamp"/>
+        <set field="createAcctgTransAndEntriesMap.glFiscalTypeId" value="ACTUAL"/>
+        <set field="createAcctgTransAndEntriesMap.partyId" from-field="finAccount.ownerPartyId"/>
+        
+        <!-- set initial values for Main AcctgTransEntry -->
+        <make-value value-name="mainAcctgTransEntry" entity-name="AcctgTransEntry"/>
+        <set field="mainAcctgTransEntry.glAccountId" from-field="glAccountId"/>
+        <set field="mainAcctgTransEntry.organizationPartyId" from-field="finAccount.organizationPartyId"/>
+        <set field="mainAcctgTransEntry.partyId" from-field="finAccount.ownerPartyId"/>
+        <set field="mainAcctgTransEntry.amount" from-field="finAccountTrans.amount"/>
+        <set field="mainAcctgTransEntry.acctgTransEntryTypeId" value="_NA_"/>
+        <set field="mainAcctgTransEntry.acctgTransEntrySeqId" value="01"/>
+        
+        <!-- set initial values for Offset AcctgTransEntry -->
+        <make-value value-name="offsetAcctgTransEntry" entity-name="AcctgTransEntry"/>
+        <set field="offsetAcctgTransEntry.organizationPartyId" from-field="finAccount.organizationPartyId"/>
+        <set field="offsetAcctgTransEntry.partyId" from-field="finAccount.ownerPartyId"/>
+        <set field="offsetAcctgTransEntry.amount" from-field="finAccountTrans.amount"/>
+        <set field="offsetAcctgTransEntry.acctgTransEntryTypeId" value="_NA_"/>
+        <set field="offsetAcctgTransEntry.acctgTransEntrySeqId" value="02"/>
         
-        <!-- TODO: Find the other side to post to/from -
+        <!-- Find the other side to post to/from -
             if payment directory to account do from Payment;
             if from account refill product purchase pull from special account where those funds wait;
             if purchase on account, balance like bank acount received or something -->
+        <if>
+            <condition><if-compare field-name="finAccountTransTypeId" operator="equals" value="DEPOSIT"/></condition>
+            <then>
+                <!-- TODO: somehow check to see if the deposit was not from a product, or didn't get into the general CUSTOMER CREDITS 213000 account -->
+                
+                <!--
+                    Handle the case where a product is purchased to deposit to account.
+                    The Product should be setup so that funds go to the general CUSTOMER CREDITS account, 213000.
+                    This will simply transfer from that account to the configured account above.
+                -->
+                <set field="offsetAcctgTransEntry.glAccountId" value="213000"/>
+
+                <set field="mainAcctgTransEntry.debitCreditFlag" value="D"/>
+                <set field="offsetAcctgTransEntry.debitCreditFlag" value="C"/>
+                <set field="createAcctgTransAndEntriesMap.acctgTransTypeId" value="RECEIPT_ACCTG_TRANS"/>
+            </then>
+            <else-if>
+                <condition><if-compare field-name="finAccountTransTypeId" operator="equals" value="WITHDRAWAL"/></condition>
+                <then>
+                    <!-- TODO: somehow determine if this is an order placed against the account or some other type of withdrawal -->
+                    
+                    <!-- TODO: handle order placed against (paid for with) the account -->
+                    
+                    <set field="mainAcctgTransEntry.debitCreditFlag" value="C"/>
+                    <set field="offsetAcctgTransEntry.debitCreditFlag" value="D"/>
+                    <set field="createAcctgTransAndEntriesMap.acctgTransTypeId" value="PAYMENT_ACCTG_TRANS"/>
+                </then>
+            </else-if>
+            <else-if>
+                <condition><if-compare field-name="finAccountTransTypeId" operator="equals" value="ADJUSTMENT"/></condition>
+                <then>
+                    <!-- TODO: what to do for an adjustment? for now nothing, will error out below -->
+                    
+                    <!-- if positive will go to one account for write-off, if negative will go to another account for a fee -->
+                    
+                    <!-- these will reverse depending on positive/negative amount -->
+                    <set field="mainAcctgTransEntry.debitCreditFlag" value="D"/>
+                    <set field="offsetAcctgTransEntry.debitCreditFlag" value="C"/>
+                </then>
+            </else-if>
+        </if>
         
-        <!-- TODO: Post the finAccountTrans.amount to the given GlAccount -->
+        <!-- Make sure we have the glAccountId, glAccountIdOffset, organizationPartyId -->
+        <if-empty field-name="mainAcctgTransEntry.glAccountId">
+            <add-error><fail-message message="Cannot post FinAccountTrans with ID [${parameters.finAccountTransId}] to GL, could not find Main glAccountId"/></add-error>
+        </if-empty>
+        <if-empty field-name="offsetAcctgTransEntry.glAccountId">
+            <add-error><fail-message message="Cannot post FinAccountTrans with ID [${parameters.finAccountTransId}] to GL, could not find Offset glAccountId"/></add-error>
+        </if-empty>
+        <if-empty field-name="organizationPartyId">
+            <add-error><fail-message message="Cannot post FinAccountTrans with ID [${parameters.finAccountTransId}] to GL, could not find organizationPartyId"/></add-error>
+        </if-empty>
+        <check-errors/>
         
+        <!-- Post the finAccountTrans.amount to/from the given GlAccounts -->
+        <set field="createAcctgTransAndEntriesMap.acctgTransEntries[]" from-field="mainAcctgTransEntry"/>
+        <set field="createAcctgTransAndEntriesMap.acctgTransEntries[]" from-field="offsetAcctgTransEntry"/>
+        <!-- TODO: un-comment this once ready for real use
+        <call-service service-name="createAcctgTransAndEntries" in-map-name="createAcctgTransAndEntriesMap" include-user-login="true">
+        </call-service>
+        -->
+        <!-- TODO: do anything with return values from service? -->
     </simple-method>
 </simple-methods>