def test_payment_form_onchange_journal(self): pay_form = Form(self.env['account.payment']) pay_form.journal_id = self.company_data['default_journal_bank'] pay_form.partner_id = self.partner_a pay_form.name = '/' pay_form.amount = 123 pay = pay_form.save() self.assertRecordValues(pay.line_ids.sorted('balance'), [ { 'debit': 0.0, 'credit': 123.0, 'account_id': self.company_data['default_account_receivable'].id, }, { 'debit': 123.0, 'credit': 0.0, 'account_id': self.company_data['default_journal_bank'].payment_debit_account_id.id, }, ]) with Form(pay) as pay_form: pay_form.journal_id = self.company_data['default_journal_cash'] pay_form.name = '/' self.assertRecordValues(pay.line_ids.sorted('balance'), [ { 'debit': 0.0, 'credit': 123.0, 'account_id': self.company_data['default_account_receivable'].id, }, { 'debit': 123.0, 'credit': 0.0, 'account_id': self.company_data['default_journal_cash'].payment_debit_account_id.id, }, ])
def test_payment_move_sync_onchange(self): copy_receivable = self.copy_account( self.company_data['default_account_receivable']) pay_form = Form(self.env['account.payment'].with_context( default_journal_id=self.company_data['default_journal_bank'].id)) pay_form.amount = 50.0 pay_form.payment_type = 'inbound' pay_form.partner_type = 'customer' pay_form.destination_account_id = copy_receivable payment = pay_form.save() expected_payment_values = { 'amount': 50.0, 'payment_type': 'inbound', 'partner_type': 'customer', 'payment_reference': False, 'is_reconciled': False, 'currency_id': self.company_data['currency'].id, 'partner_id': False, 'destination_account_id': copy_receivable.id, 'payment_method_id': self.env.ref('account.account_payment_method_manual_in').id, } expected_move_values = { 'currency_id': self.company_data['currency'].id, 'partner_id': False, } expected_liquidity_line = { 'debit': 50.0, 'credit': 0.0, 'amount_currency': 50.0, 'currency_id': self.company_data['currency'].id, 'account_id': self.payment_debit_account_id.id, } expected_counterpart_line = { 'debit': 0.0, 'credit': 50.0, 'amount_currency': -50.0, 'currency_id': self.company_data['currency'].id, 'account_id': copy_receivable.id, } self.assertRecordValues(payment, [expected_payment_values]) self.assertRecordValues(payment.move_id, [expected_move_values]) self.assertRecordValues(payment.line_ids.sorted('balance'), [ expected_counterpart_line, expected_liquidity_line, ]) # ==== Check editing the account.payment ==== pay_form = Form(payment) pay_form.partner_type = 'supplier' pay_form.currency_id = self.currency_data['currency'] pay_form.partner_id = self.partner_a payment = pay_form.save() self.assertRecordValues(payment, [{ **expected_payment_values, 'partner_type': 'supplier', 'destination_account_id': self.partner_a.property_account_payable_id.id, 'currency_id': self.currency_data['currency'].id, 'partner_id': self.partner_a.id, }]) self.assertRecordValues(payment.move_id, [{ **expected_move_values, 'currency_id': self.currency_data['currency'].id, 'partner_id': self.partner_a.id, }]) self.assertRecordValues(payment.line_ids.sorted('balance'), [ { **expected_counterpart_line, 'debit': 0.0, 'credit': 25.0, 'amount_currency': -50.0, 'currency_id': self.currency_data['currency'].id, 'account_id': self.partner_a.property_account_payable_id.id, }, { **expected_liquidity_line, 'debit': 25.0, 'credit': 0.0, 'amount_currency': 50.0, 'currency_id': self.currency_data['currency'].id, }, ]) # ==== Check editing the account.move.line ==== move_form = Form(payment.move_id) with move_form.line_ids.edit(0) as line_form: line_form.currency_id = self.company_data['currency'] line_form.amount_currency = 100.0 line_form.partner_id = self.partner_b with move_form.line_ids.edit(1) as line_form: line_form.currency_id = self.company_data['currency'] line_form.amount_currency = -75.0 line_form.account_id = copy_receivable line_form.partner_id = self.partner_b with move_form.line_ids.new() as line_form: line_form.currency_id = self.company_data['currency'] line_form.amount_currency = -25.0 line_form.account_id = self.company_data['default_account_revenue'] line_form.partner_id = self.partner_b move_form.save() self.assertRecordValues(payment, [{ **expected_payment_values, 'amount': 100.0, 'partner_id': self.partner_b.id, }]) self.assertRecordValues(payment.line_ids.sorted('balance'), [ { **expected_counterpart_line, 'debit': 0.0, 'credit': 75.0, 'amount_currency': -75.0, 'partner_id': self.partner_b.id, }, { 'debit': 0.0, 'credit': 25.0, 'amount_currency': -25.0, 'currency_id': self.company_data['currency'].id, 'account_id': self.company_data['default_account_revenue'].id, 'partner_id': self.partner_b.id, }, { **expected_liquidity_line, 'debit': 100.0, 'credit': 0.0, 'amount_currency': 100.0, 'account_id': self.payment_debit_account_id.id, 'partner_id': self.partner_b.id, }, ])