Author: jacopoc
Date: Thu Dec 20 08:30:30 2007 New Revision: 605973 URL: http://svn.apache.org/viewvc?rev=605973&view=rev Log: Very simple (and beta) version of the Income Statement. OFBIZ-1501 Modified: ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml ofbiz/trunk/applications/accounting/widget/Menus.xml ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml Modified: ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml?rev=605973&r1=605972&r2=605973&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml (original) +++ ofbiz/trunk/applications/accounting/data/DemoGlSetupData.xml Thu Dec 20 08:30:30 2007 @@ -261,6 +261,12 @@ <CreditCardTypeGlAccount organizationPartyId="Company" cardType="CCT_AMERICANEXPRESS" glAccountId="122100"/> <CreditCardTypeGlAccount organizationPartyId="Company" cardType="CCT_DINERSCLUB" glAccountId="122100"/> <CreditCardTypeGlAccount organizationPartyId="Company" cardType="CCT_DISCOVER" glAccountId="122200"/> + <!-- The following ones are required until the issue OFBIZ-1524 is resolved --> + <CreditCardTypeGlAccount organizationPartyId="Company" cardType="Visa" glAccountId="122300"/> + <CreditCardTypeGlAccount organizationPartyId="Company" cardType="MasterCard" glAccountId="122300"/> + <CreditCardTypeGlAccount organizationPartyId="Company" cardType="AmericanExpress" glAccountId="122100"/> + <CreditCardTypeGlAccount organizationPartyId="Company" cardType="DinersClub" glAccountId="122100"/> + <CreditCardTypeGlAccount organizationPartyId="Company" cardType="Discover" glAccountId="122200"/> <!-- No need to load these if they are set with the 122000 account (the default for the CREDIT_CARD payment method type) <CreditCardTypeGlAccount organizationPartyId="Company" cardType="CCT_ENROUTE" glAccountId="122000"/> 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=605973&r1=605972&r2=605973&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 Thu Dec 20 08:30:30 2007 @@ -826,6 +826,103 @@ <call-service service-name="updateCustomTimePeriod" in-map-name="updateCustomTimePeriodInMap"/> </simple-method> + <simple-method method-name="prepareIncomeStatement" short-description="Close a financial CustomTimePeriod"> + <entity-one entity-name="GlAccountClass" value-name="expenseGlAccountClass"> + <field-map field-name="glAccountClassId" value="EXPENSE"/> + </entity-one> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="getDescendantGlAccountClassIds" ret-field-name="expenseAccountClassIds"> + <field field-name="expenseGlAccountClass" type="GenericValue"/> + </call-class-method> + <entity-one entity-name="GlAccountClass" value-name="revenueGlAccountClass"> + <field-map field-name="glAccountClassId" value="REVENUE"/> + </entity-one> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="getDescendantGlAccountClassIds" ret-field-name="revenueAccountClassIds"> + <field field-name="revenueGlAccountClass" type="GenericValue"/> + </call-class-method> + <entity-one entity-name="GlAccountClass" value-name="incomeGlAccountClass"> + <field-map field-name="glAccountClassId" value="INCOME"/> + </entity-one> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="getDescendantGlAccountClassIds" ret-field-name="incomeAccountClassIds"> + <field field-name="incomeGlAccountClass" type="GenericValue"/> + </call-class-method> + <entity-condition entity-name="AcctgTransAndEntries" list-name="acctgTransAndEntries"> + <condition-list combine="and"> + <condition-expr field-name="organizationPartyId" operator="equals" env-name="parameters.organizationPartyId"/> + <condition-expr field-name="isPosted" operator="equals" value="Y"/> + <condition-expr field-name="glFiscalTypeId" operator="equals" env-name="parameters.glFiscalTypeId"/> + <condition-expr field-name="transactionDate" operator="greater-equals" env-name="parameters.fromDate"/> + <condition-expr field-name="transactionDate" operator="less" env-name="parameters.thruDate"/> <!-- FIXME: Date to Timestamp --> + <condition-expr field-name="acctgTransTypeId" operator="not-equals" value="PERIOD_CLOSING"/> + <condition-list combine="or"> + <condition-expr field-name="glAccountClassId" operator="in" env-name="expenseAccountClassIds"/> + <condition-expr field-name="glAccountClassId" operator="in" env-name="revenueAccountClassIds"/> + <condition-expr field-name="glAccountClassId" operator="in" env-name="incomeAccountClassIds"/> + </condition-list> + </condition-list> + <order-by field-name="acctgTransId"/> + <order-by field-name="acctgTransEntrySeqId"/> + </entity-condition> + <set field="totalNetIncome" value="0.0" type="Double"/> + <iterate list-name="acctgTransAndEntries" entry-name="acctgTransAndEntry"> + <get-related-one value-name="acctgTransAndEntry" relation-name="GlAccount" to-value-name="glAccount"/> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isCreditAccount" ret-field-name="isCreditAccount"> + <field field-name="glAccount" type="GenericValue"/> + </call-class-method> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isDebitAccount" ret-field-name="isDebitAccount"> + <field field-name="glAccount" type="GenericValue"/> + </call-class-method> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isExpenseAccount" ret-field-name="isExpenseAccount"> + <field field-name="glAccount" type="GenericValue"/> + </call-class-method> + <set field="amount" from-field="acctgTransAndEntry.amount" type="Double"/> + <if> + <condition> + <or> + <and> + <if-compare field-name="acctgTransAndEntry.debitCreditFlag" operator="equals" value="D"/> + <if-compare field-name="isCreditAccount" operator="equals" value="true" type="Boolean"/> + </and> + <and> + <if-compare field-name="acctgTransAndEntry.debitCreditFlag" operator="equals" value="C"/> + <if-compare field-name="isDebitAccount" operator="equals" value="true" type="Boolean"/> + </and> + </or> + </condition> + <then> + <calculate field-name="amount"> + <calcop field-name="amount" operator="negative"/> + </calculate> + </then> + </if> + <if-compare field-name="isExpenseAccount" operator="equals" value="true" type="Boolean"> + <calculate field-name="amount"> + <calcop field-name="amount" operator="negative"/> + </calculate> + </if-compare> + <calculate field-name="totalNetIncome" type="Double"> + <calcop field-name="totalNetIncome" operator="add"><calcop field-name="amount" operator="get"/></calcop> + </calculate> + <if-empty field-name="glAccountTotalsMap.${glAccount.glAccountId}"> + <set field="glAccountTotalsMap.${glAccount.glAccountId}" value="0.0" type="Double"/> + </if-empty> + <calculate field-name="glAccountTotalsMap.${glAccount.glAccountId}" type="Double"> + <calcop field-name="glAccountTotalsMap.${glAccount.glAccountId}" operator="add"><calcop field-name="amount" operator="get"/></calcop> + </calculate> + </iterate> + <iterate-map map-name="glAccountTotalsMap" key-name="glAccountId" value-name="totalAmount"> + <clear-field field-name="glAccountTotalMap"/> + <set field="glAccountTotalMap.glAccountId" from-field="glAccountId"/> + <set field="glAccountTotalMap.totalAmount" from-field="totalAmount"/> + <set field="glAccountTotalsList[]" from-field="glAccountTotalMap"/> + </iterate-map> + <set field="orderByList[]" value="glAccountId"/> + <order-value-list list-name="glAccountTotalsList" order-by-list-name="orderByList"/> + + <field-to-result field-name="totalNetIncome" result-name="totalNetIncome"/> + <field-to-result field-name="glAccountTotalsMap" result-name="glAccountTotalsMap"/> + <field-to-result field-name="glAccountTotalsList" result-name="glAccountTotalsList"/> + </simple-method> + <!-- Services for the automatic creation of accounting transactions based on business transactions Typically, these services are triggered by SECAs --> @@ -884,7 +981,7 @@ <call-service service-name="createAcctgTransAndEntries" in-map-name="createAcctgTransAndEntriesInMap"> <result-to-field result-name="acctgTransId"/> </call-service> - <field-to-result field-name="acctgTransId" result-name="acctgTransId"/> + <field-to-result field-name="acctgTransId" result-name="acctgTransId"/> </simple-method> <simple-method method-name="createAcctgTransForShipmentReceipt" short-description="Create an accounting transactions for a shipment receipt (D: INVENTORY_ACCOUNT, C: UNINVOICED_SHIP_RCPT or COGS_ACCOUNT for returns)"> Modified: ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml?rev=605973&r1=605972&r2=605973&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Thu Dec 20 08:30:30 2007 @@ -287,6 +287,18 @@ <auto-attributes include="pk" mode="IN" optional="false"/> </service> + <service name="prepareIncomeStatement" engine="simple" + location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="prepareIncomeStatement" auth="true"> + <description>Prepare the data for the income statement</description> + <attribute name="organizationPartyId" type="String" mode="IN" optional="false"/> + <attribute name="fromDate" type="Timestamp" mode="IN" optional="false"/> + <attribute name="thruDate" type="Timestamp" mode="IN" optional="false"/> + <attribute name="glFiscalTypeId" type="String" mode="IN" optional="false"/> + <attribute name="totalNetIncome" type="Double" mode="OUT" optional="false"/> + <attribute name="glAccountTotalsMap" type="Map" mode="OUT" optional="true"/> + <attribute name="glAccountTotalsList" type="List" mode="OUT" optional="true"/> + </service> + <!-- Miscellaneous Ledger-related services --> <service name="getGlAccountFromAccountType" engine="simple" location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="getGlAccountFromAccountType" auth="true"> 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=605973&r1=605972&r2=605973&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 20 08:30:30 2007 @@ -1673,6 +1673,13 @@ <request-map uri="FinancialSummaryReportOptions"><security https="true" auth="true"/><response name="success" type="view" value="FinancialSummaryReportOptions"/></request-map> <request-map uri="SalesInvoiceByProductCategorySummary"><security https="true" auth="true"/><response name="success" type="view" value="SalesInvoiceByProductCategorySummary"/></request-map> <request-map uri="TrialBalance"><security https="true" auth="true"/><response name="success" type="view" value="TrialBalance"/></request-map> + <request-map uri="IncomeStatement"><security https="true" auth="true"/><response name="success" type="view" value="IncomeStatement"/></request-map> + <request-map uri="prepareIncomeStatement"> + <security https="true" auth="true"/> + <event type="service" invoke="prepareIncomeStatement"/> + <response name="success" type="view" value="IncomeStatement"/> + <response name="error" type="view" value="IncomeStatement"/> + </request-map> <request-map uri="TransactionTotals"><security https="true" auth="true"/><response name="success" type="view" value="TransactionTotals"/></request-map> <!-- end of request mappings --> @@ -1859,6 +1866,7 @@ <view-map name="FinancialSummaryReportOptions" type="screen" page="component://accounting/widget/ReportFinancialSummaryScreens.xml#FinancialSummaryReportOptions"/> <view-map name="SalesInvoiceByProductCategorySummary" type="screen" page="component://accounting/widget/ReportFinancialSummaryScreens.xml#SalesInvoiceByProductCategorySummary"/> <view-map name="TrialBalance" type="screen" page="component://accounting/widget/ReportFinancialSummaryScreens.xml#TrialBalance"/> + <view-map name="IncomeStatement" type="screen" page="component://accounting/widget/ReportFinancialSummaryScreens.xml#IncomeStatement"/> <view-map name="TransactionTotals" type="screen" page="component://accounting/widget/ReportFinancialSummaryScreens.xml#TransactionTotals"/> <!-- Assignment Mappings --> Modified: ofbiz/trunk/applications/accounting/widget/Menus.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/Menus.xml?rev=605973&r1=605972&r2=605973&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/Menus.xml (original) +++ ofbiz/trunk/applications/accounting/widget/Menus.xml Thu Dec 20 08:30:30 2007 @@ -442,6 +442,9 @@ <menu-item name="TrialBalance" title="${uiLabelMap.AccountingTrialBalance}"> <link target="TrialBalance?organizationPartyId=${organizationPartyId}"/> </menu-item> + <menu-item name="IncomeStatement" title="${uiLabelMap.AccountingIncomeStatement}"> + <link target="IncomeStatement?organizationPartyId=${organizationPartyId}"/> + </menu-item> <menu-item name="TransactionTotals" title="${uiLabelMap.AccountingTransactionTotals}"> <link target="TransactionTotals?organizationPartyId=${organizationPartyId}"/> </menu-item> Modified: ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml?rev=605973&r1=605972&r2=605973&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml (original) +++ ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryForms.xml Thu Dec 20 08:30:30 2007 @@ -93,4 +93,30 @@ <field name="debit" entry-name="parameters.debitTotal" use-when="showTotals" widget-area-style="viewManyTR1"><display type="currency" currency="${currencyUomId}"/></field> <field name="credit" entry-name="creditTotal" use-when="showTotals" widget-area-style="viewManyTR1"><display type="currency" currency="${currencyUomId}"/></field> </form> + + <form name="IncomeStatementParameters" type="single" target="prepareIncomeStatement"> + <field name="organizationPartyId"><hidden/></field> + <field name="fromDate"><date-time/></field> + <field name="thruDate"><date-time/></field> + <field name="glFiscalTypeId"> + <drop-down> + <entity-options entity-name="GlFiscalType" description="${description}"> + <entity-order-by field-name="glFiscalTypeId"/> + </entity-options> + </drop-down> + </field> + <field name="submitButton" widget-style="smallSubmit"><submit button-type="button"/></field> + </form> + + <form name="IncomeStatementList" type="list" list-name="glAccountTotalsList"> + <row-actions> + <entity-one entity-name="GlAccount" value-name="glAccount"> + <field-map field-name="glAccountId"/> + </entity-one> + </row-actions> + <field name="glAccountId"> + <hyperlink target="FindAcctgTransEntries?glAccountId=${glAccountId}&organizationPartyId=${organizationPartyId}" description="[${glAccountId}] [${glAccount.accountCode}] ${glAccount.accountName}"/> + </field> + <field name="totalAmount"><display type="currency" currency="${currencyUomId}"/></field> + </form> </forms> Modified: ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml?rev=605973&r1=605972&r2=605973&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml (original) +++ ofbiz/trunk/applications/accounting/widget/ReportFinancialSummaryScreens.xml Thu Dec 20 08:30:30 2007 @@ -230,6 +230,43 @@ </section> </screen> + <screen name="IncomeStatement"> + <section> + <actions> + <set field="tabButtonItem" value="OrganizationAccountingReports"/> + <set field="tabButtonItem2" value="IncomeStatement"/> + <set field="organizationPartyId" from-field="parameters.organizationPartyId"/> + <set field="organizationPartyId" from-field="parameters.organizationPartyId"/> + <entity-one entity-name="PartyAcctgPreference" value-name="partyAcctgPreference" auto-field-map="false"> + <field-map field-name="partyId" env-name="organizationPartyId"/> + </entity-one> + <set field="currencyUomId" from-field="partyAcctgPreference.baseCurrencyUomId"/> + <set field="glAccountTotalsList" from-field="parameters.glAccountTotalsList"/> + </actions> + <widgets> + <decorator-screen name="CommonOrganizationAccountingReportsDecorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <container> + <label style="head2" text="${uiLabelMap.AccountingIncomeStatement}"/> + </container> + <include-form name="IncomeStatementParameters" location="component://accounting/widget/ReportFinancialSummaryForms.xml"/> + <section> + <condition> + <not><if-empty field-name="parameters.totalNetIncome"/></not> + </condition> + <widgets> + <include-form name="IncomeStatementList" location="component://accounting/widget/ReportFinancialSummaryForms.xml"/> + <container> + <label style="head3" text="${uiLabelMap.AccountingNetIncome}: ${parameters.totalNetIncome}"/> + </container> + </widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <!-- TODO: this is just a placeholder: the report is not still implemented --> <screen name="TransactionTotals"> <section> |
Free forum by Nabble | Edit this page |