diff --git a/addons/base_setup/base_setup_installer.xml b/addons/base_setup/base_setup_installer.xml
index cbe4c9d24a2..46c4dbc6e0b 100644
--- a/addons/base_setup/base_setup_installer.xml
+++ b/addons/base_setup/base_setup_installer.xml
@@ -36,6 +36,7 @@ If you don't think you need any of these right now, you can easily install them
+
diff --git a/addons/base_setup/installer.py b/addons/base_setup/installer.py
index b7123b1ba38..0ab47197d66 100644
--- a/addons/base_setup/installer.py
+++ b/addons/base_setup/installer.py
@@ -75,6 +75,9 @@ class base_setup_installer(osv.osv_memory):
"OpenERP's report creation."),
'thunderbird' :fields.boolean('Thunderbird'),
# Vertical modules
+ 'product_expiry':fields.boolean('Food Industry',
+ help="Installs a preselected set of OpenERP "
+ "applications which will help you manage foods."),
'profile_association':fields.boolean('Associations',
help="Installs a preselected set of OpenERP "
"applications which will help you manage your association "
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index 61cf7c6368d..c59e0aabdc8 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -295,5 +295,22 @@
+
+
+
+
+
diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml
index e367148213d..cc5ce326204 100644
--- a/addons/delivery/delivery_view.xml
+++ b/addons/delivery/delivery_view.xml
@@ -273,7 +273,7 @@
-
+
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index b4c575bf2b0..26cecf79faa 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -117,9 +117,9 @@ class mrp_bom(osv.osv):
"""
Defines bills of material for a product.
"""
- _name = 'mrp.bom'
+ _name = 'mrp.bom'
_description = 'Bill of Material'
-
+
def _child_compute(self, cr, uid, ids, name, arg, context={}):
""" Gets child bom.
@param self: The object pointer
@@ -140,14 +140,14 @@ class mrp_bom(osv.osv):
bom_id = ids[0]
bom_parent = bom_obj.browse(cr, uid, bom_id)
for bom in self.browse(cr, uid, ids, context=context):
- if (bom_parent and bom_parent.multi_level_bom) or bom.id == bom_id:
+ if (bom_parent) or (bom.id == bom_id):
result[bom.id] = map(lambda x: x.id, bom.bom_lines)
else:
result[bom.id] = []
if bom.bom_lines:
continue
ok = ((name=='child_complete_ids') and (bom.product_id.supply_method=='produce'))
- if (bom.type=='phantom' or ok) and bom_parent.multi_level_bom:
+ if (bom.type=='phantom' or ok):
sids = bom_obj.search(cr, uid, [('bom_id','=',False),('product_id','=',bom.product_id.id)])
if sids:
bom2 = bom_obj.browse(cr, uid, sids[0], context=context)
@@ -203,7 +203,6 @@ class mrp_bom(osv.osv):
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'Index type'),
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
'company_id': fields.many2one('res.company','Company',required=True),
- 'multi_level_bom': fields.boolean('Multi-level BoM'),
}
_defaults = {
'active': lambda *a: 1,
@@ -212,7 +211,6 @@ class mrp_bom(osv.osv):
'product_rounding': lambda *a: 1.0,
'type': lambda *a: 'normal',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.bom', context=c),
- 'multi_level_bom': lambda *a: 0,
}
_order = "sequence"
_sql_constraints = [
@@ -247,7 +245,7 @@ class mrp_bom(osv.osv):
v['name'] = prod.name
return {'value': v}
return {}
-
+
def _bom_find(self, cr, uid, product_id, product_uom, properties=[]):
""" Finds BoM for particular product and product uom.
@param product_id: Selected product.
@@ -954,6 +952,3 @@ class mrp_production_product_line(osv.osv):
}
mrp_production_product_line()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 936a207caa3..b3004fffb2f 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -252,21 +252,29 @@
-
-
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
@@ -499,15 +507,15 @@
-
+
-
-
-
+
+
+
@@ -800,8 +808,8 @@
-
-
+
+
diff --git a/addons/mrp/product.py b/addons/mrp/product.py
index ea717bd546c..64185d8dc26 100644
--- a/addons/mrp/product.py
+++ b/addons/mrp/product.py
@@ -24,15 +24,17 @@ from tools.translate import _
class product_product(osv.osv):
- _inherit = "product.product"
-
+ _inherit = "product.product"
+ _columns = {
+ "bom_ids": fields.one2many('mrp.bom', 'product_id','Bill of Materials'),
+ }
def do_change_standard_price(self, cr, uid, ids, datas, context={}):
""" Changes the Standard Price of Product and parent products and creates an account move accordingly.
@param datas: dict. contain default datas like new_price, stock_output_account, stock_input_account, stock_journal
- @param context: A standard dictionary
- @return:
- """
- #TODO : TO Check
+ @param context: A standard dictionary
+ @return:
+ """
+ #TODO : TO Check
res = super(product_product, self).do_change_standard_price(cr, uid, ids, datas, context=context)
bom_obj = self.pool.get('mrp.bom')
def _compute_price(bom):
@@ -44,7 +46,7 @@ class product_product(osv.osv):
price += bom_line.product_qty * prod_price
accounts = self.get_product_accounts(cr, uid, bom.bom_id.product_id.id, context)
-
+
datas = {
'new_price': price,
'stock_output_account': accounts['stock_account_output'],
@@ -54,9 +56,9 @@ class product_product(osv.osv):
super(product_product, self).do_change_standard_price(cr, uid, [bom.bom_id.product_id.id], datas, context)
_compute_price(bom.bom_id)
return price
-
+
bom_ids = bom_obj.search(cr, uid, [('product_id', 'in', ids)])
-
+
for bom in bom_obj.browse(cr, uid, bom_ids):
_compute_price(bom)
diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py
index 6a4e2736dbd..bdc37c1b660 100644
--- a/addons/procurement/schedulers.py
+++ b/addons/procurement/schedulers.py
@@ -37,7 +37,9 @@ class procurement_order(osv.osv):
context = {}
if use_new_cursor:
+ print 'Cursor New', cr,
cr = pooler.get_db(use_new_cursor).cursor()
+ print cr
wf_service = netsvc.LocalService("workflow")
procurement_obj = self.pool.get('procurement.order')
@@ -122,6 +124,7 @@ class procurement_order(osv.osv):
})
if use_new_cursor:
cr.commit()
+ print 'Cursor Close', cr
cr.close()
return {}
@@ -172,7 +175,9 @@ class procurement_order(osv.osv):
if not context:
context = {}
if use_new_cursor:
+ print 'Cursor New', cr,
cr = pooler.get_db(use_new_cursor).cursor()
+ print cr
orderpoint_obj = self.pool.get('stock.warehouse.orderpoint')
location_obj = self.pool.get('stock.location')
procurement_obj = self.pool.get('procurement.order')
@@ -236,6 +241,7 @@ class procurement_order(osv.osv):
})
if use_new_cursor:
cr.commit()
+ print 'Cursor Close', cr
cr.close()
return {}
procurement_order()
diff --git a/addons/procurement/security/ir.model.access.csv b/addons/procurement/security/ir.model.access.csv
index f13decfa9f2..6cc6cc8acb4 100644
--- a/addons/procurement/security/ir.model.access.csv
+++ b/addons/procurement/security/ir.model.access.csv
@@ -1,9 +1,11 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_mrp_property_group","mrp.property.group","model_mrp_property_group",stock.group_stock_manager,1,1,1,1
+"access_mrp_property","mrp.property","model_mrp_property",stock.group_stock_manager,1,1,1,1
"access_mrp_property_group","mrp.property.group","model_mrp_property_group",,1,0,0,0
-"access_mrp_property","mrp.property","model_mrp_property",,1,0,0,0
-"access_procurement","procurement.order","model_procurement_order",,1,0,0,0
-"access_stock_warehouse_orderpoint","stock.warehouse.orderpoint","model_stock_warehouse_orderpoint",,1,0,0,0
-"access_procurement_compute_all","procurement.order.compute.all","model_procurement_order_compute_all",,1,0,0,0
-"access_procurement_orderpoint_compute","procurement.orderpoint.compute","model_procurement_orderpoint_compute",,1,0,0,0
-"access_mrp_make_procurement","make.procurement","model_make_procurement",,1,0,0,0
-"access_mrp_make_procurement","procurement.order.compute","model_procurement_order_compute",,1,0,0,0
+"access_mrp_property","mrp.property","model_mrp_property",base.group_user,1,0,0,0
+"access_procurement","procurement.order","model_procurement_order",base.group_user,1,0,0,0
+"access_stock_warehouse_orderpoint","stock.warehouse.orderpoint","model_stock_warehouse_orderpoint",stock.group_stock_manager,1,1,1,1
+"access_procurement_compute_all","procurement.order.compute.all","model_procurement_order_compute_all",stock.group_stock_manager,1,1,1,1
+"access_procurement_orderpoint_compute","procurement.orderpoint.compute","model_procurement_orderpoint_compute",stock.group_stock_manager,1,1,1,1
+"access_mrp_make_procurement","make.procurement","model_make_procurement",stock.group_stock_manager,1,1,1,1
+"access_mrp_make_procurement","procurement.order.compute","model_procurement_order_compute",stock.group_stock_manager,1,1,1,1
diff --git a/addons/procurement/wizard/mrp_procurement.py b/addons/procurement/wizard/mrp_procurement.py
index 466a462a55d..659a2ad4d51 100644
--- a/addons/procurement/wizard/mrp_procurement.py
+++ b/addons/procurement/wizard/mrp_procurement.py
@@ -31,7 +31,8 @@ class procurement_compute(osv.osv_memory):
proc_obj = self.pool.get('procurement.order')
proc_obj._procure_confirm(cr, uid, use_new_cursor=cr.dbname, context=context)
finally:
- cr.close()
+ pass
+ #cr.close()
return {}
def procure_calculation(self, cr, uid, ids, context):
diff --git a/addons/procurement/wizard/schedulers_all.py b/addons/procurement/wizard/schedulers_all.py
index 6a02048ed71..73efc77d017 100644
--- a/addons/procurement/wizard/schedulers_all.py
+++ b/addons/procurement/wizard/schedulers_all.py
@@ -45,10 +45,12 @@ class procurement_compute_all(osv.osv_memory):
"""
proc_obj = self.pool.get('procurement.order')
for proc in self.browse(cr, uid, ids):
+ print 'Cursor', cr
proc_obj.run_scheduler(cr, uid, automatic=proc.automatic, use_new_cursor=cr.dbname,\
context=context)
+ print 'Cursor', cr
return {}
-
+
def procure_calculation(self, cr, uid, ids, context):
"""
@param self: The object pointer.
diff --git a/addons/resource/security/ir.model.access.csv b/addons/resource/security/ir.model.access.csv
index f52b43adcaa..83e06121937 100644
--- a/addons/resource/security/ir.model.access.csv
+++ b/addons/resource/security/ir.model.access.csv
@@ -2,4 +2,5 @@
"access_resource_calendar","resource.calendar","model_resource_calendar","base.group_system",1,1,1,1
"access_resource_calendar_week","resource.calendar.week","model_resource_calendar_week","base.group_system",1,1,1,1
"access_resource_resource","resource.resource","model_resource_resource","base.group_system",1,1,1,1
+"access_resource_resource_all","resource.resource all","model_resource_resource",,1,0,0,0
"access_resource_calendar_leaves","resource.calendar.leaves","model_resource_calendar_leaves","base.group_system",1,1,1,1
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index b47d59e5400..03c14c9576d 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -53,7 +53,7 @@ class sale_report(osv.osv):
'user_id':fields.many2one('res.users', 'Salesman', readonly=True),
'price_total':fields.float('Total Price', readonly=True),
'delay':fields.float('Days to Close', digits=(16,2), readonly=True),
- 'price_average':fields.float('Average Price', readonly=True),
+ 'price_average':fields.float('Average Price', readonly=True,group_operator="avg"),
'categ_id': fields.many2one('product.category','Category of Product', readonly=True),
'nbr':fields.integer('# of Lines', readonly=True),
'state': fields.selection([
@@ -92,7 +92,7 @@ class sale_report(osv.osv):
s.shipped::integer as shipped_qty_1,
s.pricelist_id as pricelist_id,
s.project_id as analytic_account_id
- from
+ from
sale_order s,
(
select l.id as id,
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index 9b8ed32ede4..4e6d75694fe 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -19,7 +19,7 @@
-
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 4a12e1dafaf..83a7601f186 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -201,7 +201,7 @@
-
+
diff --git a/addons/stock/report/report_stock_move.py b/addons/stock/report/report_stock_move.py
old mode 100755
new mode 100644
diff --git a/addons/stock/report/report_stock_move_view.xml b/addons/stock/report/report_stock_move_view.xml
old mode 100755
new mode 100644
diff --git a/addons/stock/security/ir.model.access.csv b/addons/stock/security/ir.model.access.csv
index 6e84c8d0877..9265ac0b2c9 100644
--- a/addons/stock/security/ir.model.access.csv
+++ b/addons/stock/security/ir.model.access.csv
@@ -14,7 +14,7 @@
"access_stock_inventory","stock.inventory","model_stock_inventory","stock.group_stock_user",1,1,1,1
"access_stock_inventory_line","stock.inventory.line","model_stock_inventory_line","stock.group_stock_user",1,1,1,1
"access_stock_report_prodlots","stock.report.prodlots","model_stock_report_prodlots","stock.group_stock_manager",1,0,0,0
-"access_stock_location_product_manager","stock.location product manager","model_stock_location","product.group_product_manager",1,0,0,0
+"access_stock_location_product_manager","stock.location product manager","model_stock_location","product.group_product_manager",1,1,1,1
"access_stock_lines_date","report.stock.lines.date all","model_report_stock_lines_date",stock.group_stock_user,1,0,0,0
"access_stock_report_tracklots","stock.report.tracklots","model_stock_report_tracklots","stock.group_stock_user",1,1,1,1
"access_report_products_to_received_planned","report.products.to.received.planned","model_report_products_to_received_planned","stock.group_stock_user",1,1,1,1
@@ -24,15 +24,17 @@
"access_stock_move_scrap","stock.move.scrap","model_stock_move_scrap","stock.group_stock_user",1,1,1,1
"access_stock_move_split","stock.move.split","model_stock_move_split","stock.group_stock_user",1,1,1,1
"access_stock_move_split_lines","stock.move.split.lines","model_stock_move_split_lines","stock.group_stock_user",1,1,1,1
+"access_stock_move_split_lines_exist","stock.move.split.lines.exist","model_stock_move_split_lines_exist","stock.group_stock_user",1,1,1,1
"access_stock_inventory_set_stock_zero","stock.inventory.set.stock.zero","model_stock_inventory_set_stock_zero","stock.group_stock_user",1,1,1,1
"access_stock_fill_inventory","stock.fill.inventory","model_stock_fill_inventory","stock.group_stock_user",1,1,1,1
"access_stock_inventory_line_split","stock.inventory.line.split","model_stock_inventory_line_split","stock.group_stock_user",1,1,1,1
"access_stock_invoice_onshipping","stock.invoice.onshipping","model_stock_invoice_onshipping","stock.group_stock_user",1,1,1,1
-"access_stock_location_product","stock.location.product","model_stock_location_product","stock.group_stock_user",1,0,0,0
-"access_stock_traceability_upstream","stock.traceability.upstream","model_stock_traceability_upstream","stock.group_stock_user",1,0,0,0
-"access_stock_traceability_downstream","stock.traceability.downstream","model_stock_traceability_downstream","stock.group_stock_user",1,0,0,0
-"access_stock_traceability_lot_upstream","stock.traceability.lot.upstream","model_stock_traceability_lot_upstream","stock.group_stock_user",1,0,0,0
-"access_stock_traceability_lot_downstream","stock.traceability.lot.downstream","model_stock_traceability_lot_downstream","stock.group_stock_user",1,0,0,0
+"access_stock_location_product","stock.location.product","model_stock_location_product","stock.group_stock_user",1,1,1,1
+"access_stock_location_product_manager","stock.location.product manager","model_stock_location_product","stock.group_stock_manager",1,1,1,1
+"access_stock_traceability_upstream","stock.traceability.upstream","model_stock_traceability_upstream","stock.group_stock_user",1,1,1,1
+"access_stock_traceability_downstream","stock.traceability.downstream","model_stock_traceability_downstream","stock.group_stock_user",1,1,1,1
+"access_stock_traceability_lot_upstream","stock.traceability.lot.upstream","model_stock_traceability_lot_upstream","stock.group_stock_user",1,1,1,1
+"access_stock_traceability_lot_downstream","stock.traceability.lot.downstream","model_stock_traceability_lot_downstream","stock.group_stock_user",1,1,1,1
"access_stock_partial_picking",stock.partial.picking","model_stock_partial_picking",,1,1,1,1
"access_stock_partial_move","stock.partial.move","model_stock_partial_move",,1,1,1,1
"access_stock_inventory_merge","stock.inventory.merge","model_stock_inventory_merge","stock.group_stock_user",1,0,0,0
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 0e748ca418b..bdfa74adeee 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1250,7 +1250,6 @@ class stock_production_lot(osv.osv):
'revisions': fields.one2many('stock.production.lot.revision', 'lot_id', 'Revisions'),
'company_id': fields.many2one('res.company','Company',select=1),
}
-
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'name': lambda x, y, z, c: x.pool.get('ir.sequence').get(y, z, 'stock.lot.serial'),
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 55498908fba..d740f5b6374 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -922,7 +922,6 @@
-
@@ -946,27 +945,23 @@
-
-
+
+
-
-
-
-
+
+