-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathReader.php
More file actions
77 lines (69 loc) · 6.25 KB
/
Copy pathReader.php
File metadata and controls
77 lines (69 loc) · 6.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
namespace NumNum\UBL;
use Sabre\Xml\Service;
class Reader
{
public static $currencyID;
public static function ubl($currencyId = 'EUR'): Service
{
self::$currencyID = $currencyId;
$xmlService = new Service();
$xmlService->options = LIBXML_PARSEHUGE;
$xmlService->namespaceMap = [
Schema::INVOICE => '',
Schema::CBC => 'cbc',
Schema::CAC => 'cac',
];
$xmlService->elementMap = [
Schema::INVOICE. 'Invoice' => fn ($reader) => Invoice::xmlDeserialize($reader),
Schema::CREDITNOTE.'CreditNote' => fn ($reader) => CreditNote::xmlDeserialize($reader),
Schema::DEBITNOTE. 'DebitNote' => fn ($reader) => DebitNote::xmlDeserialize($reader),
Schema::CAC. 'AccountingCustomerParty' => fn ($reader) => AccountingParty::xmlDeserialize($reader),
Schema::CAC. 'AccountingSupplierParty' => fn ($reader) => AccountingParty::xmlDeserialize($reader),
Schema::CAC. 'AdditionalDocumentReference' => fn ($reader) => AdditionalDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'AdditionalItemProperty' => fn ($reader) => AdditionalItemProperty::xmlDeserialize($reader),
Schema::CAC. 'Address' => fn ($reader) => Address::xmlDeserialize($reader),
Schema::CAC. 'AddressLine' => fn ($reader) => AddressLine::xmlDeserialize($reader),
Schema::CAC. 'AllowanceCharge' => fn ($reader) => AllowanceCharge::xmlDeserialize($reader),
Schema::CAC. 'Attachment' => fn ($reader) => Attachment::xmlDeserialize($reader),
Schema::CAC. 'BillingReference' => fn ($reader) => BillingReference::xmlDeserialize($reader),
Schema::CAC. 'ClassifiedTaxCategory' => fn ($reader) => ClassifiedTaxCategory::xmlDeserialize($reader),
Schema::CAC. 'CommodityClassification' => fn ($reader) => CommodityClassification::xmlDeserialize($reader),
Schema::CAC. 'Contact' => fn ($reader) => Contact::xmlDeserialize($reader),
Schema::CAC. 'ContractDocumentReference' => fn ($reader) => ContractDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'Country' => fn ($reader) => Country::xmlDeserialize($reader),
Schema::CAC. 'DespatchDocumentReference' => fn ($reader) => DespatchDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'CreditNoteLine' => fn ($reader) => CreditNoteLine::xmlDeserialize($reader),
Schema::CAC. 'DebitNoteLine' => fn ($reader) => DebitNoteLine::xmlDeserialize($reader),
Schema::CAC. 'Delivery' => fn ($reader) => Delivery::xmlDeserialize($reader),
Schema::CAC. 'FinancialInstitutionBranch' => fn ($reader) => FinancialInstitutionBranch::xmlDeserialize($reader),
Schema::CAC. 'InvoiceDocumentReference' => fn ($reader) => InvoiceDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'InvoiceLine' => fn ($reader) => InvoiceLine::xmlDeserialize($reader),
Schema::CAC. 'InvoicePeriod' => fn ($reader) => InvoicePeriod::xmlDeserialize($reader),
Schema::CAC. 'Item' => fn ($reader) => Item::xmlDeserialize($reader),
Schema::CAC. 'LegalMonetaryTotal' => fn ($reader) => LegalMonetaryTotal::xmlDeserialize($reader),
Schema::CAC. 'OrderLineReference' => fn ($reader) => OrderLineReference::xmlDeserialize($reader),
Schema::CAC. 'OrderReference' => fn ($reader) => OrderReference::xmlDeserialize($reader),
Schema::CAC. 'OriginCountry' => fn ($reader) => Country::xmlDeserialize($reader),
Schema::CAC. 'Party' => fn ($reader) => Party::xmlDeserialize($reader),
Schema::CAC. 'PartyLegalEntity' => fn ($reader) => LegalEntity::xmlDeserialize($reader),
Schema::CAC. 'PartyTaxScheme' => fn ($reader) => PartyTaxScheme::xmlDeserialize($reader),
Schema::CAC. 'OriginatorDocumentReference' => fn ($reader) => OriginatorDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'PayeeFinancialAccount' => fn ($reader) => PayeeFinancialAccount::xmlDeserialize($reader),
Schema::CAC. 'PayeeParty' => fn ($reader) => PayeeParty::xmlDeserialize($reader),
Schema::CAC. 'PaymentMandate' => fn ($reader) => PaymentMandate::xmlDeserialize($reader),
Schema::CAC. 'PaymentMeans' => fn ($reader) => PaymentMeans::xmlDeserialize($reader),
Schema::CAC. 'PaymentTerms' => fn ($reader) => PaymentTerms::xmlDeserialize($reader),
Schema::CAC. 'ReceiptDocumentReference' => fn ($reader) => ReceiptDocumentReference::xmlDeserialize($reader),
Schema::CAC. 'PostalAddress' => fn ($reader) => Address::xmlDeserialize($reader),
Schema::CAC. 'Price' => fn ($reader) => Price::xmlDeserialize($reader),
Schema::CAC. 'ProjectReference' => fn ($reader) => ProjectReference::xmlDeserialize($reader),
Schema::CAC. 'SettlementPeriod' => fn ($reader) => SettlementPeriod::xmlDeserialize($reader),
Schema::CAC. 'TaxCategory' => fn ($reader) => TaxCategory::xmlDeserialize($reader),
Schema::CAC. 'TaxScheme' => fn ($reader) => TaxScheme::xmlDeserialize($reader),
Schema::CAC. 'TaxSubtotal' => fn ($reader) => TaxSubTotal::xmlDeserialize($reader),
Schema::CAC. 'TaxTotal' => fn ($reader) => TaxTotal::xmlDeserialize($reader),
];
return $xmlService;
}
}