From 0465909c92d248e0a434dd85f8d78e7ff0be2c7a Mon Sep 17 00:00:00 2001 From: mtr Date: Mon, 1 Aug 2011 18:31:43 +0530 Subject: [PATCH 1/6] [ADD] account_voucher: added yaml for multicurrency i.e. USD-EUR, EUR-EUR, CAD-CHF bzr revid: mtr@mtr-20110801130143-wygzy83cztuqw3ub --- addons/account_voucher/__openerp__.py | 5 +- addons/account_voucher/test/case2_usd_eur.yml | 360 ++++++++++++++++++ addons/account_voucher/test/case3_eur_eur.yml | 331 ++++++++++++++++ addons/account_voucher/test/case4_cad_chf.yml | 181 +++++++++ 4 files changed, 876 insertions(+), 1 deletion(-) create mode 100644 addons/account_voucher/test/case2_usd_eur.yml create mode 100644 addons/account_voucher/test/case3_eur_eur.yml create mode 100644 addons/account_voucher/test/case4_cad_chf.yml diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py index 039d3e067af..d4331a81923 100644 --- a/addons/account_voucher/__openerp__.py +++ b/addons/account_voucher/__openerp__.py @@ -59,7 +59,10 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo "test/account_voucher.yml", "test/sales_receipt.yml", "test/sales_payment.yml", - "test/account_voucher_report.yml" + "test/account_voucher_report.yml", + "test/case2_usd_eur.yml", + "test/case3_eur_eur.yml", + "test/case4_cad_chf.yml", ], 'certificate': '0037580727101', "active": False, diff --git a/addons/account_voucher/test/case2_usd_eur.yml b/addons/account_voucher/test/case2_usd_eur.yml new file mode 100644 index 00000000000..39b0eb0edbb --- /dev/null +++ b/addons/account_voucher/test/case2_usd_eur.yml @@ -0,0 +1,360 @@ +- + I create a currency rate for USD for january of 1.333333 +- + !record {model: res.currency.rate, id: janu_usd}: + currency_id: base.USD + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.333333 +- + I create a currency rate for USD for february of 1.250000 +- + !record {model: res.currency.rate, id: febr_usd}: + currency_id: base.USD + name: !eval "'%s-02-01' %(datetime.now().year)" + rate: 1.250000 +- + I create a currency rate for USD for march of 1.111111 +- + !record {model: res.currency.rate, id: marc_usd}: + currency_id: base.USD + name: !eval "'%s-03-01' %(datetime.now().year)" + rate: 1.111111 +- + I create a currency rate for USD for april of 1.052632 +- + !record {model: res.currency.rate, id: apri_usd}: + currency_id: base.USD + name: !eval "'%s-04-01' %(datetime.now().year)" + rate: 1.052632 +- + I create a bank journal with EUR as currency +- + !record {model: account.journal, id: bank_journal_EUR}: + name: Bank Journal(EUR) + code: BEUR + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + currency: base.EUR + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I create a bank journal with USD as currency +- + !record {model: account.journal, id: bank_journal_USD}: + name: Bank Journal(USD) + code: BUSD + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + currency: base.USD + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' +- + !record {model: res.company, id: base.main_company}: + property_expense_currency_exchange: account.o_expense + property_income_currency_exchange: account.o_income +- + I create a new partner Michael Geller +- + !record {model: res.partner, id: res_partner_michael0}: + address: + - city: paris + country_id: base.fr + name: Michael + street: 1 rue Rockfeller + type: invoice + zip: '75016' + name: Mr.Michael Geller +- + I create the first invoice on 1st January for 200 USD +- + !record {model: account.invoice, id: account_first_invoice_jan}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.USD + date_invoice: !eval "'%s-01-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 200.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_michael0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan} +- + I check that first invoice move is correct +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account" +- + I create the second invoice on 1st February for 100 USD +- + !record {model: account.invoice, id: account_second_invoice_feb}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.USD + date_invoice: !eval "'%s-02-01' %(datetime.now().year)" + period_id: account.period_2 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 100.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_michael0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb} +- + I check that second invoice move is correct for debtor account (debit - credit == 80) +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account" +- + I create the first voucher of payment with values 240 EUR, journal EUR, and fill amount 180 for the invoice of 200$ and 70 for the 100$ invoice. +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_EUR'), 240.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 240.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.EUR'), + 'journal_id': ref('bank_journal_EUR'), + 'partner_id': ref('res_partner_michael0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-03-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'First payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 200: + item['amount'] = 180 + else: + item['amount'] = 70 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is 15 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == 15), "writeoff amount is not 15" +- + I check that currency rate difference is -34 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.currency_rate_difference == -34), "currency rate difference is not -34" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with -180 and -70 as amount_currency columns and their credit columns are respectively 135 and 56 and currency is USD($). +- + I check that my Currency Difference entry is created with a credit of 34, amount currency as 0.0 +- + I check that my write-off entry is created with a credit of 15.00 and amount currency as 0.0 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.amount_currency == -180: + assert move_line.credit == 135, "Debtor account has wrong entry." + if move_line.amount_currency == -70: + assert move_line.credit == 56.00, "Debtor account has wrong entry." + if move_line.credit == 34: + assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." + if move_line.credit == 15.00: + assert move_line.credit == 0.00, "Writeoff amount is wrong." +- + I check the residual amount of Invoice1, should be 20 in residual currency and 15 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" +- + I create the second voucher of payment with values, 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$ +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_michael0"), ref('bank_journal_EUR'), 45.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 45.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.USD'), + 'journal_id': ref('bank_journal_USD'), + 'partner_id': ref('res_partner_michael0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-04-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'Second payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 20: + item['amount'] = 20 + else: + item['amount'] = 30 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is -5 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == -5), "writeoff amount is not -5" +- + I check that currency rate difference is -8.50 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + curr_diff = voucher_id.currency_rate_difference + assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not -8.50" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). +- + I check that my Currency Difference entry is created with a credit of 8.5 +- + I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + d + if move_line.amount_currency == -20: + assert move_line.credit == 15, "Debtor account has wrong entry." + if move_line.amount_currency == -30: + assert move_line.credit == 24, "Debtor account has wrong entry." + if move_line.credit == 8.5: + assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." + if move_line.credit == 5: + assert move_line.credit == 4.75, "Writeoff amount is wrong." +- + I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml new file mode 100644 index 00000000000..bce4feb5a3d --- /dev/null +++ b/addons/account_voucher/test/case3_eur_eur.yml @@ -0,0 +1,331 @@ +- + I create a currency rate for EUR for january of 1.000000 +- + !record {model: res.currency.rate, id: jan_eur}: + currency_id: base.EUR + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.000000 +- + I create a currency rate for EUR for february of 1.000000 +- + !record {model: res.currency.rate, id: feb_eur}: + currency_id: base.EUR + name: !eval "'%s-02-01' %(datetime.now().year)" + rate: 1.000000 +- + I create a currency rate for EUR for march of 1.000000 +- + !record {model: res.currency.rate, id: mar_eur}: + currency_id: base.EUR + name: !eval "'%s-03-01' %(datetime.now().year)" + rate: 1.000000 +- + I create a currency rate for EUR for april of 1.000000 +- + !record {model: res.currency.rate, id: apr_eur}: + currency_id: base.EUR + name: !eval "'%s-04-01' %(datetime.now().year)" + rate: 1.000000 +- + I create a bank journal with EUR as currency +- + !record {model: account.journal, id: bank_journal_EUR}: + name: Bank Journal(EUR) + code: BEUR + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + currency: base.EUR + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' +- + !record {model: res.company, id: base.main_company}: + property_expense_currency_exchange: account.o_expense + property_income_currency_exchange: account.o_income +- + I create a new partner Peter Lawson. +- + !record {model: res.partner, id: res_partner_peter0}: + address: + - city: paris + country_id: base.fr + name: Peter + street: 1 rue Rockfeller + type: invoice + zip: '75016' + name: Mr.Peter Lawson +- + I create the first invoice on 1st January for 150 EUR +- + !record {model: account.invoice, id: account_first_invoice_jan_eur}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.EUR + date_invoice: !eval "'%s-01-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 150.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_peter0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_eur} +- + I check that first invoice move is correct +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account" +- + I create the first invoice on 1st February for 80 EUR +- + !record {model: account.invoice, id: account_second_invoice_feb_eur}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.EUR + date_invoice: !eval "'%s-02-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 80.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_peter0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb_eur} +- + I check that second invoice move is correct +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 80.00), "Invoice move is incorrect for debtors account" +- + I create the first voucher of payment with values 120 EUR, journal EUR, and fill amounts 100 for the invoice of 150 and 20 for the 80 EUR invoice. +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 120.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.EUR'), + 'journal_id': ref('bank_journal_EUR'), + 'partner_id': ref('res_partner_peter0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-03-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'First payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 150: + item['amount'] = 100 + else: + item['amount'] = 20 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is 0 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == 0), "writeoff amount is not 0" +- + I check that currency rate difference is 0.00 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.currency_rate_difference == 0.00), "currency rate difference is not 0.00" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with 0.00 and 0.00 as amount_currency columns and their credit are 20 and 100 respectively +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.credit == 20: + assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." + if move_line.credit == 100: + assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." +- + I check the residual amount of Invoice1 is 50 +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of Invoice2 is 60 +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" +- + I create the second voucher of payment and check to let open the debtor overpaid amount. +- + I create the second voucher of payment with Paid Amount as 120, journal EUR, and fill amount 50 for the residual amount 50 for the invoice of 150 and 70 for the residual amount 60 for the invoice of 80 +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 120.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.EUR'), + 'journal_id': ref('bank_journal_EUR'), + 'partner_id': ref('res_partner_peter0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-04-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'Second payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 50.00: + item['amount'] = 50.00 + elif item['amount_unreconciled'] == 60.00: + item['amount'] = 70.00 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is 0.00 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'),('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == 0.00), "writeoff amount is not 0" +- + I check that currency rate difference is 0.00 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + curr_diff = voucher_id.currency_rate_difference + assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not 0" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with 0.00 and 0.00 as amount_currency columns and their credit are 70 and 50 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.credit == 70.00: + assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." + if move_line.credit == 50.00: + assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." +- + I check the residual amount of Invoice1 is 0 +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of Invoice2 is -10 +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml new file mode 100644 index 00000000000..2156ec813ff --- /dev/null +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -0,0 +1,181 @@ +- + I create a currency rate for CAD for january of 1.338800 +- + !record {model: res.currency.rate, id: jan_cad}: + currency_id: base.CAD + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.338800 +- + I create a currency rate for CAD for march of 0.500000 +- + !record {model: res.currency.rate, id: mar_cad}: + currency_id: base.CAD + name: !eval "'%s-03-01' %(datetime.now().year)" + rate: 0.500000 +- + I create a currency rate for CHF for january of 1.308600 +- + !record {model: res.currency.rate, id: jan_chf}: + currency_id: base.CHF + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.308600 +- + I create a bank journal with CHF as currency +- + !record {model: account.journal, id: bank_journal_CHF}: + name: Bank Journal(CHF) + code: BCHF + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + currency: base.CHF + company_id: base.main_company + view_id: account.account_journal_bank_view +- + I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' +- + !record {model: res.company, id: base.main_company}: + property_expense_currency_exchange: account.o_expense + property_income_currency_exchange: account.o_income +- + I create a new partner John Armani. +- + !record {model: res.partner, id: res_partner_john0}: + address: + - city: paris + country_id: base.fr + name: John + street: 1 rue Rockfeller + type: invoice + zip: '75016' + name: Mr.John Armani +- + I create the first invoice on 1st January for 200 CAD +- + !record {model: account.invoice, id: account_first_invoice_jan_cad}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.CAD + date_invoice: !eval "'%s-01-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 200.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_john0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_cad} +- + I check that accounting move for first invoice is correct +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_cad")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 149.39), "Invoice move is incorrect for debtors account" +- + I create the first voucher of payment with Paid amount as 300, journal CHF, and fill amounts 200 for the invoice of 200. +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 300.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 120.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.CHF'), + 'journal_id': ref('bank_journal_CHF'), + 'partner_id': ref('res_partner_john0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-03-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'First payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 200: + item['amount'] = 200 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is 175 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == 175), "writeoff amount is not 175" +- + I check that currency rate difference is 49.39 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.currency_rate_difference == 49.39), "currency rate difference is not 0.00" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). +- + I check that my Currency Difference entry is created with a credit of 8.5 +- + I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.amount_currency == -200: + assert move_line.credit == 149.39, "Debtor account has wrong entry." + if move_line.credit == 49.39: + assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." + if move_line.credit == -140.00: + assert move_line.credit == -175, "Writeoff amount is wrong." +- + I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + residual_curr = move_line.amount_residual_currency + residual = move_line.amount_residual + assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" +- \ No newline at end of file From 97e4c6efb0457103ba9495890eca6ffcdbebe945 Mon Sep 17 00:00:00 2001 From: "psi(OpenERP),mtr(OpenERP)" <> Date: Tue, 2 Aug 2011 11:49:50 +0530 Subject: [PATCH 2/6] [ADD] account_voucher: added yaml for multi-currency i.e. USD-USD bzr revid: mtr@mtr-20110802061950-t0eah4pcj1vs1yp6 --- addons/account_voucher/__openerp__.py | 1 + addons/account_voucher/test/case1_usd_usd.yml | 345 ++++++++++++++++++ 2 files changed, 346 insertions(+) create mode 100755 addons/account_voucher/test/case1_usd_usd.yml diff --git a/addons/account_voucher/__openerp__.py b/addons/account_voucher/__openerp__.py index d4331a81923..dc7747fb593 100644 --- a/addons/account_voucher/__openerp__.py +++ b/addons/account_voucher/__openerp__.py @@ -60,6 +60,7 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo "test/sales_receipt.yml", "test/sales_payment.yml", "test/account_voucher_report.yml", + "test/case1_usd_usd.yml", "test/case2_usd_eur.yml", "test/case3_eur_eur.yml", "test/case4_cad_chf.yml", diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml new file mode 100755 index 00000000000..7751849120e --- /dev/null +++ b/addons/account_voucher/test/case1_usd_usd.yml @@ -0,0 +1,345 @@ +- + I create a currency rate for USD for january of 1.333333 +- + !record {model: res.currency.rate, id: jan_usd}: + currency_id: base.USD + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.333333 + +- + I create a currency rate for USD for february of 1.250000 +- + !record {model: res.currency.rate, id: feb_usd}: + currency_id: base.USD + name: !eval "'%s-02-01' %(datetime.now().year)" + rate: 1.250000 + +- + I create a currency rate for USD for march of 1.111111 +- + !record {model: res.currency.rate, id: mar_usd}: + currency_id: base.USD + name: !eval "'%s-03-01' %(datetime.now().year)" + rate: 1.111111 + +- + I create a currency rate for USD for april of 1.052632 +- + !record {model: res.currency.rate, id: apr_usd}: + currency_id: base.USD + name: !eval "'%s-04-01' %(datetime.now().year)" + rate: 1.052632 + +- + I create a bank journal with USD as currency +- + !record {model: account.journal, id: bank_journal_USD}: + name: Bank Journal(USD) + code: BUSD + type: bank + analytic_journal_id: account.sit + sequence_id: account.sequence_bank_journal + default_debit_account_id: account.cash + default_credit_account_id: account.cash + currency: base.USD + company_id: base.main_company + view_id: account.account_journal_bank_view + +- + I set up some accounts for currency rate expense/income in my company +- + !record {model: res.company, id: base.main_company}: + property_expense_currency_exchange: account.o_expense + property_income_currency_exchange: account.o_income +- + I'm creating new partner "Mr. strauss". +- + !record {model: res.partner, id: res_partner_strauss0}: + address: + - city: paris + country_id: base.fr + name: Mark Strauss + street: 1 rue Rockfeller + type: invoice + zip: '75016' + name: Mr. Mark Strauss +- + I create the first invoice on 1st January for 200 USD +- + !record {model: account.invoice, id: account_invoice_jan}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.USD + date_invoice: !eval "'%s-01-01' %(datetime.now().year)" + period_id: account.period_1 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 200.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_strauss0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_jan} +- + I check that first invoice move is correct for debtor account (debit - credit == 150.0) +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_jan")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 150.0), "Invoice move is correct for debtors account" +- + I create the second invoice on 1st February for 100 USD +- + !record {model: account.invoice, id: account_invoice_feb}: + account_id: account.a_recv + address_contact_id: base.res_partner_address_3000 + address_invoice_id: base.res_partner_address_3000 + company_id: base.main_company + currency_id: base.USD + date_invoice: !eval "'%s-02-01' %(datetime.now().year)" + period_id: account.period_2 + invoice_line: + - account_id: account.a_sale + name: '[PC1] Basic PC' + price_unit: 100.0 + quantity: 1.0 + product_id: product.product_product_pc1 + uos_id: product.product_uom_unit + journal_id: account.sales_journal + partner_id: res_partner_strauss0 + reference_type: none +- + I Validate invoice by clicking on Validate button +- + !workflow {model: account.invoice, action: invoice_open, ref: account_invoice_feb} +- + I check that second invoice move is correct for debtor account (debit - credit == 80) +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_feb")) + assert invoice_id.move_id, "Move not created for open invoice" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.debit - move_line.credit == 80), "Invoice move is correct for debtors account" + +- + I create the first voucher of payment + +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 240.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 240.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.USD'), + 'journal_id': ref('bank_journal_USD'), + 'partner_id': ref('res_partner_strauss0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-03-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'First payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 200: + item['amount'] = 180 + else: + item['amount'] = 70 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is -10 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == -10), "writeoff amount is not -10" +- + I check that currency rate difference is -34 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.currency_rate_difference == -34), "currency rate difference is not -34" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher is valid +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher is not balanced" + +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with -180 and -70 as amount_currency columns and that their credit columns are respectively 135 and 56 +- + I check that my currency rate difference is correct. 34 in credit with no amount_currency +- + I check that my write-off is correct. 9 debit and 10 amount_currency +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.amount_currency == -180: + assert move_line.credit == 135.00, "Debtor account has wrong entry." + if move_line.amount_currency == -70: + assert move_line.credit == 56.00, "Debtor account has wrong entry." + if move_line.credit == 34.00: + assert move_line.amount_currency == 0, "Incorrect currency rate difference." + if move_line.amount_currency == 10: + assert move_line.debit == 9.0, "Writeoff amount is wrong." +- + I check the residual amount of Invoice1, should be 20 in amount_currency and 15 in company currency +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_jan")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.amount_residual_currency == 20.0 and move_line.amount_residual == 15.0) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_feb")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.amount_residual_currency == 30.0 and move_line.amount_residual == 24.0) , "Residual amount is not correct for first Invoice" +- + I create the second voucher of payment with Paid Amount as 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$ +- + !python {model: account.voucher}: | + import netsvc, time + vals = {} + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 45.0, 2, ttype='receipt', date=False) + vals = { + 'account_id': ref('account.cash'), + 'amount': 45.0, + 'company_id': ref('base.main_company'), + 'currency_id': ref('base.USD'), + 'journal_id': ref('bank_journal_USD'), + 'partner_id': ref('res_partner_strauss0'), + 'period_id': ref('account.period_3'), + 'type': 'receipt', + 'date': time.strftime("%Y-04-01"), + 'payment_option': 'with_writeoff', + 'writeoff_acc_id': ref('account.a_expense'), + 'comment': 'Write Off', + 'name': 'Second payment', + } + if not res['value']['line_cr_ids']: + res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] + for item in res['value']['line_cr_ids']: + if item['amount_unreconciled'] == 20: + item['amount'] = 20 + else: + item['amount'] = 30 + vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] + id = self.create(cr, uid, vals) + voucher_id = self.browse(cr, uid, id) + assert (voucher_id.state=='draft'), "Voucher is not in draft state" +- + I check that writeoff amount computed is -5 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert (voucher_id.writeoff_amount == -5), "writeoff amount is not -5" +- + I check that currency rate difference is -8.50 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + curr_diff = voucher_id.currency_rate_difference + assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not -8.50" +- + I confirm the voucher +- + !python {model: account.voucher}: | + import netsvc + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + wf_service = netsvc.LocalService("workflow") + wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) +- + I check that my voucher state is posted +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + assert voucher_id.state == 'posted', "Voucher state is not posted" +- + I check that my debtor account is correct +- + I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). +- + I check that my Currency Difference entry is created with a credit of 8.5 +- + I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 +- + !python {model: account.voucher}: | + voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) + voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + if move_line.amount_currency == -20: + assert move_line.credit == 15, "Debtor account has wrong entry." + if move_line.amount_currency == -30: + assert move_line.credit == 24, "Debtor account has wrong entry." + if move_line.credit == 8.5: + assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." + if move_line.credit == 5: + assert move_line.credit == 4.75, "Writeoff amount is wrong." +- + I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_jan")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" +- + I check the residual amuont of Invoice2, should be 0 in residual currency and 0 in amount_residual +- + !python {model: account.invoice}: | + invoice_id = self.browse(cr, uid, ref("account_invoice_feb")) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) + move_line = move_line_obj.browse(cr, uid, move_lines[0]) + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for second Invoice" \ No newline at end of file From 437c84191e4b16681177f62cb6f5ac1c47ca1ece Mon Sep 17 00:00:00 2001 From: mtr Date: Tue, 2 Aug 2011 12:23:44 +0530 Subject: [PATCH 3/6] [IMP] account_voucher: minor changes in yaml bzr revid: mtr@mtr-20110802065344-ewaqf3etl687gjlg --- addons/account_voucher/test/case2_usd_eur.yml | 18 +++++------------- addons/account_voucher/test/case3_eur_eur.yml | 16 ++++------------ addons/account_voucher/test/case4_cad_chf.yml | 6 ++---- 3 files changed, 11 insertions(+), 29 deletions(-) diff --git a/addons/account_voucher/test/case2_usd_eur.yml b/addons/account_voucher/test/case2_usd_eur.yml index 39b0eb0edbb..25d69a95bb1 100644 --- a/addons/account_voucher/test/case2_usd_eur.yml +++ b/addons/account_voucher/test/case2_usd_eur.yml @@ -214,7 +214,7 @@ I check that my write-off entry is created with a credit of 15.00 and amount currency as 0.0 - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) @@ -235,9 +235,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 20.0 and move_line.amount_residual == 15) , "Residual amount is not correct for first Invoice" - I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual - @@ -246,9 +244,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" + assert (move_line.amount_residual_currency == 30 and move_line.amount_residual == 24) , "Residual amount is not correct for second Invoice" - I create the second voucher of payment with values, 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$ - @@ -344,9 +340,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" - I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual - @@ -355,6 +349,4 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" \ No newline at end of file + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml index bce4feb5a3d..d1b5de784a9 100644 --- a/addons/account_voucher/test/case3_eur_eur.yml +++ b/addons/account_voucher/test/case3_eur_eur.yml @@ -213,9 +213,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 50.0 and move_line.amount_residual == 50.0) , "Residual amount is not correct for first Invoice" - I check the residual amuont of Invoice2 is 60 - @@ -224,9 +222,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" + assert (move_line.amount_residual_currency == 60.0 and move_line.amount_residual == 60.0) , "Residual amount is not correct for second Invoice" - I create the second voucher of payment and check to let open the debtor overpaid amount. - @@ -315,9 +311,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0 and move_line.amount_residual == 0) , "Residual amount is not correct for first Invoice" - I check the residual amuont of Invoice2 is -10 - @@ -326,6 +320,4 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for second Invoice" \ No newline at end of file + assert (move_line.amount_residual_currency == -10.0 and move_line.amount_residual == -10.0) , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml index 2156ec813ff..6ba92f6c8f3 100644 --- a/addons/account_voucher/test/case4_cad_chf.yml +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -168,14 +168,12 @@ if move_line.credit == -140.00: assert move_line.credit == -175, "Writeoff amount is wrong." - - I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual + I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - residual_curr = move_line.amount_residual_currency - residual = move_line.amount_residual - assert (move_line.amount_residual_currency == residual_curr and move_line.amount_residual == residual) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" - \ No newline at end of file From 1a3ac2facc5fd1304adeeccae4dffa02e0f4ff23 Mon Sep 17 00:00:00 2001 From: mtr Date: Wed, 3 Aug 2011 15:36:33 +0530 Subject: [PATCH 4/6] [IMP] account_voucher: improved string/sentence and code in yml bzr revid: mtr@mtr-20110803100633-xsh3olpk5bhc00at --- addons/account_voucher/test/case1_usd_usd.yml | 57 +++++++++++-------- addons/account_voucher/test/case2_usd_eur.yml | 57 ++++++++++--------- addons/account_voucher/test/case3_eur_eur.yml | 38 +++++++------ addons/account_voucher/test/case4_cad_chf.yml | 44 ++++++++------ 4 files changed, 112 insertions(+), 84 deletions(-) diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml index 7751849120e..a4e59ccc4b3 100755 --- a/addons/account_voucher/test/case1_usd_usd.yml +++ b/addons/account_voucher/test/case1_usd_usd.yml @@ -52,7 +52,7 @@ property_expense_currency_exchange: account.o_expense property_income_currency_exchange: account.o_income - - I'm creating new partner "Mr. strauss". + I create new partner Mark Strauss. - !record {model: res.partner, id: res_partner_strauss0}: address: @@ -97,7 +97,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.debit - move_line.credit == 150.0), "Invoice move is correct for debtors account" + assert (move_line.debit - move_line.credit == 150.0), "Invoice move is not correct for debtors account" - I create the second invoice on 1st February for 100 USD - @@ -132,7 +132,7 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.debit - move_line.credit == 80), "Invoice move is correct for debtors account" + assert (move_line.debit - move_line.credit == 80), "Invoice move is not correct for debtors account" - I create the first voucher of payment @@ -191,13 +191,15 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher is valid + I check that the move of my first voucher is valid - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert voucher_id.state == 'posted', "Voucher is not balanced" - + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" - I check that my debtor account is correct - @@ -215,11 +217,11 @@ for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.amount_currency == -180: assert move_line.credit == 135.00, "Debtor account has wrong entry." - if move_line.amount_currency == -70: + elif move_line.amount_currency == -70: assert move_line.credit == 56.00, "Debtor account has wrong entry." - if move_line.credit == 34.00: + elif move_line.credit == 34.00: assert move_line.amount_currency == 0, "Incorrect currency rate difference." - if move_line.amount_currency == 10: + elif move_line.amount_currency == 10: assert move_line.debit == 9.0, "Writeoff amount is wrong." - I check the residual amount of Invoice1, should be 20 in amount_currency and 15 in company currency @@ -231,7 +233,7 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.amount_residual_currency == 20.0 and move_line.amount_residual == 15.0) , "Residual amount is not correct for first Invoice" - - I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual + I check the residual amuont of Invoice2, should be 30 in residual currency and 24 in amount_residual - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_invoice_feb")) @@ -240,7 +242,9 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.amount_residual_currency == 30.0 and move_line.amount_residual == 24.0) , "Residual amount is not correct for first Invoice" - - I create the second voucher of payment with Paid Amount as 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$ + I create the second voucher of payment + + - !python {model: account.voucher}: | import netsvc, time @@ -296,20 +300,23 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher state is posted + I check that the move of my second voucher is valid - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert voucher_id.state == 'posted', "Voucher state is not posted" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). + I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24. - - I check that my Currency Difference entry is created with a credit of 8.5 + I check that my currency rate difference is correct. 8.5 in credit with no amount_currency - - I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 + I check that my writeoff is correct. 4.75 debit and 5 amount_currency - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) @@ -319,27 +326,27 @@ for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.amount_currency == -20: assert move_line.credit == 15, "Debtor account has wrong entry." - if move_line.amount_currency == -30: + elif move_line.amount_currency == -30: assert move_line.credit == 24, "Debtor account has wrong entry." - if move_line.credit == 8.5: + elif move_line.credit == 8.5: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - if move_line.credit == 5: - assert move_line.credit == 4.75, "Writeoff amount is wrong." + elif move_line.amount_currency == 5: + assert move_line.debit == 4.75, "Writeoff amount is wrong." - - I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual + I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_invoice_jan")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice" - - I check the residual amuont of Invoice2, should be 0 in residual currency and 0 in amount_residual + I check the residual amuont of Invoice2, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_invoice_feb")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for second Invoice" \ No newline at end of file + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case2_usd_eur.yml b/addons/account_voucher/test/case2_usd_eur.yml index 25d69a95bb1..35e0bf86231 100644 --- a/addons/account_voucher/test/case2_usd_eur.yml +++ b/addons/account_voucher/test/case2_usd_eur.yml @@ -55,7 +55,7 @@ company_id: base.main_company view_id: account.account_journal_bank_view - - I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' + I set up some accounts for currency rate expense/income in my company - !record {model: res.company, id: base.main_company}: property_expense_currency_exchange: account.o_expense @@ -98,7 +98,7 @@ - !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan} - - I check that first invoice move is correct + I check that first invoice move is correct for debtor account(debit - credit == 150) - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) @@ -143,7 +143,8 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.debit - move_line.credit == 80), "Invoice move is incorrect for debtors account" - - I create the first voucher of payment with values 240 EUR, journal EUR, and fill amount 180 for the invoice of 200$ and 70 for the 100$ invoice. + I create the first voucher of payment + - !python {model: account.voucher}: | import netsvc, time @@ -198,20 +199,23 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher state is posted + I check that the move of my voucher is valid - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert voucher_id.state == 'posted', "Voucher state is not posted" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with -180 and -70 as amount_currency columns and their credit columns are respectively 135 and 56 and currency is USD($). + I check that the debtor account has 2 new lines with -180 and -70 in amount_currency columns and their credit columns are respectively 135 and 56 and currency is USD($). - - I check that my Currency Difference entry is created with a credit of 34, amount currency as 0.0 + I check that my currency rate difference is correct. 34 in credit with no amount_currency - - I check that my write-off entry is created with a credit of 15.00 and amount currency as 0.0 + I check that my writeoff is correct. 15 in credit with no amount_currency - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) @@ -221,12 +225,12 @@ for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.amount_currency == -180: assert move_line.credit == 135, "Debtor account has wrong entry." - if move_line.amount_currency == -70: + elif move_line.amount_currency == -70: assert move_line.credit == 56.00, "Debtor account has wrong entry." - if move_line.credit == 34: + elif move_line.credit == 34: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - if move_line.credit == 15.00: - assert move_line.credit == 0.00, "Writeoff amount is wrong." + elif move_line.credit == 15.00: + assert move_line.amount_currency == 0.00, "Writeoff amount is wrong." - I check the residual amount of Invoice1, should be 20 in residual currency and 15 in amount_residual - @@ -246,7 +250,8 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.amount_residual_currency == 30 and move_line.amount_residual == 24) , "Residual amount is not correct for second Invoice" - - I create the second voucher of payment with values, 45 USD, journal USD, and fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$ + I create the second voucher of payment + - !python {model: account.voucher}: | import netsvc, time @@ -291,8 +296,7 @@ !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - curr_diff = voucher_id.currency_rate_difference - assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not -8.50" + assert (voucher_id.currency_rate_difference == -8.50), "currency rate difference is not -8.50" - I confirm the voucher - @@ -311,11 +315,11 @@ - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). + I check that the debtor account has 2 new lines with -20 and -30 in amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). - - I check that my Currency Difference entry is created with a credit of 8.5 + I check that my currency rate difference is correct. 8.50 in credit with no amount_currency - - I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 + I check that my writeoff is correct. 4.75 in debit and 5 in amount_currency - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) @@ -323,30 +327,29 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - d if move_line.amount_currency == -20: assert move_line.credit == 15, "Debtor account has wrong entry." - if move_line.amount_currency == -30: + elif move_line.amount_currency == -30: assert move_line.credit == 24, "Debtor account has wrong entry." - if move_line.credit == 8.5: + elif move_line.credit == 8.5: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - if move_line.credit == 5: - assert move_line.credit == 4.75, "Writeoff amount is wrong." + elif move_line.amount_currency == 5: + assert move_line.debit == 4.75, "Writeoff amount is wrong." - - I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual + I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice" - - I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual + I check the residual amuont of invoice 2, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for second Invoice" \ No newline at end of file + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for second Invoice" \ No newline at end of file diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml index d1b5de784a9..5779028641e 100644 --- a/addons/account_voucher/test/case3_eur_eur.yml +++ b/addons/account_voucher/test/case3_eur_eur.yml @@ -41,7 +41,7 @@ company_id: base.main_company view_id: account.account_journal_bank_view - - I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' + I set up some accounts for currency rate expense/income in my company - !record {model: res.company, id: base.main_company}: property_expense_currency_exchange: account.o_expense @@ -84,7 +84,7 @@ - !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_eur} - - I check that first invoice move is correct + I check that first invoice move is correct for debtor account(debit - credit == 150) - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_eur")) @@ -94,7 +94,7 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.debit - move_line.credit == 150.00), "Invoice move is incorrect for debtors account" - - I create the first invoice on 1st February for 80 EUR + I create the second invoice on 1st February for 80 EUR - !record {model: account.invoice, id: account_second_invoice_feb_eur}: account_id: account.a_recv @@ -119,7 +119,7 @@ - !workflow {model: account.invoice, action: invoice_open, ref: account_second_invoice_feb_eur} - - I check that second invoice move is correct + I check that second invoice move is correct for debtor account (debit - credit == 80) - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_second_invoice_feb_eur")) @@ -129,7 +129,8 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.debit - move_line.credit == 80.00), "Invoice move is incorrect for debtors account" - - I create the first voucher of payment with values 120 EUR, journal EUR, and fill amounts 100 for the invoice of 150 and 20 for the 80 EUR invoice. + I create the first voucher of payment + - !python {model: account.voucher}: | import netsvc, time @@ -162,7 +163,7 @@ voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is 0 + I check that writeoff amount computed is 0.00 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) @@ -184,16 +185,19 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher state is posted + I check that the move of my first voucher is valid - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert voucher_id.state == 'posted', "Voucher state is not posted" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with 0.00 and 0.00 as amount_currency columns and their credit are 20 and 100 respectively + I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 20 and 100 respectively - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) @@ -203,7 +207,7 @@ for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.credit == 20: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - if move_line.credit == 100: + elif move_line.credit == 100: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - I check the residual amount of Invoice1 is 50 @@ -225,8 +229,7 @@ assert (move_line.amount_residual_currency == 60.0 and move_line.amount_residual == 60.0) , "Residual amount is not correct for second Invoice" - I create the second voucher of payment and check to let open the debtor overpaid amount. -- - I create the second voucher of payment with Paid Amount as 120, journal EUR, and fill amount 50 for the residual amount 50 for the invoice of 150 and 70 for the residual amount 60 for the invoice of 80 + - !python {model: account.voucher}: | import netsvc, time @@ -282,16 +285,19 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher state is posted + I check that the move of my second voucher is valid - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert voucher_id.state == 'posted', "Voucher state is not posted" + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with 0.00 and 0.00 as amount_currency columns and their credit are 70 and 50 + I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 70 and 50 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) @@ -301,7 +307,7 @@ for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.credit == 70.00: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - if move_line.credit == 50.00: + elif move_line.credit == 50.00: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - I check the residual amount of Invoice1 is 0 diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml index 6ba92f6c8f3..3d989eaee7a 100644 --- a/addons/account_voucher/test/case4_cad_chf.yml +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -6,7 +6,7 @@ name: !eval "'%s-01-01' %(datetime.now().year)" rate: 1.338800 - - I create a currency rate for CAD for march of 0.500000 + I create a currency rate for CAD for march of 2.000000 - !record {model: res.currency.rate, id: mar_cad}: currency_id: base.CAD @@ -19,6 +19,13 @@ currency_id: base.CHF name: !eval "'%s-01-01' %(datetime.now().year)" rate: 1.308600 +- + I create a currency rate for CHF for march of 1.250000 +- + !record {model: res.currency.rate, id: jan_chf}: + currency_id: base.CHF + name: !eval "'%s-01-01' %(datetime.now().year)" + rate: 1.250000 - I create a bank journal with CHF as currency - @@ -34,7 +41,7 @@ company_id: base.main_company view_id: account.account_journal_bank_view - - I assign accounts for 'Income Curreny Rate' and 'Expense Currency Rate' + I set up some accounts for currency rate expense/income in my company - !record {model: res.company, id: base.main_company}: property_expense_currency_exchange: account.o_expense @@ -77,7 +84,7 @@ - !workflow {model: account.invoice, action: invoice_open, ref: account_first_invoice_jan_cad} - - I check that accounting move for first invoice is correct + I check that first invoice move is correct for debtor account (debit - credit == 149.39) - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_cad")) @@ -87,7 +94,8 @@ move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.debit - move_line.credit == 149.39), "Invoice move is incorrect for debtors account" - - I create the first voucher of payment with Paid amount as 300, journal CHF, and fill amounts 200 for the invoice of 200. + I create the first voucher of payment + - !python {model: account.voucher}: | import netsvc, time @@ -95,7 +103,7 @@ res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 300.0, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 120.0, + 'amount': 300.0, 'company_id': ref('base.main_company'), 'currency_id': ref('base.CHF'), 'journal_id': ref('bank_journal_CHF'), @@ -130,7 +138,7 @@ !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment')]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == 49.39), "currency rate difference is not 0.00" + assert (voucher_id.currency_rate_difference == 49.39), "currency rate difference is not 49.39" - I confirm the voucher - @@ -140,40 +148,44 @@ wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - - I check that my voucher state is posted + I check that the move of my voucher is valid - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment')]) voucher_id = self.browse(cr, uid, voucher[0]) + move_line_obj = self.pool.get('account.move.line') + move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) + for move_line in move_line_obj.browse(cr, uid, move_lines): + assert move_line.state == 'valid', "Voucher move is not valid" assert voucher_id.state == 'posted', "Voucher state is not posted" - I check that my debtor account is correct - - I check that the debtor account has 2 new lines with -20 and -30 as amount_currency columns and their credit columns are respectively 15 and 24 and currency is USD($). + I check that the debtor account has 1 new line with -200 as amount_currency columns and 149.39 of credit and currency is CAD($). - - I check that my Currency Difference entry is created with a credit of 8.5 + I check that my currency rate difference is correct. 49.39 in debit with no amount_currency - - I check that my write-off entry is created with a debit of 4.75 and amount currency as 0.0 + I check that my writeoff is correct. 140 credit and -175 amount_currency - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'Second payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment')]) voucher_id = self.browse(cr, uid, voucher[0]) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): if move_line.amount_currency == -200: assert move_line.credit == 149.39, "Debtor account has wrong entry." - if move_line.credit == 49.39: + elif move_line.debit == 49.39: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - if move_line.credit == -140.00: - assert move_line.credit == -175, "Writeoff amount is wrong." + elif move_line.credit == 140.00: + assert move_line.amount_currency == -175, "Writeoff amount is wrong." - - I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual + I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) - assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0) , "Residual amount is not correct for first Invoice" + assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice" - \ No newline at end of file From b505b056e81c20589eb386a1c4053e032be48883 Mon Sep 17 00:00:00 2001 From: mtr Date: Thu, 4 Aug 2011 17:18:57 +0530 Subject: [PATCH 5/6] [IMP] account_voucher: corrected values and currency rate records so that demo data rates doesn't over shadow it bzr revid: mtr@mtr-20110804114857-zditm8vsx2hxr348 --- addons/account_voucher/test/case1_usd_usd.yml | 68 +++++++++---------- addons/account_voucher/test/case2_usd_eur.yml | 56 +++++++-------- addons/account_voucher/test/case3_eur_eur.yml | 25 ++++--- addons/account_voucher/test/case4_cad_chf.yml | 34 +++++----- 4 files changed, 92 insertions(+), 91 deletions(-) diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml index a4e59ccc4b3..123a4463172 100755 --- a/addons/account_voucher/test/case1_usd_usd.yml +++ b/addons/account_voucher/test/case1_usd_usd.yml @@ -1,11 +1,12 @@ - I create a currency rate for USD for january of 1.333333 - - !record {model: res.currency.rate, id: jan_usd}: - currency_id: base.USD - name: !eval "'%s-01-01' %(datetime.now().year)" - rate: 1.333333 - + !python {model: res.currency.rate}: | + from datetime import datetime + curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')]) + date = '%s-01-01' %(datetime.now().year) + ids = self.search(cr, uid, [('currency_id','=',curr_id), ('name', '=', date)]) + self.write(cr, uid, ids, {'rate': 1.333333}) - I create a currency rate for USD for february of 1.250000 - @@ -141,10 +142,10 @@ !python {model: account.voucher}: | import netsvc, time vals = {} - res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 240.0, 2, ttype='receipt', date=False) + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 240.00, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 240.0, + 'amount': 240.00, 'company_id': ref('base.main_company'), 'currency_id': ref('base.USD'), 'journal_id': ref('bank_journal_USD'), @@ -160,28 +161,28 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 200: - item['amount'] = 180 + if item['amount_unreconciled'] == 200.00: + item['amount'] = 180.00 else: - item['amount'] = 70 + item['amount'] = 70.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is -10 + I check that writeoff amount computed is -10.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == -10), "writeoff amount is not -10" + assert (voucher_id.writeoff_amount == -10.0), "Writeoff amount is not -10.0" - - I check that currency rate difference is -34 + I check that currency rate difference is -34.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == -34), "currency rate difference is not -34" + assert (voucher_id.currency_rate_difference == -34.0), "Currency rate difference is not -34.0" - I confirm the voucher - @@ -215,14 +216,14 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - if move_line.amount_currency == -180: + if move_line.amount_currency == -180.00: assert move_line.credit == 135.00, "Debtor account has wrong entry." - elif move_line.amount_currency == -70: + elif move_line.amount_currency == -70.00: assert move_line.credit == 56.00, "Debtor account has wrong entry." elif move_line.credit == 34.00: - assert move_line.amount_currency == 0, "Incorrect currency rate difference." - elif move_line.amount_currency == 10: - assert move_line.debit == 9.0, "Writeoff amount is wrong." + assert move_line.amount_currency == 0.00, "Incorrect currency rate difference." + elif move_line.amount_currency == 10.00: + assert move_line.debit == 9.00, "Writeoff amount is wrong." - I check the residual amount of Invoice1, should be 20 in amount_currency and 15 in company currency - @@ -249,10 +250,10 @@ !python {model: account.voucher}: | import netsvc, time vals = {} - res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 45.0, 2, ttype='receipt', date=False) + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_strauss0"), ref('bank_journal_USD'), 45.00, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 45.0, + 'amount': 45.00, 'company_id': ref('base.main_company'), 'currency_id': ref('base.USD'), 'journal_id': ref('bank_journal_USD'), @@ -268,29 +269,28 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 20: - item['amount'] = 20 + if item['amount_unreconciled'] == 20.00: + item['amount'] = 20.00 else: - item['amount'] = 30 + item['amount'] = 30.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is -5 + I check that writeoff amount computed is -5.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == -5), "writeoff amount is not -5" + assert (voucher_id.writeoff_amount == -5.0), "Writeoff amount is not -5.0" - I check that currency rate difference is -8.50 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_strauss0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - curr_diff = voucher_id.currency_rate_difference - assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not -8.50" + assert (voucher_id.currency_rate_difference == -8.50), "Currency rate difference is not -8.50" - I confirm the voucher - @@ -324,13 +324,13 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - if move_line.amount_currency == -20: - assert move_line.credit == 15, "Debtor account has wrong entry." - elif move_line.amount_currency == -30: - assert move_line.credit == 24, "Debtor account has wrong entry." - elif move_line.credit == 8.5: + if move_line.amount_currency == -20.00: + assert move_line.credit == 15.00, "Debtor account has wrong entry." + elif move_line.amount_currency == -30.00: + assert move_line.credit == 24.00, "Debtor account has wrong entry." + elif move_line.credit == 8.50: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - elif move_line.amount_currency == 5: + elif move_line.amount_currency == 5.00: assert move_line.debit == 4.75, "Writeoff amount is wrong." - I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid diff --git a/addons/account_voucher/test/case2_usd_eur.yml b/addons/account_voucher/test/case2_usd_eur.yml index 35e0bf86231..e6d24fb5a1b 100644 --- a/addons/account_voucher/test/case2_usd_eur.yml +++ b/addons/account_voucher/test/case2_usd_eur.yml @@ -1,10 +1,12 @@ - I create a currency rate for USD for january of 1.333333 - - !record {model: res.currency.rate, id: janu_usd}: - currency_id: base.USD - name: !eval "'%s-01-01' %(datetime.now().year)" - rate: 1.333333 + !python {model: res.currency.rate}: | + from datetime import datetime + curr_id = self.pool.get('res.currency').search(cr, uid, [('name', '=', 'USD')]) + date = '%s-01-01' %(datetime.now().year) + ids = self.search(cr, uid, [('currency_id', '=', curr_id), ('name', '=', date)]) + self.write(cr, uid, ids, {'rate': 1.333333}) - I create a currency rate for USD for february of 1.250000 - @@ -168,28 +170,28 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 200: - item['amount'] = 180 + if item['amount_unreconciled'] == 200.00: + item['amount'] = 180.00 else: - item['amount'] = 70 + item['amount'] = 70.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is 15 + I check that writeoff amount computed is 15.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == 15), "writeoff amount is not 15" + assert (voucher_id.writeoff_amount == 15.0), "Writeoff amount is not 15.0" - - I check that currency rate difference is -34 + I check that currency rate difference is -34.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == -34), "currency rate difference is not -34" + assert (voucher_id.currency_rate_difference == -34.0), "Currency rate difference is not -34.0" - I confirm the voucher - @@ -223,11 +225,11 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - if move_line.amount_currency == -180: - assert move_line.credit == 135, "Debtor account has wrong entry." - elif move_line.amount_currency == -70: + if move_line.amount_currency == -180.00: + assert move_line.credit == 135.00, "Debtor account has wrong entry." + elif move_line.amount_currency == -70.00: assert move_line.credit == 56.00, "Debtor account has wrong entry." - elif move_line.credit == 34: + elif move_line.credit == 34.00: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." elif move_line.credit == 15.00: assert move_line.amount_currency == 0.00, "Writeoff amount is wrong." @@ -275,28 +277,28 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 20: - item['amount'] = 20 + if item['amount_unreconciled'] == 20.00: + item['amount'] = 20.00 else: - item['amount'] = 30 + item['amount'] = 30.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is -5 + I check that writeoff amount computed is -5.0 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == -5), "writeoff amount is not -5" + assert (voucher_id.writeoff_amount == -5.0), "Writeoff amount is not -5.0" - I check that currency rate difference is -8.50 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_michael0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == -8.50), "currency rate difference is not -8.50" + assert (voucher_id.currency_rate_difference == -8.50), "Currency rate difference is not -8.50" - I confirm the voucher - @@ -327,13 +329,13 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - if move_line.amount_currency == -20: - assert move_line.credit == 15, "Debtor account has wrong entry." - elif move_line.amount_currency == -30: - assert move_line.credit == 24, "Debtor account has wrong entry." - elif move_line.credit == 8.5: + if move_line.amount_currency == -20.00: + assert move_line.credit == 15.00, "Debtor account has wrong entry." + elif move_line.amount_currency == -30.00: + assert move_line.credit == 24.00, "Debtor account has wrong entry." + elif move_line.credit == 8.50: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." - elif move_line.amount_currency == 5: + elif move_line.amount_currency == 5.00: assert move_line.debit == 4.75, "Writeoff amount is wrong." - I check the residual amount of invoice 1, should be 0 in residual currency and 0 in amount_residual and paid diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml index 5779028641e..904abb7f0db 100644 --- a/addons/account_voucher/test/case3_eur_eur.yml +++ b/addons/account_voucher/test/case3_eur_eur.yml @@ -138,7 +138,7 @@ res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 120.0, + 'amount': 120.00, 'company_id': ref('base.main_company'), 'currency_id': ref('base.EUR'), 'journal_id': ref('bank_journal_EUR'), @@ -154,10 +154,10 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 150: - item['amount'] = 100 + if item['amount_unreconciled'] == 150.00: + item['amount'] = 100.00 else: - item['amount'] = 20 + item['amount'] = 20.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) @@ -168,14 +168,14 @@ !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == 0), "writeoff amount is not 0" + assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0.00" - I check that currency rate difference is 0.00 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'First payment'),('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == 0.00), "currency rate difference is not 0.00" + assert (voucher_id.currency_rate_difference == 0.00), "Currency rate difference is not 0.00" - I confirm the voucher - @@ -205,9 +205,9 @@ move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) for move_line in move_line_obj.browse(cr, uid, move_lines): - if move_line.credit == 20: + if move_line.credit == 20.00: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - elif move_line.credit == 100: + elif move_line.credit == 100.00: assert move_line.amount_currency == 0.00, "Debtor account has wrong entry." - I check the residual amount of Invoice1 is 50 @@ -234,10 +234,10 @@ !python {model: account.voucher}: | import netsvc, time vals = {} - res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.0, 2, ttype='receipt', date=False) + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_peter0"), ref('bank_journal_EUR'), 120.00, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 120.0, + 'amount': 120.00, 'company_id': ref('base.main_company'), 'currency_id': ref('base.EUR'), 'journal_id': ref('bank_journal_EUR'), @@ -267,15 +267,14 @@ !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'),('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == 0.00), "writeoff amount is not 0" + assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0" - I check that currency rate difference is 0.00 - !python {model: account.voucher}: | voucher = self.search(cr, uid, [('name', '=', 'Second payment'), ('partner_id', '=', ref('res_partner_peter0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - curr_diff = voucher_id.currency_rate_difference - assert (voucher_id.currency_rate_difference == curr_diff), "currency rate difference is not 0" + assert (voucher_id.currency_rate_difference == 0.00), "Currency rate difference is not 0" - I confirm the voucher - diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml index 3d989eaee7a..56795fa127a 100644 --- a/addons/account_voucher/test/case4_cad_chf.yml +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -11,7 +11,7 @@ !record {model: res.currency.rate, id: mar_cad}: currency_id: base.CAD name: !eval "'%s-03-01' %(datetime.now().year)" - rate: 0.500000 + rate: 2.000000 - I create a currency rate for CHF for january of 1.308600 - @@ -24,7 +24,7 @@ - !record {model: res.currency.rate, id: jan_chf}: currency_id: base.CHF - name: !eval "'%s-01-01' %(datetime.now().year)" + name: !eval "'%s-03-01' %(datetime.now().year)" rate: 1.250000 - I create a bank journal with CHF as currency @@ -100,10 +100,10 @@ !python {model: account.voucher}: | import netsvc, time vals = {} - res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 300.0, 2, ttype='receipt', date=False) + res = self.onchange_partner_id(cr, uid, [], ref("res_partner_john0"), ref('bank_journal_CHF'), 300.00, 2, ttype='receipt', date=False) vals = { 'account_id': ref('account.cash'), - 'amount': 300.0, + 'amount': 300.00, 'company_id': ref('base.main_company'), 'currency_id': ref('base.CHF'), 'journal_id': ref('bank_journal_CHF'), @@ -119,39 +119,40 @@ if not res['value']['line_cr_ids']: res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('account.a_recv'),}] for item in res['value']['line_cr_ids']: - if item['amount_unreconciled'] == 200: - item['amount'] = 200 + if item['amount_unreconciled'] == 200.00: + item['amount'] = 200.00 vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']] id = self.create(cr, uid, vals) voucher_id = self.browse(cr, uid, id) assert (voucher_id.state=='draft'), "Voucher is not in draft state" - - I check that writeoff amount computed is 175 + I check that writeoff amount computed is 175.0 - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.writeoff_amount == 175), "writeoff amount is not 175" + assert (voucher_id.writeoff_amount == 175.0), "Writeoff amount is not 175.0" - I check that currency rate difference is 49.39 - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))]) voucher_id = self.browse(cr, uid, voucher[0]) - assert (voucher_id.currency_rate_difference == 49.39), "currency rate difference is not 49.39" + curr_diff = float(str(voucher_id.currency_rate_difference)) + assert (curr_diff == 49.39), "Currency rate difference is not 49.39" - I confirm the voucher - !python {model: account.voucher}: | import netsvc - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))]) wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr) - I check that the move of my voucher is valid - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))]) voucher_id = self.browse(cr, uid, voucher[0]) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) @@ -168,7 +169,7 @@ I check that my writeoff is correct. 140 credit and -175 amount_currency - !python {model: account.voucher}: | - voucher = self.search(cr, uid, [('name', '=', 'First payment')]) + voucher = self.search(cr, uid, [('name', '=', 'First payment'), ('partner_id', '=', ref('res_partner_john0'))]) voucher_id = self.browse(cr, uid, voucher[0]) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)]) @@ -178,14 +179,13 @@ elif move_line.debit == 49.39: assert move_line.amount_currency == 0.00, "Incorrect Currency Difference." elif move_line.credit == 140.00: - assert move_line.amount_currency == -175, "Writeoff amount is wrong." + assert move_line.amount_currency == -175.00, "Writeoff amount is wrong." - I check the residual amount of Invoice1, should be 0 in residual currency and 0 in amount_residual and paid - !python {model: account.invoice}: | - invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan")) + invoice_id = self.browse(cr, uid, ref("account_first_invoice_jan_cad")) move_line_obj = self.pool.get('account.move.line') move_lines = move_line_obj.search(cr, uid, [('move_id', '=', invoice_id.move_id.id), ('invoice', '=', invoice_id.id), ('account_id', '=', invoice_id.account_id.id)]) move_line = move_line_obj.browse(cr, uid, move_lines[0]) assert (move_line.amount_residual_currency == 0.0 and move_line.amount_residual == 0.0 and invoice_id.state == 'paid') , "Residual amount is not correct for first Invoice" -- \ No newline at end of file From b752dde2870db8f2ff13135a4298cb11acaecf7c Mon Sep 17 00:00:00 2001 From: mtr Date: Fri, 5 Aug 2011 14:28:29 +0530 Subject: [PATCH 6/6] [IMP] account_voucher:improved strings bzr revid: mtr@mtr-20110805085829-m6qhtwu26fky7y9h --- addons/account_voucher/test/case1_usd_usd.yml | 11 +++++++---- addons/account_voucher/test/case2_usd_eur.yml | 11 +++++++---- addons/account_voucher/test/case3_eur_eur.yml | 11 +++++++---- addons/account_voucher/test/case4_cad_chf.yml | 13 ++++++++----- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/addons/account_voucher/test/case1_usd_usd.yml b/addons/account_voucher/test/case1_usd_usd.yml index 123a4463172..dc7654ab9c3 100755 --- a/addons/account_voucher/test/case1_usd_usd.yml +++ b/addons/account_voucher/test/case1_usd_usd.yml @@ -1,5 +1,8 @@ - - I create a currency rate for USD for january of 1.333333 + In order to check the Account_voucher module with multi-currency in OpenERP, + I create 2 Invoices in USD and make 2 Payments in USD based on the currency rating on that particular date +- + I create currency USD in OpenERP for January of 1.333333 Rate - !python {model: res.currency.rate}: | from datetime import datetime @@ -8,7 +11,7 @@ ids = self.search(cr, uid, [('currency_id','=',curr_id), ('name', '=', date)]) self.write(cr, uid, ids, {'rate': 1.333333}) - - I create a currency rate for USD for february of 1.250000 + I create currency USD in OpenERP for February of 1.250000 Rate - !record {model: res.currency.rate, id: feb_usd}: currency_id: base.USD @@ -16,7 +19,7 @@ rate: 1.250000 - - I create a currency rate for USD for march of 1.111111 + I create currency USD in OpenERP for March of 1.111111 Rate - !record {model: res.currency.rate, id: mar_usd}: currency_id: base.USD @@ -24,7 +27,7 @@ rate: 1.111111 - - I create a currency rate for USD for april of 1.052632 + I create currency USD in OpenERP for April of 1.052632 Rate - !record {model: res.currency.rate, id: apr_usd}: currency_id: base.USD diff --git a/addons/account_voucher/test/case2_usd_eur.yml b/addons/account_voucher/test/case2_usd_eur.yml index e6d24fb5a1b..ded95095e5a 100644 --- a/addons/account_voucher/test/case2_usd_eur.yml +++ b/addons/account_voucher/test/case2_usd_eur.yml @@ -1,5 +1,8 @@ - - I create a currency rate for USD for january of 1.333333 + In order to check the Account_voucher module with multi-currency in OpenERP, + I create 2 Invoices in USD and make 2 Payments one in USD and another in EUR, based on the currency rating on that particular date +- + I create currency USD in OpenERP for January of 1.333333 Rate - !python {model: res.currency.rate}: | from datetime import datetime @@ -8,21 +11,21 @@ ids = self.search(cr, uid, [('currency_id', '=', curr_id), ('name', '=', date)]) self.write(cr, uid, ids, {'rate': 1.333333}) - - I create a currency rate for USD for february of 1.250000 + I create currency USD in OpenERP for February of 1.250000 Rate - !record {model: res.currency.rate, id: febr_usd}: currency_id: base.USD name: !eval "'%s-02-01' %(datetime.now().year)" rate: 1.250000 - - I create a currency rate for USD for march of 1.111111 + I create currency USD in OpenERP for March of 1.111111 Rate - !record {model: res.currency.rate, id: marc_usd}: currency_id: base.USD name: !eval "'%s-03-01' %(datetime.now().year)" rate: 1.111111 - - I create a currency rate for USD for april of 1.052632 + I create currency USD in OpenERP for April of 1.052632 Rate - !record {model: res.currency.rate, id: apri_usd}: currency_id: base.USD diff --git a/addons/account_voucher/test/case3_eur_eur.yml b/addons/account_voucher/test/case3_eur_eur.yml index 904abb7f0db..b35daf49402 100644 --- a/addons/account_voucher/test/case3_eur_eur.yml +++ b/addons/account_voucher/test/case3_eur_eur.yml @@ -1,26 +1,29 @@ - - I create a currency rate for EUR for january of 1.000000 + In order to check the Account_voucher module with multi-currency in OpenERP, + I create 2 Invoices in EUR and make 2 Payments in EUR based on the currency rating on that particular date. +- + I create currency EUR in OpenERP for January of 1.000000 Rate - !record {model: res.currency.rate, id: jan_eur}: currency_id: base.EUR name: !eval "'%s-01-01' %(datetime.now().year)" rate: 1.000000 - - I create a currency rate for EUR for february of 1.000000 + I create currency EUR in OpenERP for February of 1.000000 Rate - !record {model: res.currency.rate, id: feb_eur}: currency_id: base.EUR name: !eval "'%s-02-01' %(datetime.now().year)" rate: 1.000000 - - I create a currency rate for EUR for march of 1.000000 + I create currency EUR in OpenERP for March of 1.000000 Rate - !record {model: res.currency.rate, id: mar_eur}: currency_id: base.EUR name: !eval "'%s-03-01' %(datetime.now().year)" rate: 1.000000 - - I create a currency rate for EUR for april of 1.000000 + I create currency EUR in OpenERP for April of 1.000000 Rate - !record {model: res.currency.rate, id: apr_eur}: currency_id: base.EUR diff --git a/addons/account_voucher/test/case4_cad_chf.yml b/addons/account_voucher/test/case4_cad_chf.yml index 56795fa127a..b6ed790dffb 100644 --- a/addons/account_voucher/test/case4_cad_chf.yml +++ b/addons/account_voucher/test/case4_cad_chf.yml @@ -1,28 +1,31 @@ - - I create a currency rate for CAD for january of 1.338800 + In order to check the Account_voucher module with multi-currency in OpenERP, + I create an invoice in CAD and make its Payment in CHF based on the currency rating on that particular date. +- + I create currency CAD in OpenERP for January of 1.338800 Rate - !record {model: res.currency.rate, id: jan_cad}: currency_id: base.CAD name: !eval "'%s-01-01' %(datetime.now().year)" rate: 1.338800 - - I create a currency rate for CAD for march of 2.000000 + I create currency CAD in OpenERP for March of 2.000000 Rate - !record {model: res.currency.rate, id: mar_cad}: currency_id: base.CAD name: !eval "'%s-03-01' %(datetime.now().year)" rate: 2.000000 - - I create a currency rate for CHF for january of 1.308600 + I create currency CHF in OpenERP for January of 1.308600 Rate - !record {model: res.currency.rate, id: jan_chf}: currency_id: base.CHF name: !eval "'%s-01-01' %(datetime.now().year)" rate: 1.308600 - - I create a currency rate for CHF for march of 1.250000 + I create currency CHF in OpenERP for March of 1.250000 Rate - - !record {model: res.currency.rate, id: jan_chf}: + !record {model: res.currency.rate, id: mar_chf}: currency_id: base.CHF name: !eval "'%s-03-01' %(datetime.now().year)" rate: 1.250000