mikrowerk-edi-invoicing 0.3.3__tar.gz → 0.3.4__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 (42) hide show
  1. {mikrowerk_edi_invoicing-0.3.3/mikrowerk_edi_invoicing.egg-info → mikrowerk_edi_invoicing-0.3.4}/PKG-INFO +1 -1
  2. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/delivery.py +4 -0
  3. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/references.py +6 -0
  4. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/xml_cii_dom_parser.py +7 -4
  5. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/model/x_rechnung.py +4 -2
  6. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/tests/test_parse_x_rechnung.py +3 -3
  7. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4/mikrowerk_edi_invoicing.egg-info}/PKG-INFO +1 -1
  8. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/setup.py +1 -1
  9. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/LICENSE +0 -0
  10. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/README.md +0 -0
  11. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/__init__.py +0 -0
  12. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/__init__.py +0 -0
  13. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/dom_elements_helper.py +0 -0
  14. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/__init__.py +0 -0
  15. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/accounting.py +0 -0
  16. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/container.py +0 -0
  17. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/document.py +0 -0
  18. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/elements.py +0 -0
  19. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/fields.py +0 -0
  20. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/note.py +0 -0
  21. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/party.py +0 -0
  22. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/payment.py +0 -0
  23. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/product.py +0 -0
  24. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/trade.py +0 -0
  25. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/models/tradelines.py +0 -0
  26. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/pdf.py +0 -0
  27. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/utils.py +0 -0
  28. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cii_dom_parser/xmp_schema.py +0 -0
  29. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/cross_industry_invoice_mapper.py +0 -0
  30. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/model/__init__.py +0 -0
  31. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/model/xml_abstract_x_rechnung_parser.py +0 -0
  32. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/tests/__init__.py +0 -0
  33. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/tests/test_iban_handling.py +0 -0
  34. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/ubl_sax_parser/__init__.py +0 -0
  35. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/ubl_sax_parser/xml_ubl_sax_parser.py +0 -0
  36. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/util/__init__.py +0 -0
  37. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/edi_invoice_parser/util/file_helper.py +0 -0
  38. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/mikrowerk_edi_invoicing.egg-info/SOURCES.txt +0 -0
  39. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/mikrowerk_edi_invoicing.egg-info/dependency_links.txt +0 -0
  40. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/mikrowerk_edi_invoicing.egg-info/requires.txt +0 -0
  41. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/mikrowerk_edi_invoicing.egg-info/top_level.txt +0 -0
  42. {mikrowerk_edi_invoicing-0.3.3 → mikrowerk_edi_invoicing-0.3.4}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mikrowerk_edi_invoicing
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Parser for EDI invoices in CII or UBL format
5
5
  Author: Mikrowerk a Gammadata Division
6
6
  Author-email: info@mikrowerk.com
