Author: hansbak
Date: Wed May 5 01:43:45 2010 New Revision: 941132 URL: http://svn.apache.org/viewvc?rev=941132&view=rev Log: Create a payment with the status 'not-paid' when a purchase order is approved setting the payment date according agreements Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml ofbiz/trunk/applications/accounting/servicedef/services_payment.xml ofbiz/trunk/applications/order/servicedef/secas.xml Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml?rev=941132&r1=941131&r2=941132&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml (original) +++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml Wed May 5 01:43:45 2010 @@ -746,4 +746,72 @@ under the License. <clear-field field="setPaymentStatusMap"/> </iterate> </simple-method> -</simple-methods> + + <simple-method method-name="createPaymentFromOrder" short-description="Service auto create Payment from Order"> + <entity-one value-field="orderHeader" entity-name="OrderHeader"/> + <entity-and list="orderRoleToList" entity-name="OrderRole"> + <field-map field-name="orderId" from-field="orderHeader.orderId"/> + <field-map field-name="roleTypeId" value="BILL_FROM_VENDOR"/> + </entity-and> + <first-from-list entry="orderRoleTo" list="orderRoleToList"/> + <entity-and list="orderRoleFromList" entity-name="OrderRole"> + <field-map field-name="orderId" from-field="orderHeader.orderId"/> + <field-map field-name="roleTypeId" value="BILL_TO_CUSTOMER"/> + </entity-and> + <first-from-list entry="orderRoleFrom" list="orderRoleFromList"/> + <if-compare operator="equals" value="PURCHASE_ORDER" field="orderHeader.orderTypeId"> + <entity-and list="agreementList" entity-name="Agreement" filter-by-date="true"> + <field-map field-name="partyIdFrom" from-field="orderRoleFrom.partyId"/> + <field-map field-name="partyIdTo" from-field="orderRoleTo.partyId"/> + <field-map field-name="agreementTypeId" value="PURCHASE_AGREEMENT"/> + </entity-and> + <set field="parameters.paymentTypeId" value="VENDOR_PAYMENT"/> + <else> + <entity-and list="agreementList" entity-name="Agreement" filter-by-date="true"> + <field-map field-name="partyIdFrom" from-field="orderRoleFrom.partyId"/> + <field-map field-name="partyIdTo" from-field="orderRoleTo.partyId"/> + <field-map field-name="agreementTypeId" value="SALES_AGREEMENT"/> + </entity-and> + <set field="parameters.paymentTypeId" value="CUSTOMER_PAYMENT"/> + </else> + </if-compare> + <first-from-list entry="agreement" list="agreementList"/> + <if-not-empty field="agreement"> + <entity-and list="orderTermList" entity-name="OrderTerm"> + <field-map field-name="orderId" from-field="orderHeader.orderId"/> + <field-map field-name="termTypeId" value="FIN_PAYMENT_TERM"/> + </entity-and> + <first-from-list entry="orderTerm" list="orderTermList"/> + <if-not-empty field="orderTerm.termDays"> + <set field="days" from-field="orderTerm.termDays" type="Integer"/> + <now-timestamp field="start"/> + <call-class-method class-name="org.ofbiz.base.util.UtilDateTime" method-name="addDaysToTimestamp" ret-field="parameters.effectiveDate"> + <field field="start" type="java.sql.Timestamp"/> + <field field="days" type="int"/> + </call-class-method> + </if-not-empty> + </if-not-empty> + <if-empty field="parameters.effectiveDate"> + <now-timestamp field="parameters.effectiveDate"/> + </if-empty> + <set field="parameters.partyIdFrom" from-field="orderRoleFrom.partyId"/> + <set field="parameters.partyIdTo" from-field="orderRoleTo.partyId"/> + <set field="parameters.amount" from-field="orderHeader.grandTotal"/> + <set field="parameters.currencyUomId" from-field="orderHeader.currencyUom"/> + <set field="parameters.paymentMethodTypeId" value="COMPANY_ACCOUNT"/> + <set field="parameters.statusId" value="PMNT_NOT_PAID"/> + <set-service-fields service-name="createPayment" to-map="createPayment" map="parameters"/> + <call-service service-name="createPayment" in-map-name="createPayment"> + <result-to-field result-name="paymentId" field="parameters.paymentId"/> + </call-service> + <set field="parameters.orderId" from-field="orderHeader.orderId"/> + <set field="parameters.maxAmount" from-field="orderHeader.grandTotal"/> + <set-service-fields service-name="createOrderPaymentPreference" to-map="newOrderPaymentPreference" map="parameters"/> + <call-service service-name="createOrderPaymentPreference" in-map-name="newOrderPaymentPreference"> + <result-to-field result-name="orderPaymentPreferenceId" field="parameters.paymentPreferenceId"/> + </call-service> + <set-service-fields service-name="updatePayment" to-map="updatePayment" map="parameters"/> + <call-service service-name="updatePayment" in-map-name="updatePayment"/> + <field-to-result field="parameters.paymentId" result-name="paymentId"/> + </simple-method> +</simple-methods> \ No newline at end of file Modified: ofbiz/trunk/applications/accounting/servicedef/services_payment.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_payment.xml?rev=941132&r1=941131&r2=941132&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_payment.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_payment.xml Wed May 5 01:43:45 2010 @@ -233,4 +233,11 @@ under the License. <attribute name="statusId" type="String" mode="IN" optional="false"/> <attribute name="errorMessage" type="String" optional="true" mode="OUT"/> </service> + + <service name="createPaymentFromOrder" engine="simple" + location="component://accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml" invoke="createPaymentFromOrder" auth="true"> + <description>create Payment from Order</description> + <attribute name="orderId" type="String" mode="IN" optional="false"/> + <attribute name="paymentId" type="String" mode="OUT" optional="false"/> + </service> </services> Modified: ofbiz/trunk/applications/order/servicedef/secas.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/servicedef/secas.xml?rev=941132&r1=941131&r2=941132&view=diff ============================================================================== --- ofbiz/trunk/applications/order/servicedef/secas.xml (original) +++ ofbiz/trunk/applications/order/servicedef/secas.xml Wed May 5 01:43:45 2010 @@ -93,6 +93,12 @@ under the License. <action service="resetGrandTotal" mode="sync"/> <action service="sendOrderCompleteNotification" mode="async" persist="true"/> </eca> + <eca service="changeOrderStatus" event="commit" run-on-error="false"> + <condition field-name="orderTypeId" operator="equals" value="PURCHASE_ORDER"/> + <condition field-name="statusId" operator="equals" value="ORDER_APPROVED"/> + <condition-field field-name="statusId" operator="not-equals" to-field-name="oldStatusId"/> + <action service="createPaymentFromOrder" mode="sync" persist="true"/> + </eca> <!-- DISABLED FOR NOW <eca service="changeOrderStatus" event="commit" run-on-error="false"> |
Free forum by Nabble | Edit this page |