svn commit: r539246 - in /ofbiz/trunk/applications/accounting: servicedef/services_finaccount.xml src/org/ofbiz/accounting/finaccount/FinAccountServices.java

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

svn commit: r539246 - in /ofbiz/trunk/applications/accounting: servicedef/services_finaccount.xml src/org/ofbiz/accounting/finaccount/FinAccountServices.java

jaz-3
Author: jaz
Date: Thu May 17 20:45:39 2007
New Revision: 539246

URL: http://svn.apache.org/viewvc?view=rev&rev=539246
Log:
refactored service credit service so it can be used for any type of financial account; the old service def remains; and new definition exists

Modified:
    ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml
    ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/finaccount/FinAccountServices.java

Modified: ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml?view=diff&rev=539246&r1=539245&r2=539246
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml Thu May 17 20:45:39 2007
@@ -179,12 +179,26 @@
 
     <!-- service credit account w/ transaction -->
     <service name="createServiceCredit" engine="java"
-            location="org.ofbiz.accounting.finaccount.FinAccountServices" invoke="createServiceCredit" auth="true">
-        <attribute name="finAccountId" type="String" mode="INOUT" optional="true"/>
+            location="org.ofbiz.accounting.finaccount.FinAccountServices" invoke="createAccountAndCredit" auth="true">
+        <attribute name="finAccountId" type="String" mode="INOUT" optional="true"/>
+        <attribute name="finAccountName" type="String" mode="IN" optional="true"/>
         <attribute name="partyId" type="String" mode="IN" optional="false"/>
         <attribute name="amount" type="Double" mode="IN" optional="false"/>
         <attribute name="currencyUomId" type="String" mode="IN" optional="true"/>
         <attribute name="productStoreId" type="String" mode="IN" optional="true"/>
+        <attribute name="finAccountTypeId" type="String" mode="IN" default-value="SVCCRED_ACCOUNT"/>
+    </service>
+
+    <!-- financial account w/ transaction -->
+    <service name="createFinAccountAndCredit" engine="java"
+            location="org.ofbiz.accounting.finaccount.FinAccountServices" invoke="createAccountAndCredit" auth="true">
+        <attribute name="finAccountId" type="String" mode="INOUT" optional="true"/>
+        <attribute name="finAccountName" type="String" mode="IN" optional="true"/>
+        <attribute name="partyId" type="String" mode="IN" optional="false"/>
+        <attribute name="amount" type="Double" mode="IN" optional="false"/>
+        <attribute name="currencyUomId" type="String" mode="IN" optional="true"/>
+        <attribute name="productStoreId" type="String" mode="IN" optional="true"/>
+        <attribute name="finAccountTypeId" type="String" mode="IN" optional="false"/>
     </service>
 
     <!-- balance account created from product purchase -->

Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/finaccount/FinAccountServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/finaccount/FinAccountServices.java?view=diff&rev=539246&r1=539245&r2=539246
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/finaccount/FinAccountServices.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/finaccount/FinAccountServices.java Thu May 17 20:45:39 2007
@@ -47,16 +47,30 @@
     
     public static final String module = FinAccountServices.class.getName();
 
-    public static Map createServiceCredit(DispatchContext dctx, Map context) {
+    public static Map createAccountAndCredit(DispatchContext dctx, Map context) {
         GenericDelegator delegator = dctx.getDelegator();
         LocalDispatcher dispatcher = dctx.getDispatcher();
+        String finAccountTypeId = (String) context.get("finAccountTypeId");
+        String accountName = (String) context.get("accountName");
         String finAccountId = (String) context.get("finAccountId");
 
+        // check the type
+        if (finAccountTypeId == null) {
+            finAccountTypeId = "SVCCRED_ACCOUNT";            
+        }
+        if (accountName == null) {
+            if ("SVCCRED_ACCOUNT".equals(finAccountTypeId)) {
+                accountName = "Customer Service Credit Account";
+            } else {
+                accountName = "Financial Account";
+            }
+        }
+
         GenericValue userLogin = (GenericValue) context.get("userLogin");
         try {
             // find the most recent (active) service credit account for the specified party
             String partyId = (String) context.get("partyId");
-            Map lookupMap = UtilMisc.toMap("finAccountTypeId", "SVCCRED_ACCOUNT", "ownerPartyId", partyId);
+            Map lookupMap = UtilMisc.toMap("finAccountTypeId", finAccountTypeId, "ownerPartyId", partyId);
 
             // if a productStoreId is present, restrict the accounts returned using the store's payToPartyId
             String productStoreId = (String) context.get("productStoreId");
@@ -91,8 +105,8 @@
                 // automatically set the parameters
                 ModelService createAccountService = dctx.getModelService(createAccountServiceName);
                 Map createAccountContext = createAccountService.makeValid(context, ModelService.IN_PARAM);
-                createAccountContext.put("finAccountTypeId", "SVCCRED_ACCOUNT");
-                createAccountContext.put("finAccountName", "Customer Service Credit Account");
+                createAccountContext.put("finAccountTypeId", finAccountTypeId);
+                createAccountContext.put("finAccountName", accountName);
                 createAccountContext.put("ownerPartyId", partyId);
                 createAccountContext.put("userLogin", userLogin);