@@ -9,6 +9,7 @@ from .party import (
9
9
  from .references import (
10
10
  DeliveryNoteReferencedDocument,
11
11
  DespatchAdviceReferencedDocument,
12
+ ReceivingAdviceReferencedDocument
12
13
  )
13
14
 
14
15
 
@@ -59,6 +60,9 @@ class TradeDelivery(Element):
59
60
  delivery_note = Field(
60
61
  DeliveryNoteReferencedDocument, required=False, profile=EXTENDED
61
62
  )
63
+ receiving_advice_ref_document = Field(
64
+ ReceivingAdviceReferencedDocument, required=False, profile=EXTENDED
65
+ )
62
66
 
63
67
  class Meta:
64
68
  namespace = NS_RAM
@@ -139,6 +139,12 @@ class DeliveryNoteReferencedDocument(ReferencedDocument):
139
139
  tag = "DeliveryNoteReferencedDocument"
140
140
 
141
141
 
142
+ class ReceivingAdviceReferencedDocument(ReferencedDocument):
143
+ class Meta:
144
+ namespace = NS_RAM
145
+ tag = "ReceivingAdviceReferencedDocument"
146
+
147
+
142
148
  class LineDeliveryNoteReferencedDocument(ReferencedDocument):
143
149
  class Meta:
144
150
  namespace = NS_RAM
@@ -33,6 +33,7 @@ class XRechnungCIIXMLParser(XMLAbstractXRechnungParser):
33
33
  notes=doc.header.notes.get_string_elements("\n"),
34
34
  languages=doc.header.languages.get_string_elements(";"),
35
35
  buyer_reference=doc.trade.agreement.buyer_reference.get_string(),
36
+ order_reference=doc.trade.agreement.buyer_order.issuer_assigned_id.get_string(),
36
37
  currency_code=doc.trade.settlement.currency_code.get_string(),
37
38
  line_total_amount=doc.trade.settlement.monetary_summation.line_total.get_value(),
38
39
  charge_total_amount=doc.trade.settlement.monetary_summation.charge_total.get_value(),
@@ -134,10 +135,12 @@ class XRechnungCIIXMLParser(XMLAbstractXRechnungParser):
134
135
  @staticmethod
135
136
  def map_bank_account(payment_means: any) -> XRechnungBankAccount:
136
137
  return XRechnungBankAccount(
137
- iban="".join(payment_means.payee_account.iban.get_string().split()) if hasattr(payment_means,
138
- 'payee_account') else None,
139
- bic=payment_means.payee_institution.bic.get_string() if hasattr(payment_means,
140
- 'payee_institution') else None,
138
+ iban="".join(payment_means.payee_account.iban.get_string().split()) if (hasattr(payment_means,
139
+ 'payee_account')
140
+ and payment_means.payee_account.iban.get_string()) else None,
141
+ bic=payment_means.payee_institution.bic.get_string() if (hasattr(payment_means,
142
+ 'payee_institution')
143
+ and payment_means.payee_institution.bic) else None,
141
144
  )
142
145
 
143
146
  @staticmethod
@@ -209,7 +209,7 @@ class XRechnung:
209
209
  _dict = asdict(trade_party)
210
210
  _dict.update({
211
211
  'postal_address': cls.map_trade_address(trade_party.postal_address),
212
- 'trade_contact': cls.map_trade_contact(trade_party.trade_contact)
212
+ 'trade_contact': cls.map_trade_contact(trade_party.trade_contact, trade_party)
213
213
  })
214
214
  return _dict
215
215
 
@@ -221,10 +221,12 @@ class XRechnung:
221
221
  return _dict
222
222
 
223
223
  @classmethod
224
- def map_trade_contact(cls, trade_contact: XRechnungTradeContact) -> dict | None:
224
+ def map_trade_contact(cls, trade_contact: XRechnungTradeContact, trade_party: XRechnungTradeParty) -> dict | None:
225
225
  if trade_contact is None:
226
226
  return None
227
227
  _dict = asdict(trade_contact)
228
+ if _dict.get('name', None) is None or _dict.get('name', None) == '':
229
+ _dict.update({'name': trade_party.name})
228
230
  return _dict
229
231
 
230
232
  @classmethod
@@ -24,10 +24,10 @@ class XRechnungEinfachTestCase(unittest.TestCase):
24
24
  ('xml', 'e_invoicing_EN16931/CII_business_example_02.xml'),
25
25
  ('xml', 'e_invoicing_EN16931/CII_business_example_Z.xml'),
26
26
  ('xml', 'e_invoicing_EN16931/CII_example1.xml'),
27
- # # ('xml', 'e_invoicing_EN16931/CII_example2.xml'), # throws error
27
+ ('xml', 'e_invoicing_EN16931/CII_example2.xml'), # throws error
28
28
  ('xml', 'e_invoicing_EN16931/CII_example3.xml'),
29
29
  ('xml', 'e_invoicing_EN16931/CII_example4.xml'),
30
- # # ('xml', 'e_invoicing_EN16931/CII_example5.xml'), # throws error
30
+ ('xml', 'e_invoicing_EN16931/CII_example5.xml'), # throws error
31
31
  ('xml', 'e_invoicing_EN16931/CII_example6.xml'),
32
32
  ('xml', 'e_invoicing_EN16931/CII_example7.xml'),
33
33
  ('xml', 'e_invoicing_EN16931/CII_example8.xml'),
@@ -35,7 +35,7 @@ class XRechnungEinfachTestCase(unittest.TestCase):
35
35
  ('xml', 'ubl/RG00343552.xml'),
36
36
  ('xml', 'ubl/ubl_invoice_example.xml'),
37
37
  ('xml', 'ubl/UBL-Invoice-2.1-Example.xml'),
38
- ('pdf', 'zugferd/BASIC-WL_Einfach/BASIC-WL_Einfach.pdf'),
38
+ # ('pdf', 'zugferd/BASIC-WL_Einfach/BASIC-WL_Einfach.pdf'),
39
39
  # ('pdf', 'zugferd/XRECHNUNG_Einfach/XRECHNUNG_Einfach.pdf'), # needs some checks, why test failed
40
40
  # ("pdf", "zugferd/XRECHNUNG_Elektron/XRECHNUNG_Elektron.pdf"), # needs some checks, why test failed
41
41
  ('pdf', 'odoo_generated/INV_2025_00001.pdf'),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mikrowerk_edi_invoicing
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Parser for EDI invoices in CII or UBL format
5
5
  Author: Mikrowerk a Gammadata Division
6
6
  Author-email: info@mikrowerk.com
@@ -16,7 +16,7 @@ setuptools.setup(
16
16
  name="mikrowerk_edi_invoicing",
17
17
 
18
18
  # version of the module
19
- version="0.3.3",
19
+ version="0.3.4",
20
20
 
21
21
  # Name of Author
22
22
  author="Mikrowerk a Gammadata Division",