From f162ad8845ada71545bfcd79d5a77e923e904618 Mon Sep 17 00:00:00 2001
From: "rha@tinyerp.com" <>
Date: Mon, 3 Jan 2011 16:24:56 +0530
Subject: [PATCH 01/82] [Fix] stock: incoming shipments price is wrong
lp bug: https://launchpad.net/bugs/696372 fixed
bzr revid: rha@tinyerp.com-20110103105456-46dhel6b7b8891uc
---
addons/purchase/purchase.py | 3 +-
addons/stock/wizard/stock_partial_picking.py | 46 ++++++++++----------
2 files changed, 25 insertions(+), 24 deletions(-)
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 0de19189fc3..6adb726b97a 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -455,6 +455,7 @@ class purchase_order(osv.osv):
'state': 'draft',
'purchase_line_id': order_line.id,
'company_id': order.company_id.id,
+ 'price_unit': order_line.price_unit
})
if order_line.move_dest_id:
self.pool.get('stock.move').write(cr, uid, [order_line.move_dest_id.id], {'location_id':order.location_id.id})
@@ -672,7 +673,7 @@ class purchase_order_line(osv.osv):
seller_delay = 0
prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id], context=context)[0][1]
- res = {}
+ res = {}
for s in prod.seller_ids:
if s.name.id == partner_id:
seller_delay = s.delay
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index ad75c142a96..305304e8c7e 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -32,24 +32,24 @@ class stock_partial_picking(osv.osv_memory):
'product_moves_out' : fields.one2many('stock.move.memory.out', 'wizard_id', 'Moves'),
'product_moves_in' : fields.one2many('stock.move.memory.in', 'wizard_id', 'Moves'),
}
-
+
def __is_in(self,cr, uid, pick_ids):
"""
@return: True if one of the moves has as picking type 'in'
"""
if not pick_ids:
return False
-
+
pick_obj = self.pool.get('stock.picking')
pick_ids = pick_obj.search(cr, uid, [('id','in',pick_ids)])
-
-
+
+
for pick in pick_obj.browse(cr, uid, pick_ids):
for move in pick.move_lines:
if pick.type == 'in' and move.product_id.cost_method == 'average':
return True
return False
-
+
def __get_picking_type(self, cr, uid, pick_ids):
if self.__is_in(cr, uid, pick_ids):
return "product_moves_in"
@@ -62,11 +62,11 @@ class stock_partial_picking(osv.osv_memory):
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
-
-
+
+
picking_ids = context.get('active_ids', False)
picking_type = self.__get_picking_type(cr, uid, picking_ids)
-
+
_moves_arch_lst = """
@@ -41,4 +41,4 @@
-
\ No newline at end of file
+
From 1e844a56c757acbff16b665c9535ba4a04394962 Mon Sep 17 00:00:00 2001
From: Fabien Meghazi
Date: Mon, 10 Jan 2011 11:41:22 +0100
Subject: [PATCH 57/82] [FIX] crm: phonecall view taking half width on web
client
bzr revid: fme@openerp.com-20110110104122-yowzu7iluwsilpa3
---
.../crm_opportunity_to_phonecall_view.xml | 26 +++++++++----------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
index be0cd910d51..23ddaad5bfe 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
@@ -11,20 +11,18 @@
From 186713ef9d3d56663a71c198e48a7dc52a504b95 Mon Sep 17 00:00:00 2001
From: "qdp-launchpad@tinyerp.com" <>
Date: Mon, 10 Jan 2011 12:15:33 +0100
Subject: [PATCH 58/82] [FIX] account, aged balance report: removed fiscalyear
filter and field from the query and wizard
bzr revid: qdp-launchpad@tinyerp.com-20110110111533-xwo0j4nkm1de8392
---
addons/account/account_move_line.py | 6 +++++-
addons/account/report/account_aged_partner_balance.py | 4 +++-
.../wizard/account_report_aged_partner_balance_view.xml | 1 -
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 60228a7ffe0..24ae867e68a 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -45,7 +45,11 @@ class account_move_line(osv.osv):
if context.get('company_id', False):
company_clause = " AND " +obj+".company_id = %s" % context.get('company_id', False)
if not context.get('fiscalyear', False):
- fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('state', '=', 'draft')])
+ if context.get('all_fiscalyear', False):
+ #this option is needed by the aged balance report because otherwise, if we search only the draft ones, an open invoice of a closed fiscalyear won't be displayed
+ fiscalyear_ids = fiscalyear_obj.search(cr, uid, [])
+ else:
+ fiscalyear_ids = fiscalyear_obj.search(cr, uid, [('state', '=', 'draft')])
else:
#for initial balance as well as for normal query, we check only the selected FY because the best practice is to generate the FY opening entries
fiscalyear_ids = [context['fiscalyear']]
diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py
index 20c1fe7cc55..2812fd409e6 100644
--- a/addons/account/report/account_aged_partner_balance.py
+++ b/addons/account/report/account_aged_partner_balance.py
@@ -45,7 +45,9 @@ class aged_trial_report(report_sxw.rml_parse, common_report_header):
def set_context(self, objects, data, ids, report_type=None):
obj_move = self.pool.get('account.move.line')
- self.query = obj_move._query_get(self.cr, self.uid, obj='l', context=data['form'].get('used_context', {}))
+ ctx = data['form'].get('used_context', {})
+ ctx.update({'fiscalyear': False, 'all_fiscalyear': True})
+ self.query = obj_move._query_get(self.cr, self.uid, obj='l', context=ctx)
self.direction_selection = data['form'].get('direction_selection', 'past')
self.target_move = data['form'].get('target_move', 'all')
self.date_from = data['form'].get('date_from', time.strftime('%Y-%m-%d'))
diff --git a/addons/account/wizard/account_report_aged_partner_balance_view.xml b/addons/account/wizard/account_report_aged_partner_balance_view.xml
index 195ccbef111..fb0952e4614 100644
--- a/addons/account/wizard/account_report_aged_partner_balance_view.xml
+++ b/addons/account/wizard/account_report_aged_partner_balance_view.xml
@@ -13,7 +13,6 @@
-
From 45fcc2b1ba4f091c6279a4929bc53112e577a45c Mon Sep 17 00:00:00 2001
From: "qdp-launchpad@tinyerp.com" <>
Date: Mon, 10 Jan 2011 12:44:00 +0100
Subject: [PATCH 59/82] [FIX] account: fixed the query_get of account.move.line
bzr revid: qdp-launchpad@tinyerp.com-20110110114400-dnbowby75l9rlr7k
---
addons/account/account_move_line.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 24ae867e68a..9010fc3594d 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -78,7 +78,7 @@ class account_move_line(osv.osv):
context['periods'] = fiscalperiod_obj.build_ctx_periods(cr, uid, context['period_from'], context['period_to'])
if context.get('periods', False):
if initial_bal:
- query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s) %s %s)" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
+ query = obj+".state <> 'draft' AND "+obj+".period_id IN (SELECT id FROM account_period WHERE fiscalyear_id IN (%s)) %s %s" % (fiscalyear_clause, where_move_state, where_move_lines_by_date)
period_ids = fiscalperiod_obj.search(cr, uid, [('id', 'in', context['periods'])], order='date_start', limit=1)
if period_ids and period_ids[0]:
first_period = fiscalperiod_obj.browse(cr, uid, period_ids[0], context=context)
From 0bffe9bf6996c8e363a9db7dd80a560797d26678 Mon Sep 17 00:00:00 2001
From: "ron@tinyerp.com" <>
Date: Mon, 10 Jan 2011 17:25:25 +0530
Subject: [PATCH 60/82] [FIX]stock:Backorder Cannot be create on Incoming
Shipment
lp bug: https://launchpad.net/bugs/697085 fixed
bzr revid: ron@tinyerp.com-20110110115525-ctcfqhgisj14abvo
---
addons/stock/wizard/stock_partial_picking.py | 172 +++++++++----------
1 file changed, 77 insertions(+), 95 deletions(-)
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index ad75c142a96..45a12208101 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -28,54 +28,71 @@ class stock_partial_picking(osv.osv_memory):
_name = "stock.partial.picking"
_description = "Partial Picking"
_columns = {
- 'date': fields.datetime('Date', required=True),
- 'product_moves_out' : fields.one2many('stock.move.memory.out', 'wizard_id', 'Moves'),
- 'product_moves_in' : fields.one2many('stock.move.memory.in', 'wizard_id', 'Moves'),
+ 'date': fields.datetime('Date', required=True),
+ 'product_moves_out' : fields.one2many('stock.move.memory.out', 'wizard_id', 'Moves'),
+ 'product_moves_in' : fields.one2many('stock.move.memory.in', 'wizard_id', 'Moves'),
}
- def __is_in(self,cr, uid, pick_ids):
+ def get_picking_type(self, cr, uid, picking, context=None):
+ picking_type = picking.type
+ for move in picking.move_lines:
+ if picking.type == 'in' and move.product_id.cost_method == 'average':
+ picking_type = 'in'
+ return picking_type
+
+ def default_get(self, cr, uid, fields, context=None):
+ """ To get default values for the object.
+ @param self: The object pointer.
+ @param cr: A database cursor
+ @param uid: ID of the user currently logged in
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary which of fields with values.
"""
- @return: True if one of the moves has as picking type 'in'
- """
- if not pick_ids:
- return False
+ if context is None:
+ context = {}
+
+ pick_obj = self.pool.get('stock.picking')
+ res = super(stock_partial_picking, self).default_get(cr, uid, fields, context=context)
+ picking_ids = context.get('active_ids', [])
+ if not picking_ids:
+ return res
+
+ result = []
+ for pick in pick_obj.browse(cr, uid, picking_ids, context=context):
+ pick_type = self.get_picking_type(cr, uid, pick, context=context)
+ for m in pick.move_lines:
+ if m.state in ('done', 'cancel'):
+ continue
+ result.append(self.__create_partial_picking_memory(m, pick_type))
+
+ if 'product_moves_in' in fields:
+ res.update({'product_moves_in': result})
+ if 'product_moves_out' in fields:
+ res.update({'product_moves_out': result})
+ if 'date' in fields:
+ res.update({'date': time.strftime('%Y-%m-%d %H:%M:%S')})
+ return res
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
+ result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
pick_obj = self.pool.get('stock.picking')
- pick_ids = pick_obj.search(cr, uid, [('id','in',pick_ids)])
-
-
- for pick in pick_obj.browse(cr, uid, pick_ids):
- for move in pick.move_lines:
- if pick.type == 'in' and move.product_id.cost_method == 'average':
- return True
- return False
-
- def __get_picking_type(self, cr, uid, pick_ids):
- if self.__is_in(cr, uid, pick_ids):
- return "product_moves_in"
- else:
- return "product_moves_out"
-
- def view_init(self, cr, uid, fields_list, context=None):
- res = super(stock_partial_picking, self).view_init(cr, uid, fields_list, context=context)
- return res
-
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False):
- result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
-
-
picking_ids = context.get('active_ids', False)
- picking_type = self.__get_picking_type(cr, uid, picking_ids)
+
+ for pick in pick_obj.browse(cr, uid, picking_ids, context=context):
+ picking_type = self.get_picking_type(cr, uid, pick, context=context)
_moves_arch_lst = """