Bharat Devnani (Open ERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso-direct-invoice-bde
into lp:~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso.
Requested reviews:
OpenERP R&D Team (openerp-dev)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso-direct-invoice-bde/+merge/122803
Hello Sir,
I have added functionality which will create invoice directly when there
is no product_id in Sale Order Line, without considering order_policy.
Thanks & Regards,
Devnani Bharat R.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso-direct-invoice-bde/+merge/122803
Your team OpenERP R&D Team is requested to review the proposed merge of
lp:~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso-direct-invoice-bde
into lp:~openerp-dev/openobject-addons/trunk-addons-issues5-sale-pso.
=== modified file 'sale/sale.py'
--- sale/sale.py 2012-08-23 12:19:52 +0000
+++ sale/sale.py 2012-09-05 07:09:18 +0000
@@ -726,12 +726,33 @@
self.cancel_send_note(cr, uid, [sale.id], context=None)
self.write(cr, uid, ids, {'state': 'cancel'})
return True
-
+
+ def check_product(self, cr, uid, ids, mode, context=None):
+ res = self.check_so_lines_product(cr, uid, ids, context=context)
+ if not res:
+ return mode
+
+ def check_so_lines_product(self, cr, uid, ids, context=None):
+ ''' IF all SO lines are without product_id, then invoice will be created without considering
+ order policy '''
+ sale_order_lines = self.browse(cr, uid, ids, context=context)[0].order_line
+ num_order_lines = len(sale_order_lines)
+ cnt = 0
+ for sale_order_line in sale_order_lines:
+ if not sale_order_line.product_id:
+ cnt += 1
+ if cnt == num_order_lines:
+ return True
+ return False
+
def action_button_confirm(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
wf_service = netsvc.LocalService('workflow')
+ order_policy = self.browse(cr, uid, ids, context=context)[0].order_policy
wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)
-
+ res = self.check_so_lines_product(cr, uid, ids, context=context)
+ if res:
+ self.manual_invoice(cr, uid, ids, context=context)
# redisplay the record as a sale order
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form')
view_id = view_ref and view_ref[1] or False,
=== modified file 'sale/sale_view.xml'
--- sale/sale_view.xml 2012-08-23 12:19:52 +0000
+++ sale/sale_view.xml 2012-09-05 07:09:18 +0000
@@ -163,7 +163,7 @@
<button name="action_button_confirm" states="draft" string="Confirm" type="object"/>
<button name="action_button_confirm" states="sent" string="Confirm" class="oe_highlight" type="object"/>
<button name="action_view_invoice" string="View Invoice" type="object" class="oe_highlight"
- attrs="{'invisible': ['|','|',('state', '!=','progress'), ('invoiced', '=', True),('order_policy','=','picking')]}"/>
+ attrs="{'invisible': ['|','|','|','|',('state', '!=','progress'), ('invoiced', '=', True),('order_policy','=','picking'), ('invoice_ids', '=', []), ('shipped', '=', False)]}"/>
<button name="action_view_delivery" string="View Delivery Order" type="object" class="oe_highlight"
attrs="{'invisible': ['|','|','|',('picking_ids','=',False),('picking_ids','=',[]), ('state', 'not in', ('progress','manual')),('shipped','=',True)]}"/>
<button name="%(action_view_sale_advance_payment_inv)d" string="Create Invoice"
=== modified file 'sale/sale_workflow.xml'
--- sale/sale_workflow.xml 2012-05-25 13:35:36 +0000
+++ sale/sale_workflow.xml 2012-09-05 07:09:18 +0000
@@ -162,7 +162,7 @@
<record id="trans_router_wait_invoice_shipping" model="workflow.transition">
<field name="act_from" ref="act_wait_invoice"/>
<field name="act_to" ref="act_invoice_end"/>
- <field name="condition">(order_policy=='picking')</field>
+ <field name="condition">(order_policy=='picking') and check_product('product')</field>
</record>
<record id="trans_router_wait_invoice" model="workflow.transition">
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp