You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2013/10/08 15:49:19 UTC
svn commit: r1530273 [3/3] - in /ofbiz/trunk/applications/accounting: data/
entitydef/ script/org/ofbiz/accounting/ledger/ servicedef/
src/org/ofbiz/accounting/util/ webapp/accounting/WEB-INF/actions/reports/
webapp/accounting/reports/ widget/
Modified: ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/accounting/entitydef/entitymodel.xml Tue Oct 8 13:49:19 2013
@@ -2047,7 +2047,6 @@ under the License.
<field name="description" type="description"></field>
<field name="productId" type="id"></field>
<field name="externalId" type="id"><description>id of the account in an external system where the accounts are imported/exported</description></field>
- <field name="postedBalance" type="currency-amount"></field>
<prim-key field="glAccountId"/>
<relation type="one" fk-name="GLACCT_TYPE" rel-entity-name="GlAccountType">
<key-map field-name="glAccountTypeId"/>
@@ -2123,6 +2122,7 @@ under the License.
<field name="glAccountId" type="id-ne"></field>
<field name="organizationPartyId" type="id-ne"></field>
<field name="customTimePeriodId" type="id-ne"></field>
+ <field name="openingBalance" type="currency-amount"></field>
<field name="postedDebits" type="currency-amount"></field>
<field name="postedCredits" type="currency-amount"></field>
<field name="endingBalance" type="currency-amount"></field>
@@ -2196,7 +2196,6 @@ under the License.
<field name="roleTypeId" type="id-ne"></field>
<field name="fromDate" type="date-time"></field>
<field name="thruDate" type="date-time"></field>
- <field name="postedBalance" type="currency-amount"></field>
<prim-key field="glAccountId"/>
<prim-key field="organizationPartyId"/>
<relation type="one" fk-name="GLACCT_ORG_GLA" rel-entity-name="GlAccount">
@@ -2219,10 +2218,7 @@ under the License.
<member-entity entity-alias="GLAO" entity-name="GlAccountOrganization"/>
<member-entity entity-alias="GLA" entity-name="GlAccount"/>
<alias-all entity-alias="GLAO"/>
- <alias-all entity-alias="GLA">
- <exclude field="postedBalance"/>
- </alias-all>
- <alias entity-alias="GLA" name="accountPostedBalance" field="postedBalance"/>
+ <alias-all entity-alias="GLA"/>
<view-link entity-alias="GLAO" rel-entity-alias="GLA">
<key-map field-name="glAccountId"/>
</view-link>
Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/AcctgTransServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/AcctgTransServices.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/AcctgTransServices.xml (original)
+++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/AcctgTransServices.xml Tue Oct 8 13:49:19 2013
@@ -361,122 +361,6 @@ under the License.
</if-empty>
</iterate>
</if-not-empty>
- <!-- TODO: for each entry: lookup GlAccount, update posted balance -->
- <iterate entry="acctgTransEntry" list="acctgTransEntryList">
- <!-- Get all data to operate on: GlAccount, GlAccountOrganization, GlAccountHistory -->
- <clear-field field="glAccount"/>
- <clear-field field="glAccountOrganization"/>
- <clear-field field="glAccountHistoryList"/>
-
- <entity-one entity-name="GlAccount" value-field="glAccount">
- <field-map field-name="glAccountId" from-field="acctgTransEntry.glAccountId"/>
- </entity-one>
- <entity-one entity-name="GlAccountOrganization" value-field="glAccountOrganization">
- <field-map field-name="glAccountId" from-field="acctgTransEntry.glAccountId"/>
- <field-map field-name="organizationPartyId" from-field="acctgTransEntry.organizationPartyId"/>
- </entity-one>
-
- <!-- update the GlAccount's posted balance. This depends on whether the GlAccount is a debit or credit account and the
- debitCreditFlag of the acctgTransEntry. Debits add to debit accounts and subtract from credit accounts. Credits add to
- credit accounts and subtract from debit accounts -->
- <!-- we do this by first calculating a postingAmount (positive or negative) then adding to the postingBalance -->
- <clear-field field="postingAmount"/>
- <!-- use the parent of the GlAccountClass, which should either be DEBIT or CREDIT -->
- <get-related-one relation-name="GlAccountClass" value-field="glAccount" to-value-field="glAccountClass"/>
- <get-related-one relation-name="ParentGlAccountClass" value-field="glAccountClass" to-value-field="parentGlAccountClass"/>
- <!-- test if the account is a DEBIT account -->
- <set field="isDebit" value="${groovy:org.ofbiz.accounting.util.UtilAccounting.isDebitAccount(glAccount)}"/>
- <if-compare field="isDebit" operator="equals" value="true">
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="D">
- <set from-field="acctgTransEntry.amount" field="postingAmount"/>
- <else>
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
- <calculate field="postingAmount" type="BigDecimal">
- <calcop field="acctgTransEntry.amount" operator="negative"/>
- </calculate>
- </if-compare>
- </else>
- </if-compare>
- <else>
- <!-- otherwise, test if the account is credit -->
- <set field="isCredit" value="${groovy:org.ofbiz.accounting.util.UtilAccounting.isCreditAccount(glAccount)}"/>
- <if-compare field="isCredit" operator="equals" value="true">
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
- <set from-field="acctgTransEntry.amount" field="postingAmount"/>
- <else>
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="D">
- <calculate field="postingAmount" type="BigDecimal">
- <calcop field="acctgTransEntry.amount" operator="negative"/>
- </calculate>
- </if-compare>
- </else>
- </if-compare>
- <else>
- <log level="warning" message="GL account ${glAccount.glAccountId} is of class ${glAccount.glAccountClassId} which is neither debit nor credit - cannot update posted balance"/>
- </else>
- </if-compare>
- </else>
- </if-compare>
- <log level="verbose" message="GL account: [${acctgTransEntry.glAccountId}] initial balance: [${glAccountOrganization.postedBalance}] ${acctgTransEntry.debitCreditFlag} [${acctgTransEntry.amount}]"/>
- <!-- calculate the new posted balance for this gl account -->
- <calculate field="postedBalance" type="BigDecimal">
- <calcop operator="get" field="glAccountOrganization.postedBalance"/>
- <calcop operator="get" field="postingAmount"/>
- </calculate>
- <log level="verbose" message="GL account: [${acctgTransEntry.glAccountId}] final balance: [${postedBalance}]"/>
-
- <!-- update the gl account's posted balance for this organization -->
- <set from-field="glAccount.glAccountId" field="updateGlAccountParams.glAccountId"/>
- <set from-field="postedBalance" field="updateGlAccountParams.postedBalance" type="BigDecimal"/>
- <set from-field="acctgTransEntry.organizationPartyId" field="updateGlAccountParams.organizationPartyId"/>
- <call-service service-name="updateGlAccountOrganization" in-map-name="updateGlAccountParams"/>
-
- <!-- assemble the glAccountHistoryList, we will update all of these -->
- <set from-field="customTimePeriodListByOrganizationPartyIdMap[acctgTransEntry.organizationPartyId]" field="customTimePeriodList"/>
- <iterate entry="customTimePeriod" list="customTimePeriodList">
- <entity-one entity-name="GlAccountHistory" value-field="glAccountHistory">
- <field-map field-name="glAccountId" from-field="acctgTransEntry.glAccountId"/>
- <field-map field-name="organizationPartyId" from-field="acctgTransEntry.organizationPartyId"/>
- <field-map field-name="customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
- </entity-one>
- <!-- if no glAccountHistory create a new empty one -->
- <if-empty field="glAccountHistory">
- <make-value value-field="glAccountHistory" entity-name="GlAccountHistory"/>
- <set from-field="acctgTransEntry.glAccountId" field="glAccountHistory.glAccountId"/>
- <set from-field="acctgTransEntry.organizationPartyId" field="glAccountHistory.organizationPartyId"/>
- <set from-field="customTimePeriod.customTimePeriodId" field="glAccountHistory.customTimePeriodId"/>
- <set field="glAccountHistory.postedDebits" value="0.0" type="BigDecimal"/>
- <set field="glAccountHistory.postedCredits" value="0.0" type="BigDecimal"/>
- <create-value value-field="glAccountHistory"/>
- </if-empty>
-
- <!-- update GlAccountHistory's debit and credit totals -->
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="D">
- <calculate field="glAccountHistory.postedDebits" type="BigDecimal">
- <calcop operator="add">
- <calcop operator="get" field="acctgTransEntry.amount"/>
- <calcop operator="get" field="glAccountHistory.postedDebits"/>
- </calcop>
- </calculate>
- <else>
- <if-compare field="acctgTransEntry.debitCreditFlag" operator="equals" value="C">
- <calculate field="glAccountHistory.postedCredits" type="BigDecimal">
- <calcop operator="add">
- <calcop operator="get" field="acctgTransEntry.amount"/>
- <calcop operator="get" field="glAccountHistory.postedCredits"/>
- </calcop>
- </calculate>
- <else>
- <add-error>
- <fail-property resource="AccountingUiLabels" property="AccountingNotPostingGlAccountTransactionBadDebitCreditFlag"/>
- </add-error>
- </else>
- </if-compare>
- </else>
- </if-compare>
- <store-value value-field="glAccountHistory"/>
- </iterate>
- </iterate>
<!-- check-errors just in case we had some bad debitCreditFlags -->
<check-errors/>
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=1530273&r1=1530272&r2=1530273&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 Tue Oct 8 13:49:19 2013
@@ -787,10 +787,7 @@ under the License.
</entity-one>
<if-not-empty field="profitLossAccountHistory">
<!-- already posted: verify if numbers match -->
- <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="getNetBalance" ret-field="postedBalance">
- <field field="profitLossAccountHistory" type="GenericValue"/>
- </call-class-method>
- <if-compare-field field="postedBalance" to-field="totalAmount" operator="not-equals" type="BigDecimal">
+ <if-compare-field field="profitLossAccountHistory.endingBalance" to-field="totalAmount" operator="not-equals" type="BigDecimal">
<add-error>
<fail-property resource="AccountingUiLabels" property="AccountingPostedBalanceAlreadyPresent"/>
</add-error>
@@ -823,131 +820,25 @@ under the License.
</else>
</if-not-empty>
- <!-- The history records in the current time period are updated with the endingBalance field -->
- <entity-and entity-name="GlAccountHistory" list="glAccountHistories">
- <field-map field-name="organizationPartyId" from-field="customTimePeriod.organizationPartyId"/>
- <field-map field-name="customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
- </entity-and>
- <iterate list="glAccountHistories" entry="glAccountHistory">
- <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="getNetBalance" ret-field="endingBalance">
- <field field="glAccountHistory" type="GenericValue"/>
- </call-class-method>
- <set field="glAccountHistory.endingBalance" from-field="endingBalance"/>
- <store-value value-field="glAccountHistory"/>
- </iterate>
-
- <!-- For all the accounts of class asset/contra-asset/liability/equity the endingBalance of the last time period's history is added to the one of the history of the period being closed -->
- <if-not-empty field="lastClosedTimePeriod">
- <entity-condition entity-name="GlAccountAndHistory" list="lastPeriodGlAccountAndHistories">
- <condition-list combine="and">
- <condition-expr field-name="organizationPartyId" operator="equals" from-field="customTimePeriod.organizationPartyId"/>
- <condition-expr field-name="customTimePeriodId" operator="equals" from-field="lastClosedTimePeriod.customTimePeriodId"/>
- <condition-list combine="or">
- <condition-expr field-name="glAccountClassId" operator="in" from-field="assetAccountClassIds"/>
- <condition-expr field-name="glAccountClassId" operator="in" from-field="contraAssetAccountClassIds"/>
- <condition-expr field-name="glAccountClassId" operator="in" from-field="liabilityAccountClassIds"/>
- <condition-expr field-name="glAccountClassId" operator="in" from-field="equityAccountClassIds"/>
- </condition-list>
- </condition-list>
- <order-by field-name="glAccountId"/>
- </entity-condition>
- <iterate list="lastPeriodGlAccountAndHistories" entry="lastPeriodGlAccountAndHistory">
- <get-related-one value-field="lastPeriodGlAccountAndHistory" relation-name="GlAccountHistory" to-value-field="lastPeriodGlAccountHistory"/>
- <entity-one entity-name="GlAccountHistory" value-field="thisPeriodGlAccountHistory" auto-field-map="false">
- <field-map field-name="organizationPartyId" from-field="customTimePeriod.organizationPartyId"/>
- <field-map field-name="customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
- <field-map field-name="glAccountId" from-field="lastPeriodGlAccountHistory.glAccountId"/>
- </entity-one>
- <if-empty field="thisPeriodGlAccountHistory">
- <make-value entity-name="GlAccountHistory" value-field="thisPeriodGlAccountHistory"/>
- <set field="thisPeriodGlAccountHistory.customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
- <set field="thisPeriodGlAccountHistory.organizationPartyId" from-field="customTimePeriod.organizationPartyId"/>
- <set field="thisPeriodGlAccountHistory.glAccountId" from-field="lastPeriodGlAccountHistory.glAccountId"/>
- <set field="thisPeriodGlAccountHistory.postedDebits" value="0.0" type="BigDecimal"/>
- <set field="thisPeriodGlAccountHistory.postedCredits" value="0.0" type="BigDecimal"/>
- <set field="thisPeriodGlAccountHistory.endingBalance" from-field="lastPeriodGlAccountHistory.endingBalance"/>
- <create-value value-field="thisPeriodGlAccountHistory"/>
- <else>
- <calculate field="thisPeriodGlAccountHistory.endingBalance">
- <calcop field="thisPeriodGlAccountHistory.endingBalance" operator="add"><calcop field="lastPeriodGlAccountHistory.endingBalance" operator="get"/></calcop>
- </calculate>
- <store-value value-field="thisPeriodGlAccountHistory"/>
- </else>
- </if-empty>
- </iterate>
- </if-not-empty>
-
- <!-- TODO: the usage of GlAccountOrganization.postedAmount is deprecated in place of GlAccountHistory; the next section will then be removed-->
- <!-- Initialize the GlAccountOrganization.postedAmount for expense/revenue/income accounts for the new fiscal period -->
- <entity-condition entity-name="GlAccountOrganizationAndClass" list="glAccountOrganizationAndClassList">
+ <!-- One balance history record for each account is created for the time period being closed -->
+ <entity-condition entity-name="GlAccountOrganization" list="organizationGlAccounts">
<condition-list combine="and">
<condition-expr field-name="organizationPartyId" operator="equals" from-field="customTimePeriod.organizationPartyId"/>
- <condition-expr field-name="postedBalance" operator="not-equals" value="0.0"/>
+ <condition-expr field-name="fromDate" operator="less" from-field="customTimePeriod.thruDate"/>
<condition-list combine="or">
- <condition-expr field-name="glAccountClassId" operator="in" from-field="expenseAccountClassIds"/>
- <condition-expr field-name="glAccountClassId" operator="in" from-field="revenueAccountClassIds"/>
- <condition-expr field-name="glAccountClassId" operator="in" from-field="incomeAccountClassIds"/>
- <condition-expr field-name="glAccountId" operator="equals" from-field="profitLossAccount.glAccountId"/>
+ <condition-expr field-name="thruDate" operator="greater-equals" from-field="customTimePeriod.fromDate"/>
+ <condition-expr field-name="thruDate" operator="equals" from-field="nullField"/>
</condition-list>
</condition-list>
+ <select-field field-name="glAccountId"/>
</entity-condition>
- <now-timestamp field="nowTimestamp"/>
- <iterate list="glAccountOrganizationAndClassList" entry="glAccountOrganizationAndClass">
- <entity-condition entity-name="AcctgTransAndEntries" list="acctgTransAndEntries">
- <condition-list combine="and">
- <condition-expr field-name="organizationPartyId" operator="equals" from-field="customTimePeriod.organizationPartyId"/>
- <condition-expr field-name="glAccountId" operator="equals" from-field="glAccountOrganizationAndClass.glAccountId"/>
- <condition-expr field-name="isPosted" operator="equals" value="Y"/>
- <condition-expr field-name="glFiscalTypeId" operator="equals" value="ACTUAL"/>
- <condition-expr field-name="transactionDate" operator="greater-equals" from-field="customTimePeriod.thruDate"/> <!-- FIXME: Date to Timestamp -->
- <condition-expr field-name="transactionDate" operator="less" from-field="nowTimestamp"/>
- <condition-expr field-name="acctgTransTypeId" operator="not-equals" value="PERIOD_CLOSING"/>
- </condition-list>
- <order-by field-name="acctgTransId"/>
- <order-by field-name="acctgTransEntrySeqId"/>
- </entity-condition>
-
- <set field="newPostedBalance" value="0.0" type="BigDecimal"/>
- <iterate list="acctgTransAndEntries" entry="acctgTransAndEntry">
- <get-related-one value-field="acctgTransAndEntry" relation-name="GlAccount" to-value-field="glAccount"/>
- <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isCreditAccount" ret-field="isCreditAccount">
- <field field="glAccount" type="GenericValue"/>
- </call-class-method>
- <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isDebitAccount" ret-field="isDebitAccount">
- <field field="glAccount" type="GenericValue"/>
- </call-class-method>
- <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isExpenseAccount" ret-field="isExpenseAccount">
- <field field="glAccount" type="GenericValue"/>
- </call-class-method>
- <set field="amount" from-field="acctgTransAndEntry.amount"/>
- <if>
- <condition>
- <or>
- <and>
- <if-compare field="acctgTransAndEntry.debitCreditFlag" operator="equals" value="D"/>
- <if-compare field="isCreditAccount" operator="equals" value="true" type="Boolean"/>
- </and>
- <and>
- <if-compare field="acctgTransAndEntry.debitCreditFlag" operator="equals" value="C"/>
- <if-compare field="isDebitAccount" operator="equals" value="true" type="Boolean"/>
- </and>
- </or>
- </condition>
- <then>
- <calculate field="amount">
- <calcop field="amount" operator="negative"/>
- </calculate>
- </then>
- </if>
- <calculate field="newPostedBalance">
- <calcop field="newPostedBalance" operator="add"><calcop field="amount" operator="get"/></calcop>
- </calculate>
- </iterate>
-
- <set field="updateGlAccountOrganizationInMap.organizationPartyId" from-field="customTimePeriod.organizationPartyId"/>
- <set field="updateGlAccountOrganizationInMap.glAccountId" from-field="glAccountOrganizationAndClass.glAccountId"/>
- <set field="updateGlAccountOrganizationInMap.postedBalance" from-field="newPostedBalance"/>
- <call-service service-name="updateGlAccountOrganization" in-map-name="updateGlAccountOrganizationInMap"/>
+ <iterate list="organizationGlAccounts" entry="organizationGlAccount">
+ <make-value entity-name="GlAccountHistory" value-field="glAccountHistory"/>
+ <set field="glAccountHistory.customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
+ <set field="glAccountHistory.organizationPartyId" from-field="customTimePeriod.organizationPartyId"/>
+ <set field="glAccountHistory.glAccountId" from-field="organizationGlAccount.glAccountId"/>
+ <create-value value-field="glAccountHistory"/>
+ <call-service service-name="computeAndStoreGlAccountHistoryBalance" in-map-name="glAccountHistory"/>
</iterate>
<set field="updateCustomTimePeriodInMap.customTimePeriodId" from-field="customTimePeriod.customTimePeriodId"/>
@@ -956,6 +847,105 @@ under the License.
<call-service service-name="updateCustomTimePeriod" in-map-name="updateCustomTimePeriodInMap"/>
</simple-method>
+ <simple-method method-name="computeGlAccountBalanceForTimePeriod" short-description="Compute the total debits, total credits, opening, ending balances of an account in a financial period">
+ <entity-one entity-name="CustomTimePeriod" auto-field-map="true" value-field="customTimePeriod"/>
+ <entity-one entity-name="GlAccount" auto-field-map="true" value-field="glAccount"/>
+
+ <!-- compute totalDebitsToOpeningDate, totalDebitsToEndingDate, totalCreditsToOpeningDate, totalCreditsToEndingDate -->
+ <entity-condition entity-name="AcctgTransEntrySums" list="totalDebitsToOpeningDates">
+ <condition-list combine="and">
+ <condition-expr field-name="organizationPartyId" operator="equals" from-field="parameters.organizationPartyId"/>
+ <condition-expr field-name="glAccountId" operator="equals" from-field="parameters.glAccountId"/>
+ <condition-expr field-name="isPosted" operator="equals" value="Y"/>
+ <condition-expr field-name="debitCreditFlag" operator="equals" value="D"/>
+ <condition-expr field-name="glFiscalTypeId" operator="equals" value="ACTUAL"/>
+ <condition-expr field-name="transactionDate" operator="less" from-field="customTimePeriod.fromDate"/>
+ </condition-list>
+ <select-field field-name="amount"/>
+ </entity-condition>
+ <set field="totalDebitsToOpeningDate" from-field="totalDebitsToOpeningDates[0]"/>
+
+ <entity-condition entity-name="AcctgTransEntrySums" list="totalDebitsToEndingDates">
+ <condition-list combine="and">
+ <condition-expr field-name="organizationPartyId" operator="equals" from-field="parameters.organizationPartyId"/>
+ <condition-expr field-name="glAccountId" operator="equals" from-field="parameters.glAccountId"/>
+ <condition-expr field-name="isPosted" operator="equals" value="Y"/>
+ <condition-expr field-name="debitCreditFlag" operator="equals" value="D"/>
+ <condition-expr field-name="glFiscalTypeId" operator="equals" value="ACTUAL"/>
+ <condition-expr field-name="transactionDate" operator="less" from-field="customTimePeriod.thruDate"/>
+ </condition-list>
+ <select-field field-name="amount"/>
+ </entity-condition>
+ <set field="totalDebitsToEndingDate" from-field="totalDebitsToEndingDates[0]"/>
+
+ <entity-condition entity-name="AcctgTransEntrySums" list="totalCreditsToOpeningDates">
+ <condition-list combine="and">
+ <condition-expr field-name="organizationPartyId" operator="equals" from-field="parameters.organizationPartyId"/>
+ <condition-expr field-name="glAccountId" operator="equals" from-field="parameters.glAccountId"/>
+ <condition-expr field-name="isPosted" operator="equals" value="Y"/>
+ <condition-expr field-name="debitCreditFlag" operator="equals" value="C"/>
+ <condition-expr field-name="glFiscalTypeId" operator="equals" value="ACTUAL"/>
+ <condition-expr field-name="transactionDate" operator="less" from-field="customTimePeriod.fromDate"/>
+ </condition-list>
+ <select-field field-name="amount"/>
+ </entity-condition>
+ <set field="totalCreditsToOpeningDate" from-field="totalCreditsToOpeningDates[0]"/>
+
+ <entity-condition entity-name="AcctgTransEntrySums" list="totalCreditsToEndingDates">
+ <condition-list combine="and">
+ <condition-expr field-name="organizationPartyId" operator="equals" from-field="parameters.organizationPartyId"/>
+ <condition-expr field-name="glAccountId" operator="equals" from-field="parameters.glAccountId"/>
+ <condition-expr field-name="isPosted" operator="equals" value="Y"/>
+ <condition-expr field-name="debitCreditFlag" operator="equals" value="C"/>
+ <condition-expr field-name="glFiscalTypeId" operator="equals" value="ACTUAL"/>
+ <condition-expr field-name="transactionDate" operator="less" from-field="customTimePeriod.thruDate"/>
+ </condition-list>
+ <select-field field-name="amount"/>
+ </entity-condition>
+ <set field="totalCreditsToEndingDate" from-field="totalCreditsToEndingDates[0]"/>
+
+ <!-- compute totalDebitsInTimePeriod, totalCreditsInTimePeriod and store them -->
+ <set field="totalDebitsInTimePeriod" value="${totalDebitsToEndingDate.amount - totalDebitsToOpeningDate.amount}" type="BigDecimal"/>
+ <set field="totalCreditsInTimePeriod" value="${totalCreditsToEndingDate.amount - totalCreditsToOpeningDate.amount}" type="BigDecimal"/>
+
+ <!-- compute opening and ending balance and store them -->
+ <set field="isDebit" value="${groovy:org.ofbiz.accounting.util.UtilAccounting.isDebitAccount(glAccount)}"/>
+ <if-compare field="isDebit" operator="equals" value="true">
+ <!-- "Debit balance" account -->
+ <set field="openingBalance" value="${totalDebitsToOpeningDate.amount - totalCreditsToOpeningDate.amount}" type="BigDecimal"/>
+ <set field="endingBalance" value="${totalDebitsToEndingDate.amount - totalCreditsToEndingDate.amount}" type="BigDecimal"/>
+ <else>
+ <!-- "Credit balance" account -->
+ <set field="openingBalance" value="${totalCreditsToOpeningDate.amount - totalDebitsToOpeningDate.amount}" type="BigDecimal"/>
+ <set field="endingBalance" value="${totalCreditsToEndingDate.amount - totalDebitsToEndingDate.amount}" type="BigDecimal"/>
+ </else>
+ </if-compare>
+
+ <field-to-result field="openingBalance" result-name="openingBalance"/>
+ <field-to-result field="endingBalance" result-name="endingBalance"/>
+ <field-to-result field="totalDebitsInTimePeriod" result-name="postedDebits"/>
+ <field-to-result field="totalCreditsInTimePeriod" result-name="postedCredits"/>
+ </simple-method>
+
+ <simple-method method-name="computeAndStoreGlAccountHistoryBalance" short-description="Compute and store the total debits, total credits, opening, ending balances of an account in a financial period">
+ <entity-one entity-name="GlAccountHistory" auto-field-map="true" value-field="glAccountHistory"/>
+ <set field="inMap.organizationPartyId" from-field="parameters.organizationPartyId"/>
+ <set field="inMap.customTimePeriodId" from-field="parameters.customTimePeriodId"/>
+ <set field="inMap.glAccountId" from-field="parameters.glAccountId"/>
+ <call-service service-name="computeGlAccountBalanceForTimePeriod" in-map-name="inMap">
+ <result-to-field field="openingBalance"/>
+ <result-to-field field="endingBalance"/>
+ <result-to-field field="postedDebits"/>
+ <result-to-field field="postedCredits"/>
+ </call-service>
+ <!-- persist the balances -->
+ <set field="glAccountHistory.openingBalance" from-field="openingBalance"/>
+ <set field="glAccountHistory.endingBalance" from-field="endingBalance"/>
+ <set field="glAccountHistory.postedDebits" from-field="postedDebits"/>
+ <set field="glAccountHistory.postedCredits" from-field="postedCredits"/>
+ <store-value value-field="glAccountHistory"/>
+ </simple-method>
+
<simple-method method-name="prepareIncomeStatement" short-description="Prepare data for the Income Statement">
<call-simple-method method-name="getGlArithmeticSettingsInline"/>
<entity-one entity-name="GlAccountClass" value-field="expenseGlAccountClass">
@@ -2759,71 +2749,6 @@ under the License.
</if-not-empty>
</simple-method>
- <simple-method method-name="getGlAcctgOrgWithPostedBalanceSplit" short-description="Posted amounts split by cost center from GlAccountOrganization">
- <!-- retrieve ledger rounding properties -->
- <call-simple-method method-name="getGlArithmeticSettingsInline"/>
- <now-timestamp field="nowTimestamp"/>
- <set field="fromDate" from-field="parameters.fromDate" type="Timestamp"/>
- <set field="thruDate" from-field="parameters.thruDate" type="Timestamp" default-value="${nowTimestamp}"/>
- <if-empty field="fromDate">
- <entity-one entity-name="CustomTimePeriod" value-field="customTimePeriod" auto-field-map="false">
- <field-map field-name="customTimePeriodId" from-field="parameters.timePeriod"/>
- </entity-one>
- <set field="fromDate" from-field="customTimePeriod.fromDate" type="Timestamp"/>
- <set field="thruDate" from-field="customTimePeriod.thruDate" type="Timestamp"/>
- </if-empty>
- <set field="organizationPartyId" from-field="parameters.organizationPartyId"/>
- <set field="partyIds" value="${groovy:org.ofbiz.party.party.PartyWorker.getAssociatedPartyIdsByRelationshipType(delegator, organizationPartyId, 'GROUP_ROLLUP')}" type="List"/>
- <set field="partyIds[]" from-field="organizationPartyId"/>
- <entity-condition entity-name="GlAccountOrganization" list="glAccountOrganizations" use-cache="true">
- <condition-list>
- <condition-expr field-name="organizationPartyId" operator="in" from-field="partyIds"/>
- <condition-expr field-name="postedBalance" operator="not-equals" value=""/>
- <condition-expr field-name="fromDate" operator="greater-equals" from-field="fromDate"/>
- <condition-expr field-name="fromDate" operator="less" from-field="thruDate"/>
- </condition-list>
- <order-by field-name="glAccountId"/>
- </entity-condition>
- <if-not-empty field="glAccountOrganizations">
- <entity-and entity-name="GlAccountCategory" list="glAccountCategories" use-cache="true">
- <field-map field-name="glAccountCategoryTypeId" value="COST_CENTER"/>
- <order-by field-name="glAccountCategoryId"/>
- </entity-and>
- <if-not-empty field="glAccountCategories">
- <iterate list="glAccountOrganizations" entry="glAccountOrganization">
- <clear-field field="glAcctgOrgAndCostCenterMap"/>
- <set field="postedBalance" from-field="glAccountOrganization.postedBalance" type="BigDecimal"/>
- <if-compare field="postedBalance" operator="less" value="0" type="BigDecimal">
- <set field="postedBalance" value="${groovy:postedBalance.negate()}" type="BigDecimal"/>
- </if-compare>
- <set field="glAcctgOrgAndCostCenterMap.postedBalance" from-field="postedBalance"/>
- <entity-one entity-name="GlAccount" value-field="glAccount" auto-field-map="false">
- <field-map field-name="glAccountId" from-field="glAccountOrganization.glAccountId"/>
- </entity-one>
- <set field="glAcctgOrgAndCostCenterMap.glAccountId" from-field="glAccount.glAccountId"/>
- <set field="glAcctgOrgAndCostCenterMap.accountCode" from-field="glAccount.accountCode"/>
- <set field="glAcctgOrgAndCostCenterMap.accountName" from-field="glAccount.accountName"/>
- <iterate list="glAccountCategories" entry="glAccountCategory">
- <entity-and entity-name="GlAccountCategoryMember" list="glAccountCategoryMembers" filter-by-date="true">
- <field-map field-name="glAccountId" from-field="glAccountOrganization.glAccountId"/>
- <field-map field-name="glAccountCategoryId" from-field="glAccountCategory.glAccountCategoryId"/>
- </entity-and>
- <if-not-empty field="glAccountCategoryMembers">
- <first-from-list list="glAccountCategoryMembers" entry="glAccountCategoryMember"/>
- <if-not-empty field="glAccountCategoryMember">
- <set field="divisor" value="100" type="BigDecimal"/>
- <set field="splitAmount" value="${groovy:postedBalance.multiply(glAccountCategoryMember.amountPercentage).divide(divisor, Integer.valueOf(ledgerDecimals), BigDecimal.ROUND_HALF_UP)}" type="BigDecimal"/>
- <set field="glAcctgOrgAndCostCenterMap[glAccountCategory.glAccountCategoryId]" from-field="splitAmount" type="BigDecimal"/>
- </if-not-empty>
- </if-not-empty>
- </iterate>
- <field-to-list field="glAcctgOrgAndCostCenterMap" list="glAcctgOrgAndCostCenterList"/>
- </iterate>
- </if-not-empty>
- <field-to-result field="glAcctgOrgAndCostCenterList"/>
- </if-not-empty>
- </simple-method>
-
<simple-method method-name="getGlAcctgAndAmountPercentage" short-description="Get amount percentage and glAccount for cost center">
<set field="glAcctgAndAmountPercentageList" type="List" from-field="nullfield"/>
<set field="organizationPartyId" from-field="parameters.organizationPartyId"/>
Modified: ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml (original)
+++ ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Tue Oct 8 13:49:19 2013
@@ -295,6 +295,23 @@ under the License.
<auto-attributes include="pk" mode="IN" optional="false"/>
</service>
+ <service name="computeGlAccountBalanceForTimePeriod" engine="simple"
+ location="component://accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="computeGlAccountBalanceForTimePeriod" auth="true">
+ <description>Compute the total debits, total credits, opening, ending balances of an account in a financial period</description>
+ <attribute name="organizationPartyId" type="String" mode="IN" optional="false"/>
+ <attribute name="customTimePeriodId" type="String" mode="IN" optional="false"/>
+ <attribute name="glAccountId" type="String" mode="IN" optional="false"/>
+ <attribute name="openingBalance" type="BigDecimal" mode="OUT" optional="false"/>
+ <attribute name="postedDebits" type="BigDecimal" mode="OUT" optional="false"/>
+ <attribute name="postedCredits" type="BigDecimal" mode="OUT" optional="false"/>
+ <attribute name="endingBalance" type="BigDecimal" mode="OUT" optional="false"/>
+ </service>
+ <service name="computeAndStoreGlAccountHistoryBalance" engine="simple"
+ location="component://accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="computeAndStoreGlAccountHistoryBalance" auth="true">
+ <description>Compute and store in a GlAccountHistory record the total debits, total credits, opening, ending balances of an account in a financial period</description>
+ <auto-attributes entity-name="GlAccountHistory" include="pk" mode="IN" optional="false"/>
+ </service>
+
<!-- Financial Reports -->
<service name="prepareIncomeStatement" engine="simple"
location="component://accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="prepareIncomeStatement" auth="true">
@@ -630,16 +647,6 @@ under the License.
<attribute name="totalAmountPercentage" mode="IN" type="BigDecimal" optional="true"/>
</service>
- <service name="getGlAcctgOrgWithPostedBalanceSplit" engine="simple"
- location="component://accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="getGlAcctgOrgWithPostedBalanceSplit" auth="true">
- <description>Posted amounts split by cost center from GlAccountOrganization</description>
- <attribute name="organizationPartyId" type="String" mode="IN"/>
- <attribute name="fromDate" type="Timestamp" mode="IN" optional="true"/>
- <attribute name="thruDate" type="Timestamp" mode="IN" optional="true"/>
- <attribute name="timePeriod" type="String" mode="IN" optional="true"/>
- <attribute name="glAcctgOrgAndCostCenterList" mode="OUT" type="List" optional="true"/>
- </service>
-
<service name="getGlAcctgAndAmountPercentage" engine="simple"
location="component://accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="getGlAcctgAndAmountPercentage" auth="false">
<description>Get amount percentage and glAccount for cost center</description>
Modified: ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java (original)
+++ ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java Tue Oct 8 13:49:19 2013
@@ -91,31 +91,6 @@ public class UtilAccounting {
return getProductOrgGlAccountId(null, glAccountTypeId, organizationPartyId, delegator);
}
- /**
- * Little method to figure out the net or ending balance of a GlAccountHistory or GlAccountAndHistory value, based on what kind
- * of account (DEBIT or CREDIT) it is
- * @param account - GlAccountHistory or GlAccountAndHistory value
- * @return balance - a BigDecimal
- */
- public static BigDecimal getNetBalance(GenericValue account, String debugModule) {
- try {
- return getNetBalance(account);
- } catch (GenericEntityException ex) {
- Debug.logError(ex.getMessage(), debugModule);
- return null;
- }
- }
- public static BigDecimal getNetBalance(GenericValue account) throws GenericEntityException {
- GenericValue glAccount = account.getRelatedOne("GlAccount", false);
- BigDecimal balance = BigDecimal.ZERO;
- if (isDebitAccount(glAccount)) {
- balance = account.getBigDecimal("postedDebits").subtract(account.getBigDecimal("postedCredits"));
- } else if (isCreditAccount(glAccount)) {
- balance = account.getBigDecimal("postedCredits").subtract(account.getBigDecimal("postedDebits"));
- }
- return balance;
- }
-
public static List<String> getDescendantGlAccountClassIds(GenericValue glAccountClass) throws GenericEntityException {
List<String> glAccountClassIds = FastList.newInstance();
getGlAccountClassChildren(glAccountClass, glAccountClassIds);
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/GlAccountTrialBalance.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/GlAccountTrialBalance.groovy?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/GlAccountTrialBalance.groovy (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/GlAccountTrialBalance.groovy Tue Oct 8 13:49:19 2013
@@ -16,14 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
-import org.ofbiz.entity.condition.EntityCondition;
-import org.ofbiz.entity.condition.EntityOperator;
-import org.ofbiz.entity.util.EntityUtil;
+import java.sql.Timestamp;
import org.ofbiz.base.util.UtilDateTime;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.base.util.UtilNumber;
import org.ofbiz.accounting.util.UtilAccounting;
-import java.math.BigDecimal;
import com.ibm.icu.util.Calendar;
if (organizationPartyId) {
@@ -87,12 +84,12 @@ if (organizationPartyId) {
acctgTransEntriesAndTransTotal.totalOfYearToDateCredit = totalOfYearToDateCredit.setScale(decimals, rounding);
if (isDebitAccount) {
- balanceOfTheAcctgForYear = balanceOfTheAcctgForYear + acctgTransEntriesAndTransTotal.debitCreditDifference;
- acctgTransEntriesAndTransTotal.balanceOfTheAcctgForYear = balanceOfTheAcctgForYear.setScale(decimals, rounding);
+ acctgTransEntriesAndTransTotal.balance = acctgTransEntriesAndTransTotal.debitCreditDifference;
} else {
- balanceOfTheAcctgForYear = balanceOfTheAcctgForYear + acctgTransEntriesAndTransTotal.debitCreditDifference;
- acctgTransEntriesAndTransTotal.balanceOfTheAcctgForYear = balanceOfTheAcctgForYear.setScale(decimals, rounding);
+ acctgTransEntriesAndTransTotal.balance = -1 * acctgTransEntriesAndTransTotal.debitCreditDifference;
}
+ balanceOfTheAcctgForYear = balanceOfTheAcctgForYear + acctgTransEntriesAndTransTotal.balance;
+ acctgTransEntriesAndTransTotal.balanceOfTheAcctgForYear = balanceOfTheAcctgForYear.setScale(decimals, rounding);
glAcctgTrialBalanceList.add(acctgTransEntriesAndTransTotal);
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TransactionTotals.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TransactionTotals.groovy?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TransactionTotals.groovy (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TransactionTotals.groovy Tue Oct 8 13:49:19 2013
@@ -17,6 +17,8 @@
* under the License.
*/
+import java.sql.Timestamp;
+
import org.ofbiz.base.util.UtilDateTime;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.GenericValue;
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy Tue Oct 8 13:49:19 2013
@@ -17,6 +17,8 @@
* under the License.
*/
+import org.ofbiz.entity.condition.EntityCondition
+import org.ofbiz.entity.condition.EntityOperator
import org.ofbiz.party.party.PartyHelper;
partyNameList = [];
@@ -25,3 +27,31 @@ parties.each { party ->
partyNameList.add(partyName);
}
context.partyNameList = partyNameList;
+
+if (parameters.customTimePeriodId) {
+ customTimePeriod = delegator.findOne('CustomTimePeriod', [customTimePeriodId:parameters.customTimePeriodId], true)
+ exprList = [];
+ exprList.add(EntityCondition.makeCondition('organizationPartyId', EntityOperator.IN, partyIds))
+ exprList.add(EntityCondition.makeCondition('fromDate', EntityOperator.LESS_THAN, customTimePeriod.getDate('thruDate').toTimestamp()))
+ exprList.add(EntityCondition.makeCondition(EntityCondition.makeCondition('thruDate', EntityOperator.GREATER_THAN_EQUAL_TO, customTimePeriod.getDate('fromDate').toTimestamp()), EntityOperator.OR, EntityCondition.makeCondition('thruDate', EntityOperator.EQUALS, null)))
+ List organizationGlAccounts = delegator.findList('GlAccountOrganizationAndClass', EntityCondition.makeCondition(exprList, EntityOperator.AND), null, ['accountCode'], null, false)
+
+ accountBalances = []
+ postedDebitsTotal = 0
+ postedCreditsTotal = 0
+ organizationGlAccounts.each { organizationGlAccount ->
+ accountBalance = [:]
+ accountBalance = dispatcher.runSync('computeGlAccountBalanceForTimePeriod', [organizationPartyId: organizationGlAccount.organizationPartyId, customTimePeriodId: customTimePeriod.customTimePeriodId, glAccountId: organizationGlAccount.glAccountId, userLogin: userLogin]);
+ if (accountBalance.postedDebits != 0 || accountBalance.postedCredits != 0) {
+ accountBalance.glAccountId = organizationGlAccount.glAccountId
+ accountBalance.accountCode = organizationGlAccount.accountCode
+ accountBalance.accountName = organizationGlAccount.accountName
+ postedDebitsTotal = postedDebitsTotal + accountBalance.postedDebits
+ postedCreditsTotal = postedCreditsTotal + accountBalance.postedCredits
+ accountBalances.add(accountBalance)
+ }
+ }
+ context.postedDebitsTotal = postedDebitsTotal
+ context.postedCreditsTotal = postedCreditsTotal
+ context.accountBalances = accountBalances
+}
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.fo.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.fo.ftl?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.fo.ftl (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.fo.ftl Tue Oct 8 13:49:19 2013
@@ -84,7 +84,7 @@ under the License.
</fo:table-cell>
</fo:table-header>
<fo:table-body>
- <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTheBalanceOfLastYear}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)??>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:bloc
k text-align="center">${(openingBalance)!}</fo:block></fo:table-cell></fo:table-row>
+ <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTheBalanceOfLastYear}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block
text-align="center">${(openingBalance)!}</fo:block></fo:table-cell></fo:table-row>
<#list glAcctgTrialBalanceList as glAcctgTrialBalance>
<#assign acctgTransAndEntries = glAcctgTrialBalance.acctgTransAndEntries/>
<#if (acctgTransAndEntries)?has_content>
@@ -125,8 +125,8 @@ under the License.
</fo:table-cell>
</fo:table-row>
</#list>
- <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTotalOfTheCurrentMonth}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.debitTotal)!}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.creditTotal)!}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)??>${uiLabelMap.AccountingDebitFla
g}<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.debitCreditDifference)!}</fo:block></fo:table-cell></fo:table-row>
- <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTotalOfYearToDate}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${glAcctgTrialBalance.totalOfYearToDateDebit}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${glAcctgTrialBalance.totalOfYearToDateCredit}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)??>${uiLabelMap.Accou
ntingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.balanceOfTheAcctgForYear)!}</fo:block></fo:table-cell></fo:table-row>
+ <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTotalOfTheCurrentMonth}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.debitTotal)!}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.creditTotal)!}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)>${uiLabelMap.AccountingDebitFlag}
<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.balance)!}</fo:block></fo:table-cell></fo:table-row>
+ <fo:table-row border="1pt solid" border-width=".1mm"><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="3" text-align="center" ><fo:block text-align="center">${uiLabelMap.AccountingTotalOfYearToDate}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${glAcctgTrialBalance.totalOfYearToDateDebit}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${glAcctgTrialBalance.totalOfYearToDateCredit}</fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center"><#if (isDebitAccount)>${uiLabelMap.Account
ingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></fo:block></fo:table-cell><fo:table-cell border="1pt solid" border-width=".1mm" number-columns-spanned="1"><fo:block text-align="center">${(glAcctgTrialBalance.balanceOfTheAcctgForYear)!}</fo:block></fo:table-cell></fo:table-row>
</#if>
</#list>
</fo:table-body>
Modified: ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.ftl?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.ftl (original)
+++ ofbiz/trunk/applications/accounting/webapp/accounting/reports/GlAccountTrialBalanceReport.ftl Tue Oct 8 13:49:19 2013
@@ -44,7 +44,7 @@ under the License.
<td colspan=2></td>
<td colspan=3 align="center"><b>${uiLabelMap.AccountingTheBalanceOfLastYear}</b></td>
<td colspan=2></td>
- <td ALIGN="right"><b><#if (isDebitAccount)??>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
+ <td ALIGN="right"><b><#if (isDebitAccount)>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
<td ALIGN="right">${(openingBalance)!}</td>
</tr>
<#list glAcctgTrialBalanceList as glAcctgTrialBalance>
@@ -69,15 +69,15 @@ under the License.
<td colspan=3 ALIGN="center"><b>${uiLabelMap.AccountingTotalOfTheCurrentMonth}</b></td>
<td ALIGN="right" colspan=1><b>${(glAcctgTrialBalance.debitTotal)!}</b></td>
<td ALIGN="right" colspan=1><b>${(glAcctgTrialBalance.creditTotal)!}</b></td>
- <td ALIGN="right" colspan=1><b><#if (isDebitAccount)??>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
- <td ALIGN="right" colspan=1><b>${(glAcctgTrialBalance.debitCreditDifference)!}</b></td>
+ <td ALIGN="right" colspan=1><b><#if (isDebitAccount)>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
+ <td ALIGN="right" colspan=1><b>${(glAcctgTrialBalance.balance)!}</b></td>
</tr>
<tr class="header-row">
<td colspan=2></td>
<td ALIGN="center" colspan=3><b>${uiLabelMap.AccountingTotalOfYearToDate}</b></td>
<td ALIGN="right"><b>${glAcctgTrialBalance.totalOfYearToDateDebit}</b></td>
<td ALIGN="right"><b>${glAcctgTrialBalance.totalOfYearToDateCredit}</b></td>
- <td ALIGN="right"><b><#if (isDebitAccount)??>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
+ <td ALIGN="right"><b><#if (isDebitAccount)>${uiLabelMap.AccountingDebitFlag}<#else>${uiLabelMap.AccountingCreditFlag}</#if></b></td>
<td ALIGN="right"><b>${(glAcctgTrialBalance.balanceOfTheAcctgForYear)!}</b></td>
</tr>
</#if>
Modified: ofbiz/trunk/applications/accounting/widget/AccountingTrees.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/AccountingTrees.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/AccountingTrees.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/AccountingTrees.xml Tue Oct 8 13:49:19 2013
@@ -31,7 +31,7 @@ under the License.
</node>
<node name="node-body">
<entity-one entity-name="GlAccount" value-field="glAccount"></entity-one>
- <link target="GlAccountNavigate" text="${glAccountId} ${glAccount.accountName} ${postedBalance}">
+ <link target="GlAccountNavigate" text="${glAccountId} ${glAccount.accountName}">
<parameter param-name="glAccountId"/>
<parameter param-name="trail"/>
</link>
@@ -54,7 +54,7 @@ under the License.
</node>
<node name="node-body">
<entity-one entity-name="GlAccount" value-field="glAccount"></entity-one>
- <link target="GlAccountNavigate" text="${glAccountId} ${glAccount.accountName} ${postedBalance}">
+ <link target="GlAccountNavigate" text="${glAccountId} ${glAccount.accountName}">
<parameter param-name="glAccountId"/>
<parameter param-name="trail"/>
</link>
Modified: ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/GlSetupForms.xml Tue Oct 8 13:49:19 2013
@@ -1098,7 +1098,6 @@ under the License.
<field name="accountName" ><display-entity entity-name="GlAccount" key-field-name="glAccountId" description="${accountName}"/></field>
<field name="description"><display description="${description}"/></field>
<field name="productId"><display description="${productId}"/></field>
- <field name="postedBalance"><display description="${postedBalance}"/></field>
</form>
<form name="FindGlAccountCategory" type="single" target="FindGlAccountCategory" default-entity-name="GlAccountCategory">
Modified: ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/GlobalGlAccountsForms.xml Tue Oct 8 13:49:19 2013
@@ -97,7 +97,6 @@ under the License.
</display-entity>
</field>
<field name="accountCode"><hidden/></field>
- <field name="postedBalance" widget-area-style="align-text" title-area-style="align-text"><display type="currency" currency="${defaultOrganizationPartyCurrencyUomId}"/></field>
</form>
<form name="EditGlAccount" type="single" target="updateGlAccount" title="" default-map-name="glAccount"
@@ -145,7 +144,6 @@ under the License.
</entity-options>
</drop-down>
</field>
- <field name="postedBalance"><display/></field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}" widget-style="smallSubmit"><submit button-type="button"/></field>
<field name="submitButton" title="${uiLabelMap.CommonAdd}" use-when="glAccount==null" widget-style="smallSubmit"><submit button-type="button"/></field>
Modified: ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml Tue Oct 8 13:49:19 2013
@@ -540,26 +540,8 @@ under the License.
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
- <form name="TrialBalanceReport" type="list" list-name="glAccountAndHistories"
- odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
- <actions>
- <entity-condition entity-name="GlAccountAndHistoryTotals" filter-by-date="false" list="glAccountAndHistories">
- <condition-list>
- <condition-expr field-name="organizationPartyId" operator="in" from-field="partyIds"/>
- <condition-expr field-name="customTimePeriodId" operator="equals" from-field="parameters.customTimePeriodId"/>
- </condition-list>
- <select-field field-name="glAccountId"/>
- <select-field field-name="accountCode"/>
- <select-field field-name="accountName"/>
- <select-field field-name="totalPostedDebits"/>
- <select-field field-name="totalPostedCredits"/>
- <select-field field-name="totalEndingBalance"/>
- <order-by field-name="accountCode"/>
- </entity-condition>
- </actions>
- <row-actions>
- <set field="totalEndingBalance" from-field="totalEndingBalance" default-value="${totalPostedDebits - totalPostedCredits}" type="BigDecimal"/>
- </row-actions>
+ <form name="TrialBalanceReport" type="list" list-name="accountBalances"
+ odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
<field name="accountCode">
<hyperlink target="FindAcctgTransEntries" description="${accountCode}">
<parameter param-name="glAccountId"/>
@@ -567,9 +549,10 @@ under the License.
</hyperlink>
</field>
<field name="accountName" title-area-style="tableheadwide"><display description="${accountName}"/></field>
- <field name="totalPostedDebits" title="${uiLabelMap.AccountingDebitFlag}" widget-style="tabletextright"><display description="${totalPostedDebits}" type="currency" currency="${currencyUomId}"/></field>
- <field name="totalPostedCredits" title="${uiLabelMap.AccountingCreditFlag}" widget-style="tabletextright"><display description="${totalPostedCredits}" type="currency" currency="${currencyUomId}"/></field>
- <field name="totalEndingBalance" title="${uiLabelMap.AccountingEndingBalance}" widget-style="tabletextright"><display description="${totalEndingBalance}" type="currency" currency="${currencyUomId}"/></field>
+ <field name="openingBalance" title="${uiLabelMap.AccountingOpeningBalance}" widget-style="tabletextright"><display description="${openingBalance}" type="currency" currency="${currencyUomId}"/></field>
+ <field name="postedDebits" title="${uiLabelMap.AccountingDebitFlag}" widget-style="tabletextright"><display description="${postedDebits}" type="currency" currency="${currencyUomId}"/></field>
+ <field name="postedCredits" title="${uiLabelMap.AccountingCreditFlag}" widget-style="tabletextright"><display description="${postedCredits}" type="currency" currency="${currencyUomId}"/></field>
+ <field name="endingBalance" title="${uiLabelMap.AccountingEndingBalance}" widget-style="tabletextright"><display description="${endingBalance}" type="currency" currency="${currencyUomId}"/></field>
</form>
<form name="CashFlowStatementParameters" type="single" header-row-style="header-row" default-table-style="basic-table">
Modified: ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml?rev=1530273&r1=1530272&r2=1530273&view=diff
==============================================================================
--- ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml (original)
+++ ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml Tue Oct 8 13:49:19 2013
@@ -227,15 +227,6 @@ under the License.
</entity-condition>
<set field="partyIds[]" from-field="organizationPartyId"/>
<script location="component://accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy"/>
- <entity-condition entity-name="GlAccountAndHistoryTotals" filter-by-date="false" list="grandTotalPosted">
- <condition-list>
- <condition-expr field-name="organizationPartyId" operator="in" from-field="partyIds"/>
- <condition-expr field-name="customTimePeriodId" operator="equals" from-field="parameters.customTimePeriodId"/>
- </condition-list>
- <select-field field-name="totalPostedDebits"/>
- <select-field field-name="totalPostedCredits"/>
- </entity-condition>
- <set field="grandTotalPostedRecord" from-field="grandTotalPosted[0]"/>
</actions>
<widgets>
<decorator-screen name="CommonOrganizationAccountingReportsDecorator" location="${parameters.mainDecoratorLocation}">
@@ -260,10 +251,10 @@ under the License.
</link>
<include-form name="TrialBalanceReport" location="component://accounting/widget/ReportFinancialSummaryForms.xml"/>
<container style="h3">
- <label text="${uiLabelMap.AccountingDebitFlag}: ${grandTotalPostedRecord.totalPostedDebits}"/>
+ <label text="${uiLabelMap.AccountingDebitFlag}: ${postedDebitsTotal}"/>
</container>
<container style="h3">
- <label text="${uiLabelMap.AccountingCreditFlag}: ${grandTotalPostedRecord.totalPostedCredits}"/>
+ <label text="${uiLabelMap.AccountingCreditFlag}: ${postedCreditsTotal}"/>
</container>
</screenlet>
</widgets>
@@ -291,15 +282,6 @@ under the License.
</entity-condition>
<set field="partyIds[]" from-field="organizationPartyId"/>
<script location="component://accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy"/>
- <entity-condition entity-name="GlAccountAndHistoryTotals" filter-by-date="false" list="grandTotalPosted">
- <condition-list>
- <condition-expr field-name="organizationPartyId" operator="in" from-field="partyIds"/>
- <condition-expr field-name="customTimePeriodId" operator="equals" from-field="parameters.customTimePeriodId"/>
- </condition-list>
- <select-field field-name="totalPostedDebits"/>
- <select-field field-name="totalPostedCredits"/>
- </entity-condition>
- <set field="grandTotalPostedRecord" from-field="grandTotalPosted[0]"/>
</actions>
<widgets>
<container>
@@ -326,15 +308,6 @@ under the License.
</entity-condition>
<set field="partyIds[]" from-field="organizationPartyId"/>
<script location="component://accounting/webapp/accounting/WEB-INF/actions/reports/TrialBalance.groovy"/>
- <entity-condition entity-name="GlAccountAndHistoryTotals" filter-by-date="false" list="grandTotalPosted">
- <condition-list>
- <condition-expr field-name="organizationPartyId" operator="in" from-field="partyIds"/>
- <condition-expr field-name="customTimePeriodId" operator="equals" from-field="parameters.customTimePeriodId"/>
- </condition-list>
- <select-field field-name="totalPostedDebits"/>
- <select-field field-name="totalPostedCredits"/>
- </entity-condition>
- <set field="grandTotalPostedRecord" from-field="grandTotalPosted[0]"/>
</actions>
<widgets>
<decorator-screen name="SimpleDecorator" location="component://common/widget/CommonScreens.xml">
@@ -348,10 +321,10 @@ under the License.
<include-form name="TrialBalanceFinancialTimePeriodSelection" location="component://accounting/widget/ReportFinancialSummaryForms.xml"/>
<include-form name="TrialBalanceReport" location="component://accounting/widget/ReportFinancialSummaryForms.xml"/>
<container style="h3">
- <label text="${uiLabelMap.AccountingDebitFlag}: ${grandTotalPostedRecord.totalPostedDebits}"/>
+ <label text="${uiLabelMap.AccountingDebitFlag}: ${postedDebitsTotal}"/>
</container>
<container style="h3">
- <label text="${uiLabelMap.AccountingCreditFlag}: ${grandTotalPostedRecord.totalPostedCredits}"/>
+ <label text="${uiLabelMap.AccountingCreditFlag}: ${postedCreditsTotal}"/>
</container>
</decorator-section>
</decorator-screen>