This looks wrong to me too. You don't know what to pay until the order has been 
received.

-Adrian

--- On Tue, 5/4/10, Scott Gray <[email protected]> wrote:

> From: Scott Gray <[email protected]>
> Subject: Re: svn commit: r941132 - in /ofbiz/trunk/applications: 
> accounting/script/org/ofbiz/accounting/payment/PaymentServices.xml 
> accounting/servicedef/services_payment.xml order/servicedef/secas.xml
> To: [email protected]
> Date: Tuesday, May 4, 2010, 6:56 PM
> Hi Hans,
> 
> Wouldn't you do this when an order is received (i.e. an
> invoice created) rather than when the order is placed?
> 
> Typically payment due dates are based on the invoice date
> not the order date.
> 
> Regards
> Scott
> 
> HotWax Media
> http://www.hotwaxmedia.com
> 
> On 5/05/2010, at 1:43 PM, [email protected]
> wrote:
> 
> > 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">
> > 
> > 
> 
> 



Reply via email to