diff --git a/account_banking_sepa_credit_transfer/tests/test_sct.py b/account_banking_sepa_credit_transfer/tests/test_sct.py index eb684f3bc..21d11227a 100644 --- a/account_banking_sepa_credit_transfer/tests/test_sct.py +++ b/account_banking_sepa_credit_transfer/tests/test_sct.py @@ -18,6 +18,7 @@ class TestSCT(AccountingTestCase): self.journal_model = self.env['account.journal'] self.payment_order_model = self.env['account.payment.order'] self.payment_line_model = self.env['account.payment.line'] + self.bank_line_model = self.env['bank.payment.line'] self.partner_bank_model = self.env['res.partner.bank'] self.attachment_model = self.env['ir.attachment'] self.invoice_model = self.env['account.invoice'] @@ -53,52 +54,52 @@ class TestSCT(AccountingTestCase): }) eur_currency_id = self.env.ref('base.EUR').id company.currency_id = eur_currency_id - invoice = self.invoice_model.create({ - 'partner_id': self.partner_agrolait.id, - 'reference_type': 'none', - 'reference': 'F124212', - 'currency_id': eur_currency_id, - 'name': 'test 1', - 'account_id': self.account_payable.id, - 'type': 'in_invoice', - 'date_invoice': time.strftime('%Y-%m-%d'), - 'payment_mode_id': self.payment_mode.id, - 'partner_bank_id': - self.env.ref('account_payment_mode.res_partner_2_iban').id, - }) - self.invoice_line_model.create({ - 'invoice_id': invoice.id, - 'price_unit': 42.0, - 'quantity': 1, - 'name': 'Great service', - 'account_id': self.account_revenue.id, - }) - invoice.signal_workflow('invoice_open') - action = invoice.create_account_payment_line() + invoice1 = self.create_invoice(self.partner_agrolait.id, 42.0, 'F1341') + invoice2 = self.create_invoice(self.partner_agrolait.id, 12.0, 'F1342') + invoice3 = self.create_invoice( + self.partner_agrolait.id, 5.0, 'A1301', 'in_refund') + invoice4 = self.create_invoice(self.partner_c2c.id, 11.0, 'I1642') + invoice5 = self.create_invoice(self.partner_c2c.id, 41.0, 'I1643') + for inv in [invoice1, invoice2, invoice3, invoice4, invoice5]: + action = inv.create_account_payment_line() self.assertEquals(action['res_model'], 'account.payment.order') self.payment_order = self.payment_order_model.browse(action['res_id']) self.assertEquals( self.payment_order.payment_type, 'outbound') self.assertEquals( - self.payment_order.payment_mode_id, invoice.payment_mode_id) + self.payment_order.payment_mode_id, self.payment_mode) self.assertEquals( self.payment_order.journal_id, self.bank_journal) pay_lines = self.payment_line_model.search([ ('partner_id', '=', self.partner_agrolait.id)]) - self.assertEquals(len(pay_lines), 1) - agrolait_pay_line = pay_lines[0] - precision = self.env['decimal.precision'].precision_get('Account') - self.assertEquals(agrolait_pay_line.currency_id.id, eur_currency_id) + self.assertEquals(len(pay_lines), 3) + agrolait_pay_line1 = pay_lines[0] + accpre = self.env['decimal.precision'].precision_get('Account') + self.assertEquals(agrolait_pay_line1.currency_id.id, eur_currency_id) self.assertEquals( - agrolait_pay_line.partner_bank_id, invoice.partner_bank_id) + agrolait_pay_line1.partner_bank_id, invoice1.partner_bank_id) self.assertEquals(float_compare( - agrolait_pay_line.amount_currency, 42, precision_digits=precision), + agrolait_pay_line1.amount_currency, 42, precision_digits=accpre), 0) - self.assertEquals(agrolait_pay_line.communication_type, 'normal') - self.assertEquals(agrolait_pay_line.communication, 'F124212') + self.assertEquals(agrolait_pay_line1.communication_type, 'normal') + self.assertEquals(agrolait_pay_line1.communication, 'F1341') self.payment_order.draft2open() self.assertEquals(self.payment_order.state, 'open') self.assertEquals(self.payment_order.sepa, True) + bank_lines = self.bank_line_model.search([ + ('partner_id', '=', self.partner_agrolait.id)]) + self.assertEquals(len(bank_lines), 1) + agrolait_bank_line = bank_lines[0] + self.assertEquals(agrolait_bank_line.currency_id.id, eur_currency_id) + self.assertEquals(float_compare( + agrolait_bank_line.amount_currency, 49.0, precision_digits=accpre), + 0) + self.assertEquals(agrolait_bank_line.communication_type, 'normal') + self.assertEquals( + agrolait_bank_line.communication, 'F1341-F1342-A1301') + self.assertEquals( + agrolait_bank_line.partner_bank_id, invoice1.partner_bank_id) + action = self.payment_order.open2generated() self.assertEquals(self.payment_order.state, 'generated') self.assertEquals(action['res_model'], 'ir.attachment') @@ -123,5 +124,31 @@ class TestSCT(AccountingTestCase): self.payment_order.company_partner_bank_id.sanitized_acc_number) self.payment_order.generated2uploaded() self.assertEquals(self.payment_order.state, 'uploaded') - self.assertEquals(invoice.state, 'paid') + for inv in [invoice1, invoice2, invoice3, invoice4, invoice5]: + self.assertEquals(inv.state, 'paid') return + + def create_invoice( + self, partner_id, price_unit, reference, type='in_invoice'): + invoice = self.invoice_model.create({ + 'partner_id': partner_id, + 'reference_type': 'none', + 'reference': reference, + 'currency_id': self.env.ref('base.EUR').id, + 'name': 'test', + 'account_id': self.account_payable.id, + 'type': type, + 'date_invoice': time.strftime('%Y-%m-%d'), + 'payment_mode_id': self.payment_mode.id, + 'partner_bank_id': + self.env.ref('account_payment_mode.res_partner_2_iban').id, + }) + self.invoice_line_model.create({ + 'invoice_id': invoice.id, + 'price_unit': price_unit, + 'quantity': 1, + 'name': 'Great service', + 'account_id': self.account_revenue.id, + }) + invoice.signal_workflow('invoice_open') + return invoice