@stamhoofd/structures 2.107.3 → 2.109.0

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 (145) hide show
  1. package/dist/src/BalanceItem.d.ts +5 -0
  2. package/dist/src/BalanceItem.d.ts.map +1 -1
  3. package/dist/src/BalanceItem.js +10 -1
  4. package/dist/src/BalanceItem.js.map +1 -1
  5. package/dist/src/Document.d.ts +1 -0
  6. package/dist/src/Document.d.ts.map +1 -1
  7. package/dist/src/Document.js +3 -0
  8. package/dist/src/Document.js.map +1 -1
  9. package/dist/src/GenericBalance.d.ts.map +1 -1
  10. package/dist/src/GenericBalance.js +2 -1
  11. package/dist/src/GenericBalance.js.map +1 -1
  12. package/dist/src/GroupType.d.ts +1 -0
  13. package/dist/src/GroupType.d.ts.map +1 -1
  14. package/dist/src/GroupType.js +11 -0
  15. package/dist/src/GroupType.js.map +1 -1
  16. package/dist/src/Version.d.ts +1 -1
  17. package/dist/src/Version.js +1 -1
  18. package/dist/src/billing/Invoice.d.ts +51 -4
  19. package/dist/src/billing/Invoice.d.ts.map +1 -1
  20. package/dist/src/billing/Invoice.js +119 -2
  21. package/dist/src/billing/Invoice.js.map +1 -1
  22. package/dist/src/billing/InvoicedBalanceItem.d.ts +35 -6
  23. package/dist/src/billing/InvoicedBalanceItem.d.ts.map +1 -1
  24. package/dist/src/billing/InvoicedBalanceItem.js +79 -12
  25. package/dist/src/billing/InvoicedBalanceItem.js.map +1 -1
  26. package/dist/src/billing/InvoicedBalanceItem.test.d.ts +2 -0
  27. package/dist/src/billing/InvoicedBalanceItem.test.d.ts.map +1 -0
  28. package/dist/src/billing/InvoicedBalanceItem.test.js +195 -0
  29. package/dist/src/billing/InvoicedBalanceItem.test.js.map +1 -0
  30. package/dist/src/billing/STBillingStatus.d.ts +2 -1
  31. package/dist/src/billing/STBillingStatus.d.ts.map +1 -1
  32. package/dist/src/billing/STBillingStatus.js +2 -1
  33. package/dist/src/billing/STBillingStatus.js.map +1 -1
  34. package/dist/src/billing/STInvoice.d.ts +2 -125
  35. package/dist/src/billing/STInvoice.d.ts.map +1 -1
  36. package/dist/src/billing/STInvoice.js +3 -400
  37. package/dist/src/billing/STInvoice.js.map +1 -1
  38. package/dist/src/billing/STInvoiceItem.d.ts +32 -0
  39. package/dist/src/billing/STInvoiceItem.d.ts.map +1 -0
  40. package/dist/src/billing/STInvoiceItem.js +169 -0
  41. package/dist/src/billing/STInvoiceItem.js.map +1 -0
  42. package/dist/src/billing/STInvoiceMeta.d.ts +63 -0
  43. package/dist/src/billing/STInvoiceMeta.d.ts.map +1 -0
  44. package/dist/src/billing/STInvoiceMeta.js +152 -0
  45. package/dist/src/billing/STInvoiceMeta.js.map +1 -0
  46. package/dist/src/billing/STInvoicePrivate.d.ts +10 -0
  47. package/dist/src/billing/STInvoicePrivate.d.ts.map +1 -0
  48. package/dist/src/billing/STInvoicePrivate.js +51 -0
  49. package/dist/src/billing/STInvoicePrivate.js.map +1 -0
  50. package/dist/src/billing/STInvoiceStatus.d.ts +7 -0
  51. package/dist/src/billing/STInvoiceStatus.d.ts.map +1 -0
  52. package/dist/src/billing/STInvoiceStatus.js +11 -0
  53. package/dist/src/billing/STInvoiceStatus.js.map +1 -0
  54. package/dist/src/billing/STPendingInvoice.d.ts +15 -0
  55. package/dist/src/billing/STPendingInvoice.d.ts.map +1 -0
  56. package/dist/src/billing/STPendingInvoice.js +40 -0
  57. package/dist/src/billing/STPendingInvoice.js.map +1 -0
  58. package/dist/src/billing/index.d.ts +5 -0
  59. package/dist/src/billing/index.d.ts.map +1 -1
  60. package/dist/src/billing/index.js +5 -0
  61. package/dist/src/billing/index.js.map +1 -1
  62. package/dist/src/email/EmailTemplate.js +2 -2
  63. package/dist/src/email/EmailTemplate.js.map +1 -1
  64. package/dist/src/members/Registration.d.ts +1 -0
  65. package/dist/src/members/Registration.d.ts.map +1 -1
  66. package/dist/src/members/Registration.js +4 -0
  67. package/dist/src/members/Registration.js.map +1 -1
  68. package/dist/src/members/checkout/RegisterItem.d.ts +5 -0
  69. package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  70. package/dist/src/members/checkout/RegisterItem.js +60 -5
  71. package/dist/src/members/checkout/RegisterItem.js.map +1 -1
  72. package/dist/src/webshops/Checkout.d.ts.map +1 -1
  73. package/dist/src/webshops/Checkout.js +10 -1
  74. package/dist/src/webshops/Checkout.js.map +1 -1
  75. package/esm/dist/src/BalanceItem.d.ts +5 -0
  76. package/esm/dist/src/BalanceItem.d.ts.map +1 -1
  77. package/esm/dist/src/BalanceItem.js +10 -1
  78. package/esm/dist/src/BalanceItem.js.map +1 -1
  79. package/esm/dist/src/Document.d.ts +1 -0
  80. package/esm/dist/src/Document.d.ts.map +1 -1
  81. package/esm/dist/src/Document.js +3 -0
  82. package/esm/dist/src/Document.js.map +1 -1
  83. package/esm/dist/src/GenericBalance.d.ts.map +1 -1
  84. package/esm/dist/src/GenericBalance.js +2 -1
  85. package/esm/dist/src/GenericBalance.js.map +1 -1
  86. package/esm/dist/src/GroupType.d.ts +1 -0
  87. package/esm/dist/src/GroupType.d.ts.map +1 -1
  88. package/esm/dist/src/GroupType.js +10 -0
  89. package/esm/dist/src/GroupType.js.map +1 -1
  90. package/esm/dist/src/Version.d.ts +1 -1
  91. package/esm/dist/src/Version.js +1 -1
  92. package/esm/dist/src/billing/Invoice.d.ts +51 -4
  93. package/esm/dist/src/billing/Invoice.d.ts.map +1 -1
  94. package/esm/dist/src/billing/Invoice.js +118 -2
  95. package/esm/dist/src/billing/Invoice.js.map +1 -1
  96. package/esm/dist/src/billing/InvoicedBalanceItem.d.ts +35 -6
  97. package/esm/dist/src/billing/InvoicedBalanceItem.d.ts.map +1 -1
  98. package/esm/dist/src/billing/InvoicedBalanceItem.js +79 -12
  99. package/esm/dist/src/billing/InvoicedBalanceItem.js.map +1 -1
  100. package/esm/dist/src/billing/STBillingStatus.d.ts +2 -1
  101. package/esm/dist/src/billing/STBillingStatus.d.ts.map +1 -1
  102. package/esm/dist/src/billing/STBillingStatus.js +2 -1
  103. package/esm/dist/src/billing/STBillingStatus.js.map +1 -1
  104. package/esm/dist/src/billing/STInvoice.d.ts +2 -125
  105. package/esm/dist/src/billing/STInvoice.d.ts.map +1 -1
  106. package/esm/dist/src/billing/STInvoice.js +3 -394
  107. package/esm/dist/src/billing/STInvoice.js.map +1 -1
  108. package/esm/dist/src/billing/STInvoiceItem.d.ts +32 -0
  109. package/esm/dist/src/billing/STInvoiceItem.d.ts.map +1 -0
  110. package/esm/dist/src/billing/STInvoiceItem.js +165 -0
  111. package/esm/dist/src/billing/STInvoiceItem.js.map +1 -0
  112. package/esm/dist/src/billing/STInvoiceMeta.d.ts +63 -0
  113. package/esm/dist/src/billing/STInvoiceMeta.d.ts.map +1 -0
  114. package/esm/dist/src/billing/STInvoiceMeta.js +148 -0
  115. package/esm/dist/src/billing/STInvoiceMeta.js.map +1 -0
  116. package/esm/dist/src/billing/STInvoicePrivate.d.ts +10 -0
  117. package/esm/dist/src/billing/STInvoicePrivate.d.ts.map +1 -0
  118. package/esm/dist/src/billing/STInvoicePrivate.js +47 -0
  119. package/esm/dist/src/billing/STInvoicePrivate.js.map +1 -0
  120. package/esm/dist/src/billing/STInvoiceStatus.d.ts +7 -0
  121. package/esm/dist/src/billing/STInvoiceStatus.d.ts.map +1 -0
  122. package/esm/dist/src/billing/STInvoiceStatus.js +8 -0
  123. package/esm/dist/src/billing/STInvoiceStatus.js.map +1 -0
  124. package/esm/dist/src/billing/STPendingInvoice.d.ts +15 -0
  125. package/esm/dist/src/billing/STPendingInvoice.d.ts.map +1 -0
  126. package/esm/dist/src/billing/STPendingInvoice.js +35 -0
  127. package/esm/dist/src/billing/STPendingInvoice.js.map +1 -0
  128. package/esm/dist/src/billing/index.d.ts +5 -0
  129. package/esm/dist/src/billing/index.d.ts.map +1 -1
  130. package/esm/dist/src/billing/index.js +5 -0
  131. package/esm/dist/src/billing/index.js.map +1 -1
  132. package/esm/dist/src/email/EmailTemplate.js +2 -2
  133. package/esm/dist/src/email/EmailTemplate.js.map +1 -1
  134. package/esm/dist/src/members/Registration.d.ts +1 -0
  135. package/esm/dist/src/members/Registration.d.ts.map +1 -1
  136. package/esm/dist/src/members/Registration.js +4 -0
  137. package/esm/dist/src/members/Registration.js.map +1 -1
  138. package/esm/dist/src/members/checkout/RegisterItem.d.ts +5 -0
  139. package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
  140. package/esm/dist/src/members/checkout/RegisterItem.js +60 -5
  141. package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
  142. package/esm/dist/src/webshops/Checkout.d.ts.map +1 -1
  143. package/esm/dist/src/webshops/Checkout.js +10 -1
  144. package/esm/dist/src/webshops/Checkout.js.map +1 -1
  145. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Invoice.js","sourceRoot":"","sources":["../../../src/billing/Invoice.ts"],"names":[],"mappings":";;;;AAAA,iEAAgF;AAChF,+BAAoC;AACpC,8CAAwC;AACxC,8DAAwD;AACxD,8CAAwC;AACxC,qEAA+D;AAE/D,MAAa,OAAQ,SAAQ,6BAAW;IAAxC;;QAoCI,UAAK,GAA0B,EAAE,CAAC;QAalC,cAAS,GAAkB,IAAI,CAAC;QAGhC,cAAS,GAAkB,IAAI,CAAC;QAEhC;;WAEG;QAEH,oBAAe,GAAkB,IAAI,CAAC;QAGtC,cAAS,GAAkB,IAAI,CAAC;QAGhC,QAAG,GAAgB,IAAI,CAAC;QAGxB,QAAG,GAAgB,IAAI,CAAC;IAC5B,CAAC;CAAA;AApED,0BAoEC;AAlEG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,SAAM,GAAE,EAAE,CAAC;mCACrD;AAyBX;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,oBAAO,EAAE,CAAC;uCACZ;AAMhB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,oCAAe,EAAE,CAAC;yCACV;AAG1B;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,4CAAmB,EAAE,CAAC;sCACN;AAalC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CAClB;AAGhC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CAClB;AAMhC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACZ;AAGtC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CAClB;AAGhC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,cAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oCACjB;AAGxB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,cAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oCACjB"}
