printer-core 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- printer_core/__init__.py +1 -0
- printer_core/algorithms/__init__.py +3 -0
- printer_core/algorithms/products_modifiers_multiprinter.py +59 -0
- printer_core/algorithms/products_modifiers_multiprinter_family.py +53 -0
- printer_core/algorithms/products_modifiers_unique_ticket.py +30 -0
- printer_core/builders/__init__.py +4 -0
- printer_core/builders/client_ticket_builder.py +97 -0
- printer_core/builders/header_builder.py +26 -0
- printer_core/builders/kitchen_ticket_payload_builder.py +99 -0
- printer_core/builders/printer_products_grouper.py +19 -0
- printer_core/clock.py +6 -0
- printer_core/context/__init__.py +1 -0
- printer_core/context/ticket_context_builder.py +55 -0
- printer_core/dispatchers/__init__.py +2 -0
- printer_core/dispatchers/kitchen_ticket_dispatcher.py +34 -0
- printer_core/dispatchers/payload_dispatcher.py +18 -0
- printer_core/entities/__init__.py +53 -0
- printer_core/entities/print_context.py +15 -0
- printer_core/entities/print_models.py +230 -0
- printer_core/formatters/__init__.py +1 -0
- printer_core/formatters/discount_formatter.py +17 -0
- printer_core/ports.py +45 -0
- printer_core/selectors/__init__.py +1 -0
- printer_core/selectors/family_product_selector.py +33 -0
- printer_core/services/__init__.py +12 -0
- printer_core/services/flows/__init__.py +5 -0
- printer_core/services/flows/base.py +26 -0
- printer_core/services/flows/client.py +97 -0
- printer_core/services/flows/kitchen.py +113 -0
- printer_core/services/march_printer_service.py +61 -0
- printer_core/services/multi_printer_family_service.py +102 -0
- printer_core/services/multi_printer_service.py +49 -0
- printer_core/services/order_print_service.py +98 -0
- printer_core/services/print_policy.py +72 -0
- printer_core/services/unique_ticket_service.py +52 -0
- printer_core/tests/__init__.py +0 -0
- printer_core/tests/unitaries/__init__.py +0 -0
- printer_core/tests/unitaries/helpers.py +188 -0
- printer_core/tests/unitaries/test_cases_output.py +189 -0
- printer_core/tests/unitaries/test_client_ticket_builder.py +78 -0
- printer_core/tests/unitaries/test_discount_formatter.py +37 -0
- printer_core/tests/unitaries/test_family_product_selector.py +28 -0
- printer_core/tests/unitaries/test_flows.py +141 -0
- printer_core/tests/unitaries/test_header_builder_foodeo_printers.py +87 -0
- printer_core/tests/unitaries/test_kitchen_ticket_dispatcher.py +61 -0
- printer_core/tests/unitaries/test_kitchen_ticket_payload_builder.py +113 -0
- printer_core/tests/unitaries/test_march_printer_service.py +31 -0
- printer_core/tests/unitaries/test_multi_printer_family_service.py +53 -0
- printer_core/tests/unitaries/test_multi_printer_service.py +51 -0
- printer_core/tests/unitaries/test_order_print_service.py +144 -0
- printer_core/tests/unitaries/test_payload_dispatcher.py +61 -0
- printer_core/tests/unitaries/test_print_policy.py +45 -0
- printer_core/tests/unitaries/test_printer_helpers.py +71 -0
- printer_core/tests/unitaries/test_printer_products_grouper.py +20 -0
- printer_core/tests/unitaries/test_products_modifiers.py +102 -0
- printer_core/tests/unitaries/test_ticket_context_builder.py +71 -0
- printer_core/tests/unitaries/test_unique_ticket_service.py +24 -0
- printer_core/utils/__init__.py +1 -0
- printer_core/utils/printer_helpers.py +42 -0
- printer_core-0.0.1.dist-info/METADATA +24 -0
- printer_core-0.0.1.dist-info/RECORD +62 -0
- printer_core-0.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from printer_core.algorithms.products_modifiers_multiprinter import ProductsModifiersMultiPrinter
|
|
3
|
+
from printer_core.algorithms.products_modifiers_multiprinter_family import ProductsModifiersMultiprinterFamily
|
|
4
|
+
from printer_core.algorithms.products_modifiers_unique_ticket import ProductsModifiersUniqueTicket
|
|
5
|
+
from printer_core.formatters.discount_formatter import DiscountFormatter
|
|
6
|
+
|
|
7
|
+
from printer_core.tests.unitaries.helpers import make_kitchen_settings, make_printer, make_product, make_request
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ProductsModifiersMultiPrinterTest(unittest.TestCase):
|
|
11
|
+
def test_build_uses_fallback_printer(self):
|
|
12
|
+
formatter = DiscountFormatter()
|
|
13
|
+
service = ProductsModifiersMultiPrinter(formatter)
|
|
14
|
+
request = make_request()
|
|
15
|
+
product = make_product()
|
|
16
|
+
kitchen_settings = make_kitchen_settings(show_price_per_unit=False)
|
|
17
|
+
main_printer = make_printer(name="Main", printer_width="80", tpv="TPV1")
|
|
18
|
+
|
|
19
|
+
lines = service.build(request, [product], kitchen_settings, main_printer)
|
|
20
|
+
|
|
21
|
+
self.assertEqual(lines[0].printer_r, "Main")
|
|
22
|
+
self.assertEqual(lines[0].printer_w, "80")
|
|
23
|
+
self.assertEqual(lines[0].tpv, "TPV1")
|
|
24
|
+
|
|
25
|
+
def test_build_with_multiple_printers(self):
|
|
26
|
+
formatter = DiscountFormatter()
|
|
27
|
+
service = ProductsModifiersMultiPrinter(formatter)
|
|
28
|
+
request = make_request()
|
|
29
|
+
product = make_product(printer=[make_printer(name="P1"), make_printer(name="P2")])
|
|
30
|
+
kitchen_settings = make_kitchen_settings(show_price_per_unit=False)
|
|
31
|
+
|
|
32
|
+
lines = service.build(request, [product], kitchen_settings, make_printer())
|
|
33
|
+
|
|
34
|
+
self.assertEqual(len(lines), 2)
|
|
35
|
+
self.assertEqual({line.printer_r for line in lines}, {"P1", "P2"})
|
|
36
|
+
|
|
37
|
+
def test_build_sets_prices_when_enabled(self):
|
|
38
|
+
formatter = DiscountFormatter()
|
|
39
|
+
service = ProductsModifiersMultiPrinter(formatter)
|
|
40
|
+
request = make_request(all_discounted=True)
|
|
41
|
+
product = make_product(total_price="8.00", product_price="4.00")
|
|
42
|
+
kitchen_settings = make_kitchen_settings(show_price_per_unit=True)
|
|
43
|
+
|
|
44
|
+
lines = service.build(request, [product], kitchen_settings, make_printer())
|
|
45
|
+
|
|
46
|
+
self.assertEqual(lines[0].price, "8.00")
|
|
47
|
+
self.assertEqual(lines[0].unitary_price, "4.00")
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class ProductsModifiersMultiprinterFamilyTest(unittest.TestCase):
|
|
51
|
+
def test_append_product_adds_lines(self):
|
|
52
|
+
formatter = DiscountFormatter()
|
|
53
|
+
service = ProductsModifiersMultiprinterFamily(formatter)
|
|
54
|
+
request = make_request()
|
|
55
|
+
product = make_product(printer=[make_printer(name="P1"), make_printer(name="P2")])
|
|
56
|
+
kitchen_settings = make_kitchen_settings(show_price_per_unit=False)
|
|
57
|
+
lines = []
|
|
58
|
+
|
|
59
|
+
service.append_product(lines, product, request, kitchen_settings)
|
|
60
|
+
|
|
61
|
+
self.assertEqual(len(lines), 2)
|
|
62
|
+
self.assertEqual({line.printer_r for line in lines}, {"P1", "P2"})
|
|
63
|
+
|
|
64
|
+
def test_append_product_sets_prices_when_enabled(self):
|
|
65
|
+
formatter = DiscountFormatter()
|
|
66
|
+
service = ProductsModifiersMultiprinterFamily(formatter)
|
|
67
|
+
request = make_request(all_discounted=True)
|
|
68
|
+
product = make_product(
|
|
69
|
+
printer=[make_printer(name="P1")],
|
|
70
|
+
total_price="6.00",
|
|
71
|
+
product_price="3.00",
|
|
72
|
+
)
|
|
73
|
+
kitchen_settings = make_kitchen_settings(show_price_per_unit=True)
|
|
74
|
+
lines = []
|
|
75
|
+
|
|
76
|
+
service.append_product(lines, product, request, kitchen_settings)
|
|
77
|
+
|
|
78
|
+
self.assertEqual(lines[0].price, "6.00")
|
|
79
|
+
self.assertEqual(lines[0].unitary_price, "3.00")
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class ProductsModifiersUniqueTicketTest(unittest.TestCase):
|
|
83
|
+
def test_build_appends_domicile_service(self):
|
|
84
|
+
formatter = DiscountFormatter()
|
|
85
|
+
service = ProductsModifiersUniqueTicket(formatter, domicile_service_label="Service")
|
|
86
|
+
request = make_request(request_type="domicilio", price_domicile_service="2.00")
|
|
87
|
+
product = make_product()
|
|
88
|
+
|
|
89
|
+
lines = service.build(request, [product])
|
|
90
|
+
|
|
91
|
+
self.assertEqual(lines[-1].name, "Service")
|
|
92
|
+
self.assertEqual(lines[-1].price, "2.00")
|
|
93
|
+
|
|
94
|
+
def test_build_respects_all_discounted(self):
|
|
95
|
+
formatter = DiscountFormatter()
|
|
96
|
+
service = ProductsModifiersUniqueTicket(formatter)
|
|
97
|
+
request = make_request(all_discounted=True)
|
|
98
|
+
product = make_product(discount_type="number", total_price="1.00")
|
|
99
|
+
|
|
100
|
+
lines = service.build(request, [product])
|
|
101
|
+
|
|
102
|
+
self.assertEqual(lines[0].name, "Burger")
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from printer_core.context.ticket_context_builder import TicketContextBuilder
|
|
3
|
+
from printer_core.entities import HeaderData
|
|
4
|
+
|
|
5
|
+
from printer_core.tests.unitaries.helpers import FakeHeaderProvider, FakePrintSettingsBuilder, make_kitchen_settings, make_request, make_ticket_settings
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class TicketContextBuilderTest(unittest.TestCase):
|
|
9
|
+
def test_apply_kitchen_context_sets_header_and_print_by(self):
|
|
10
|
+
header_provider = FakeHeaderProvider()
|
|
11
|
+
print_settings_builder = FakePrintSettingsBuilder()
|
|
12
|
+
builder = TicketContextBuilder(header_provider=header_provider, print_settings_builder=print_settings_builder)
|
|
13
|
+
request = make_request()
|
|
14
|
+
ticket_settings = make_ticket_settings(order_by="standard")
|
|
15
|
+
kitchen_settings = make_kitchen_settings(group_by_orders=True, print_by="categories")
|
|
16
|
+
|
|
17
|
+
enriched = builder.apply_kitchen_context(
|
|
18
|
+
request=request,
|
|
19
|
+
ticket_settings=ticket_settings,
|
|
20
|
+
kitchen_ticket_settings=kitchen_settings,
|
|
21
|
+
header_mode="local",
|
|
22
|
+
include_print_by=True,
|
|
23
|
+
worker=None,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
self.assertEqual(enriched.order_by, "standard")
|
|
27
|
+
self.assertEqual(enriched.group_by_orders, True)
|
|
28
|
+
self.assertEqual(enriched.print_by, "categories")
|
|
29
|
+
self.assertIsInstance(enriched.headerData, HeaderData)
|
|
30
|
+
|
|
31
|
+
def test_apply_kitchen_context_respects_header_mode(self):
|
|
32
|
+
header_provider = FakeHeaderProvider()
|
|
33
|
+
print_settings_builder = FakePrintSettingsBuilder()
|
|
34
|
+
builder = TicketContextBuilder(header_provider=header_provider, print_settings_builder=print_settings_builder)
|
|
35
|
+
request = make_request(request_type="domicilio")
|
|
36
|
+
ticket_settings = make_ticket_settings(order_by=None)
|
|
37
|
+
kitchen_settings = make_kitchen_settings(show_local_header=False, show_domicile_header=True)
|
|
38
|
+
|
|
39
|
+
enriched_local = builder.apply_kitchen_context(
|
|
40
|
+
request=request,
|
|
41
|
+
ticket_settings=ticket_settings,
|
|
42
|
+
kitchen_ticket_settings=kitchen_settings,
|
|
43
|
+
header_mode="local",
|
|
44
|
+
)
|
|
45
|
+
enriched_domicile = builder.apply_kitchen_context(
|
|
46
|
+
request=request,
|
|
47
|
+
ticket_settings=ticket_settings,
|
|
48
|
+
kitchen_ticket_settings=kitchen_settings,
|
|
49
|
+
header_mode="domicile",
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
self.assertIsNone(enriched_local.headerData)
|
|
53
|
+
self.assertIsNotNone(enriched_domicile.headerData)
|
|
54
|
+
|
|
55
|
+
def test_apply_client_context_clears_details_font(self):
|
|
56
|
+
header_provider = FakeHeaderProvider()
|
|
57
|
+
print_settings_builder = FakePrintSettingsBuilder()
|
|
58
|
+
builder = TicketContextBuilder(header_provider=header_provider, print_settings_builder=print_settings_builder)
|
|
59
|
+
request = make_request()
|
|
60
|
+
kitchen_settings = make_kitchen_settings()
|
|
61
|
+
|
|
62
|
+
enriched = builder.apply_client_context(
|
|
63
|
+
request=request,
|
|
64
|
+
kitchen_ticket_settings=kitchen_settings,
|
|
65
|
+
include_header=True,
|
|
66
|
+
details_font_none=True,
|
|
67
|
+
worker=None,
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
self.assertIsNone(enriched.PrintSettings.details_font)
|
|
71
|
+
self.assertIsNotNone(enriched.headerData)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
from printer_core.services.unique_ticket_service import UniqueTicketService
|
|
3
|
+
|
|
4
|
+
from printer_core.tests.unitaries.helpers import make_printer, make_product, make_request, make_ticket_settings
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class UniqueTicketServiceTest(unittest.TestCase):
|
|
8
|
+
def test_build_payload(self):
|
|
9
|
+
service = UniqueTicketService(currency_symbol_resolver=lambda _: "€", domicile_service_label="Service")
|
|
10
|
+
request = make_request(request_type="domicilio", price_domicile_service="2.00")
|
|
11
|
+
products = [make_product()]
|
|
12
|
+
ticket_settings = make_ticket_settings(ticket_text="Text", qty_client_ticket=2)
|
|
13
|
+
|
|
14
|
+
payloads = service.build_payload(
|
|
15
|
+
request=request,
|
|
16
|
+
products=products,
|
|
17
|
+
ticket_settings=ticket_settings,
|
|
18
|
+
printer=make_printer(name="P1"),
|
|
19
|
+
tpv_key="TPV1",
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
self.assertEqual(payloads[0].printer_qty, 2)
|
|
23
|
+
self.assertEqual(payloads[0].data.ticket_text, "Text")
|
|
24
|
+
self.assertEqual(payloads[0].data.products[-1].name, "Service")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .printer_helpers import build_iva_data, group_products_by_orders, order_products_by_name
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
from collections import OrderedDict
|
|
2
|
+
from decimal import Decimal
|
|
3
|
+
from operator import attrgetter
|
|
4
|
+
|
|
5
|
+
from printer_core.entities import IvaData, KitchenProductLine, ProductsGroup
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def order_products_by_name(list_of_products: list[KitchenProductLine]) -> list[KitchenProductLine]:
|
|
9
|
+
return sorted(list_of_products, key=attrgetter("name"))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def group_products_by_orders(products: list[KitchenProductLine]) -> list[ProductsGroup]:
|
|
13
|
+
dict_aux: dict[int, ProductsGroup] = {}
|
|
14
|
+
array_without_order: list[KitchenProductLine] = []
|
|
15
|
+
for product in products:
|
|
16
|
+
if product.order is not None:
|
|
17
|
+
try:
|
|
18
|
+
order_id = int(product.order)
|
|
19
|
+
product = product.model_copy(update={"order": str(order_id)})
|
|
20
|
+
if order_id in dict_aux:
|
|
21
|
+
dict_aux[order_id].products.append(product)
|
|
22
|
+
else:
|
|
23
|
+
dict_aux[order_id] = ProductsGroup(
|
|
24
|
+
group=product.order_readable or "",
|
|
25
|
+
products=[product],
|
|
26
|
+
)
|
|
27
|
+
except ValueError:
|
|
28
|
+
continue
|
|
29
|
+
else:
|
|
30
|
+
array_without_order.append(product)
|
|
31
|
+
|
|
32
|
+
ordered_dict = OrderedDict(sorted(dict_aux.items()))
|
|
33
|
+
list_of_ordered_values: list[ProductsGroup] = list(ordered_dict.values())
|
|
34
|
+
list_of_ordered_values.append(ProductsGroup(group="Sin orden", products=array_without_order))
|
|
35
|
+
return list_of_ordered_values
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def build_iva_data(total: Decimal, iva: Decimal) -> IvaData:
|
|
39
|
+
aa: Decimal = Decimal(total)
|
|
40
|
+
iva_value: Decimal = Decimal(str(iva))
|
|
41
|
+
base: Decimal = Decimal(aa / (1 + iva_value / 100)).quantize(Decimal(".01"))
|
|
42
|
+
return IvaData(Base=str(base), impo=str(aa - base), iva=str(iva_value))
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: printer-core
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Foodeo Printer Core Domain.
|
|
5
|
+
Project-URL: Homepage, https://github.com/Foodeo/printer-core
|
|
6
|
+
Project-URL: Repository, https://github.com/Foodeo/printer-core
|
|
7
|
+
Project-URL: Issues, https://github.com/Foodeo/printer-core/issues
|
|
8
|
+
Author-email: OmarSRolo <chicomtz.sr@gmail.com>, ramsy19980104 <busto0498@gmail.com>, ytapanesm90 <ytapanes90@gmail.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: domain,foodeo
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Requires-Dist: pydantic>=2.12.2
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
|
|
23
|
+
# printer-core
|
|
24
|
+
Foodeo Printer Core
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
printer_core/__init__.py,sha256=hKawQMqKy3M_bHVPXKvYoHKYWlcVbeiEK6dY3sOlEEE,23
|
|
2
|
+
printer_core/clock.py,sha256=mNFQ2a0oN4FPr3UJnNEjt4ykNQr32bM6Kx2bJJVMxi8,145
|
|
3
|
+
printer_core/ports.py,sha256=6ytoB-MsZVsNhP0dF_irtrxNNMxcQJrppe1X2R29cDI,1190
|
|
4
|
+
printer_core/algorithms/__init__.py,sha256=YNjpS5qnxY5025SjCie8-SHG_ljhUpk2Td89mFb2MKc,239
|
|
5
|
+
printer_core/algorithms/products_modifiers_multiprinter.py,sha256=yrWcEo_r2JWGulWJ9g5T3Z4gAa9WYup5F1eEdLnKxR4,2569
|
|
6
|
+
printer_core/algorithms/products_modifiers_multiprinter_family.py,sha256=7CW2Gem-BUHDdDwnFAuObzzbMK200KsF4Ts6M5lHQgM,2228
|
|
7
|
+
printer_core/algorithms/products_modifiers_unique_ticket.py,sha256=99pAuT9hdu7zoH8ykLlGCZ1Bd-8ljjozP2VIFcT6weU,1458
|
|
8
|
+
printer_core/builders/__init__.py,sha256=qyyvBGFfjBjDXoGjt_dHepOd5op6VBJToew9DeqYSwU,230
|
|
9
|
+
printer_core/builders/client_ticket_builder.py,sha256=_cnzvDqiVpsTE7jmxHSd1mALDk1iM3Ov2Vgsvrq2zJs,3918
|
|
10
|
+
printer_core/builders/header_builder.py,sha256=314ZypPSi3f4zpH7GaAGyDRfpQg90dhgvkUJKieIyqM,1139
|
|
11
|
+
printer_core/builders/kitchen_ticket_payload_builder.py,sha256=NJwYhj3GZ2CADg-4sLOju_CwGm9yZDSmYp9a__gFbkY,3984
|
|
12
|
+
printer_core/builders/printer_products_grouper.py,sha256=_xVlTcMFVeergJ1rmtAZhpNS6igbfg0qRh86p0AV8Fw,768
|
|
13
|
+
printer_core/context/__init__.py,sha256=TkuMFuwcyh2lpIUwrXYZxPZtS4ViSaz7KJBclIWihfo,57
|
|
14
|
+
printer_core/context/ticket_context_builder.py,sha256=XD7wBvFE8R1gzH6k0IV7P0TRbb8jFg5VENencrRY6oo,2712
|
|
15
|
+
printer_core/dispatchers/__init__.py,sha256=YDNvT7pqOZIafVz7fgO6WhJP8az4tFdjS06g61_l8YM,113
|
|
16
|
+
printer_core/dispatchers/kitchen_ticket_dispatcher.py,sha256=DYfIzTuvOrO1FoYQdrV6srx1SuDTdxYJFE9zi3ni8Dk,1607
|
|
17
|
+
printer_core/dispatchers/payload_dispatcher.py,sha256=oL-5__w_QwS7iqc6wlm9hUvw9Rx301Q02gjJ17_Kj94,618
|
|
18
|
+
printer_core/entities/__init__.py,sha256=r7MPgE3G6s4ztqhA5l5-AMgRRwfaHbQe5XNLXU9ivKA,1077
|
|
19
|
+
printer_core/entities/print_context.py,sha256=KKn3LM-cIPzijMbW72VtexFVh6ZnkY3t0oLI4H304P8,354
|
|
20
|
+
printer_core/entities/print_models.py,sha256=w8PxdyUrj8F2El6RjV8oZYIzw2pIoBgdRZRjYzCMJAg,5590
|
|
21
|
+
printer_core/formatters/__init__.py,sha256=fNY-c7Op7C5i48yW7qrJIL2nn_RKp6TD7Q5IiLrZjjw,50
|
|
22
|
+
printer_core/formatters/discount_formatter.py,sha256=5QJZt1MpMD6spe2xdwJV6vIWw908ir9JGuSOAeZOurk,819
|
|
23
|
+
printer_core/selectors/__init__.py,sha256=QcVNSntlVM8ORfSybFPw9w27MsfPsjCEC6xwEqJr3EQ,59
|
|
24
|
+
printer_core/selectors/family_product_selector.py,sha256=wzgPlONd0A3SV6rDP_Z28LtBW3Wn2CW5iS_fPOJ-x7A,1414
|
|
25
|
+
printer_core/services/__init__.py,sha256=IeoCnl0PB__JzsvS1Q92y1iYD499TGmdNOgKAzg9ZQk,846
|
|
26
|
+
printer_core/services/march_printer_service.py,sha256=CUxCXn0wpRVjGvK2V3MqUBygnxhjjDErnD3xvs5JWTw,2460
|
|
27
|
+
printer_core/services/multi_printer_family_service.py,sha256=lVTS2HqDihLHQ-N3El2N5mFOyfgL417x6B3G-em5H2M,4488
|
|
28
|
+
printer_core/services/multi_printer_service.py,sha256=JgAZVvhhjJmRwlEwLDiRY69hWvwMiTUC57M1eXGF1fM,2382
|
|
29
|
+
printer_core/services/order_print_service.py,sha256=sY97aGN0XPNABX8gR4sSWuIKDiWG0hKXBVp4p4CT84A,4378
|
|
30
|
+
printer_core/services/print_policy.py,sha256=UvQ4kdlAAsQMO7qr89JdFnYwwiWMFjte0XFRYnsHLKQ,2885
|
|
31
|
+
printer_core/services/unique_ticket_service.py,sha256=L985qVas7dd9NHMFphX_csEXjnU2J9ulIa2fIi8eLq0,2108
|
|
32
|
+
printer_core/services/flows/__init__.py,sha256=RCiNwDUMhAAW_FOHL0SuKsqk-xFLvelAhOVpJguv-bY,247
|
|
33
|
+
printer_core/services/flows/base.py,sha256=wR9k8gIL_nnw4KwLCS3_RLGauyLxrb5pEhKlu4Ol8t4,611
|
|
34
|
+
printer_core/services/flows/client.py,sha256=JLFBkKv3rhX7eLCk0PKnJr65gWgKi521kVqIQ2oRVYQ,3328
|
|
35
|
+
printer_core/services/flows/kitchen.py,sha256=5p-eEolIR2gvMwgJSfqApqjWQjqKububB7BH2bFiZmQ,4214
|
|
36
|
+
printer_core/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
+
printer_core/tests/unitaries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
|
+
printer_core/tests/unitaries/helpers.py,sha256=MGHqemP-2BFGEbjLOsOyfL0c8SMoHtGfQAXjmw9ar8E,5566
|
|
39
|
+
printer_core/tests/unitaries/test_cases_output.py,sha256=N6ze31vE8iNGj9DUjjJmfE-AzEzH92KAbF1QVwW5Tiw,8861
|
|
40
|
+
printer_core/tests/unitaries/test_client_ticket_builder.py,sha256=yuxh4kZig5sgMxur5s37nN7MIAMzzP8x5acy3AaWaP0,2870
|
|
41
|
+
printer_core/tests/unitaries/test_discount_formatter.py,sha256=ows5F-9VrVQrz8Fawqe6sHx4thuC9mIJsT6wajZfLfw,1296
|
|
42
|
+
printer_core/tests/unitaries/test_family_product_selector.py,sha256=OEtJa9VXzEGwKUVLA_9zYlkOszdDAG2fvSbFuxuSfkg,1215
|
|
43
|
+
printer_core/tests/unitaries/test_flows.py,sha256=fVA1vse89fyLlZX6Xnxp9gRAQmzIFUKNOqFPfgdWd2s,5211
|
|
44
|
+
printer_core/tests/unitaries/test_header_builder_foodeo_printers.py,sha256=-71nOaAL502LGyxFmUHhspOQmbywE6t3sNSiYHWx4fI,3109
|
|
45
|
+
printer_core/tests/unitaries/test_kitchen_ticket_dispatcher.py,sha256=VyvZ8k6CoRZAwMMKQe4isPJAgWDsn4eD1Loa2ppyhg0,2265
|
|
46
|
+
printer_core/tests/unitaries/test_kitchen_ticket_payload_builder.py,sha256=wnKYHGkOI3fgk1NA7T6evKn8yCP92GsMnKLgxiwZC-0,5054
|
|
47
|
+
printer_core/tests/unitaries/test_march_printer_service.py,sha256=pCjuR4AwrYY9Nz6_5Dg4zF9rqGVcEj6BdwW78UwfS24,1324
|
|
48
|
+
printer_core/tests/unitaries/test_multi_printer_family_service.py,sha256=DDI7Oeq3m3o05IBd2IngsAamTO-629_PPNmgRdV20c0,2309
|
|
49
|
+
printer_core/tests/unitaries/test_multi_printer_service.py,sha256=enq6B8M0LRbq7ZnN15GxMFM5s01kq5kqh1FKBXU7URo,2191
|
|
50
|
+
printer_core/tests/unitaries/test_order_print_service.py,sha256=vje8cJgSoEkiQBAWoH7NM9MhCTbhxERGpTToakqEG_A,5980
|
|
51
|
+
printer_core/tests/unitaries/test_payload_dispatcher.py,sha256=uFkBIWEqSgEWSRWTEXR7MsjyhE4qZuZX2Yg_edEW8Lg,1897
|
|
52
|
+
printer_core/tests/unitaries/test_print_policy.py,sha256=IF4B2T4YQj-7Xblgtsk9TEe-tTzOmC1vsLrdK5RGRXk,1765
|
|
53
|
+
printer_core/tests/unitaries/test_printer_helpers.py,sha256=PoT_f6G3f7MOTeJNmHgqiXEcDFnovbmabdXI4t4cw0g,2354
|
|
54
|
+
printer_core/tests/unitaries/test_printer_products_grouper.py,sha256=d72QnhtkfzytTo8vcUEVr2Zzt6afIJDoafx65_SCZMQ,932
|
|
55
|
+
printer_core/tests/unitaries/test_products_modifiers.py,sha256=qeG7_2f9vPZkQ6vLr7dOKEbfQNBANmDpKmLaov2XUP4,4449
|
|
56
|
+
printer_core/tests/unitaries/test_ticket_context_builder.py,sha256=VWRc344EXagLKMsVxnUiuuokQiE2PexJE2Jc6Y9YMkE,3157
|
|
57
|
+
printer_core/tests/unitaries/test_unique_ticket_service.py,sha256=FpYEMHHsStE-inb7vdYODa4LAKCfBw14rOUeEIIRtzc,1037
|
|
58
|
+
printer_core/utils/__init__.py,sha256=2xepRPeiarPmnodrAEZav7Ssj2AtaqYzD93Clzq7zG0,94
|
|
59
|
+
printer_core/utils/printer_helpers.py,sha256=d7ijnTdftQrH-YmTuCCF5wIgTeT1W_2pLg2ZdP7zGsg,1725
|
|
60
|
+
printer_core-0.0.1.dist-info/METADATA,sha256=15RHPwiLuAMK24P-NB4YaNa-UpQmoCtl1OT3KGJxjxg,963
|
|
61
|
+
printer_core-0.0.1.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
62
|
+
printer_core-0.0.1.dist-info/RECORD,,
|