@stamhoofd/structures 2.108.0 → 2.110.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.
- package/dist/src/BalanceItem.d.ts +5 -0
- package/dist/src/BalanceItem.d.ts.map +1 -1
- package/dist/src/BalanceItem.js +10 -1
- package/dist/src/BalanceItem.js.map +1 -1
- package/dist/src/Document.d.ts +1 -0
- package/dist/src/Document.d.ts.map +1 -1
- package/dist/src/Document.js +3 -0
- package/dist/src/Document.js.map +1 -1
- package/dist/src/GroupType.d.ts +1 -0
- package/dist/src/GroupType.d.ts.map +1 -1
- package/dist/src/GroupType.js +11 -0
- package/dist/src/GroupType.js.map +1 -1
- package/dist/src/Version.d.ts +1 -1
- package/dist/src/Version.js +1 -1
- package/dist/src/billing/Invoice.d.ts +51 -4
- package/dist/src/billing/Invoice.d.ts.map +1 -1
- package/dist/src/billing/Invoice.js +119 -2
- package/dist/src/billing/Invoice.js.map +1 -1
- package/dist/src/billing/InvoicedBalanceItem.d.ts +35 -6
- package/dist/src/billing/InvoicedBalanceItem.d.ts.map +1 -1
- package/dist/src/billing/InvoicedBalanceItem.js +79 -12
- package/dist/src/billing/InvoicedBalanceItem.js.map +1 -1
- package/dist/src/billing/InvoicedBalanceItem.test.d.ts +2 -0
- package/dist/src/billing/InvoicedBalanceItem.test.d.ts.map +1 -0
- package/dist/src/billing/InvoicedBalanceItem.test.js +195 -0
- package/dist/src/billing/InvoicedBalanceItem.test.js.map +1 -0
- package/dist/src/filters/PropertyFilter.d.ts +1 -0
- package/dist/src/filters/PropertyFilter.d.ts.map +1 -1
- package/dist/src/filters/PropertyFilter.js +97 -0
- package/dist/src/filters/PropertyFilter.js.map +1 -1
- package/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
- package/dist/src/members/OrganizationRecordsConfiguration.js +54 -9
- package/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
- package/dist/src/members/PlatformMember.d.ts +4 -0
- package/dist/src/members/PlatformMember.d.ts.map +1 -1
- package/dist/src/members/PlatformMember.js +26 -2
- package/dist/src/members/PlatformMember.js.map +1 -1
- package/dist/src/members/Registration.d.ts +1 -0
- package/dist/src/members/Registration.d.ts.map +1 -1
- package/dist/src/members/Registration.js +4 -0
- package/dist/src/members/Registration.js.map +1 -1
- package/dist/src/members/checkout/RegisterItem.d.ts +5 -0
- package/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
- package/dist/src/members/checkout/RegisterItem.js +59 -2
- package/dist/src/members/checkout/RegisterItem.js.map +1 -1
- package/esm/dist/src/BalanceItem.d.ts +5 -0
- package/esm/dist/src/BalanceItem.d.ts.map +1 -1
- package/esm/dist/src/BalanceItem.js +10 -1
- package/esm/dist/src/BalanceItem.js.map +1 -1
- package/esm/dist/src/Document.d.ts +1 -0
- package/esm/dist/src/Document.d.ts.map +1 -1
- package/esm/dist/src/Document.js +3 -0
- package/esm/dist/src/Document.js.map +1 -1
- package/esm/dist/src/GroupType.d.ts +1 -0
- package/esm/dist/src/GroupType.d.ts.map +1 -1
- package/esm/dist/src/GroupType.js +10 -0
- package/esm/dist/src/GroupType.js.map +1 -1
- package/esm/dist/src/Version.d.ts +1 -1
- package/esm/dist/src/Version.js +1 -1
- package/esm/dist/src/billing/Invoice.d.ts +51 -4
- package/esm/dist/src/billing/Invoice.d.ts.map +1 -1
- package/esm/dist/src/billing/Invoice.js +118 -2
- package/esm/dist/src/billing/Invoice.js.map +1 -1
- package/esm/dist/src/billing/InvoicedBalanceItem.d.ts +35 -6
- package/esm/dist/src/billing/InvoicedBalanceItem.d.ts.map +1 -1
- package/esm/dist/src/billing/InvoicedBalanceItem.js +79 -12
- package/esm/dist/src/billing/InvoicedBalanceItem.js.map +1 -1
- package/esm/dist/src/filters/PropertyFilter.d.ts +1 -0
- package/esm/dist/src/filters/PropertyFilter.d.ts.map +1 -1
- package/esm/dist/src/filters/PropertyFilter.js +98 -1
- package/esm/dist/src/filters/PropertyFilter.js.map +1 -1
- package/esm/dist/src/members/OrganizationRecordsConfiguration.d.ts.map +1 -1
- package/esm/dist/src/members/OrganizationRecordsConfiguration.js +54 -9
- package/esm/dist/src/members/OrganizationRecordsConfiguration.js.map +1 -1
- package/esm/dist/src/members/PlatformMember.d.ts +4 -0
- package/esm/dist/src/members/PlatformMember.d.ts.map +1 -1
- package/esm/dist/src/members/PlatformMember.js +26 -2
- package/esm/dist/src/members/PlatformMember.js.map +1 -1
- package/esm/dist/src/members/Registration.d.ts +1 -0
- package/esm/dist/src/members/Registration.d.ts.map +1 -1
- package/esm/dist/src/members/Registration.js +4 -0
- package/esm/dist/src/members/Registration.js.map +1 -1
- package/esm/dist/src/members/checkout/RegisterItem.d.ts +5 -0
- package/esm/dist/src/members/checkout/RegisterItem.d.ts.map +1 -1
- package/esm/dist/src/members/checkout/RegisterItem.js +59 -2
- package/esm/dist/src/members/checkout/RegisterItem.js.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
-
*
|
|
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 =
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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, "
|
|
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,
|
|
1
|
+
{"version":3,"file":"InvoicedBalanceItem.js","sourceRoot":"","sources":["../../../src/billing/InvoicedBalanceItem.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"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"}
|
|
@@ -23,5 +23,6 @@ export declare class PropertyFilter implements Encodeable {
|
|
|
23
23
|
static decode<T>(data: Data): PropertyFilter;
|
|
24
24
|
clone(): PropertyFilter;
|
|
25
25
|
getDiffValue(): AuditLogReplacement;
|
|
26
|
+
merge(other: PropertyFilter): PropertyFilter;
|
|
26
27
|
}
|
|
27
28
|
//# sourceMappingURL=PropertyFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/PropertyFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,
|
|
1
|
+
{"version":3,"file":"PropertyFilter.d.ts","sourceRoot":"","sources":["../../../src/filters/PropertyFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAExG,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAElE,OAAO,EAA8C,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGnG,qBAAa,cAAe,YAAW,UAAU;gBACjC,WAAW,EAAE,eAAe,GAAG,IAAI,EAAE,YAAY,EAAE,eAAe,GAAG,IAAI;IAKrF,MAAM,CAAC,aAAa;IAIpB;;;OAGG;IACH,WAAW,EAAE,eAAe,GAAG,IAAI,CAAQ;IAE3C;;;;OAIG;IACH,YAAY,EAAE,eAAe,GAAG,IAAI,CAAQ;IAE5C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAOtC,IAAI,0BAA0B,YAE7B;IAED,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAOvC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW;IAO3C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,cAAc;IAY5C,KAAK;IAOL,YAAY;IAmBZ,KAAK,CAAC,KAAK,EAAE,cAAc;CAuG9B"}
|
|
@@ -74,6 +74,103 @@ class PropertyFilter {
|
|
|
74
74
|
}
|
|
75
75
|
return AuditLogReplacement_js_1.AuditLogReplacement.key('sometimesEnabledAndSometimesRequired');
|
|
76
76
|
}
|
|
77
|
+
merge(other) {
|
|
78
|
+
const base = new PropertyFilter(null, {});
|
|
79
|
+
// Merge enabled when
|
|
80
|
+
if (other.enabledWhen === null || this.enabledWhen === null) {
|
|
81
|
+
base.enabledWhen = null;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Merge both filters if different
|
|
85
|
+
if ((0, StamhoofdFilter_js_1.isEqualFilter)(this.enabledWhen, other.enabledWhen)) {
|
|
86
|
+
base.enabledWhen = this.enabledWhen;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
base.enabledWhen = (0, StamhoofdFilter_js_1.mergeFilters)([
|
|
90
|
+
this.enabledWhen,
|
|
91
|
+
other.enabledWhen,
|
|
92
|
+
], '$or');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// The rquired filters are always 1:1 linked to the enabled filter of the same property filter. So we need to
|
|
96
|
+
// transform them first to include the enabled when filter
|
|
97
|
+
let thisRequired = this.requiredWhen;
|
|
98
|
+
// Required when the other is enabled and required
|
|
99
|
+
if (this.enabledWhen !== null && !(0, StamhoofdFilter_js_1.isEmptyFilter)(this.enabledWhen)) {
|
|
100
|
+
// Make sure to include the enabled when restriction
|
|
101
|
+
if (this.requiredWhen === null) {
|
|
102
|
+
// Always skipable
|
|
103
|
+
thisRequired = null;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
if ((0, StamhoofdFilter_js_1.isEmptyFilter)(this.requiredWhen)) {
|
|
107
|
+
// Simplify without $and
|
|
108
|
+
thisRequired = this.enabledWhen;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
if ((0, StamhoofdFilter_js_1.isEqualFilter)(this.enabledWhen, this.requiredWhen)) {
|
|
112
|
+
thisRequired = this.requiredWhen;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
thisRequired = (0, StamhoofdFilter_js_1.mergeFilters)([
|
|
116
|
+
this.enabledWhen,
|
|
117
|
+
this.requiredWhen,
|
|
118
|
+
], '$and');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
let otherRequired = other.requiredWhen;
|
|
124
|
+
// Required when the other is enabled and required
|
|
125
|
+
if (other.enabledWhen !== null && !(0, StamhoofdFilter_js_1.isEmptyFilter)(other.enabledWhen)) {
|
|
126
|
+
// Make sure to include the enabled when restriction
|
|
127
|
+
if (other.requiredWhen === null) {
|
|
128
|
+
// Always skipable
|
|
129
|
+
otherRequired = null;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
if ((0, StamhoofdFilter_js_1.isEmptyFilter)(other.requiredWhen)) {
|
|
133
|
+
// Simplify without $and
|
|
134
|
+
otherRequired = other.enabledWhen;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
if ((0, StamhoofdFilter_js_1.isEqualFilter)(other.enabledWhen, other.requiredWhen)) {
|
|
138
|
+
otherRequired = other.requiredWhen;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
otherRequired = (0, StamhoofdFilter_js_1.mergeFilters)([
|
|
142
|
+
other.enabledWhen,
|
|
143
|
+
other.requiredWhen,
|
|
144
|
+
], '$and');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Merge required when
|
|
150
|
+
if (thisRequired === null) {
|
|
151
|
+
base.requiredWhen = otherRequired;
|
|
152
|
+
}
|
|
153
|
+
else if (otherRequired === null) {
|
|
154
|
+
base.requiredWhen = thisRequired;
|
|
155
|
+
}
|
|
156
|
+
else if ((0, StamhoofdFilter_js_1.isEmptyFilter)(thisRequired) || (0, StamhoofdFilter_js_1.isEmptyFilter)(otherRequired)) {
|
|
157
|
+
// Always required
|
|
158
|
+
base.requiredWhen = {};
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Merge both filters ($or). It is required when any matches
|
|
162
|
+
if ((0, StamhoofdFilter_js_1.isEqualFilter)(thisRequired, otherRequired)) {
|
|
163
|
+
base.requiredWhen = thisRequired;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
base.requiredWhen = (0, StamhoofdFilter_js_1.mergeFilters)([
|
|
167
|
+
thisRequired,
|
|
168
|
+
otherRequired,
|
|
169
|
+
], '$or');
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return base;
|
|
173
|
+
}
|
|
77
174
|
}
|
|
78
175
|
exports.PropertyFilter = PropertyFilter;
|
|
79
176
|
//# sourceMappingURL=PropertyFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropertyFilter.js","sourceRoot":"","sources":["../../../src/filters/PropertyFilter.ts"],"names":[],"mappings":";;;AAAA,iEAAwG;AAExG,sEAAgE;AAEhE,6DAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"PropertyFilter.js","sourceRoot":"","sources":["../../../src/filters/PropertyFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrganizationRecordsConfiguration.d.ts","sourceRoot":"","sources":["../../../src/members/OrganizationRecordsConfiguration.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"OrganizationRecordsConfiguration.d.ts","sourceRoot":"","sources":["../../../src/members/OrganizationRecordsConfiguration.ts"],"names":[],"mappings":"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"}
|