From 5600ce8a3416af5852be7b8e743f073c34bbc73a Mon Sep 17 00:00:00 2001
From: "sgo@tinyerp.com" <>
Date: Tue, 22 Jan 2013 16:38:57 +0530
Subject: [PATCH] [IMP]remove date related sale.shop and add warehouse_id as
new field to handle location in sale order
bzr revid: sgo@tinyerp.com-20130122110857-61jsli1sywu3h5q0
---
addons/sale/sale.py | 7 +++++
addons/sale_stock/__openerp__.py | 1 -
addons/sale_stock/report/sale_report.py | 2 --
addons/sale_stock/res_config.py | 3 ---
addons/sale_stock/res_config_view.xml | 6 -----
addons/sale_stock/sale_stock.py | 23 +++++++++--------
addons/sale_stock/sale_stock_data.xml | 11 --------
addons/sale_stock/sale_stock_demo.xml | 18 ++++++++++++-
addons/sale_stock/sale_stock_view.xml | 34 +++----------------------
9 files changed, 39 insertions(+), 66 deletions(-)
delete mode 100644 addons/sale_stock/sale_stock_data.xml
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index fe7c8752078..8636e2393da 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -151,6 +151,12 @@ class sale_order(osv.osv):
for line in self.pool.get('sale.order.line').browse(cr, uid, ids, context=context):
result[line.order_id.id] = True
return result.keys()
+
+ def _get_default_company(self, cr, uid, context=None):
+ company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
+ if not company_id:
+ raise osv.except_osv(_('Error!'), _('There is no default company for the current user!'))
+ return company_id
_columns = {
'name': fields.char('Order Reference', size=64, required=True,
@@ -220,6 +226,7 @@ class sale_order(osv.osv):
_defaults = {
'date_order': fields.date.context_today,
'order_policy': 'manual',
+ 'company_id': _get_default_company,
'state': 'draft',
'user_id': lambda obj, cr, uid, context: uid,
'name': lambda obj, cr, uid, context: '/',
diff --git a/addons/sale_stock/__openerp__.py b/addons/sale_stock/__openerp__.py
index a849df295d4..fd20748aa75 100644
--- a/addons/sale_stock/__openerp__.py
+++ b/addons/sale_stock/__openerp__.py
@@ -57,7 +57,6 @@ You can choose flexible invoicing methods:
'report/sale_report_view.xml',
'process/sale_stock_process.xml',
],
- 'data': ['sale_stock_data.xml'],
'demo_xml': ['sale_stock_demo.xml'],
'test': ['test/cancel_order_sale_stock.yml',
'test/picking_order_policy.yml',
diff --git a/addons/sale_stock/report/sale_report.py b/addons/sale_stock/report/sale_report.py
index ade84b269e6..d0f8510087c 100644
--- a/addons/sale_stock/report/sale_report.py
+++ b/addons/sale_stock/report/sale_report.py
@@ -57,7 +57,6 @@ class sale_report(osv.osv):
to_char(s.date_order, 'YYYY-MM-DD') as day,
s.partner_id as partner_id,
s.user_id as user_id,
- s.shop_id as shop_id,
s.company_id as company_id,
extract(epoch from avg(date_trunc('day',s.date_confirm)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay,
s.state,
@@ -83,7 +82,6 @@ class sale_report(osv.osv):
s.date_confirm,
s.partner_id,
s.user_id,
- s.shop_id,
s.company_id,
s.state,
s.shipped,
diff --git a/addons/sale_stock/res_config.py b/addons/sale_stock/res_config.py
index 3a6dcb404dd..5a0d9e36cf7 100644
--- a/addons/sale_stock/res_config.py
+++ b/addons/sale_stock/res_config.py
@@ -51,9 +51,6 @@ class sale_configuration(osv.osv_memory):
'group_mrp_properties': fields.boolean('Product properties on order lines',
implied_group='sale.group_mrp_properties',
help="Allows you to tag sales order lines with properties."),
- 'group_multiple_shops': fields.boolean("Manage multiple shops",
- implied_group='stock.group_locations',
- help="This allows to configure and use multiple shops."),
'module_project_timesheet': fields.boolean("Project Timesheet"),
'module_project_mrp': fields.boolean("Project MRP"),
}
diff --git a/addons/sale_stock/res_config_view.xml b/addons/sale_stock/res_config_view.xml
index ad3b91b2a30..93bc8e5980e 100644
--- a/addons/sale_stock/res_config_view.xml
+++ b/addons/sale_stock/res_config_view.xml
@@ -59,12 +59,6 @@
-
-
-
-
-
-
diff --git a/addons/sale_stock/sale_stock.py b/addons/sale_stock/sale_stock.py
index 1b5ddefbe74..c2a52b8de7e 100644
--- a/addons/sale_stock/sale_stock.py
+++ b/addons/sale_stock/sale_stock.py
@@ -26,14 +26,6 @@ from openerp.osv import fields, osv
from openerp import netsvc
from openerp.tools.translate import _
-class sale_shop(osv.osv):
- _inherit = "sale.shop"
- _columns = {
- 'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse'),
- }
-
-sale_shop()
-
class sale_order(osv.osv):
_inherit = "sale.order"
@@ -72,6 +64,13 @@ class sale_order(osv.osv):
vals.update({'invoice_quantity': 'procurement'})
order = super(sale_order, self).create(cr, uid, vals, context=context)
return order
+
+ def _get_default_warehouse(self, cr, uid, context=None):
+ company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
+ warehouse_ids = self.pool.get('stock.warehouse').search(cr, uid, [('company_id','=',company_id)], context=context)
+ if not warehouse_ids:
+ raise osv.except_osv(_('Error!'), _('There is no default location for the current user\'s company!'))
+ return warehouse_ids[0]
# This is False
def _picked_rate(self, cr, uid, ids, name, arg, context=None):
@@ -140,11 +139,13 @@ 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'),
'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)]}),
}
_defaults = {
+ 'warehouse_id': _get_default_warehouse,
'picking_policy': 'direct',
'order_policy': 'manual',
'invoice_quantity': 'order',
@@ -276,7 +277,7 @@ class sale_order(osv.osv):
or line.product_uom_qty,
'product_uos': (line.product_uos and line.product_uos.id)\
or line.product_uom.id,
- 'location_id': order.shop_id.warehouse_id.lot_stock_id.id,
+ 'location_id': order.warehouse_id.lot_stock_id.id,
'procure_method': line.type,
'move_id': move_id,
'company_id': order.company_id.id,
@@ -284,8 +285,8 @@ class sale_order(osv.osv):
}
def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, context=None):
- location_id = order.shop_id.warehouse_id.lot_stock_id.id
- output_id = order.shop_id.warehouse_id.lot_output_id.id
+ location_id = order.warehouse_id.lot_stock_id.id
+ output_id = order.warehouse_id.lot_output_id.id
return {
'name': line.name,
'picking_id': picking_id,
diff --git a/addons/sale_stock/sale_stock_data.xml b/addons/sale_stock/sale_stock_data.xml
deleted file mode 100644
index bb4944bd87e..00000000000
--- a/addons/sale_stock/sale_stock_data.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/addons/sale_stock/sale_stock_demo.xml b/addons/sale_stock/sale_stock_demo.xml
index 15b1e60b829..2e7b641659d 100644
--- a/addons/sale_stock/sale_stock_demo.xml
+++ b/addons/sale_stock/sale_stock_demo.xml
@@ -3,21 +3,37 @@
+
prepaid
-
+
+
+
+
+
+
+
+
+
+
prepaid
+
picking
+
picking
+
+
+
+
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index bebb95f0088..349af88ceb1 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -2,31 +2,6 @@
-
- sale.shop.inherit.form
- sale.shop
-
-
-
-
-
-
-
-
-
-
- sale.shop.sale.stock
- sale.shop
-
-
-
-
-
-
-
-
-
-
sale.order.form.sale.stock
sale.order
@@ -48,17 +23,14 @@
-
-
-
-
@@ -78,7 +50,7 @@
groups="sale.group_mrp_properties"/>
-
+