Merge lp:~camptocamp/e-commerce-addons/7.0-sale_automatic_workflow-create_invoice_option into lp:~extra-addons-commiter/e-commerce-addons/7.0

Proposed by Guewen Baconnier @ Camptocamp
Status: Merged
Approved by: Yannick Vaucher @ Camptocamp
Approved revision: 288
Merged at revision: 288
Proposed branch: lp:~camptocamp/e-commerce-addons/7.0-sale_automatic_workflow-create_invoice_option
Merge into: lp:~extra-addons-commiter/e-commerce-addons/7.0
Diff against target: 150 lines (+55/-24)
5 files modified
sale_automatic_workflow/automatic_workflow_data.xml (+17/-7)
sale_automatic_workflow/sale.py (+16/-0)
sale_automatic_workflow/sale_workflow.xml (+1/-1)
sale_automatic_workflow/sale_workflow_process.py (+19/-14)
sale_automatic_workflow/sale_workflow_process_view.xml (+2/-2)
To merge this branch: bzr merge lp:~camptocamp/e-commerce-addons/7.0-sale_automatic_workflow-create_invoice_option
Reviewer Review Type Date Requested Status
Yannick Vaucher @ Camptocamp code review, no tests Approve
Sandy Carter (http://www.savoirfairelinux.com) code review, no test Approve
Review via email: mp+194367@code.launchpad.net

Description of the change

On the workflows, the 'create_invoice' option is no longer a boolean, but a selection between 'off | on confirmation of sales order | after delivery'. The option is only available when the selected order policy is 'manual'. This replaces the removed 'postpaid' order_policy when we use automatic workflows.

It means that your are allowed to invoice on order after delivery, by choosing the 'On Demand' order policy and 'After Delivery' for the 'Create Invoice' option.

To post a comment you must log in.
Revision history for this message
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote :

Note sure why the default reviewer is "extra-addons-commiter" here. Can someone review, please? Thanks

Revision history for this message
Sandy Carter (http://www.savoirfairelinux.com) (sandy-carter) wrote :

LGTM

review: Approve (code review, no test)
Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

LGTM

Thanks

review: Approve (code review, no tests)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'sale_automatic_workflow/automatic_workflow_data.xml'
--- sale_automatic_workflow/automatic_workflow_data.xml 2013-03-27 13:21:58 +0000
+++ sale_automatic_workflow/automatic_workflow_data.xml 2013-11-07 15:51:51 +0000
@@ -8,18 +8,28 @@
8<openerp>8<openerp>
9 <data noupdate="1">9 <data noupdate="1">
1010
11 <!-- VIEW FOR THE OBJECT : payment_method -->
12 <record id="automatic_validation" model="sale.workflow.process">11 <record id="automatic_validation" model="sale.workflow.process">
13 <field name="name">Automatic Validation</field>12 <field name="name">Automatic</field>
14 <field name="picking_policy">one</field>13 <field name="picking_policy">one</field>
15 <field name="order_policy">picking</field>14 <field name="order_policy">manual</field>
15 <field name="invoice_quantity">order</field>
16 <field name="validate_order" eval="1"/>
17 <field name="create_invoice_on">on_picking_done</field>
18 <field name="validate_invoice" eval="1" />
19 <field name="invoice_date_is_order_date" eval="0" />
20 <field name="validate_picking" eval="0" />
21 </record>
22
23 <record id="manual_validation" model="sale.workflow.process">
24 <field name="name">Manual</field>
25 <field name="picking_policy">one</field>
26 <field name="order_policy">manual</field>
16 <field name="invoice_quantity">order</field>27 <field name="invoice_quantity">order</field>
17 <field name="validate_order" eval="0"/>28 <field name="validate_order" eval="0"/>
18 <field name="create_invoice" eval="1" />29 <field name="create_invoice_on">manual</field>
19 <field name="validate_invoice" eval="1" />30 <field name="validate_invoice" eval="0" />
20 <field name="invoice_date_is_order_date" eval="0" />31 <field name="invoice_date_is_order_date" eval="0" />
21 <field name="validate_picking" eval="0" />32 <field name="validate_picking" eval="0" />
22 <field name="validate_manufactoring_order" eval="0" />
23 </record>33 </record>
2434
25 <record forcecreate="True" id="ir_cron_automatic_workflow_job" model="ir.cron">35 <record forcecreate="True" id="ir_cron_automatic_workflow_job" model="ir.cron">
2636
=== modified file 'sale_automatic_workflow/sale.py'
--- sale_automatic_workflow/sale.py 2013-03-27 14:12:59 +0000
+++ sale_automatic_workflow/sale.py 2013-11-07 15:51:51 +0000
@@ -72,3 +72,19 @@
72 if workflow.invoice_quantity:72 if workflow.invoice_quantity:
73 result['invoice_quantity'] = workflow.invoice_quantity73 result['invoice_quantity'] = workflow.invoice_quantity
74 return {'value': result}74 return {'value': result}
75
76 def test_create_invoice(self, cr, uid, ids):
77 """ Workflow condition: test if an invoice should be created,
78 based on the automatic workflow rules """
79 if isinstance(ids, (list, tuple)):
80 assert len(ids) == 1
81 ids = ids[0]
82 order = self.browse(cr, uid, ids)
83 if order.order_policy != 'manual' or not order.workflow_process_id:
84 return False
85 invoice_on = order.workflow_process_id.create_invoice_on
86 if invoice_on == 'on_order_confirm':
87 return True
88 elif invoice_on == 'on_picking_done' and order.shipped:
89 return True
90 return False
7591
=== modified file 'sale_automatic_workflow/sale_workflow.xml'
--- sale_automatic_workflow/sale_workflow.xml 2012-04-22 12:49:21 +0000
+++ sale_automatic_workflow/sale_workflow.xml 2013-11-07 15:51:51 +0000
@@ -5,7 +5,7 @@
5 <record id="trans_wait_invoice_invoice" model="workflow.transition">5 <record id="trans_wait_invoice_invoice" model="workflow.transition">
6 <field name="act_from" ref="sale.act_wait_invoice"/>6 <field name="act_from" ref="sale.act_wait_invoice"/>
7 <field name="act_to" ref="sale.act_invoice"/>7 <field name="act_to" ref="sale.act_invoice"/>
8 <field name="condition">(order_policy=='manual' and workflow_process_id.create_invoice)</field>8 <field name="condition">test_create_invoice()</field>
9 </record>9 </record>
1010
11 </data>11 </data>
1212
=== modified file 'sale_automatic_workflow/sale_workflow_process.py'
--- sale_automatic_workflow/sale_workflow_process.py 2013-09-25 08:38:41 +0000
+++ sale_automatic_workflow/sale_workflow_process.py 2013-11-07 15:51:51 +0000
@@ -38,21 +38,25 @@
3838
39 _columns = {39 _columns = {
40 'name': fields.char('Name', size=64),40 'name': fields.char('Name', size=64),
41 'picking_policy': fields.selection([('direct', 'Deliver each product when available'),41 'picking_policy': fields.selection(
42 ('one', 'Deliver all products at once')],42 [('direct', 'Deliver each product when available'),
43 string='Shipping Policy'),43 ('one', 'Deliver all products at once')],
44 'order_policy': fields.selection([44 string='Shipping Policy'),
45 ('prepaid', 'Before Delivery'),45 'order_policy': fields.selection([('prepaid', 'Before Delivery'),
46 ('manual', 'On Demand'),46 ('manual', 'On Demand'),
47 # https://bugs.launchpad.net/openobject-addons/+bug/116083547 ('picking', 'On Delivery Order')],
48 # ('postpaid', 'Invoice on Order After Delivery'),48 string='Invoice Policy'),
49 ('picking', 'On Delivery Order'),49 'invoice_quantity': fields.selection(
50 ], 'Invoice Policy'),50 [('order', 'Ordered Quantities'),
51 'invoice_quantity': fields.selection([('order', 'Ordered Quantities'),51 ('procurement', 'Shipped Quantities')],
52 ('procurement', 'Shipped Quantities')],52 string='Invoice on'),
53 string='Invoice on'),
54 'validate_order': fields.boolean('Validate Order'),53 'validate_order': fields.boolean('Validate Order'),
55 'create_invoice': fields.boolean('Create Invoice'),54 'create_invoice_on': fields.selection(
55 [('manual', 'No automatic invoice'),
56 ('on_order_confirm', 'On confirmation of Sale Order'),
57 ('on_picking_done', 'After Delivery')],
58 required=True,
59 string='Create Invoice'),
56 'validate_invoice': fields.boolean('Validate Invoice'),60 'validate_invoice': fields.boolean('Validate Invoice'),
57 'validate_picking': fields.boolean('Confirm and Close Picking'),61 'validate_picking': fields.boolean('Confirm and Close Picking'),
58 # TODO not implemented actually62 # TODO not implemented actually
@@ -66,6 +70,7 @@
66 _defaults = {70 _defaults = {
67 'picking_policy': 'direct',71 'picking_policy': 'direct',
68 'order_policy': 'manual',72 'order_policy': 'manual',
73 'create_invoice_on': 'manual',
69 'invoice_quantity': 'order',74 'invoice_quantity': 'order',
70 'validate_invoice': False,75 'validate_invoice': False,
71 }76 }
7277
=== modified file 'sale_automatic_workflow/sale_workflow_process_view.xml'
--- sale_automatic_workflow/sale_workflow_process_view.xml 2013-04-11 09:15:22 +0000
+++ sale_automatic_workflow/sale_workflow_process_view.xml 2013-11-07 15:51:51 +0000
@@ -23,7 +23,7 @@
23 <field name="validate_order"/>23 <field name="validate_order"/>
24 <field name="validate_picking"/>24 <field name="validate_picking"/>
25 <!-- <field name="validate_manufactoring_order"/> -->25 <!-- <field name="validate_manufactoring_order"/> -->
26 <field name="create_invoice" />26 <field name="create_invoice_on" attrs="{'readonly': [('order_policy', '!=', 'manual')]}" />
27 <field name="validate_invoice"/>27 <field name="validate_invoice"/>
28 <field name="invoice_date_is_order_date"/>28 <field name="invoice_date_is_order_date"/>
2929
@@ -43,7 +43,7 @@
43 <field name="validate_order"/>43 <field name="validate_order"/>
44 <field name="validate_picking"/>44 <field name="validate_picking"/>
45 <!-- <field name="validate_manufactoring_order"/> -->45 <!-- <field name="validate_manufactoring_order"/> -->
46 <field name="create_invoice" />46 <field name="create_invoice_on" />
47 <field name="validate_invoice"/>47 <field name="validate_invoice"/>
48 <field name="invoice_date_is_order_date"/>48 <field name="invoice_date_is_order_date"/>
49 </tree>49 </tree>

Subscribers

People subscribed via source and target branches