1
+ {"version":3,"file":"Invoice.js","sourceRoot":"","sources":["../../../src/billing/Invoice.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,32 @@
1
1
  import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { VATExcemptReason } from '../BalanceItem.js';
2
+ import { BalanceItem, VATExcemptReason } from '../BalanceItem.js';
3
3
  export declare class InvoicedBalanceItem extends AutoEncoder {
4
4
  id: string;
5
5
  name: string;
6
6
  description: string;
7
- amount: number;
7
+ /**
8
+ * Price of the balance that was actually invoiced. Always includes VAT.
9
+ *
10
+ * This only explains the due balance that was invoiced so we don't invoice items multiple times. It does not correspond to the visible unit price or price on the invoice.
11
+ *
12
+ * - E.g. if balance item price is 5 euro including VAT (=balanceInvoicedAmount), then unit price would be 4,13 euro. You'll see this causes a rounding issue if the amount is 2, because then the price including VAT of the invoice would be 9,99 instead of 10.
13
+ * - E.g. if balance item price is 0,242 euro including VAT (=balanceInvoicedAmount), then unit price would be 0,20 euro (no rounding issue)
14
+ * - E.g. if balance item price is 0,243 euro including VAT (=balanceInvoicedAmount), then unit price would also be 0,20 euro (rounding issue)
15
+ *
16
+ * Any rounding issues are fixed on the invoice level.
17
+ */
18
+ balanceInvoicedAmount: number;
19
+ /**
20
+ * quantity per ten thousand.
21
+ * We need to support 4 decimals in case of partial payments.
22
+ * E.g. 3.33 euro of 10 euro was paid and is invoiced, then the amount would be 0.3333, stored as 3333
23
+ * Mostly for legal reasons, to be able to say wat was actually bought without faking an amount
24
+ */
25
+ quantity: number;
26
+ /**
27
+ * Price per piece
28
+ * Always excludes VAT
29
+ */
8
30
  unitPrice: number;
9
31
  /**
10
32
  * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
@@ -12,8 +34,7 @@ export declare class InvoicedBalanceItem extends AutoEncoder {
12
34
  */
13
35
  VATPercentage: number;
14
36
  /**
15
- * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
16
- * mistakes can be corrected and credited.
37
+ * Note: does not apply to unitPrice, only to the balance item at the time of invoicing
17
38
  */
18
39
  VATIncluded: boolean;
19
40
  /**
@@ -22,8 +43,16 @@ export declare class InvoicedBalanceItem extends AutoEncoder {
22
43
  */
23
44
  VATExcempt: VATExcemptReason | null;
24
45
  /**
25
- * Cached value so we can correct how much has been paid of an invoice exactly.
46
+ * This should be rounded to 2 decimals to match PEPPOL requirements
47
+ * = LineExtensionAmount
48
+ */
49
+ get totalWithoutVAT(): number;
50
+ /**
51
+ * Creates a default configuration for a balance item that needs to be invoiced. The result can still be adjusted to correct rounding issues, because
52
+ * a balanace item cannot always be perfectly represented on an invoice (on an invoice rounding happens on invoice level, while balance items can have any price that is not really rounded at any time unless when paid).
53
+ *
54
+ * amount = paid (or to be paid) price, including VAT if there is VAT
26
55
  */
27
- pricePaid: number;
56
+ static createFor(balanceItem: BalanceItem, amount: number): InvoicedBalanceItem;
28
57
  }
29
58
  //# sourceMappingURL=InvoicedBalanceItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoicedBalanceItem.d.ts","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqE,MAAM,6BAA6B,CAAC;AAE7H,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,qBAAa,mBAAoB,SAAQ,WAAW;IAEhD,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,SAAM;IAGV,WAAW,SAAM;IAGjB,MAAM,SAAK;IAGX,SAAS,SAAK;IAEd;;;OAGG;IAEH,aAAa,EAAE,MAAM,CAAK;IAE1B;;;OAGG;IAEH,WAAW,UAAQ;IAEnB;;;OAGG;IAEH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IAEH,SAAS,SAAK;CACjB"}
1
+ {"version":3,"file":"InvoicedBalanceItem.d.ts","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqE,MAAM,6BAA6B,CAAC;AAE7H,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,qBAAa,mBAAoB,SAAQ,WAAW;IAEhD,EAAE,EAAE,MAAM,CAAC;IAGX,IAAI,SAAM;IAGV,WAAW,SAAM;IAEjB;;;;;;;;;;OAUG;IAEH,qBAAqB,SAAK;IAE1B;;;;;OAKG;IAEH,QAAQ,SAAW;IAEnB;;;OAGG;IAEH,SAAS,SAAK;IAEd;;;OAGG;IAEH,aAAa,EAAE,MAAM,CAAK;IAE1B;;OAEG;IAEH,WAAW,UAAS;IAEpB;;;OAGG;IAEH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C;;;OAGG;IACH,IAAI,eAAe,WAElB;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM;CAsC5D"}
@@ -5,12 +5,35 @@ const tslib_1 = require("tslib");
5
5
  const simple_encoding_1 = require("@simonbackx/simple-encoding");
6
6
  const uuid_1 = require("uuid");
7
7
  const BalanceItem_js_1 = require("../BalanceItem.js");
8
+ const simple_errors_1 = require("@simonbackx/simple-errors");
8
9
  class InvoicedBalanceItem extends simple_encoding_1.AutoEncoder {
9
10
  constructor() {
10
11
  super(...arguments);
11
12
  this.name = '';
12
13
  this.description = '';
13
- this.amount = 1;
14
+ /**
15
+ * Price of the balance that was actually invoiced. Always includes VAT.
16
+ *
17
+ * This only explains the due balance that was invoiced so we don't invoice items multiple times. It does not correspond to the visible unit price or price on the invoice.
18
+ *
19
+ * - E.g. if balance item price is 5 euro including VAT (=balanceInvoicedAmount), then unit price would be 4,13 euro. You'll see this causes a rounding issue if the amount is 2, because then the price including VAT of the invoice would be 9,99 instead of 10.
20
+ * - E.g. if balance item price is 0,242 euro including VAT (=balanceInvoicedAmount), then unit price would be 0,20 euro (no rounding issue)
21
+ * - E.g. if balance item price is 0,243 euro including VAT (=balanceInvoicedAmount), then unit price would also be 0,20 euro (rounding issue)
22
+ *
23
+ * Any rounding issues are fixed on the invoice level.
24
+ */
25
+ this.balanceInvoicedAmount = 1;
26
+ /**
27
+ * quantity per ten thousand.
28
+ * We need to support 4 decimals in case of partial payments.
29
+ * E.g. 3.33 euro of 10 euro was paid and is invoiced, then the amount would be 0.3333, stored as 3333
30
+ * Mostly for legal reasons, to be able to say wat was actually bought without faking an amount
31
+ */
32
+ this.quantity = 10000;
33
+ /**
34
+ * Price per piece
35
+ * Always excludes VAT
36
+ */
14
37
  this.unitPrice = 0;
15
38
  /**
16
39
  * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
@@ -18,19 +41,63 @@ class InvoicedBalanceItem extends simple_encoding_1.AutoEncoder {
18
41
  */
19
42
  this.VATPercentage = 0;
20
43
  /**
21
- * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
22
- * mistakes can be corrected and credited.
44
+ * Note: does not apply to unitPrice, only to the balance item at the time of invoicing
23
45
  */
24
- this.VATIncluded = true;
46
+ this.VATIncluded = false;
25
47
  /**
26
48
  * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
27
49
  * mistakes can be corrected and credited.
28
50
  */
29
51
  this.VATExcempt = null;
30
- /**
31
- * Cached value so we can correct how much has been paid of an invoice exactly.
32
- */
33
- this.pricePaid = 0;
52
+ }
53
+ /**
54
+ * This should be rounded to 2 decimals to match PEPPOL requirements
55
+ * = LineExtensionAmount
56
+ */
57
+ get totalWithoutVAT() {
58
+ return Math.round(this.unitPrice * this.quantity / 1000000) * 100;
59
+ }
60
+ /**
61
+ * Creates a default configuration for a balance item that needs to be invoiced. The result can still be adjusted to correct rounding issues, because
62
+ * a balanace item cannot always be perfectly represented on an invoice (on an invoice rounding happens on invoice level, while balance items can have any price that is not really rounded at any time unless when paid).
63
+ *
64
+ * amount = paid (or to be paid) price, including VAT if there is VAT
65
+ */
66
+ static createFor(balanceItem, amount) {
67
+ var _a;
68
+ if (balanceItem.VATPercentage === null) {
69
+ throw new simple_errors_1.SimpleError({
70
+ message: 'Cannot create InvoicedBalanceItem for balance item without VAT percentage',
71
+ human: $t('3c6a76c8-1fc4-4fc3-b1b0-9eca083a0c64'),
72
+ code: 'balance_item_without_vat_percentage',
73
+ });
74
+ }
75
+ const item = new InvoicedBalanceItem();
76
+ item.name = balanceItem.itemTitle;
77
+ item.description = (_a = balanceItem.itemDescription) !== null && _a !== void 0 ? _a : '';
78
+ item.balanceInvoicedAmount = amount;
79
+ item.VATPercentage = balanceItem.VATPercentage;
80
+ item.VATExcempt = balanceItem.VATExcempt;
81
+ item.VATIncluded = balanceItem.VATIncluded;
82
+ // Calculate amount and unit price
83
+ const balanceItemUnitPriceWithVAT = Math.round(balanceItem.priceWithVAT / balanceItem.quantity);
84
+ const quantity = Math.round(item.balanceInvoicedAmount * 10000 / balanceItemUnitPriceWithVAT); // Amount per ten thousand
85
+ if (quantity <= 0) {
86
+ throw new simple_errors_1.SimpleError({
87
+ message: 'Invoiced amount is too low to create an invoiced balance item',
88
+ human: $t('551f6cc0-0b1a-4a62-8e09-cef159f5f7d5'),
89
+ code: 'invoiced_amount_too_low',
90
+ });
91
+ }
92
+ item.quantity = quantity;
93
+ item.unitPrice = amount * 10000 / quantity;
94
+ // Remove VAT from unit price if needed
95
+ if (!balanceItem.VATExcempt) {
96
+ item.unitPrice = item.unitPrice * 100 / (100 + balanceItem.VATPercentage);
97
+ }
98
+ // Round unitPrice to 1 cent (= PEPPOL requirement)
99
+ item.unitPrice = Math.round(item.unitPrice / 100) * 100;
100
+ return item;
34
101
  }
35
102
  }
36
103
  exports.InvoicedBalanceItem = InvoicedBalanceItem;
@@ -45,7 +112,10 @@ tslib_1.__decorate([
45
112
  ], InvoicedBalanceItem.prototype, "description", void 0);
46
113
  tslib_1.__decorate([
47
114
  (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
48
- ], InvoicedBalanceItem.prototype, "amount", void 0);
115
+ ], InvoicedBalanceItem.prototype, "balanceInvoicedAmount", void 0);
116
+ tslib_1.__decorate([
117
+ (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
118
+ ], InvoicedBalanceItem.prototype, "quantity", void 0);
49
119
  tslib_1.__decorate([
50
120
  (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
51
121
  ], InvoicedBalanceItem.prototype, "unitPrice", void 0);
@@ -58,7 +128,4 @@ tslib_1.__decorate([
58
128
  tslib_1.__decorate([
59
129
  (0, simple_encoding_1.field)({ decoder: new simple_encoding_1.EnumDecoder(BalanceItem_js_1.VATExcemptReason), nullable: true })
60
130
  ], InvoicedBalanceItem.prototype, "VATExcempt", void 0);
61
- tslib_1.__decorate([
62
- (0, simple_encoding_1.field)({ decoder: simple_encoding_1.IntegerDecoder })
63
- ], InvoicedBalanceItem.prototype, "pricePaid", void 0);
64
131
  //# sourceMappingURL=InvoicedBalanceItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvoicedBalanceItem.js","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.ts"],"names":[],"mappings":";;;;AAAA,iEAA6H;AAC7H,+BAAoC;AACpC,sDAAqD;AAErD,MAAa,mBAAoB,SAAQ,6BAAW;IAApD;;QAKI,SAAI,GAAG,EAAE,CAAC;QAGV,gBAAW,GAAG,EAAE,CAAC;QAGjB,WAAM,GAAG,CAAC,CAAC;QAGX,cAAS,GAAG,CAAC,CAAC;QAEd;;;WAGG;QAEH,kBAAa,GAAW,CAAC,CAAC;QAE1B;;;WAGG;QAEH,gBAAW,GAAG,IAAI,CAAC;QAEnB;;;WAGG;QAEH,eAAU,GAA4B,IAAI,CAAC;QAE3C;;WAEG;QAEH,cAAS,GAAG,CAAC,CAAC;IAClB,CAAC;CAAA;AA1CD,kDA0CC;AAxCG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,SAAM,GAAE,EAAE,CAAC;+CACrD;AAGX;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,CAAC;iDACxB;AAGV;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAa,EAAE,CAAC;wDACjB;AAGjB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;mDACxB;AAGX;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;sDACrB;AAOd;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;0DACT;AAO1B;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;wDAChB;AAOnB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,6BAAW,CAAC,iCAAgB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uDAC3B;AAM3C;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,gCAAc,EAAE,CAAC;sDACrB"}
1
+ {"version":3,"file":"InvoicedBalanceItem.js","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=InvoicedBalanceItem.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicedBalanceItem.test.d.ts","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const BalanceItem_js_1 = require("../BalanceItem.js");
4
+ const InvoicedBalanceItem_js_1 = require("./InvoicedBalanceItem.js");
5
+ describe('InvoicedBalanceItem', () => {
6
+ describe('createFor', () => {
7
+ test('Create an invoice item for a balance item including VAT with quantity of 1', () => {
8
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
9
+ balanceItem.description = 'Test Item';
10
+ balanceItem.unitPrice = 50000; // 5 euro, including VAT
11
+ balanceItem.quantity = 1;
12
+ balanceItem.VATPercentage = 21;
13
+ balanceItem.VATIncluded = true;
14
+ balanceItem.VATExcempt = null;
15
+ expect(balanceItem.priceWithVAT).toBe(50000);
16
+ expect(balanceItem.priceWithoutVAT).toBe(41322); // 5 / 1.21 + rounding
17
+ // Create an invoiced balance item for the full quantity
18
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 50000);
19
+ expect(invoicedItem.balanceInvoicedAmount).toBe(50000);
20
+ expect(invoicedItem.quantity).toBe(10000);
21
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
22
+ expect(invoicedItem.VATPercentage).toBe(21);
23
+ expect(invoicedItem.VATIncluded).toBe(true);
24
+ expect(invoicedItem.VATExcempt).toBeNull();
25
+ expect(invoicedItem.totalWithoutVAT).toBe(41300);
26
+ });
27
+ test('Create an invoice item for a balance item including VAT with quantity of 3', () => {
28
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
29
+ balanceItem.description = 'Test Item';
30
+ balanceItem.unitPrice = 50000; // 5 euro, including VAT
31
+ balanceItem.quantity = 3;
32
+ balanceItem.VATPercentage = 21;
33
+ balanceItem.VATIncluded = true;
34
+ balanceItem.VATExcempt = null;
35
+ expect(balanceItem.priceWithVAT).toBe(150000);
36
+ expect(balanceItem.priceWithoutVAT).toBe(123967); // 15 / 1.21 + rounding
37
+ // Create an invoiced balance item for one item
38
+ {
39
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 50000);
40
+ expect(invoicedItem.balanceInvoicedAmount).toBe(50000);
41
+ expect(invoicedItem.quantity).toBe(10000);
42
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
43
+ expect(invoicedItem.VATPercentage).toBe(21);
44
+ expect(invoicedItem.VATIncluded).toBe(true);
45
+ expect(invoicedItem.VATExcempt).toBeNull();
46
+ expect(invoicedItem.totalWithoutVAT).toBe(41300);
47
+ }
48
+ // Create an invoiced balance item for two items
49
+ {
50
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 100000);
51
+ expect(invoicedItem.balanceInvoicedAmount).toBe(100000);
52
+ expect(invoicedItem.quantity).toBe(20000);
53
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
54
+ expect(invoicedItem.VATPercentage).toBe(21);
55
+ expect(invoicedItem.VATIncluded).toBe(true);
56
+ expect(invoicedItem.VATExcempt).toBeNull();
57
+ expect(invoicedItem.totalWithoutVAT).toBe(82600);
58
+ }
59
+ // Create an invoiced balance item for three items
60
+ {
61
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 150000);
62
+ expect(invoicedItem.balanceInvoicedAmount).toBe(150000);
63
+ expect(invoicedItem.quantity).toBe(30000);
64
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
65
+ expect(invoicedItem.VATPercentage).toBe(21);
66
+ expect(invoicedItem.VATIncluded).toBe(true);
67
+ expect(invoicedItem.VATExcempt).toBeNull();
68
+ expect(invoicedItem.totalWithoutVAT).toBe(123900);
69
+ }
70
+ // Create an invoiced balance item for half an item
71
+ {
72
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 25000);
73
+ expect(invoicedItem.balanceInvoicedAmount).toBe(25000);
74
+ expect(invoicedItem.quantity).toBe(5000); // 50% of an item
75
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
76
+ expect(invoicedItem.VATPercentage).toBe(21);
77
+ expect(invoicedItem.VATIncluded).toBe(true);
78
+ expect(invoicedItem.VATExcempt).toBeNull();
79
+ expect(invoicedItem.totalWithoutVAT).toBe(20700);
80
+ }
81
+ // Create an invoiced balance item for 1/3 of an item
82
+ {
83
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 16666);
84
+ expect(invoicedItem.balanceInvoicedAmount).toBe(16666);
85
+ expect(invoicedItem.quantity).toBe(3333); // 33.33% of an item
86
+ expect(invoicedItem.unitPrice).toBe(41300); // should be rounded to 1 cent
87
+ expect(invoicedItem.VATPercentage).toBe(21);
88
+ expect(invoicedItem.VATIncluded).toBe(true);
89
+ expect(invoicedItem.VATExcempt).toBeNull();
90
+ expect(invoicedItem.totalWithoutVAT).toBe(13800);
91
+ }
92
+ });
93
+ test('Create an invoice item for a balance item excluding VAT with quantity of 1', () => {
94
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
95
+ balanceItem.description = 'Test Item';
96
+ balanceItem.unitPrice = 2000; // 0,20 euro, excluding VAT
97
+ balanceItem.quantity = 1;
98
+ balanceItem.VATPercentage = 21;
99
+ balanceItem.VATIncluded = false;
100
+ balanceItem.VATExcempt = null;
101
+ expect(balanceItem.priceWithVAT).toBe(2420); // 0,242 euro
102
+ expect(balanceItem.priceWithoutVAT).toBe(2000);
103
+ // Create an invoiced balance item for the full quantity
104
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 2420);
105
+ expect(invoicedItem.balanceInvoicedAmount).toBe(2420);
106
+ expect(invoicedItem.quantity).toBe(10000);
107
+ expect(invoicedItem.unitPrice).toBe(2000);
108
+ expect(invoicedItem.VATPercentage).toBe(21);
109
+ expect(invoicedItem.VATIncluded).toBe(false);
110
+ expect(invoicedItem.VATExcempt).toBeNull();
111
+ expect(invoicedItem.totalWithoutVAT).toBe(2000);
112
+ });
113
+ test('Create an invoice item for a balance item excluding 0% VAT with quantity of 1', () => {
114
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
115
+ balanceItem.description = 'Test Item';
116
+ balanceItem.unitPrice = 2000; // 0,20 euro, excluding VAT
117
+ balanceItem.quantity = 1;
118
+ balanceItem.VATPercentage = 0;
119
+ balanceItem.VATIncluded = false;
120
+ balanceItem.VATExcempt = null;
121
+ expect(balanceItem.priceWithVAT).toBe(2000);
122
+ expect(balanceItem.priceWithoutVAT).toBe(2000);
123
+ // Create an invoiced balance item for the full quantity
124
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 2000);
125
+ expect(invoicedItem.balanceInvoicedAmount).toBe(2000);
126
+ expect(invoicedItem.quantity).toBe(10000);
127
+ expect(invoicedItem.unitPrice).toBe(2000);
128
+ expect(invoicedItem.VATPercentage).toBe(0);
129
+ expect(invoicedItem.VATIncluded).toBe(false);
130
+ expect(invoicedItem.VATExcempt).toBeNull();
131
+ expect(invoicedItem.totalWithoutVAT).toBe(2000);
132
+ });
133
+ test('Create an invoice item for a balance item including 0% VAT with quantity of 1', () => {
134
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
135
+ balanceItem.description = 'Test Item';
136
+ balanceItem.unitPrice = 2000; // 0,20 euro, excluding VAT
137
+ balanceItem.quantity = 1;
138
+ balanceItem.VATPercentage = 0;
139
+ balanceItem.VATIncluded = true;
140
+ balanceItem.VATExcempt = null;
141
+ expect(balanceItem.priceWithVAT).toBe(2000);
142
+ expect(balanceItem.priceWithoutVAT).toBe(2000);
143
+ // Create an invoiced balance item for the full quantity
144
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 2000);
145
+ expect(invoicedItem.balanceInvoicedAmount).toBe(2000);
146
+ expect(invoicedItem.quantity).toBe(10000);
147
+ expect(invoicedItem.unitPrice).toBe(2000);
148
+ expect(invoicedItem.VATPercentage).toBe(0);
149
+ expect(invoicedItem.VATIncluded).toBe(true);
150
+ expect(invoicedItem.VATExcempt).toBeNull();
151
+ expect(invoicedItem.totalWithoutVAT).toBe(2000);
152
+ });
153
+ test('Create an invoice item for a balance item excluding VAT with quantity of 1 that is excempt VAT', () => {
154
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
155
+ balanceItem.description = 'Test Item';
156
+ balanceItem.unitPrice = 2000; // 0,20 euro, excluding VAT
157
+ balanceItem.quantity = 1;
158
+ balanceItem.VATPercentage = 21;
159
+ balanceItem.VATIncluded = false;
160
+ balanceItem.VATExcempt = BalanceItem_js_1.VATExcemptReason.IntraCommunity;
161
+ expect(balanceItem.priceWithVAT).toBe(2000);
162
+ expect(balanceItem.priceWithoutVAT).toBe(2000);
163
+ // Create an invoiced balance item for the full quantity
164
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 2000);
165
+ expect(invoicedItem.balanceInvoicedAmount).toBe(2000);
166
+ expect(invoicedItem.quantity).toBe(10000);
167
+ expect(invoicedItem.unitPrice).toBe(2000);
168
+ expect(invoicedItem.VATPercentage).toBe(21);
169
+ expect(invoicedItem.VATIncluded).toBe(false);
170
+ expect(invoicedItem.VATExcempt).toBe(BalanceItem_js_1.VATExcemptReason.IntraCommunity);
171
+ expect(invoicedItem.totalWithoutVAT).toBe(2000);
172
+ });
173
+ test('Create an invoice item for a balance item including VAT with quantity of 1 that is excempt VAT', () => {
174
+ const balanceItem = new BalanceItem_js_1.BalanceItem();
175
+ balanceItem.description = 'Test Item';
176
+ balanceItem.unitPrice = 2420; // 0,242 euro, including VAT
177
+ balanceItem.quantity = 1;
178
+ balanceItem.VATPercentage = 21;
179
+ balanceItem.VATIncluded = true;
180
+ balanceItem.VATExcempt = BalanceItem_js_1.VATExcemptReason.IntraCommunity;
181
+ expect(balanceItem.priceWithVAT).toBe(2000);
182
+ expect(balanceItem.priceWithoutVAT).toBe(2000);
183
+ // Create an invoiced balance item for the full quantity (0,20 is payable or invoiceable, the system should treat that as one item)
184
+ const invoicedItem = InvoicedBalanceItem_js_1.InvoicedBalanceItem.createFor(balanceItem, 2000);
185
+ expect(invoicedItem.balanceInvoicedAmount).toBe(2000);
186
+ expect(invoicedItem.quantity).toBe(10000);
187
+ expect(invoicedItem.unitPrice).toBe(2000);
188
+ expect(invoicedItem.VATPercentage).toBe(21);
189
+ expect(invoicedItem.VATIncluded).toBe(true);
190
+ expect(invoicedItem.VATExcempt).toBe(BalanceItem_js_1.VATExcemptReason.IntraCommunity);
191
+ expect(invoicedItem.totalWithoutVAT).toBe(2000);
192
+ });
193
+ });
194
+ });
195
+ //# sourceMappingURL=InvoicedBalanceItem.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicedBalanceItem.test.js","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.test.ts"],"names":[],"mappings":";;AAAA,sDAAkE;AAClE,qEAA+D;AAE/D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACvB,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,KAAO,CAAC,CAAC,wBAAwB;YACzD,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC/C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,sBAAsB;YAEzE,wDAAwD;YACxD,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAO,CAAC,CAAC;YAEzE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;YAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,KAAO,CAAC,CAAC,wBAAwB;YACzD,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAQ,CAAC,CAAC,CAAC,uBAAuB;YAE3E,+CAA+C;YAC/C,CAAC;gBACG,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAO,CAAC,CAAC;gBAEzE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;gBAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YACvD,CAAC;YAED,gDAAgD;YAChD,CAAC;gBACG,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,MAAQ,CAAC,CAAC;gBAE1E,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAQ,CAAC,CAAC;gBAC1D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;gBAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YACvD,CAAC;YAED,kDAAkD;YAClD,CAAC;gBACG,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,MAAQ,CAAC,CAAC;gBAE1E,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAQ,CAAC,CAAC;gBAC1D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;gBAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAQ,CAAC,CAAC;YACxD,CAAC;YAED,mDAAmD;YACnD,CAAC;gBACG,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAO,CAAC,CAAC;gBAEzE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,CAAC,iBAAiB;gBAC5D,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;gBAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YACvD,CAAC;YAED,qDAAqD;YACrD,CAAC;gBACG,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,KAAO,CAAC,CAAC;gBAEzE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,CAAC,oBAAoB;gBAC/D,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC,CAAC,8BAA8B;gBAC5E,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YACvD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,IAAK,CAAC,CAAC,2BAA2B;YAC1D,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,CAAC,aAAa;YAC3D,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAEhD,wDAAwD;YACxD,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;YAEvE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;YACvF,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,IAAK,CAAC,CAAC,2BAA2B;YAC1D,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;YAC9B,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAEhD,wDAAwD;YACxD,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;YAEvE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+EAA+E,EAAE,GAAG,EAAE;YACvF,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,IAAK,CAAC,CAAC,2BAA2B;YAC1D,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;YAC9B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;YAE9B,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAEhD,wDAAwD;YACxD,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;YAEvE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;YACxG,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,IAAK,CAAC,CAAC,2BAA2B;YAC1D,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,WAAW,CAAC,UAAU,GAAG,iCAAgB,CAAC,cAAc,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAEhD,wDAAwD;YACxD,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;YAEvE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,iCAAgB,CAAC,cAAc,CAAC,CAAC;YACtE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gGAAgG,EAAE,GAAG,EAAE;YACxG,MAAM,WAAW,GAAG,IAAI,4BAAW,EAAE,CAAC;YACtC,WAAW,CAAC,WAAW,GAAG,WAAW,CAAC;YACtC,WAAW,CAAC,SAAS,GAAG,IAAK,CAAC,CAAC,4BAA4B;YAC3D,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;YACzB,WAAW,CAAC,aAAa,GAAG,EAAE,CAAC;YAC/B,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,WAAW,CAAC,UAAU,GAAG,iCAAgB,CAAC,cAAc,CAAC;YAEzD,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAEhD,mIAAmI;YACnI,MAAM,YAAY,GAAG,4CAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;YAEvE,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YACvD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAO,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,iCAAgB,CAAC,cAAc,CAAC,CAAC;YACtE,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { AutoEncoder } from '@simonbackx/simple-encoding';
2
2
  import { STCredit } from './STCredit.js';
