oca-ocb-sale/odoo-bringout-oca-ocb-pos_sale/pos_sale/tests/test_taxes_downpayment.py
Ernad Husremovic 73afc09215 19.0 vanilla
2026-03-09 09:32:12 +01:00

128 lines
6.4 KiB
Python

from odoo import Command
from odoo.addons.account.tests.test_taxes_downpayment import TestTaxesDownPayment
from odoo.addons.point_of_sale.tests.test_frontend import TestTaxCommonPOS
from odoo.addons.sale.tests.common import TestTaxCommonSale
from odoo.tests import tagged
@tagged('post_install', '-at_install')
class TestTaxesDownPaymentPOS(TestTaxCommonPOS, TestTaxCommonSale, TestTaxesDownPayment):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.main_pos_config.down_payment_product_id = cls.env['product.product'].create({
'name': 'downpayment',
'available_in_pos': True,
'pos_categ_ids': [Command.set(cls.pos_desk_misc_test.ids)],
})
cls.main_pos_config.pricelist_id = None
cls.main_pos_config.available_pricelist_ids = [Command.clear()]
def assert_pos_orders_and_invoices(self, tour, tests_with_orders):
all_so = self.env['sale.order']
for _test_code, document, _soft_checking, _amount_type, _amount, _expected_values in tests_with_orders:
so = self.convert_document_to_sale_order(document)
so.currency_id = self.env.company.currency_id # No foreign currency in the POS
so.action_confirm()
all_so += so
super().assert_pos_orders_and_invoices(tour, tests_with_orders)
all_so.action_cancel()
def test_taxes_l10n_in_pos(self):
tests = self._test_taxes_l10n_in()
round_per_line_excluded_tests = [next(tests) for _i in range(22)]
self.ensure_products_on_document(round_per_line_excluded_tests[0][1], 'product_1')
self.assert_pos_orders_and_invoices('test_taxes_l10n_in_pos_downpayment_round_per_line_price_excluded', [
round_per_line_excluded_tests[19],
round_per_line_excluded_tests[18],
round_per_line_excluded_tests[7],
round_per_line_excluded_tests[6],
round_per_line_excluded_tests[1],
round_per_line_excluded_tests[0],
])
round_globally_excluded_tests = [next(tests) for _i in range(22)]
self.ensure_products_on_document(round_globally_excluded_tests[0][1], 'product_2')
self.assert_pos_orders_and_invoices('test_taxes_l10n_in_pos_downpayment_round_globally_price_excluded', [
round_globally_excluded_tests[19],
round_globally_excluded_tests[18],
round_globally_excluded_tests[7],
round_globally_excluded_tests[6],
round_globally_excluded_tests[1],
round_globally_excluded_tests[0],
])
round_per_line_included_tests = [next(tests) for _i in range(22)]
self.ensure_products_on_document(round_per_line_included_tests[0][1], 'product_3')
self.assert_pos_orders_and_invoices('test_taxes_l10n_in_pos_downpayment_round_per_line_price_included', [
round_per_line_included_tests[19],
round_per_line_included_tests[18],
round_per_line_included_tests[7],
round_per_line_included_tests[6],
round_per_line_included_tests[1],
round_per_line_included_tests[0],
])
round_globally_included_tests = [next(tests) for _i in range(22)]
self.ensure_products_on_document(round_globally_included_tests[0][1], 'product_4')
self.assert_pos_orders_and_invoices('test_taxes_l10n_in_pos_downpayment_round_globally_price_included', [
round_globally_included_tests[19],
round_globally_included_tests[18],
round_globally_included_tests[7],
round_globally_included_tests[6],
round_globally_included_tests[1],
round_globally_included_tests[0],
])
def test_taxes_l10n_br_pos(self):
tests = self._test_taxes_l10n_br()
round_per_line_excluded_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_per_line_excluded_tests[0][1], 'product_1')
self.assert_pos_orders_and_invoices('test_taxes_l10n_br_pos_downpayment_round_per_line_price_excluded', [
round_per_line_excluded_tests[0],
])
round_globally_excluded_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_globally_excluded_tests[0][1], 'product_2')
self.assert_pos_orders_and_invoices('test_taxes_l10n_br_pos_downpayment_round_globally_price_excluded', [
round_globally_excluded_tests[0],
])
round_per_line_included_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_per_line_included_tests[0][1], 'product_3')
self.assert_pos_orders_and_invoices('test_taxes_l10n_br_pos_downpayment_round_per_line_price_included', [
round_per_line_included_tests[0],
])
round_globally_included_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_globally_included_tests[0][1], 'product_4')
self.assert_pos_orders_and_invoices('test_taxes_l10n_br_pos_downpayment_round_globally_price_included', [
round_globally_included_tests[0],
])
def test_taxes_l10n_be_pos(self):
tests = self._test_taxes_l10n_be()
round_per_line_excluded_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_per_line_excluded_tests[0][1], 'product_1')
self.assert_pos_orders_and_invoices('test_taxes_l10n_be_pos_downpayment_round_per_line_price_excluded', [
round_per_line_excluded_tests[0],
])
round_globally_excluded_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_globally_excluded_tests[0][1], 'product_2')
self.assert_pos_orders_and_invoices('test_taxes_l10n_be_pos_downpayment_round_globally_price_excluded', [
round_globally_excluded_tests[0],
])
round_per_line_included_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_per_line_included_tests[0][1], 'product_3')
self.assert_pos_orders_and_invoices('test_taxes_l10n_be_pos_downpayment_round_per_line_price_included', [
round_per_line_included_tests[0],
])
round_globally_included_tests = [next(tests) for _i in range(19)]
self.ensure_products_on_document(round_globally_included_tests[0][1], 'product_4')
self.assert_pos_orders_and_invoices('test_taxes_l10n_be_pos_downpayment_round_globally_price_included', [
round_globally_included_tests[0],
])