19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:29:53 +01:00
parent 6e54c1af6c
commit 3ca647e428
1087 changed files with 132065 additions and 108499 deletions

View file

@ -0,0 +1 @@
from . import test_taxes_global_discount

View file

@ -0,0 +1,130 @@
from odoo import Command
from odoo.addons.account.tests.test_taxes_global_discount import TestTaxesGlobalDiscount
from odoo.addons.point_of_sale.tests.test_frontend import TestTaxCommonPOS
from odoo.tests import tagged
@tagged('post_install', '-at_install')
class TestTaxesGlobalDiscountPOS(TestTaxCommonPOS, TestTaxesGlobalDiscount):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.main_pos_config.iface_discount = True
cls.main_pos_config.module_pos_discount = True
cls.main_pos_config.discount_product_id = cls.env['product.product'].create({
'name': 'discount',
'available_in_pos': True,
'pos_categ_ids': [Command.set(cls.pos_desk_misc_test.ids)],
})
def test_taxes_l10n_in_pos(self):
tests = self._test_taxes_l10n_in()
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_in_pos_global_discount_round_per_line_price_excluded', [
round_per_line_excluded_tests[16],
round_per_line_excluded_tests[5],
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_in_pos_global_discount_round_globally_price_excluded', [
round_globally_excluded_tests[16],
round_globally_excluded_tests[5],
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_in_pos_global_discount_round_per_line_price_included', [
round_per_line_included_tests[16],
round_per_line_included_tests[5],
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_in_pos_global_discount_round_globally_price_included', [
round_globally_included_tests[16],
round_globally_included_tests[5],
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_global_discount_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_global_discount_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_global_discount_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_global_discount_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_global_discount_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_global_discount_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_global_discount_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_global_discount_round_globally_price_included', [
round_globally_included_tests[0],
])
def test_pos_global_discount_sell_and_refund(self):
self.desk_pad.standard_price = 1.0
self.main_pos_config.open_ui()
self.start_pos_tour('test_pos_global_discount_sell_and_refund')
orders = self.main_pos_config.current_session_id.order_ids
self.assertEqual(len(orders), 2)
refund_order = orders[0]
self.assertAlmostEqual(refund_order.amount_total, -2.85)
self.assertEqual(len(refund_order.lines), 2)
self.assertEqual(refund_order.lines[1].product_id.id, self.main_pos_config.discount_product_id.id)
self.assertAlmostEqual(refund_order.lines[1].price_subtotal_incl, -0.15)
self.assertAlmostEqual(refund_order.lines[0].margin, -2.0)
self.assertAlmostEqual(refund_order.lines[0].margin_percent, 0.6667)
self.assertAlmostEqual(refund_order.margin, -1.85)
self.assertAlmostEqual(refund_order.margin_percent, 0.6491)
pos_order = orders[1]
self.assertAlmostEqual(pos_order.amount_total, 2.85)
self.assertEqual(len(pos_order.lines), 2)
self.assertEqual(pos_order.lines[1].product_id.id, self.main_pos_config.discount_product_id.id)
self.assertAlmostEqual(pos_order.lines[1].price_subtotal_incl, -0.15)
self.assertAlmostEqual(pos_order.lines[0].margin, 2.0)
self.assertAlmostEqual(pos_order.lines[0].margin_percent, 0.6667)
self.assertAlmostEqual(pos_order.margin, 1.85)
self.assertAlmostEqual(pos_order.margin_percent, 0.6491)