3
- import { STInvoice, STPendingInvoice } from './STInvoice.js';
3
+ import { STInvoice } from './STInvoice.js';
4
4
  import { STPackage } from './STPackage.js';
5
5
  import { OrganizationPaymentMandate } from './OrganizationPaymentMandate.js';
6
+ import { STPendingInvoice } from './STPendingInvoice.js';
6
7
  export declare class STBillingStatus extends AutoEncoder {
7
8
  invoices: STInvoice[];
8
9
  packages: STPackage[];
@@ -1 +1 @@
1
- {"version":3,"file":"STBillingStatus.d.ts","sourceRoot":"","sources":["../../../src/billing/STBillingStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAS,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,qBAAa,eAAgB,SAAQ,WAAW;IAE5C,QAAQ,EAAE,SAAS,EAAE,CAAC;IAGtB,QAAQ,EAAE,SAAS,EAAE,CAAC;IAGtB,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAGxC,OAAO,EAAE,QAAQ,EAAE,CAAC;IAGpB,QAAQ,EAAE,0BAA0B,EAAE,CAAM;CAC/C"}
1
+ {"version":3,"file":"STBillingStatus.d.ts","sourceRoot":"","sources":["../../../src/billing/STBillingStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAS,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,qBAAa,eAAgB,SAAQ,WAAW;IAE5C,QAAQ,EAAE,SAAS,EAAE,CAAC;IAGtB,QAAQ,EAAE,SAAS,EAAE,CAAC;IAGtB,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAGxC,OAAO,EAAE,QAAQ,EAAE,CAAC;IAGpB,QAAQ,EAAE,0BAA0B,EAAE,CAAM;CAC/C"}
@@ -7,6 +7,7 @@ const STCredit_js_1 = require("./STCredit.js");
7
7
  const STInvoice_js_1 = require("./STInvoice.js");
8
8
  const STPackage_js_1 = require("./STPackage.js");
9
9
  const OrganizationPaymentMandate_js_1 = require("./OrganizationPaymentMandate.js");
10
+ const STPendingInvoice_js_1 = require("./STPendingInvoice.js");
10
11
  class STBillingStatus extends simple_encoding_1.AutoEncoder {
11
12
  constructor() {
12
13
  super(...arguments);
@@ -21,7 +22,7 @@ tslib_1.__decorate([
21
22
  (0, simple_encoding_1.field)({ decoder: new simple_encoding_1.ArrayDecoder(STPackage_js_1.STPackage) })
22
23
  ], STBillingStatus.prototype, "packages", void 0);
23
24
  tslib_1.__decorate([
24
- (0, simple_encoding_1.field)({ decoder: STInvoice_js_1.STPendingInvoice, nullable: true })
25
+ (0, simple_encoding_1.field)({ decoder: STPendingInvoice_js_1.STPendingInvoice, nullable: true })
25
26
  ], STBillingStatus.prototype, "pendingInvoice", void 0);
26
27
  tslib_1.__decorate([
27
28
  (0, simple_encoding_1.field)({ decoder: new simple_encoding_1.ArrayDecoder(STCredit_js_1.STCredit) })
@@ -1 +1 @@
1
- {"version":3,"file":"STBillingStatus.js","sourceRoot":"","sources":["../../../src/billing/STBillingStatus.ts"],"names":[],"mappings":";;;;AAAA,iEAA+E;AAC/E,+CAAyC;AAEzC,iDAA6D;AAC7D,iDAA2C;AAC3C,mFAA6E;AAE7E,MAAa,eAAgB,SAAQ,6BAAW;IAAhD;;QAcI,aAAQ,GAAiC,EAAE,CAAC;IAChD,CAAC;CAAA;AAfD,0CAeC;AAbG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,wBAAS,CAAC,EAAE,CAAC;iDAC1B;AAGtB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,wBAAS,CAAC,EAAE,CAAC;iDAC1B;AAGtB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,+BAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uDACb;AAGxC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,sBAAQ,CAAC,EAAE,CAAC;gDAC3B;AAGpB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,0DAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iDACrC"}
1
+ {"version":3,"file":"STBillingStatus.js","sourceRoot":"","sources":["../../../src/billing/STBillingStatus.ts"],"names":[],"mappings":";;;;AAAA,iEAA+E;AAC/E,+CAAyC;AAEzC,iDAA2C;AAC3C,iDAA2C;AAC3C,mFAA6E;AAC7E,+DAAyD;AAEzD,MAAa,eAAgB,SAAQ,6BAAW;IAAhD;;QAcI,aAAQ,GAAiC,EAAE,CAAC;IAChD,CAAC;CAAA;AAfD,0CAeC;AAbG;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,wBAAS,CAAC,EAAE,CAAC;iDAC1B;AAGtB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,wBAAS,CAAC,EAAE,CAAC;iDAC1B;AAGtB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,sCAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uDACb;AAGxC;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,sBAAQ,CAAC,EAAE,CAAC;gDAC3B;AAGpB;IADC,IAAA,uBAAK,EAAC,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,0DAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;iDACrC"}
@@ -1,106 +1,6 @@
1
1
  import { AutoEncoder } from '@simonbackx/simple-encoding';
2
- import { Address } from '../addresses/Address.js';
3
- import { File } from '../files/File.js';
4
- import { Payment, Settlement } from '../members/Payment.js';
5
- import { OrganizationSimple } from '../OrganizationSimple.js';
6
- import { STPackage } from './STPackage.js';
7
- export declare enum STInvoiceStatus {
8
- Created = "Created",
9
- Prepared = "Prepared",
10
- Completed = "Completed",
11
- Canceled = "Canceled"
12
- }
13
- /**
14
- * @deprecated use Invoice
15
- */
16
- export declare class STInvoiceItem extends AutoEncoder {
17
- id: string;
18
- name: string;
19
- description: string;
20
- amount: number;
21
- unitPrice: number;
22
- canUseCredits: boolean;
23
- firstFailedPayment: Date | null;
24
- paymentFailedCount: number;
25
- get price(): number;
26
- /**
27
- * All data of the original package that is linked to this item
28
- */
29
- package?: STPackage;
30
- /**
31
- * Date the item was created/bought
32
- */
33
- date?: Date;
34
- /**
35
- * Convertable into STInvoiceItem (or the diffence if amount is increased)
36
- * Use this to calculate prices or create an invoice
37
- * This will calculate the price to expand the package to the given amount.
38
- * If you want to renew a package, you need to create a new package first
39
- */
40
- static fromPackage(pack: STPackage, amount?: number, pendingAmount?: number, date?: Date): STInvoiceItem;
41
- canMerge(other: STInvoiceItem): boolean;
42
- merge(other: STInvoiceItem): void;
43
- static compress(items: STInvoiceItem[]): STInvoiceItem[];
44
- }
45
- /**
46
- * @deprecated use Invoice
47
- */
48
- export declare class STInvoiceMeta extends AutoEncoder {
49
- /**
50
- * Date the invoice was valid and given a number.
51
- */
52
- date?: Date;
53
- /**
54
- * Only set if the invoice is officially generated and send
55
- */
56
- pdf?: File;
57
- /**
58
- * Only set if the invoice is officially generated and send + company has VAT number
59
- */
60
- xml?: File;
61
- /**
62
- * VATPercentage should be zero in countries outside Belgium in EU
63
- */
64
- VATPercentage: number;
65
- items: STInvoiceItem[];
66
- /**
67
- * Sometimes we need to calculate an invoice in reverse when we have a fixed price including VAT,
68
- * but need to calculatle the price excluding VAT.
69
- */
70
- areItemsIncludingVAT: boolean;
71
- companyName: string;
72
- companyContact: string;
73
- companyAddress: Address;
74
- companyVATNumber: string | null;
75
- companyNumber: string | null;
76
- ipAddress: string | null;
77
- userAgent: string | null;
78
- stripeAccountId: string | null;
79
- /**
80
- * @deprecated
81
- * Depending on areItemsIncludingVAT, this can either be including or excluding VAT
82
- */
83
- private get itemPrice();
84
- includingVATToExcludingVAT(price: number): number;
85
- excludingVATToIncludingVAT(price: number): number;
86
- getVATOnIncludingVATAmount(price: number): number;
87
- getVATOnExcludingVATAmount(price: number): number;
88
- get useLegacyRounding(): boolean;
89
- get priceWithoutVAT(): number;
90
- get VAT(): number;
91
- get priceWithVAT(): number;
92
- /**
93
- * How much to add or remove to priceWithVAT to get to the payable amount. We can get a rounding error of 1 cent positive or negative if we calculate from a given price inclusive VAT.
94
- *
95
- * 1 cent if we need to add 1 cent
96
- * -1 cent if we need to remove 1 cent from the priceWithVAT to get to the payable amount
97
- */
98
- get payableRoundingAmount(): number;
99
- get totalPrice(): number;
100
- }
101
- /**
102
- * @deprecated use Invoice
103
- */
2
+ import { Payment } from '../members/Payment.js';
3
+ import { STInvoiceMeta } from './STInvoiceMeta.js';
104
4
  export declare class STInvoice extends AutoEncoder {
105
5
  /**
106
6
  * This ID is empty for a pending invoice
@@ -118,27 +18,4 @@ export declare class STInvoice extends AutoEncoder {
118
18
  negativeInvoiceId: string | null;
119
19
  didSendPeppol: boolean;
120
20
  }
121
- /**
122
- * @deprecated use Invoice
123
- */
124
- export declare class STInvoicePrivate extends STInvoice {
125
- organization?: OrganizationSimple;
126
- settlement: Settlement | null;
127
- reference: string | null;
128
- matchQuery(query: string): boolean;
129
- }
130
- export declare class STPendingInvoice extends AutoEncoder {
131
- id: string | null;
132
- meta: STInvoiceMeta;
133
- invoice: STInvoice | null;
134
- createdAt: Date | null;
135
- updatedAt: Date | null;
136
- }
137
- export declare class STPendingInvoicePrivate extends STPendingInvoice {
138
- organization?: OrganizationSimple;
139
- }
140
- export declare class STInvoiceResponse extends AutoEncoder {
141
- paymentUrl?: string;
142
- invoice?: STInvoice;
143
- }
144
21
  //# sourceMappingURL=STInvoice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"STInvoice.d.ts","sourceRoot":"","sources":["../../../src/billing/STInvoice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"STInvoice.d.ts","sourceRoot":"","sources":["../../../src/billing/STInvoice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqE,MAAM,6BAA6B,CAAC;AAG7H,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,qBAAa,SAAU,SAAQ,WAAW;IACtC;;OAEG;IAEH,EAAE,EAAE,MAAM,CAAC;IAGX,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAG/B,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IAEH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG9B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG9B,MAAM,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG3B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGxC,aAAa,UAAS;CACzB"}