=== modified file 'account/wizard/wizard_pay_invoice.py' --- account/wizard/wizard_pay_invoice.py 2009-03-11 13:41:51 +0000 +++ account/wizard/wizard_pay_invoice.py 2009-10-20 11:02:06 +0000 @@ -25,6 +25,7 @@ import pooler import time from tools.translate import _ +import tools pay_form = '''
@@ -37,7 +38,7 @@
''' pay_fields = { - 'amount': {'string': 'Amount paid', 'type':'float', 'required':True}, + 'amount': {'string': 'Amount paid', 'type':'float', 'required':True, 'digits': (16,int(tools.config['price_accuracy']))}, 'name': {'string': 'Entry Name', 'type':'char', 'size': 64, 'required':True}, 'date': {'string': 'Payment date', 'type':'date', 'required':True, 'default':lambda *args: time.strftime('%Y-%m-%d')}, 'journal_id': {'string': 'Journal/Payment Mode', 'type': 'many2one', 'relation':'account.journal', 'required':True, 'domain':[('type','=','cash')]}, @@ -58,7 +59,13 @@ journal = pool.get('account.journal').browse(cr, uid, data['form']['journal_id'], context) if journal.currency and invoice.company_id.currency_id.id<>journal.currency.id: ctx = {'date':data['form']['date']} - amount = cur_obj.compute(cr, uid, journal.currency.id, invoice.company_id.currency_id.id, amount, context=ctx) + amount = cur_obj.compute(cr, uid, journal.currency.id, invoice.company_id.currency_id.id, amount, round=True, context=ctx) + + # Checking the condition when invoice has a different currency than company currency + if invoice.company_id.currency_id.id<>invoice.currency_id.id: + ctx = {'date':data['form']['date']} + amount = cur_obj.compute(cr, uid, invoice.currency_id.id, invoice.company_id.currency_id.id, amount, round=True, context=ctx) + # Take the choosen date if form.has_key('comment'): @@ -78,10 +85,10 @@ pool = pooler.get_pool(cr.dbname) invoice = pool.get('account.invoice').browse(cr, uid, data['id'], context) journal = pool.get('account.journal').browse(cr, uid, data['form']['journal_id'], context) - if invoice.company_id.currency_id.id <> invoice.currency_id.id: - return 'addendum' - if journal.currency and (journal.currency.id <> invoice.currency_id.id): - return 'addendum' +# if invoice.company_id.currency_id.id <> invoice.currency_id.id: +# return 'addendum' +# if journal.currency and (journal.currency.id <> invoice.currency_id.id): +# return 'addendum' if pool.get('res.currency').is_zero(cr, uid, invoice.currency_id, (data['form']['amount'] - invoice.amount_total)): return 'reconcile'