Author: ashish
Date: Sat Jan 5 18:19:45 2008 New Revision: 609252 URL: http://svn.apache.org/viewvc?rev=609252&view=rev Log: Applied patch from OFBIZ-1492. Description :- Auto posting: Implement an automatic GL posting service for payment applications It was not implemented correct. I did patch work as per as the requirements. Removed the iterate block. We should fetch the PaymentApplication record from the input parameter "paymentApplicationId". And then the related record from the Payment table. Thanks to all who has contributed in this task. 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.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=609252&r1=609251&r2=609252&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml (original) +++ ofbiz/trunk/applications/accounting/data/AccountingTypeData.xml Sat Jan 5 18:19:45 2008 @@ -52,6 +52,8 @@ <AcctgTransType acctgTransTypeId="INCOMING_PAYMENT" description="Incoming Payment" hasTable="N" parentTypeId=""/><!-- FIXME: replace with "RECEIPT" --> <AcctgTransType acctgTransTypeId="OUTGOING_PAYMENT" description="Outgoing Payment" hasTable="N" parentTypeId=""/><!-- FIXME: replace with "DISBURSEMENT" --> + <AcctgTransType acctgTransTypeId="PAYMENT_APPL" description="Payment Applied" hasTable="N" parentTypeId=""/> + <AcctgTransEntryType acctgTransEntryTypeId="_NA_" description="Not Applicable" hasTable="N" parentTypeId=""/> <StatusType description="Acctg Entry Reconcile" hasTable="N" parentTypeId="" statusTypeId="ACCTG_ENREC_STATUS"/> 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=609252&r1=609251&r2=609252&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 Jan 5 18:19:45 2008 @@ -2031,4 +2031,80 @@ </iterate> </simple-method> + <!--service to create AcctgTransAndEntries For Payment Application--> + <simple-method method-name="createAcctgTransAndEntriesForPaymentApplication" short-description="create AcctgTransAndEntries For PaymentApplication"> + <entity-one entity-name="PaymentApplication" value-name="paymentApplication"> + <field-map field-name="paymentApplicationId" env-name="parameters.paymentApplicationId"/> + </entity-one> + <get-related-one value-name="paymentApplication" relation-name="Payment" to-value-name="payment"/> + <entity-one entity-name="PaymentGlAccountTypeMap" value-name="paymentGlAccountTypeMap"> + <field-map field-name="paymentTypeId" env-name="payment.paymentTypeId"/> + <field-map field-name="organizationPartyId" env-name="payment.partyIdFrom"/> + </entity-one> + <call-class-method class-name="org.ofbiz.accounting.util.UtilAccounting" method-name="isReceipt" ret-field-name="isReceipt"> + <field field-name="payment" type="org.ofbiz.entity.GenericValue"/> + </call-class-method> + <if-compare field-name="isReceipt" operator="equals" type="Boolean" value="true"> + <!--Credit --> + <make-value entity-name="AcctgTransEntry" value-name="debitEntry"/> + <set field="debitEntry.debitCreditFlag" value="D"/> + <set field="debitEntry.organizationPartyId" from-field="payment.partyIdTo"/> + <set field="debitEntry.partyId" from-field="payment.partyIdFrom"/> + <set field="debitEntry.roleTypeId" value="BILL_TO_CUSTOMER"/> + <set field="debitEntry.origAmount" from-field="paymentApplication.amountApplied"/> + <set field="debitEntry.origCurrencyUomId" from-field="payment.currencyUomId"/> + <set field="debitEntry.glAccountId" from-field="payment.overrideGlAccountId"/> + <set field="debitEntry.glAccountTypeId" from-field="paymentGlAccountTypeMap.glAccountTypeId "/> + <!-- Debit --> + <make-value entity-name="AcctgTransEntry" value-name="creditEntry"/> + <set field="creditEntry.debitCreditFlag" value="C"/> + <set field="creditEntry.organizationPartyId" from-field="payment.partyIdTo"/> + <set field="creditEntry.partyId" from-field="payment.partyIdFrom"/> + <set field="creditEntry.roleTypeId" value="BILL_TO_CUSTOMER"/> + <set field="creditEntry.origAmount" from-field="paymentApplication.amountApplied"/> + <set field="creditEntry.origCurrencyUomId" from-field="payment.currencyUomId"/> + <set field="creditEntry.glAccountTypeId" value="ACCOUNTS_RECEIVABLE"/> + <else> + <!--Credit --> + <make-value entity-name="AcctgTransEntry" value-name="creditEntry"/> + <set field="creditEntry.debitCreditFlag" value="C"/> + <set field="creditEntry.organizationPartyId" from-field="payment.partyIdFrom"/> + <set field="creditEntry.partyId" from-field="payment.partyIdTo"/> + <set field="creditEntry.roleTypeId" value="BILL_FROM_VENDOR"/> + <set field="creditEntry.origAmount" from-field="paymentApplication.amountApplied"/> + <set field="creditEntry.origCurrencyUomId" from-field="payment.currencyUomId"/> + <set field="creditEntry.glAccountId" value="payment.overrideGlAccountId"/> + <set field="creditEntry.glAccountTypeId" from-field="paymentGlAccountTypeMap.glAccountTypeId"/> + <!-- Debit --> + <make-value entity-name="AcctgTransEntry" value-name="debitEntry"/> + <set field="debitEntry.debitCreditFlag" value="D"/> + <set field="debitEntry.organizationPartyId" from-field="payment.partyIdFrom"/> + <set field="debitEntry.partyId" from-field="payment.partyIdTo"/> + <set field="debitEntry.roleTypeId" value="BILL_FROM_VENDOR"/> + <set field="debitEntry.origAmount" from-field="paymentApplication.amountApplied"/> + <set field="debitEntry.origCurrencyUomId" from-field="payment.currencyUomId"/> + <set field="debitEntry.glAccountTypeId" value="ACCOUNTS_PAYABLE"/> + </else> + </if-compare> + <set field="acctgTransEntries[]" from-field="debitEntry" type="Object"/> + <set field="acctgTransEntries[]" from-field="creditEntry" type="Object"/> + <set field="createAcctgTransAndEntriesInMap.acctgTransEntries" from-field="acctgTransEntries"/> + <set field="createAcctgTransAndEntriesInMap.acctgTransTypeId" value="PAYMENT_APPL"/> + <set field="createAcctgTransAndEntriesInMap.glFiscalTypeId" value="ACTUAL"/> + <set field="createAcctgTransAndEntriesInMap.paymentId" from-field="paymentApplication.paymentId"/> + <set field="createAcctgTransAndEntriesInMap.invoiceId" from-field="paymentApplication.invoiceId"/> + <if-compare field-name="isReceipt" operator="equals" type="Boolean" value="true"> + <set field="createAcctgTransAndEntriesInMap.partyId" from-field="payment.partyIdFrom"/> + <set field="createAcctgTransAndEntriesInMap.roleTypeId" value="BILL_TO_CUSTOMER"/> + <else> + <set field="createAcctgTransAndEntriesInMap.partyId" from-field="payment.partyIdTo"/> + <set field="createAcctgTransAndEntriesInMap.roleTypeId" value="BILL_FROM_VENDOR"/> + </else> + </if-compare> + <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"/> + </simple-method> + </simple-methods> Modified: ofbiz/trunk/applications/accounting/servicedef/secas.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/secas.xml?rev=609252&r1=609251&r2=609252&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/secas.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/secas.xml Sat Jan 5 18:19:45 2008 @@ -157,5 +157,9 @@ <condition field-name="productTypeId" operator="equals" value="ASSET_USAGE"/> <action service="createFixedAssetAndLinkToProduct" mode="sync"/> </eca> + <eca service="createPaymentApplication" event="commit"> + <condition field-name="invoiceId" operator="is-not-empty" /> + <action service="createAcctgTransAndEntriesForPaymentApplication" 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=609252&r1=609251&r2=609252&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_ledger.xml Sat Jan 5 18:19:45 2008 @@ -490,4 +490,11 @@ <attribute name="acctgTransId" type="String" mode="OUT" optional="true"/> </service> + <service name="createAcctgTransAndEntriesForPaymentApplication" engine="simple" auth="true" + location="org/ofbiz/accounting/ledger/GeneralLedgerServices.xml" invoke="createAcctgTransAndEntriesForPaymentApplication"> + <description>Create an accounting transaction for a payment application</description> + <attribute name="paymentApplicationId" type="String" mode="IN" optional="false"/> + <attribute name="acctgTransId" type="String" mode="OUT" optional="true"/> + </service> + </services> |
Free forum by Nabble | Edit this page |