From 6be21ac5d30e29da6044a0c3f66d49562f31cbc6 Mon Sep 17 00:00:00 2001
From: "sgo@tinyerp.com" <>
Date: Thu, 31 Jan 2013 11:56:13 +0530
Subject: [PATCH] [IMP]add onchange of warehouse to change company related to
warehouse and improve some code
bzr revid: sgo@tinyerp.com-20130131062613-tmlgvdrculc2udu1
---
addons/point_of_sale/point_of_sale.py | 4 ++--
addons/point_of_sale/report/pos_order_report.py | 2 +-
addons/sale_stock/sale_stock.py | 10 +++++++++-
addons/sale_stock/sale_stock_view.xml | 6 ++++++
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 4bfef6ce707..d95b64d5c84 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -51,7 +51,7 @@ class pos_config(osv.osv):
'journal_ids' : fields.many2many('account.journal', 'pos_config_journal_rel',
'pos_config_id', 'journal_id', 'Available Payment Methods',
domain="[('journal_user', '=', True )]",),
- 'warehouse_id' : fields.many2one('stock.warehouse', 'Location',
+ 'warehouse_id' : fields.many2one('stock.warehouse', 'Warehouse',
required=True),
'journal_id' : fields.many2one('account.journal', 'Sale Journal',
domain=[('type', '=', 'sale')],
@@ -575,7 +575,7 @@ class pos_order(osv.osv):
_columns = {
'name': fields.char('Order Ref', size=64, required=True, readonly=True),
'company_id':fields.many2one('res.company', 'Company', required=True, readonly=True),
- 'warehouse_id': fields.related('session_id', 'config_id', 'warehouse_id', relation='stock.warehouse', type='many2one', string='Location', store=True, readonly=True),
+ 'warehouse_id': fields.related('session_id', 'config_id', 'warehouse_id', relation='stock.warehouse', type='many2one', string='Warehouse', store=True, readonly=True),
'date_order': fields.datetime('Order Date', readonly=True, select=True),
'user_id': fields.many2one('res.users', 'Salesman', help="Person who uses the the cash register. It can be a reliever, a student or an interim employee."),
'amount_tax': fields.function(_amount_all, string='Taxes', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
diff --git a/addons/point_of_sale/report/pos_order_report.py b/addons/point_of_sale/report/pos_order_report.py
index 41bb1a4e754..243107d4657 100644
--- a/addons/point_of_sale/report/pos_order_report.py
+++ b/addons/point_of_sale/report/pos_order_report.py
@@ -41,7 +41,7 @@ class pos_order_report(osv.osv):
'price_total':fields.float('Total Price', readonly=True),
'total_discount':fields.float('Total Discount', readonly=True),
'average_price': fields.float('Average Price', readonly=True,group_operator="avg"),
- 'warehouse_id':fields.many2one('stock.warehouse', 'Location', readonly=True),
+ 'warehouse_id':fields.many2one('stock.warehouse', 'Warehouse', readonly=True),
'company_id':fields.many2one('res.company', 'Company', readonly=True),
'nbr':fields.integer('# of Lines', readonly=True),
'product_qty':fields.integer('# of Qty', readonly=True),
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index c2a52b8de7e..682c0e435df 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -139,7 +139,7 @@ class sale_order(osv.osv):
'picking_ids': fields.one2many('stock.picking.out', 'sale_id', 'Related Picking', readonly=True, help="This is a list of delivery orders that has been generated for this sales order."),
'shipped': fields.boolean('Delivered', readonly=True, help="It indicates that the sales order has been delivered. This field is updated only after the scheduler(s) have been launched."),
'picked_rate': fields.function(_picked_rate, string='Picked', type='float'),
- 'warehouse_id': fields.many2one('stock.warehouse', 'Location'),
+ 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
'invoice_quantity': fields.selection([('order', 'Ordered Quantities'), ('procurement', 'Shipped Quantities')], 'Invoice on',
help="The sales order will automatically create the invoice proposition (draft invoice).\
You have to choose if you want your invoice based on ordered ", required=True, readonly=True, states={'draft': [('readonly', False)]}),
@@ -162,6 +162,14 @@ class sale_order(osv.osv):
raise osv.except_osv(_('Invalid Action!'), _('In order to delete a confirmed sales order, you must cancel it.\nTo do so, you must first cancel related picking for delivery orders.'))
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
+
+ def onchange_warehouse_id(self, cr, uid, ids, warehouse_id, context=None):
+ val = {}
+ if warehouse_id:
+ warehouse = self.pool.get('stock.warehouse').browse(cr, uid, warehouse_id, context=context)
+ if warehouse.company_id.id:
+ val['company_id'] = warehouse.company_id.id
+ return {'value': val}
def action_view_delivery(self, cr, uid, ids, context=None):
'''
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index 349af88ceb1..4edde821729 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -23,6 +23,12 @@
+
+
+
+
+
+