From bf7ca9620ede3a93b468d27d77f18fd4fd7205da Mon Sep 17 00:00:00 2001 From: "psi(Open ERP)" <> Date: Wed, 21 Sep 2011 18:19:02 +0530 Subject: [PATCH 1/3] [IMP] account:checked compute method of account.payment.term bzr revid: mtr@tinyerp.com-20110921124902-dahblg9b8pkpgws2 --- addons/account/test/account_customer_invoice.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/addons/account/test/account_customer_invoice.yml b/addons/account/test/account_customer_invoice.yml index d14bf6f3cc1..d71ef0be6e5 100644 --- a/addons/account/test/account_customer_invoice.yml +++ b/addons/account/test/account_customer_invoice.yml @@ -1,5 +1,18 @@ - In order to test account invoice I create a new customer invoice +- + I will create bank detail +- + !record {model: res.partner.bank, id: res_partner_bank_0}: + state: bank + company_id: base.main_company + partner_id: base.main_partner + acc_number: 123456789 + footer: True + bank: base.res_bank_1 + bank_name: Reserve +- + I will create a customer invoice - !record {model: account.invoice, id: account_invoice_customer0}: account_id: account.a_recv @@ -8,6 +21,8 @@ company_id: base.main_company currency_id: base.EUR date_invoice: !eval time.strftime('%Y-%m-%d') + payment_term: account.account_payment_term_advance + partner_bank_id: res_partner_bank_0 invoice_line: - account_id: account.a_sale name: '[PC3] Medium PC' @@ -18,6 +33,7 @@ journal_id: account.sales_journal partner_id: base.res_partner_3 reference_type: none + - I check that Initially customer invoice is in the "Draft" state - From 8dae11efc24e55617426b7e8c07e9690520635c3 Mon Sep 17 00:00:00 2001 From: "Meera Trambadia (OpenERP)" Date: Fri, 23 Sep 2011 14:17:21 +0530 Subject: [PATCH 2/3] [IMP] account:checked onchange methods and pay_and_reconcile() of invoice.py in yaml bzr revid: mtr@tinyerp.com-20110923084721-gib6ggd6s7b7vdrj --- .../account/test/account_customer_invoice.yml | 82 +++++++++++++++++-- 1 file changed, 73 insertions(+), 9 deletions(-) diff --git a/addons/account/test/account_customer_invoice.yml b/addons/account/test/account_customer_invoice.yml index d71ef0be6e5..b59c6c5316f 100644 --- a/addons/account/test/account_customer_invoice.yml +++ b/addons/account/test/account_customer_invoice.yml @@ -12,7 +12,26 @@ bank: base.res_bank_1 bank_name: Reserve - - I will create a customer invoice + I select the journal for customer invoice +- + !python {model: account.invoice}: | + journal = self.onchange_journal_id(cr, uid, [], journal_id=ref('account.sales_journal')) + assert journal['value'] +- + I select the partner for customer invoice +- + !python {model: account.invoice}: | + partner = self.onchange_partner_id(cr, uid, [], 'out_invoice', ref('base.res_partner_3'), date_invoice=False, + payment_term=ref('account.account_payment_term_advance'), partner_bank_id=ref('res_partner_bank_0'), company_id=ref('base.main_company')) + assert partner['value'], "Partner has not been selected correctly" +- + I select the company for invoice +- + !python {model: account.invoice}: | + company = self.onchange_company_id(cr, uid, [], ref('base.main_company'), False, 'out_invoice', [], ref('base.EUR')) + assert company, "Company has not been selected correctly" +- + I create a customer invoice - !record {model: account.invoice, id: account_invoice_customer0}: account_id: account.a_recv @@ -23,17 +42,45 @@ date_invoice: !eval time.strftime('%Y-%m-%d') payment_term: account.account_payment_term_advance partner_bank_id: res_partner_bank_0 - invoice_line: - - account_id: account.a_sale - name: '[PC3] Medium PC' - price_unit: 900.0 - quantity: 10.0 - product_id: product.product_product_pc3 - uos_id: product.product_uom_unit journal_id: account.sales_journal partner_id: base.res_partner_3 reference_type: none - + name: 'Test Customer Invoice' +- + I select a product for invoice +- + !python {model: account.invoice.line}: | + product = self.product_id_change(cr, uid, [], ref("product.product_product_pc3"), False, qty=10.0, name='[PC3] Medium PC', + type='out_invoice', partner_id=ref('base.res_partner_3'), fposition_id=False, price_unit= 900.0, address_invoice_id=ref('base.res_partner_address_zen'), + currency_id=ref('base.EUR'), context={'lang': u'en_US', 'tz': False, 'type': 'out_invoice'}, company_id=ref('base.main_company')) + price_unit = self._price_unit_default(cr, uid, {'lang': u'en_US', 'type': u'out_invoice', 'tz': False, 'view_type': 'form'}) + line = { + 'account_id': product['value']['account_id'], + 'name': product['value']['name'], + 'price_unit': product['value']['price_unit'], + 'quantity': 10.0, + 'product_id': ref("product.product_product_pc3"), + 'uos_id': product['value']['uos_id'], + 'invoice_id': ref("account_invoice_customer0"), + } + invoice_line = self.create(cr, uid, line) + assert invoice_line, "Account invoice line has not been created" +- + I select product Uos +- + !python {model: account.invoice.line}: | + inv_line_id = self.search(cr, uid, [('invoice_id','=',ref('account_invoice_customer0'))]) + uos = self.uos_id_change(cr, uid, inv_line_id, ref("product.product_product_pc3"), ref('product.product_uom_unit'), qty=0, name='[PC3] Medium PC', type='out_invoice', + partner_id=ref('base.res_partner_3'), fposition_id=False, price_unit=False, address_invoice_id=ref('base.res_partner_address_zen'), + currency_id=ref('base.EUR'), context={'lang': u'en_US', 'tz': False, 'type': 'out_invoice'}, company_id=ref('base.main_company')) + assert uos['value'], "Product Uos has not been selected correctly" +- + I select the account for invoice line +- + !python {model: account.invoice.line}: | + inv_line_id = self.search(cr, uid, [('invoice_id','=',ref('account_invoice_customer0'))]) + account = self.onchange_account_id(cr, uid, inv_line_id, False, ref('account.a_sale')) + assert (not account['value']['invoice_line_tax_id']),"Account is not selected correctly" - I check that Initially customer invoice is in the "Draft" state - @@ -70,6 +117,23 @@ !python {model: account.invoice}: | acc_id=self.browse(cr, uid, ref("account_invoice_customer0")) assert acc_id.move_id, "Move not created for open invoice" +- + I pay the Invoice +- + !python {model: account.invoice}: | + import time + pay = self.pay_and_reconcile(cr, uid, [ref('account_invoice_customer0')], + 9000.0, ref('cash'), ref('account.period_' + str(int(time.strftime('%m')))), + ref('bank_journal'), ref('cash'), + ref('account.period_' + str(int(time.strftime('%m')))), ref('bank_journal'), + name='Payment for test customer invoice') + assert (pay == True), "Incorrect Payment" +- + I verify that invoice is now in Paid state +- + !python {model: account.invoice}: | + inv = self.browse(cr, uid, ref("account_invoice_customer0")) + assert (inv.state == 'paid'), "Invoice is not in Paid state" - I refund the invoice Using Refund Button - From cc859a548362fd882f49f38d0d8a86fc81c34b79 Mon Sep 17 00:00:00 2001 From: "Meera Trambadia (OpenERP)" Date: Fri, 23 Sep 2011 18:25:17 +0530 Subject: [PATCH 3/3] [IMP] account:checked account.invoice.tax methods in yaml bzr revid: mtr@tinyerp.com-20110923125517-iic02jmwwviv8t4k --- .../account/test/account_customer_invoice.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/addons/account/test/account_customer_invoice.yml b/addons/account/test/account_customer_invoice.yml index b59c6c5316f..a141cdf10bd 100644 --- a/addons/account/test/account_customer_invoice.yml +++ b/addons/account/test/account_customer_invoice.yml @@ -81,6 +81,23 @@ inv_line_id = self.search(cr, uid, [('invoice_id','=',ref('account_invoice_customer0'))]) account = self.onchange_account_id(cr, uid, inv_line_id, False, ref('account.a_sale')) assert (not account['value']['invoice_line_tax_id']),"Account is not selected correctly" +- + I manually assign tax on invoice +- + !python {model: account.invoice.tax}: | + amt = self.amount_change(cr, uid, [], 50.0, ref('base.EUR'), ref('base.main_company'), False) + base_amt = self.base_change(cr, uid, [], 9000.0, ref('base.EUR'), ref('base.main_company'), False) + invoice_tax_line = { + 'name': 'Test Tax for Customer Invoice', + 'manual': 1, + 'base': base_amt['value']['base_amount'], + 'amount': amt['value']['tax_amount'], + 'account_id': ref('account.ova'), + 'invoice_id': ref("account_invoice_customer0"), + } + tax = self.create(cr, uid, invoice_tax_line) + assert tax, "Tax has not been assigned correctly" + - I check that Initially customer invoice is in the "Draft" state - @@ -123,7 +140,7 @@ !python {model: account.invoice}: | import time pay = self.pay_and_reconcile(cr, uid, [ref('account_invoice_customer0')], - 9000.0, ref('cash'), ref('account.period_' + str(int(time.strftime('%m')))), + 9050.0, ref('cash'), ref('account.period_' + str(int(time.strftime('%m')))), ref('bank_journal'), ref('cash'), ref('account.period_' + str(int(time.strftime('%m')))), ref('bank_journal'), name='Payment for test customer invoice')