Author: ashish
Date: Sat Dec 15 12:24:06 2007 New Revision: 604505 URL: http://svn.apache.org/viewvc?rev=604505&view=rev Log: Applied patch from JIRA Issue # OFBIZ-1490 with Minor Changes. Thanks to Brajesh Patel for your patch . Brajesh I did an entry for "AcctgTransType" entity for the "INCOMING_PAYMENT" that somehow you had missed in your patch. Also we are thankful to Pranay Pandey,Mridul Pathak and Vikas Mayur for helping Brajesh for finishing this work. Modified: ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/ledger/GeneralLedgerServices.xml ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Modified: ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml?rev=604505&r1=604504&r2=604505&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml (original) +++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml Sat Dec 15 12:24:06 2007 @@ -49,6 +49,7 @@ <AcctgTransType acctgTransTypeId="SHIPMENT_RECEIPT" parentTypeId="" hasTable="N" description="Shipment Receipt"/> <AcctgTransType acctgTransTypeId="MANUFACTURING" parentTypeId="" hasTable="N" description="Manufacturing"/> + <AcctgTransType acctgTransTypeId="INCOMING_PAYMENT" description="Incoming Payment" hasTable="N" parentTypeId=""/> <AcctgTransEntryType acctgTransEntryTypeId="_NA_" description="Not Applicable" hasTable="N" parentTypeId=""/> 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=604505&r1=604504&r2=604505&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 Sat Dec 15 12:24:06 2007 @@ -1319,5 +1319,95 @@ </call-service> <field-to-result field-name="acctgTransId" result-name="acctgTransId"/> </simple-method> - + <simple-method method-name="createAcctgTransAndEntriesForIncomingPayment" short-description="Create an accounting transaction for an incoming payment" > + <property-to-field resource="arithmetic" property="ledger.decimals" field-name="ledgerDecimals"/> + <property-to-field resource="arithmetic" property="ledger.rounding" field-name="roundingMode"/> + <log level="info" message="Using ledger decimals [${ledgerDecimals}] and rounding [${roundingMode}]"/> + + <calculate field-name="amountAppliedTotal" type="BigDecimal"><number value="0"/></calculate> + <calculate field-name="diffAmount" type="BigDecimal"><number value="0"/></calculate> + + <entity-one entity-name="Payment" value-name="payment"/> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isReceipt" ret-field-name="isReceiptValue"> + <field field-name="payment" type="org.ofbiz.entity.GenericValue"/> + </call-class-method> + + <if-compare field-name="isReceiptValue" operator="equals" value="true" type="Boolean"> + <set field="origCurrencyUomId" from-field="payment.currencyUomId"/> + <set field="organizationPartyId" from-field="payment.partyIdTo"/> + <set field="partyId" from-field="payment.partyIdFrom"/> + <set field="paymentId" from-field="payment.paymentId"/> + + <!-- Debit --> + <make-value entity-name="AcctgTransEntry" value-name="debitEntry"/> + <set field="debitEntry.debitCreditFlag" value="D"/> + <!-- TODO --> + <!--set field="debitEntry.glAccountTypeId" value=""/--> + <set field="debitEntry.origAmount" from-field="payment.amount"/> + <set field="debitEntry.origCurrencyUomId" from-field="origCurrencyUomId"/> + <set field="debitEntry.organizationPartyId" from-field="organizationPartyId"/> + <set field="acctgTransEntries[]" from-field="debitEntry" type="Object"/> + + <entity-one entity-name="PaymentGlAccountTypeMap" value-name="paymentGlAccountTypeMap"> + <field-map field-name="paymentTypeId" env-name="payment.paymentTypeId"/> + <field-map field-name="organizationPartyId"/> + </entity-one> + <set field="creditGlAccountTypeId" from-field="paymentGlAccountTypeMap.glAccountTypeId"/> + + <get-related value-name="payment" relation-name="PaymentApplication" list-name="paymentApplications"/> + <iterate list-name="paymentApplications" entry-name="paymentApplication"> + + <!-- credit --> + <make-value entity-name="AcctgTransEntry" value-name="creditEntry"/> + <set field="creditEntry.debitCreditFlag" value="C"/> + <set field="creditEntry.origAmount" from-field="paymentApplication.amountApplied"/> + <set field="creditEntry.origCurrencyUomId" from-field="origCurrencyUomId"/> + <if-not-empty field-name="paymentApplication.overrideGlAccountId"> + <set field="creditEntry.glAccountId" from-field="paymentApplication.overrideGlAccountId"/> + <else> + <set field="creditEntry.glAccountId" from-field="payment.overrideGlAccountId"/> + </else> + </if-not-empty> + <set field="creditEntry.organizationPartyId" from-field="organizationPartyId"/> + <set field="creditEntry.glAccountTypeId" from-field="creditGlAccountTypeId"/> + <calculate field-name="amountAppliedTotal" type="BigDecimal" decimal-scale="${ledgerDecimals}" rounding-mode="${roundingMode}"> + <calcop operator="add"> + <calcop operator="get" field-name="amountAppliedTotal"/> + <calcop operator="get" field-name="paymentApplication.amountApplied"/> + </calcop> + </calculate> + <set field="acctgTransEntries[]" from-field="creditEntry" type="Object"/> + </iterate> + + <calculate field-name="diffAmount" type="BigDecimal" decimal-scale="${ledgerDecimals}" rounding-mode="${roundingMode}"> + <calcop operator="subtract"> + <calcop operator="get" field-name="payment.amount"/> + <calcop operator="get" field-name="amountAppliedTotal"/> + </calcop> + </calculate> + <if-compare field-name="diffAmount" operator="greater" value="0" type="BigDecimal"> + <!-- credit for diff amount--> + <make-value entity-name="AcctgTransEntry" value-name="creditEntryWithDiffAmount"/> + <set field="creditEntryWithDiffAmount.debitCreditFlag" value="C"/> + <set field="creditEntryWithDiffAmount.origAmount" from-field="diffAmount"/> + <set field="creditEntryWithDiffAmount.origCurrencyUomId" from-field="origCurrencyUomId"/> + <set field="creditEntryWithDiffAmount.glAccountId" from-field="payment.overrideGlAccountId"/> + <set field="creditEntryWithDiffAmount.glAccountTypeId" from-field="creditGlAccountTypeId"/> + <set field="creditEntryWithDiffAmount.organizationPartyId" from-field="organizationPartyId"/> + <set field="acctgTransEntries[]" from-field="creditEntryWithDiffAmount" type="Object"/> + </if-compare> + + <!-- Set header fields (AcctgTrans) --> + <set field="createAcctgTransAndEntriesInMap.glFiscalTypeId" value="ACTUAL"/> + <set field="createAcctgTransAndEntriesInMap.partyId" from-field="partyId"/> + <set field="createAcctgTransAndEntriesInMap.roleTypeId" value="BILL_TO_CUSTOMER"/> + <set field="createAcctgTransAndEntriesInMap.paymentId" from-field="paymentId"/> + <set field="createAcctgTransAndEntriesInMap.acctgTransTypeId" value="INCOMING_PAYMENT"/> + <set field="createAcctgTransAndEntriesInMap.acctgTransEntries" from-field="acctgTransEntries"/> + <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"/> + </if-compare> + </simple-method> </simple-methods> Modified: ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml?rev=604505&r1=604504&r2=604505&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/secas_ledger.xml Sat Dec 15 12:24:06 2007 @@ -77,5 +77,16 @@ <condition field-name="fixedAssetId" operator="is-not-empty"/> <action service="createAcctgTransForFixedAssetMaintIssuance" mode="sync"/> </eca> - + <!--attempt to create AcctgTrans and Entries for Incoming Payment --> + <eca service="createPayment" event="commit"> + <condition field-name="statusId" operator="equals" value="PMNT_RECEIVED"/> + <action service="createAcctgTransAndEntriesForIncomingPayment" mode="sync"/> + </eca> + + <!--attempt to create AcctgTrans and Entries for Incoming when set PaymentStatus --> + <eca service="setPaymentStatus" event="commit"> + <condition field-name="statusId" operator="equals" value="PMNT_RECEIVED"/> + <condition field-name="oldStatusId" operator="not-equals" value="PMNT_RECEIVED"/> + <action service="createAcctgTransAndEntriesForIncomingPayment" mode="sync"/> + </eca> </service-eca> Modified: ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml?rev=604505&r1=604504&r2=604505&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Sat Dec 15 12:24:06 2007 @@ -417,7 +417,13 @@ <attribute name="oldOwnerPartyId" type="String" mode="IN" optional="false"/> <attribute name="acctgTransId" type="String" mode="OUT" optional="true"/> </service> - + <!--AcctgTrans For Incoming Payment Service--> + <service name="createAcctgTransAndEntriesForIncomingPayment" engine="simple" auth="true" + location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="createAcctgTransAndEntriesForIncomingPayment"> + <description>Create an accounting transaction for an incoming payment</description> + <attribute name="paymentId" type="String" mode="IN" optional="false"/> + <attribute name="acctgTransId" type="String" mode="OUT" optional="true"/> + </service> <!-- An automatic GL Acct transaction service triggered when inventory is issued for fixed asset maintenance--> <service name="createAcctgTransForFixedAssetMaintIssuance" engine="simple" auth="true" location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="createAcctgTransForFixedAssetMaintIssuance"> |
Free forum by Nabble | Edit this page |