[FIX]Sale:Simplify the picking and the invoice policy on Sale order edit order policy and set invoice on as per needed

bzr revid: sgo@tinyerp.com-20120302064709-430idkcoq18t6q4x
This commit is contained in:
Sanjay Gohel (Open ERP) 2012-03-02 12:17:09 +05:30
parent a86051c046
commit c7166b7fdb
5 changed files with 15 additions and 17 deletions

View File

@ -91,7 +91,7 @@ Dashboard for Sales Manager that includes:
'test/sale_order_demo.yml',
'test/picking_order_policy.yml',
'test/manual_order_policy.yml',
'test/postpaid_order_policy.yml',
#'test/postpaid_order_policy.yml',
'test/prepaid_order_policy.yml',
'test/cancel_order.yml',
'test/delete_order.yml',

View File

@ -223,16 +223,14 @@ class sale_order(osv.osv):
'picking_policy': fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')],
'Picking Policy', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
'order_policy': fields.selection([
('prepaid', 'Pay before delivery'),
('manual', 'Deliver & invoice on demand'),
('picking', 'Invoice based on deliveries'),
('postpaid', 'Invoice on order after delivery'),
], 'Invoice Policy', required=True, readonly=True, states={'draft': [('readonly', False)]},
help="""The Invoice Policy is used to synchronise invoice and delivery operations.
- The 'Pay before delivery' choice will first generate the invoice and then generate the picking order after the payment of this invoice.
- The 'Deliver & Invoice on demand' will create the picking order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice based on the sale order or the sale order lines.
- The 'Invoice on order after delivery' choice will generate the draft invoice based on sales order after all picking lists have been finished.
- The 'Invoice based on deliveries' choice is used to create an invoice during the picking process."""),
('prepaid', 'Before Delivery'),
('manual', 'On Demand'),
('picking', 'On Delivery Order'),
], 'Create Invoice', required=True, readonly=True, states={'draft': [('readonly', False)]},
help="""The Create Invoice is used to synchronise invoice and delivery operations.
- The 'Before Delivery' choice will first generate the invoice and then generate the picking order after the payment of this invoice.
- The 'On Demand' will create the picking order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice based on the sale order or the sale order lines.
- The 'On Delivery Order' choice will generate the draft invoice based on sales order after all picking lists have been finished."""),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Pricelist for current sales order."),
'project_id': fields.many2one('account.analytic.account', 'Contract/Analytic Account', readonly=True, states={'draft': [('readonly', False)]}, help="The analytic account related to a sales order."),

View File

@ -61,7 +61,7 @@
<!--Resource: sale.order-->
<record id="order2" model="sale.order">
<!--<record id="order2" model="sale.order">
<field name="shop_id" ref="shop"/>
<field model="product.pricelist" name="pricelist_id" search="[]"/>
<field name="user_id" ref="base.user_demo"/>
@ -72,11 +72,11 @@
<field name="invoice_quantity">order</field>
<field name="order_policy">postpaid</field>
</record>
</record>-->
<!--Resource: sale.order.line-->
<record id="line3" model="sale.order.line">
<!--<record id="line3" model="sale.order.line">
<field name="order_id" ref="order2"/>
<field name="name">[PC2] Computer assembled on demand</field>
<field name="product_id" ref="product.product_product_pc2"/>
@ -93,7 +93,7 @@
<field name="product_uom_qty">8</field>
<field name="product_uos_qty">8</field>
<field name="type">make_to_order</field>
</record>
</record>-->
<!--Resource: sale.order-->

View File

@ -222,7 +222,7 @@
<field name="incoterm" widget="selection"/>
<field name="picking_policy" required="True"/>
<field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
<field name="invoice_quantity" attrs="{'readonly':[('order_policy','in',('prepaid','picking'))]}"/>
<field name="invoice_quantity" attrs="{'invisible':[('order_policy','in',('prepaid','picking'))]}"/>
</group>
<group colspan="2" col="2">
<separator string="References" colspan="2"/>

View File

@ -172,7 +172,7 @@
<record id="trans_wait_invoice_invoice" model="workflow.transition">
<field name="act_from" ref="act_wait_invoice"/>
<field name="act_to" ref="act_invoice"/>
<field name="condition">(order_policy=='prepaid') or ((order_policy=='postpaid') and shipped)</field>
<field name="condition">(order_policy=='prepaid')</field>
</record>
<record id="trans_wait_invoice_invoice_manual" model="workflow.transition">