printer-core 0.0.2__tar.gz → 0.0.3__tar.gz

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.
Files changed (65) hide show
  1. {printer_core-0.0.2 → printer_core-0.0.3}/PKG-INFO +1 -1
  2. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/flows/client.py +6 -2
  3. printer_core-0.0.3/printer_core/tests/unitaries/__init__.py +0 -0
  4. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_flows.py +29 -0
  5. {printer_core-0.0.2 → printer_core-0.0.3}/pyproject.toml +1 -1
  6. /printer_core-0.0.2/printer_core/tests/__init__.py → /printer_core-0.0.3/.codex +0 -0
  7. {printer_core-0.0.2 → printer_core-0.0.3}/.gitignore +0 -0
  8. {printer_core-0.0.2 → printer_core-0.0.3}/README.md +0 -0
  9. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/__init__.py +0 -0
  10. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/algorithms/__init__.py +0 -0
  11. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/algorithms/products_modifiers_multiprinter.py +0 -0
  12. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/algorithms/products_modifiers_multiprinter_family.py +0 -0
  13. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/algorithms/products_modifiers_unique_ticket.py +0 -0
  14. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/builders/__init__.py +0 -0
  15. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/builders/client_ticket_builder.py +0 -0
  16. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/builders/header_builder.py +0 -0
  17. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/builders/kitchen_ticket_payload_builder.py +0 -0
  18. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/builders/printer_products_grouper.py +0 -0
  19. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/clock.py +0 -0
  20. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/context/__init__.py +0 -0
  21. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/context/ticket_context_builder.py +0 -0
  22. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/dispatchers/__init__.py +0 -0
  23. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/dispatchers/kitchen_ticket_dispatcher.py +0 -0
  24. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/dispatchers/payload_dispatcher.py +0 -0
  25. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/entities/__init__.py +0 -0
  26. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/entities/print_context.py +0 -0
  27. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/entities/print_models.py +0 -0
  28. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/formatters/__init__.py +0 -0
  29. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/formatters/discount_formatter.py +0 -0
  30. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/ports.py +0 -0
  31. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/selectors/__init__.py +0 -0
  32. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/selectors/family_product_selector.py +0 -0
  33. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/__init__.py +0 -0
  34. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/flows/__init__.py +0 -0
  35. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/flows/base.py +0 -0
  36. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/flows/kitchen.py +0 -0
  37. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/march_printer_service.py +0 -0
  38. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/multi_printer_family_service.py +0 -0
  39. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/multi_printer_service.py +0 -0
  40. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/order_print_service.py +0 -0
  41. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/print_policy.py +0 -0
  42. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/services/unique_ticket_service.py +0 -0
  43. {printer_core-0.0.2/printer_core/tests/unitaries → printer_core-0.0.3/printer_core/tests}/__init__.py +0 -0
  44. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/helpers.py +0 -0
  45. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_cases_output.py +0 -0
  46. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_client_ticket_builder.py +0 -0
  47. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_discount_formatter.py +0 -0
  48. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_family_product_selector.py +0 -0
  49. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_header_builder_foodeo_printers.py +0 -0
  50. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_kitchen_ticket_dispatcher.py +0 -0
  51. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_kitchen_ticket_payload_builder.py +0 -0
  52. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_march_printer_service.py +0 -0
  53. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_multi_printer_family_service.py +0 -0
  54. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_multi_printer_service.py +0 -0
  55. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_order_print_service.py +0 -0
  56. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_payload_dispatcher.py +0 -0
  57. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_print_policy.py +0 -0
  58. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_printer_helpers.py +0 -0
  59. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_printer_products_grouper.py +0 -0
  60. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_products_modifiers.py +0 -0
  61. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_ticket_context_builder.py +0 -0
  62. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/tests/unitaries/test_unique_ticket_service.py +0 -0
  63. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/utils/__init__.py +0 -0
  64. {printer_core-0.0.2 → printer_core-0.0.3}/printer_core/utils/printer_helpers.py +0 -0
  65. {printer_core-0.0.2 → printer_core-0.0.3}/scripts/link_backend_env.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: printer-core
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: Foodeo Printer Core Domain.
5
5
  Project-URL: Homepage, https://github.com/Foodeo/printer-core
6
6
  Project-URL: Repository, https://github.com/Foodeo/printer-core
@@ -52,7 +52,6 @@ class ClientPrintFlow:
52
52
  worker=context.worker,
53
53
  )
54
54
  client_request = self._apply_client_request_overrides(client_request, channel)
55
- client_request = client_request.model_copy(update={"is_invoice": False})
56
55
  data = self._build_client_ticket(
57
56
  client_request,
58
57
  products,
@@ -60,7 +59,7 @@ class ClientPrintFlow:
60
59
  context.main_printer,
61
60
  tpv_key,
62
61
  )
63
- payload = [item.model_dump(mode="json", exclude_none=True) for item in data]
62
+ payload = [self._serialize_client_payload(item) for item in data]
64
63
  self._gateway.send_data(tpv_key, payload)
65
64
  return data
66
65
 
@@ -95,3 +94,8 @@ class ClientPrintFlow:
95
94
  if not print_settings:
96
95
  return request
97
96
  return request.model_copy(update={"PrintSettings": print_settings.model_copy(update={"show_header": False})})
97
+
98
+ def _serialize_client_payload(self, payload: ClientTicketPayload) -> dict[str, Any]:
99
+ serialized = payload.model_dump(mode="json", exclude_none=True)
100
+ serialized.setdefault("data", {})["is_invoice"] = payload.data.is_invoice
101
+ return serialized
@@ -65,6 +65,35 @@ class ClientPrintFlowTest(unittest.TestCase):
65
65
  self.assertEqual(payload["company_key"], "TPV1")
66
66
  self.assertEqual(payload["data"]["PrintSettings"]["show_header"], False)
67
67
  self.assertEqual(payload["data"]["headerData"]["client_name"], "local:web")
68
+ self.assertIn("is_invoice", payload["data"])
69
+ self.assertIsNone(payload["data"]["is_invoice"])
70
+
71
+ def test_execute_preserves_is_invoice_value_from_request(self):
72
+ gateway = FakeGateway()
73
+ flow = ClientPrintFlow(
74
+ gateway=gateway,
75
+ header_provider=FakeHeaderProvider(),
76
+ print_settings_builder=FakePrintSettingsBuilder(),
77
+ currency_symbol_resolver=lambda _: "",
78
+ domicile_service_label="Service",
79
+ )
80
+ context = type("Ctx", (), {
81
+ "kitchen_settings": make_kitchen_settings(),
82
+ "ticket_settings": make_ticket_settings(),
83
+ "main_printer": make_printer(),
84
+ "worker": None,
85
+ })()
86
+
87
+ flow.execute(
88
+ base_request=make_request(request_type="local", from_client="web", is_invoice=True),
89
+ products=[make_product()],
90
+ context=context,
91
+ channel=PrintChannel.LOCAL,
92
+ tpv_key="TPV1",
93
+ )
94
+
95
+ payload = gateway.calls[0][1][0]
96
+ self.assertTrue(payload["data"]["is_invoice"])
68
97
 
69
98
 
70
99
  class KitchenPrintFlowTest(unittest.TestCase):
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "printer-core"
7
- version = "0.0.2"
7
+ version = "0.0.3"
8
8
  description = "Foodeo Printer Core Domain."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
File without changes
File without changes