diff --git a/addons/account/account.py b/addons/account/account.py index b01f659a70d..e19c4027039 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -1620,13 +1620,41 @@ class account_tax(osv.osv): 'type_tax_use': fields.selection([('sale','Sale'),('purchase','Purchase'),('all','All')], 'Tax Application', required=True) } - def search(self, cr, uid, args, offset=0, limit=None, order=None, - context=None, count=False): + + def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=80): + """ + Returns a list of tupples containing id, name, as internally it is called {def name_get} + result format : {[(id, name), (id, name), ...]} + + @param cr: A database cursor + @param user: ID of the user currently logged in + @param name: name to search + @param args: other arguments + @param operator: default operator is 'ilike', it can be changed + @param context: context arguments, like lang, time zone + @param limit: Returns first 'n' ids of complete result, default is 80. + + @return: Returns a list of tupples containing id and name + """ + + if not args: + args=[] + if not context: + context={} + ids = [] + ids = self.search(cr, user, args, limit=limit, context=context) + return self.name_get(cr, user, ids, context=context) + + def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): if context and context.has_key('type'): - if context['type'] in ('out_invoice','out_refund'): - args.append(('type_tax_use','in',['sale','all'])) - elif context['type'] in ('in_invoice','in_refund'): - args.append(('type_tax_use','in',['purchase','all'])) + if context.get('type') in ('out_invoice','out_refund'): + args += [('type_tax_use','in',['sale','all'])] + elif context.get('type') in ('in_invoice','in_refund'): + args += [('type_tax_use','in',['purchase','all'])] + + if context and context.has_key('journal_id'): + args += [('type_tax_use','in',[context.get('journal_id'),'all'])] + return super(account_tax, self).search(cr, uid, args, offset, limit, order, context, count) def name_get(self, cr, uid, ids, context={}): @@ -1643,6 +1671,7 @@ class account_tax(osv.osv): if user.company_id: return user.company_id.id return self.pool.get('res.company').search(cr, uid, [('parent_id', '=', False)])[0] + _defaults = { 'python_compute': lambda *a: '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or None\n# partner : res.partner object or None\n\nresult = price_unit * 0.10''', 'python_compute_inv': lambda *a: '''# price_unit\n# address : res.partner.address object or False\n# product : product.product object or False\n\nresult = price_unit * 0.10''', diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 9dfb5fe1e6a..1d839b0f86e 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -873,20 +873,14 @@ class account_move_line(osv.osv): elif field == 'credit': attrs.append('sum="Total credit"') elif field == 'account_tax_id': - attrs.append('domain="[(\'parent_id\',\'=\',False), (\'type_tax_use\',\'=\',context.get(journal_id.type, \'sale\'))]"') + attrs.append('domain="[(\'parent_id\',\'=\',False)]"') elif field == 'account_id' and journal.id: attrs.append('domain="[(\'journal_id\', \'=\', '+str(journal.id)+'),(\'type\',\'<>\',\'view\'), (\'type\',\'<>\',\'closed\')]" on_change="onchange_account_id(account_id, partner_id)"') elif field == 'partner_id': attrs.append('on_change="onchange_partner_id(move_id, partner_id, account_id, debit, credit, date, journal_id)"') -# elif field == 'date': -# attrs.append('on_change="onchange_date(date)"') + elif field == 'journal_id': + attrs.append("context=\"{'journal_id':journal_id.type}\"") -# if field.readonly: -# attrs.append('readonly="1"') -# if field.required: -# attrs.append('required="1"') -# else: -# attrs.append('required="0"') if field in ('amount_currency','currency_id'): attrs.append('on_change="onchange_currency(account_id, amount_currency,currency_id, date, journal_id)"') diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index d1cb2558f38..eaae4b35ed4 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -152,12 +152,16 @@ - - - - - - + + + + + + + + + + diff --git a/addons/account_voucher_payment/account_voucher_payment.py b/addons/account_voucher_payment/account_voucher_payment.py index 6046e4bc503..8c4e3984da4 100755 --- a/addons/account_voucher_payment/account_voucher_payment.py +++ b/addons/account_voucher_payment/account_voucher_payment.py @@ -81,10 +81,10 @@ class account_voucher(osv.osv): invoice_pool = self.pool.get('account.invoice') for inv in self.browse(cr, uid, ids): - + if inv.move_id: continue - + journal = journal_pool.browse(cr, uid, inv.journal_id.id) if inv.type in ('journal_pur_voucher', 'journal_sale_vou'): if journal.invoice_sequence_id: