Author: ashish
Date: Thu Dec 27 15:34:45 2007 New Revision: 607139 URL: http://svn.apache.org/viewvc?rev=607139&view=rev Log: As suggested by Jacopo created new file GlEvents.java to increase the scope for other future Event method that may come up for General Ledger operation. Removed the ReconcileEvents.java file. Added: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java (with props) Removed: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/ReconcileEvents.java Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml Added: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java?rev=607139&view=auto ============================================================================== --- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java (added) +++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java Thu Dec 27 15:34:45 2007 @@ -0,0 +1,145 @@ +/******************************************************************************* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + *******************************************************************************/ +package org.ofbiz.accounting; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import java.util.Map; +import java.util.List; +import java.util.Iterator; + +import org.ofbiz.base.util.Debug; +import org.ofbiz.base.util.UtilHttp; +import org.ofbiz.base.util.UtilMisc; +import org.ofbiz.base.util.UtilDateTime; +import org.ofbiz.base.util.UtilValidate; +import org.ofbiz.entity.GenericDelegator; +import org.ofbiz.entity.GenericEntityException; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.service.LocalDispatcher; +import org.ofbiz.service.ServiceUtil; +import org.ofbiz.service.GenericServiceException; + +public class GlEvents { + +public static final String module = GlEvents.class.getName(); +public static String createReconcileAccount(HttpServletRequest request,HttpServletResponse response) { + LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher"); + final GenericDelegator delegator = (GenericDelegator)request.getAttribute("delegator"); + GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin"); + Map ctx = UtilHttp.getParameterMap(request); + String acctgTransId; + String acctgTransEntrySeqId; + String glAccountId = null; + String organizationPartyId = null; + double reconciledBalance = 0.00; + boolean isSelected; + String debitCreditFlag; + int rowCount = 0; + if (ctx.containsKey("_rowCount")) { + rowCount = Integer.parseInt((String)ctx.get("_rowCount")); //get the number of rows + } + for (int i = 0; i < rowCount; i++) { //for calculating amount per glAccountId + double amount = 0.00; + String suffix = UtilHttp.MULTI_ROW_DELIMITER + i; + isSelected = (ctx.containsKey("_rowSubmit" + suffix) && "Y".equalsIgnoreCase((String)ctx.get("_rowSubmit" + suffix))); + if (!isSelected) { + continue; + } + acctgTransId = (String) ctx.get("acctgTransId" + suffix); + acctgTransEntrySeqId = (String) ctx.get("acctgTransEntrySeqId" + suffix); + organizationPartyId = (String) ctx.get("organizationPartyId" + suffix); + glAccountId = (String) ctx.get("glAccountId" + suffix); + GenericValue acctgTransEntry; + try { + List acctgTransEntries = delegator.findByAnd("AcctgTransEntry", UtilMisc.toMap("acctgTransId", acctgTransId, "acctgTransEntrySeqId", acctgTransEntrySeqId)); + if (UtilValidate.isNotEmpty(acctgTransEntries)) { + Iterator acctgTransEntryItr = acctgTransEntries.iterator(); + while (acctgTransEntryItr.hasNext()) { //calculate amount for each AcctgTransEntry according to glAccountId based on debit and credit + acctgTransEntry = (GenericValue) acctgTransEntryItr.next(); + debitCreditFlag = (String) acctgTransEntry.getString("debitCreditFlag"); + if ("D".equalsIgnoreCase(debitCreditFlag)) { + amount += acctgTransEntry.getDouble("amount"); //for debit + } else { + amount -= acctgTransEntry.getDouble("amount"); //for credit + } + } + } + reconciledBalance += amount; //total balance per glAccountId + } catch (GenericEntityException e) { + Debug.logError(e, module); + return "error"; + } + + } + Map fieldMap = UtilMisc.toMap("glReconciliationName", "Reconciliation at date " + UtilDateTime.nowTimestamp(), "glAccountId", glAccountId, "organizationPartyId", organizationPartyId, "reconciledDate", UtilDateTime.nowTimestamp(), "reconciledBalance", new Double(reconciledBalance), "userLogin", userLogin); + Map glReconResult = null; + try { + glReconResult = dispatcher.runSync("createGlReconciliation", fieldMap); //create GlReconciliation for the glAccountId + if (ServiceUtil.isError(glReconResult)) { + return "error"; + } + } catch (GenericServiceException e) { + Debug.logError(e, module); + return "error"; + } + String glReconciliationId = (String) glReconResult.get("glReconciliationId"); + String reconciledAmount; + for (int i = 0; i < rowCount; i++) { + String suffix = UtilHttp.MULTI_ROW_DELIMITER + i; + isSelected = (ctx.containsKey("_rowSubmit" + suffix) && "Y".equalsIgnoreCase((String)ctx.get("_rowSubmit" + suffix))); + if (!isSelected) { + continue; + } + acctgTransId = (String) ctx.get("acctgTransId" + suffix); + acctgTransEntrySeqId = (String) ctx.get("acctgTransEntrySeqId" + suffix); + GenericValue acctgTransEntry; + try { + List acctgTransEntries = delegator.findByAnd("AcctgTransEntry", UtilMisc.toMap("acctgTransId", acctgTransId, "acctgTransEntrySeqId", acctgTransEntrySeqId)); + if (UtilValidate.isNotEmpty(acctgTransEntries)) { + Iterator acctgTransEntryItr = acctgTransEntries.iterator(); + while (acctgTransEntryItr.hasNext()) { + acctgTransEntry = (GenericValue) acctgTransEntryItr.next(); + reconciledAmount = acctgTransEntry.getString("amount"); + acctgTransId = acctgTransEntry.getString("acctgTransId"); + acctgTransEntrySeqId = acctgTransEntry.getString("acctgTransEntrySeqId"); + Map glReconEntryMap = UtilMisc.toMap("glReconciliationId", glReconciliationId, "acctgTransId", acctgTransId, "acctgTransEntrySeqId", acctgTransEntrySeqId, "reconciledAmount", reconciledAmount, "userLogin", userLogin); + Map glReconEntryResult = null; + try { + glReconEntryResult = dispatcher.runSync("createGlReconciliationEntry", glReconEntryMap); + if (ServiceUtil.isError(glReconEntryResult)) { + return "error"; + } + } catch (GenericServiceException e) { + Debug.logError(e, module); + return "error"; + } + } + } + } catch (GenericEntityException e) { + Debug.logError(e, module); + return "error"; + } + } + ctx.put("glReconciliationId", glReconciliationId); + request.setAttribute("glReconciliationId", glReconciliationId); + return "success"; + } +} \ No newline at end of file Propchange: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/GlEvents.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml?rev=607139&r1=607138&r2=607139&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml Thu Dec 27 15:34:45 2007 @@ -1453,7 +1453,7 @@ </request-map> <request-map uri="EditGlReconciliation"> <security https="true" auth="true"/> - <event type="java" path="org.ofbiz.accounting.ReconcileEvents" invoke="createReconcileAccount"/> + <event type="java" path="org.ofbiz.accounting.GlEvents" invoke="createReconcileAccount"/> <response name="success" type="view" value="EditGlReconciliation"/> <response name="error" type="view" value="FindGlAccountReconciliation"/> </request-map> |
Free forum by Nabble | Edit this page |