sale : onchange on shipping policy and override create and write on sale.order

bzr revid: mra@tinyerp.com-20081201130056-i2x4ye670oa72hlo
This commit is contained in:
Mustufa Rangwala 2008-12-01 18:30:56 +05:30
parent 3a47894f81
commit 7d8e5ee0e9
2 changed files with 33 additions and 7 deletions

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@ -261,9 +261,9 @@ class sale_order(osv.osv):
unlink_ids.append(s['id'])
else:
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Sale Order(s) which are already confirmed !'))
return osv.osv.unlink(self, cr, uid, unlink_ids)
return osv.osv.unlink(self, cr, uid, unlink_ids)
def onchange_shop_id(self, cr, uid, ids, shop_id):
v={}
if shop_id:
@ -296,6 +296,32 @@ class sale_order(osv.osv):
payment_term = part.property_payment_term and part.property_payment_term.id or False
return {'value':{'partner_invoice_id': addr['invoice'], 'partner_order_id':addr['contact'], 'partner_shipping_id':addr['delivery'], 'pricelist_id': pricelist, 'payment_term' : payment_term}}
def shipping_policy_change(self, cr, uid, ids, policy, context={}):
if not policy:
return {}
inv_qty = 'order'
if policy=='prepaid':
inv_qty = 'order'
elif policy=='picking':
inv_qty = 'procurement'
return {'value':{'invoice_quantity':inv_qty}}
def write(self, cr, uid, ids, vals, context=None):
if vals.has_key('order_policy'):
if vals['order_policy']=='prepaid':
vals.update({'invoice_quantity':'order'})
elif vals['order_policy']=='picking':
vals.update({'invoice_quantity':'procurement'})
return super(sale_order, self).write(cr, uid, ids, vals, context=context)
def create(self, cr, uid, vals, context={}):
if vals.has_key('order_policy'):
if vals['order_policy']=='prepaid':
vals.update({'invoice_quantity':'order'})
if vals['order_policy']=='picking':
vals.update({'invoice_quantity':'procurement'})
return super(sale_order, self).create(cr, uid, vals, context=context)
def button_dummy(self, cr, uid, ids, context={}):
return True
@ -453,7 +479,7 @@ class sale_order(osv.osv):
def test_state(self, cr, uid, ids, mode, *args):
assert mode in ('finished', 'canceled'), _("invalid mode for test_state")
finished = True
canceled = False
canceled = False
notcanceled = False
write_done_ids = []
write_cancel_ids = []

View File

@ -202,9 +202,9 @@
<field groups="base.group_extended" name="incoterm"/>
<field groups="base.group_extended" name="picking_policy" required="True"/>
<field name="user_id"/>
<field name="order_policy"/>
<field name="order_policy" on_change="shipping_policy_change(order_policy)"/>
<field groups="base.group_extended" name="origin"/>
<field groups="base.group_extended" name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid')]}"/>
<field groups="base.group_extended" name="invoice_quantity" attrs="{'readonly':[('order_policy','=','prepaid'),('order_policy','=','picking')]}"/>
<field name="payment_term"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>