diff --git a/addons/sale/sale.py b/addons/sale/sale.py index f51db0fa80d..49a96fe788a 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# OpenERP, Open Source Management Solution +# OpenERP, Open Source Management Solution # Copyright (C) 2004-2008 Tiny SPRL (). 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 = [] diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index d362ad6d664..bbdc61d83a1 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -202,9 +202,9 @@ - + - +