예제 #1
0
    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,
            },
        ])
예제 #2
0
    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,
            },
        ])