From 87ff4b3c97b2d363228e0495c6f1bab2058930d9 Mon Sep 17 00:00:00 2001 From: "rha@tinyerp.com" <> Date: Fri, 4 Feb 2011 18:28:09 +0530 Subject: [PATCH 01/13] [IMP] account: Improve osv memory wizards bzr revid: rha@tinyerp.com-20110204125809-yuiqwhpoy0j1cyfb --- addons/account/report/account_balance.py | 2 ++ addons/account/wizard/account_move_journal.py | 2 +- addons/account/wizard/account_open_closed_fiscalyear.py | 2 ++ addons/account/wizard/account_report_balance_sheet.py | 8 ++++++++ addons/account/wizard/account_report_common.py | 5 ++++- addons/account/wizard/account_report_common_account.py | 6 ++++++ addons/account/wizard/account_report_common_journal.py | 8 ++++++++ addons/account/wizard/account_report_common_partner.py | 6 ++++++ addons/account/wizard/account_report_general_ledger.py | 2 +- addons/account/wizard/account_report_partner_balance.py | 2 +- addons/account/wizard/account_report_partner_ledger.py | 2 +- addons/account/wizard/account_report_profit_loss.py | 2 +- addons/account/wizard/account_validate_account_move.py | 3 +++ addons/account/wizard/account_vat.py | 3 +++ addons/auction/wizard/auction_lots_invoice.py | 4 ++-- 15 files changed, 49 insertions(+), 8 deletions(-) diff --git a/addons/account/report/account_balance.py b/addons/account/report/account_balance.py index 8fe9af39e00..e30a6ca3a1f 100644 --- a/addons/account/report/account_balance.py +++ b/addons/account/report/account_balance.py @@ -71,6 +71,8 @@ class account_balance(report_sxw.rml_parse, common_report_header): def lines(self, form, ids=[], done=None):#, level=1): def _process_child(accounts, disp_acc, parent): account_rec = [acct for acct in accounts if acct['id']==parent][0] + if isinstance(account_rec['parent_id'], tuple): + account_rec['parent_id'] = account_rec['parent_id'][0] currency_obj = self.pool.get('res.currency') acc_id = self.pool.get('account.account').browse(self.cr, self.uid, account_rec['id']) currency = acc_id.currency_id and acc_id.currency_id or acc_id.company_id.currency_id diff --git a/addons/account/wizard/account_move_journal.py b/addons/account/wizard/account_move_journal.py index 47b83bb23f1..db179ff00ff 100644 --- a/addons/account/wizard/account_move_journal.py +++ b/addons/account/wizard/account_move_journal.py @@ -148,7 +148,7 @@ class account_move_journal(osv.osv_memory): journal_id = self._get_journal(cr, uid, context) period_id = self._get_period(cr, uid, context) - target_move = self.read(cr, uid, ids, [])[0]['target_move'] + target_move = self.read(cr, uid, ids, [], context=context)[0]['target_move'] name = _("Journal Items") if journal_id: diff --git a/addons/account/wizard/account_open_closed_fiscalyear.py b/addons/account/wizard/account_open_closed_fiscalyear.py index 39c5be00f15..e4562d02ca9 100644 --- a/addons/account/wizard/account_open_closed_fiscalyear.py +++ b/addons/account/wizard/account_open_closed_fiscalyear.py @@ -35,6 +35,8 @@ class account_open_closed_fiscalyear(osv.osv_memory): move_obj = self.pool.get('account.move') data = self.read(cr, uid, ids, [], context=context)[0] + if isinstance(data['fyear_id'], tuple): + data['fyear_id'] = data['fyear_id'][0] data_fyear = fy_obj.browse(cr, uid, data['fyear_id'], context=context) if not data_fyear.end_journal_period_id: raise osv.except_osv(_('Error !'), _('No End of year journal defined for the fiscal year')) diff --git a/addons/account/wizard/account_report_balance_sheet.py b/addons/account/wizard/account_report_balance_sheet.py index b69c6d65d71..ef6e02c0d37 100644 --- a/addons/account/wizard/account_report_balance_sheet.py +++ b/addons/account/wizard/account_report_balance_sheet.py @@ -66,6 +66,14 @@ class account_bs_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['display_type','reserve_account_id'])[0]) + + for field in data['form'].keys(): + if isinstance(data['form'][field], tuple): + data['form'][field] = data['form'][field][0] + for ctx_field in data['form']['used_context'].keys(): + if isinstance(data['form']['used_context'][ctx_field], tuple): + data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] + if not data['form']['reserve_account_id']: raise osv.except_osv(_('Warning'),_('Please define the Reserve and Profit/Loss account for current user company !')) data = self.pre_print_report(cr, uid, ids, data, context=context) diff --git a/addons/account/wizard/account_report_common.py b/addons/account/wizard/account_report_common.py index a4f87f55da8..f7d7cac1c77 100644 --- a/addons/account/wizard/account_report_common.py +++ b/addons/account/wizard/account_report_common.py @@ -131,7 +131,10 @@ class account_common_report(osv.osv_memory): data = {} data['ids'] = context.get('active_ids', []) data['model'] = context.get('active_model', 'ir.ui.menu') - data['form'] = self.read(cr, uid, ids, ['date_from', 'date_to', 'fiscalyear_id', 'journal_ids', 'period_from', 'period_to', 'filter', 'chart_account_id', 'target_move'])[0] + data['form'] = self.read(cr, uid, ids, ['date_from', 'date_to', 'fiscalyear_id', 'journal_ids', 'period_from', 'period_to', 'filter', 'chart_account_id', 'target_move'], context=context)[0] + for field in data['form'].keys(): + if isinstance(data['form'][field], tuple): + data['form'][field] = data['form'][field][0] used_context = self._build_contexts(cr, uid, ids, data, context=context) data['form']['periods'] = used_context.get('periods', False) and used_context['periods'] or [] data['form']['used_context'] = used_context diff --git a/addons/account/wizard/account_report_common_account.py b/addons/account/wizard/account_report_common_account.py index 7205a9e53bf..ac496e9d22e 100644 --- a/addons/account/wizard/account_report_common_account.py +++ b/addons/account/wizard/account_report_common_account.py @@ -39,6 +39,12 @@ class account_common_account_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['display_account'], context=context)[0]) + for field in data['form'].keys(): + if isinstance(data['form'][field], tuple): + data['form'][field] = data['form'][field][0] + for ctx_field in data['form']['used_context'].keys(): + if isinstance(data['form']['used_context'][ctx_field], tuple): + data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] return data account_common_account_report() diff --git a/addons/account/wizard/account_report_common_journal.py b/addons/account/wizard/account_report_common_journal.py index 8e9db058d31..741b171bfba 100644 --- a/addons/account/wizard/account_report_common_journal.py +++ b/addons/account/wizard/account_report_common_journal.py @@ -42,6 +42,14 @@ class account_common_journal_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['amount_currency'], context=context)[0]) + + for field in data['form'].keys(): + if isinstance(data['form'][field], tuple): + data['form'][field] = data['form'][field][0] + for ctx_field in data['form']['used_context'].keys(): + if isinstance(data['form']['used_context'][ctx_field], tuple): + data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] + fy_ids = data['form']['fiscalyear_id'] and [data['form']['fiscalyear_id']] or self.pool.get('account.fiscalyear').search(cr, uid, [('state', '=', 'draft')], context=context) period_list = data['form']['periods'] or self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', fy_ids)], context=context) data['form']['active_ids'] = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', data['form']['journal_ids']), ('period_id', 'in', period_list)], context=context) diff --git a/addons/account/wizard/account_report_common_partner.py b/addons/account/wizard/account_report_common_partner.py index 05003041eeb..1cf3dfa5a35 100644 --- a/addons/account/wizard/account_report_common_partner.py +++ b/addons/account/wizard/account_report_common_partner.py @@ -40,6 +40,12 @@ class account_common_partner_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['result_selection'], context=context)[0]) + for field in data['form'].keys(): + if isinstance(data['form'][field], tuple): + data['form'][field] = data['form'][field][0] + for ctx_field in data['form']['used_context'].keys(): + if isinstance(data['form']['used_context'][ctx_field], tuple): + data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] return data account_common_partner_report() diff --git a/addons/account/wizard/account_report_general_ledger.py b/addons/account/wizard/account_report_general_ledger.py index c08894bfadd..e3ad832e6fb 100644 --- a/addons/account/wizard/account_report_general_ledger.py +++ b/addons/account/wizard/account_report_general_ledger.py @@ -50,7 +50,7 @@ class account_report_general_ledger(osv.osv_memory): if context is None: context = {} data = self.pre_print_report(cr, uid, ids, data, context=context) - data['form'].update(self.read(cr, uid, ids, ['landscape', 'initial_balance', 'amount_currency', 'sortby'])[0]) + data['form'].update(self.read(cr, uid, ids, ['landscape', 'initial_balance', 'amount_currency', 'sortby'], context=context)[0]) if not data['form']['fiscalyear_id']:# GTK client problem onchange does not consider in save record data['form'].update({'initial_balance': False}) if data['form']['landscape']: diff --git a/addons/account/wizard/account_report_partner_balance.py b/addons/account/wizard/account_report_partner_balance.py index eff9e71cb72..5853824e0ed 100644 --- a/addons/account/wizard/account_report_partner_balance.py +++ b/addons/account/wizard/account_report_partner_balance.py @@ -42,7 +42,7 @@ class account_partner_balance(osv.osv_memory): if context is None: context = {} data = self.pre_print_report(cr, uid, ids, data, context=context) - data['form'].update(self.read(cr, uid, ids, ['display_partner'])[0]) + data['form'].update(self.read(cr, uid, ids, ['display_partner'], context=context)[0]) return { 'type': 'ir.actions.report.xml', 'report_name': 'account.partner.balance', diff --git a/addons/account/wizard/account_report_partner_ledger.py b/addons/account/wizard/account_report_partner_ledger.py index 1a09a6344f4..4211b1db866 100644 --- a/addons/account/wizard/account_report_partner_ledger.py +++ b/addons/account/wizard/account_report_partner_ledger.py @@ -47,7 +47,7 @@ class account_partner_ledger(osv.osv_memory): if context is None: context = {} data = self.pre_print_report(cr, uid, ids, data, context=context) - data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'reconcil', 'page_split', 'amount_currency'])[0]) + data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'reconcil', 'page_split', 'amount_currency'], context=context)[0]) if data['form']['page_split']: return { 'type': 'ir.actions.report.xml', diff --git a/addons/account/wizard/account_report_profit_loss.py b/addons/account/wizard/account_report_profit_loss.py index c526550e789..f84b5db8f1d 100644 --- a/addons/account/wizard/account_report_profit_loss.py +++ b/addons/account/wizard/account_report_profit_loss.py @@ -42,7 +42,7 @@ class account_pl_report(osv.osv_memory): if context is None: context = {} data = self.pre_print_report(cr, uid, ids, data, context=context) - data['form'].update(self.read(cr, uid, ids, ['display_type'])[0]) + data['form'].update(self.read(cr, uid, ids, ['display_type'], context=context)[0]) if data['form']['display_type']: return { 'type': 'ir.actions.report.xml', diff --git a/addons/account/wizard/account_validate_account_move.py b/addons/account/wizard/account_validate_account_move.py index ddcfa2c5353..c2fcfbfd5ab 100644 --- a/addons/account/wizard/account_validate_account_move.py +++ b/addons/account/wizard/account_validate_account_move.py @@ -34,6 +34,9 @@ class validate_account_move(osv.osv_memory): if context is None: context = {} data = self.read(cr, uid, ids, context=context)[0] + for field in data.keys(): + if isinstance(data[field], tuple): + data[field] = data[field][0] ids_move = obj_move.search(cr, uid, [('state','=','draft'),('journal_id','=',data['journal_id']),('period_id','=',data['period_id'])]) if not ids_move: raise osv.except_osv(_('Warning'), _('Specified Journal does not have any account move entries in draft state for this period')) diff --git a/addons/account/wizard/account_vat.py b/addons/account/wizard/account_vat.py index 863ae055428..3e77979cd3b 100644 --- a/addons/account/wizard/account_vat.py +++ b/addons/account/wizard/account_vat.py @@ -47,6 +47,9 @@ class account_vat_declaration(osv.osv_memory): datas = {'ids': context.get('active_ids', [])} datas['model'] = 'account.tax.code' datas['form'] = self.read(cr, uid, ids)[0] + for field in datas['form'].keys(): + if isinstance(datas['form'][field], tuple): + datas['form'][field] = datas['form'][field][0] datas['form']['company_id'] = self.pool.get('account.tax.code').browse(cr, uid, [datas['form']['chart_tax_id']], context=context)[0].company_id.id return { 'type': 'ir.actions.report.xml', diff --git a/addons/auction/wizard/auction_lots_invoice.py b/addons/auction/wizard/auction_lots_invoice.py index 66bb5e42f2b..d06dcf1db0b 100644 --- a/addons/auction/wizard/auction_lots_invoice.py +++ b/addons/auction/wizard/auction_lots_invoice.py @@ -46,7 +46,7 @@ class auction_lots_invoice(osv.osv_memory): @param context: A standard dictionary @return: A dictionary which of fields with values. """ - if context is None: + if context is None: context = {} res = super(auction_lots_invoice, self).default_get(cr, uid, fields, context=context) service = netsvc.LocalService("object_proxy") @@ -103,7 +103,7 @@ class auction_lots_invoice(osv.osv_memory): @param ids: List of Auction lots make invoice buyer’s IDs @return: dictionary of account invoice form. """ - if context is None: + if context is None: context = {} service = netsvc.LocalService("object_proxy") datas = {'ids' : context.get('active_ids',[])} From 1334243f063a441b8a6bafc7fe93fc4b65880538 Mon Sep 17 00:00:00 2001 From: rha Date: Wed, 9 Feb 2011 12:05:43 +0530 Subject: [PATCH 02/13] [IMP] account: improvement in osc memory wizards bzr revid: rha@rha-desktop-20110209063543-63e1qeizm0cnm1u0 --- addons/account/wizard/account_report_balance_sheet.py | 11 ++--------- .../account/wizard/account_report_common_account.py | 6 ------ .../account/wizard/account_report_common_journal.py | 8 -------- .../account/wizard/account_report_common_partner.py | 6 ------ 4 files changed, 2 insertions(+), 29 deletions(-) diff --git a/addons/account/wizard/account_report_balance_sheet.py b/addons/account/wizard/account_report_balance_sheet.py index ef6e02c0d37..0e234c5cc39 100644 --- a/addons/account/wizard/account_report_balance_sheet.py +++ b/addons/account/wizard/account_report_balance_sheet.py @@ -65,15 +65,8 @@ class account_bs_report(osv.osv_memory): def _print_report(self, cr, uid, ids, data, context=None): if context is None: context = {} - data['form'].update(self.read(cr, uid, ids, ['display_type','reserve_account_id'])[0]) - - for field in data['form'].keys(): - if isinstance(data['form'][field], tuple): - data['form'][field] = data['form'][field][0] - for ctx_field in data['form']['used_context'].keys(): - if isinstance(data['form']['used_context'][ctx_field], tuple): - data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] - + record = self.browse(cr, uid, ids, context=context)[0] + data['form'].update({'display_type':record.display_type, 'reserve_account_id':record.reserve_account_id.id}) if not data['form']['reserve_account_id']: raise osv.except_osv(_('Warning'),_('Please define the Reserve and Profit/Loss account for current user company !')) data = self.pre_print_report(cr, uid, ids, data, context=context) diff --git a/addons/account/wizard/account_report_common_account.py b/addons/account/wizard/account_report_common_account.py index ac496e9d22e..7205a9e53bf 100644 --- a/addons/account/wizard/account_report_common_account.py +++ b/addons/account/wizard/account_report_common_account.py @@ -39,12 +39,6 @@ class account_common_account_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['display_account'], context=context)[0]) - for field in data['form'].keys(): - if isinstance(data['form'][field], tuple): - data['form'][field] = data['form'][field][0] - for ctx_field in data['form']['used_context'].keys(): - if isinstance(data['form']['used_context'][ctx_field], tuple): - data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] return data account_common_account_report() diff --git a/addons/account/wizard/account_report_common_journal.py b/addons/account/wizard/account_report_common_journal.py index 741b171bfba..8e9db058d31 100644 --- a/addons/account/wizard/account_report_common_journal.py +++ b/addons/account/wizard/account_report_common_journal.py @@ -42,14 +42,6 @@ class account_common_journal_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['amount_currency'], context=context)[0]) - - for field in data['form'].keys(): - if isinstance(data['form'][field], tuple): - data['form'][field] = data['form'][field][0] - for ctx_field in data['form']['used_context'].keys(): - if isinstance(data['form']['used_context'][ctx_field], tuple): - data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] - fy_ids = data['form']['fiscalyear_id'] and [data['form']['fiscalyear_id']] or self.pool.get('account.fiscalyear').search(cr, uid, [('state', '=', 'draft')], context=context) period_list = data['form']['periods'] or self.pool.get('account.period').search(cr, uid, [('fiscalyear_id', 'in', fy_ids)], context=context) data['form']['active_ids'] = self.pool.get('account.journal.period').search(cr, uid, [('journal_id', 'in', data['form']['journal_ids']), ('period_id', 'in', period_list)], context=context) diff --git a/addons/account/wizard/account_report_common_partner.py b/addons/account/wizard/account_report_common_partner.py index 1cf3dfa5a35..05003041eeb 100644 --- a/addons/account/wizard/account_report_common_partner.py +++ b/addons/account/wizard/account_report_common_partner.py @@ -40,12 +40,6 @@ class account_common_partner_report(osv.osv_memory): if context is None: context = {} data['form'].update(self.read(cr, uid, ids, ['result_selection'], context=context)[0]) - for field in data['form'].keys(): - if isinstance(data['form'][field], tuple): - data['form'][field] = data['form'][field][0] - for ctx_field in data['form']['used_context'].keys(): - if isinstance(data['form']['used_context'][ctx_field], tuple): - data['form']['used_context'][ctx_field] = data['form']['used_context'][ctx_field][0] return data account_common_partner_report() From a03052d81739c71902a97d04d4481b71180ec33c Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Thu, 10 Feb 2011 12:46:28 +0530 Subject: [PATCH 03/13] [Fix] mrp: BOM allows self reference recursion error lp bug: https://launchpad.net/bugs/713221 fixed bzr revid: rha@tinyerp.com-20110210071628-hnybpta0k5k0x8jo --- addons/mrp/mrp.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 3ba8d4bde47..ac392f6565b 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -240,10 +240,28 @@ class mrp_bom(osv.osv): return False level -= 1 return True - _constraints = [ - (_check_recursion, 'Error ! You can not create recursive BoM.', ['parent_id']) - ] + def _check_product(self, cr, uid, ids, context=None): + all_prod = [] + bom_obj = self.pool.get('mrp.bom') + boms = self.browse(cr, uid, ids, context=context) + def check_bom(boms): + res = True + for bom in boms: + if bom.product_id.id in all_prod: + res = res and False + all_prod.append(bom.product_id.id) + lines = bom.bom_lines + if lines: + newboms = [a for a in lines if a not in boms] + res = res and check_bom(newboms) + return res + return check_bom(boms) + + _constraints = [ + (_check_recursion, 'Error ! You can not create recursive BoM.', ['parent_id']), + (_check_product, 'BoM line product should not be same as BoM product.', ['product_id']), + ] def onchange_product_id(self, cr, uid, ids, product_id, name, context=None): """ Changes UoM and name if product_id changes. From 9be8ea59955ed7960112aa3ae429ea26082d1926 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Fri, 11 Feb 2011 16:55:20 +0530 Subject: [PATCH 04/13] [FIX]mrp_operation:cancelling MO given - given arguments wrong lp bug: https://launchpad.net/bugs/709065 fixed bzr revid: ron@tinyerp.com-20110211112520-c79ulbypasq38stt --- addons/mrp_operations/mrp_operations.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index df5456baa4a..a01d22717b6 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -244,10 +244,12 @@ class mrp_production(osv.osv): wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr) return super(mrp_production,self).action_in_production(cr, uid, ids) - def action_cancel(self, cr, uid, ids): + def action_cancel(self, cr, uid, ids, context=None): """ Cancels work order if production order is canceled. @return: Super method """ + if context is None: + context = {} obj = self.browse(cr, uid, ids)[0] wf_service = netsvc.LocalService("workflow") for workcenter_line in obj.workcenter_lines: From f394ec23578fd359fec475c78fafcbce65331d92 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Fri, 11 Feb 2011 18:29:20 +0530 Subject: [PATCH 05/13] [FIX] Purchase:[PS] Purchase order line_ Unit of measure lp bug: https://launchpad.net/bugs/716117 fixed bzr revid: aag@tinyerp.co.in-20110211125920-iarez31rjra2bep8 --- addons/purchase/purchase.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 2527d0d6a7e..2b4ffb69f1f 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -662,7 +662,6 @@ class purchase_order_line(osv.osv): 'notes': notes or'', 'product_uom' : uom or False}, 'domain':{'product_uom':[]}} res = {} prod= self.pool.get('product.product').browse(cr, uid, product) - product_uom_pool = self.pool.get('product.uom') lang=False if partner_id: @@ -678,6 +677,11 @@ class purchase_order_line(osv.osv): date_order = time.strftime('%Y-%m-%d') qty = qty or 1.0 seller_delay = 0 + if uom: + uom1_cat = prod.uom_id.category_id.id + uom2_cat = product_uom_pool.browse(cr, uid, uom).category_id.id + if uom1_cat != uom2_cat: + uom = False prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id], context=context)[0][1] res = {} @@ -704,14 +708,13 @@ class purchase_order_line(osv.osv): 'taxes_id':map(lambda x: x.id, prod.supplier_taxes_id), 'date_planned': date_planned or dt,'notes': notes or prod.description_purchase, 'product_qty': qty, - 'product_uom': uom}}) + 'product_uom': prod.uom_id.id}}) domain = {} taxes = self.pool.get('account.tax').browse(cr, uid,map(lambda x: x.id, prod.supplier_taxes_id)) fpos = fiscal_position and self.pool.get('account.fiscal.position').browse(cr, uid, fiscal_position) or False res['value']['taxes_id'] = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, taxes) - - res2 = self.pool.get('product.uom').read(cr, uid, [uom], ['category_id']) + res2 = self.pool.get('product.uom').read(cr, uid, [prod.uom_id.id], ['category_id']) res3 = prod.uom_id.category_id.id domain = {'product_uom':[('category_id','=',res2[0]['category_id'][0])]} if res2[0]['category_id'][0] != res3: From bf880017ea3b22845b3c26bcb0c25b137f2da64f Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Fri, 11 Feb 2011 18:32:00 +0530 Subject: [PATCH 06/13] [FIX]product:Product UoM conversion error needs definition lp bug: https://launchpad.net/bugs/716705 fixed bzr revid: ron@tinyerp.com-20110211130200-hsc3iaasjizn5ipn --- addons/product/product.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/product/product.py b/addons/product/product.py index 801e647e3f2..c1588c2295b 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -139,7 +139,7 @@ class product_uom(osv.osv): context = {} if from_unit.category_id.id <> to_unit.category_id.id: if context.get('raise-exception', True): - raise osv.except_osv(_('Error !'), _('Conversion from Product UoM m to Default UoM PCE is not possible as they both belong to different Category!.')) + raise osv.except_osv(_('Error !'), _('Conversion from Product UoM %s to Default UoM %s is not possible as they both belong to different Category!.') % (from_unit.name,to_unit.name,)) else: return qty amount = qty / from_unit.factor From b9fb0a7ff9ced4e3e59892ba865eeafa6a68dab6 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Mon, 14 Feb 2011 12:24:13 +0530 Subject: [PATCH 07/13] [IMP] STOCK: Improvement in OSV wiz , Remove stock_move_track wiz bzr revid: aag@tinyerp.co.in-20110214065413-jd4ow4sx80qaqgmc --- addons/stock/i18n/stock.pot | 5 ----- addons/stock/wizard/stock_move.py | 29 ------------------------- addons/stock/wizard/stock_move_view.xml | 28 ------------------------ 3 files changed, 62 deletions(-) diff --git a/addons/stock/i18n/stock.pot b/addons/stock/i18n/stock.pot index 4af2dea7948..cad8800f31a 100644 --- a/addons/stock/i18n/stock.pot +++ b/addons/stock/i18n/stock.pot @@ -1114,7 +1114,6 @@ msgstr "" #: view:stock.invoice.onshipping:0 #: view:stock.location.product:0 #: view:stock.move:0 -#: view:stock.move.track:0 #: view:stock.picking:0 #: view:stock.split.into:0 msgid "_Cancel" @@ -1693,7 +1692,6 @@ msgid "Search Inventory" msgstr "" #. module: stock -#: field:stock.move.track,quantity:0 msgid "Quantity per lot" msgstr "" @@ -1920,7 +1918,6 @@ msgstr "" #. module: stock #: model:ir.actions.act_window,name:stock.track_line_old -#: view:stock.move.track:0 msgid "Tracking a move" msgstr "" @@ -2461,7 +2458,6 @@ msgid "If checked, products contained in child locations of selected location wi msgstr "" #. module: stock -#: field:stock.move.track,tracking_prefix:0 msgid "Tracking prefix" msgstr "" @@ -2901,7 +2897,6 @@ msgstr "" #: view:stock.move.consume:0 #: view:stock.move.scrap:0 #: view:stock.move.split:0 -#: view:stock.move.track:0 #: view:stock.split.into:0 msgid "Ok" msgstr "" diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py index 8cfdc648349..1ce2889abb3 100644 --- a/addons/stock/wizard/stock_move.py +++ b/addons/stock/wizard/stock_move.py @@ -21,35 +21,6 @@ from osv import fields, osv -class stock_move_track(osv.osv_memory): - _name = "stock.move.track" - _description = "Track moves" - - _columns = { - 'tracking_prefix': fields.char('Tracking prefix', size=64), - 'quantity': fields.float("Quantity per lot") - } - - _defaults = { - 'quantity': lambda *x: 1 - } - - def track_lines(self, cr, uid, ids, context=None): - """ To track stock moves lines - @param self: The object pointer. - @param cr: A database cursor - @param uid: ID of the user currently logged in - @param ids: An ID or list of IDs if we want more than one - @param context: A standard dictionary - @return: - """ - datas = self.read(cr, uid, ids)[0] - move_obj = self.pool.get('stock.move') - move_obj._track_lines(cr, uid, context['active_id'], datas, context=context) - return {'type': 'ir.actions.act_window_close'} - -stock_move_track() - class stock_move_consume(osv.osv_memory): _name = "stock.move.consume" _description = "Consume Products" diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml index baaa581b4f3..7f0048ad219 100644 --- a/addons/stock/wizard/stock_move_view.xml +++ b/addons/stock/wizard/stock_move_view.xml @@ -2,34 +2,6 @@ - - Tracking a move - stock.move.track - form - -
- - - - -