mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 23:12:00 +02:00
128 lines
6.4 KiB
Python
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],
|
|
])
|