@stamhoofd/models 2.110.0 → 2.111.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.
@@ -29,9 +29,11 @@ export declare class BalanceItem extends QueryableModel {
29
29
  relations: Map<BalanceItemRelationType, BalanceItemRelation>;
30
30
  description: string;
31
31
  /**
32
- * Total prices
32
+ * @deprecated Use quantity
33
33
  */
34
34
  amount: number;
35
+ get quantity(): number;
36
+ set quantity(quantity: number);
35
37
  /**
36
38
  * Price per piece
37
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAuE,mBAAmB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,WAAW,IAAI,iBAAiB,EAAE,eAAe,EAAE,uBAAuB,EAAE,8BAA8B,EAA4C,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKrV,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAc;IAC3C,MAAM,CAAC,KAAK,SAAmB;IAO/B,EAAE,EAAG,MAAM,CAAC;IAKZ,cAAc,EAAE,MAAM,CAAC;IAKvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG/B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;OAEG;IAEH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAErC;;OAEG;IAEH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE9B;;;;OAIG;IAEH,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7C,IAAI,kBAAyB;IAG7B,SAAS,EAAE,GAAG,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAa;IAGzE,WAAW,SAAM;IAEjB;;OAEG;IAEH,MAAM,SAAK;IAEX;;;;;;;;;OASG;IAEH,SAAS,EAAE,MAAM,CAAC;IAGlB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGpC,WAAW,UAAQ;IAEnB;;;;OAIG;IAEH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C;;;;;OAKG;IAOH,UAAU,SAAK;IAEf;;;;;;;;;OASG;IAEH,SAAS,SAAK;IAEd;;;;;;;;;OASG;IAEH,YAAY,SAAK;IAEjB;;;;;;;;;OASG;IAQH,SAAS,SAAK;IAEd;;;OAGG;IAEH,MAAM,oBAAyB;IAE/B;;;OAGG;IAEH,KAAK,EAAE,IAAI,GAAG,IAAI,CAAQ;IAE1B;;OAEG;IAEH,MAAM,EAAE,IAAI,GAAG,IAAI,CAAQ;IAY3B,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB;;;;;;;;OAQG;IACH,IAAI,KAAK,WAER;IAED;;OAEG;IACH,IAAI,aAAa,WAchB;IAED;;;;;OAKG;IACH,IAAI,GAAG,WAON;IAED,IAAI,YAAY,WAEf;IAED;;;OAGG;IACH,IAAI,eAAe,WAMlB;IAED,IAAI,cAAc,YAQjB;IAED;;OAEG;IACH,IAAI,KAAK,YAMR;IAED;;;;;;;OAOG;IACH,IAAI,mBAAmB,WAKtB;IAED;;OAEG;IACH,IAAI,WAAW,WAEd;IAED,IAAI,MAAM,YAKT;IAED;;;;OAIG;WACU,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE;IA4CzF,sBAAsB,CAAC,GAAG,EAAE,MAAM;WAsB3B,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE;WAepC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE;WAQvC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE;WAQ3F,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE;WAKzF,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,yBAAyB,CAAC,EAAE,MAAM,CAAA;KAAE;WAQrG,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;;;;;IAkB/E;;OAEG;WACU,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK;WAyDhD,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE;;;;IAgB9C,YAAY;WAMC,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;WAuBlF,+BAA+B,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC;WAuBhG,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;WAoD7H,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAM3F"}
1
+ {"version":3,"file":"BalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
@@ -39,9 +39,15 @@ class BalanceItem extends sql_1.QueryableModel {
39
39
  relations = new Map();
40
40
  description = '';
41
41
  /**
42
- * Total prices
42
+ * @deprecated Use quantity
43
43
  */
44
44
  amount = 1;
45
+ get quantity() {
46
+ return this.amount;
47
+ }
48
+ set quantity(quantity) {
49
+ this.amount = this.quantity;
50
+ }
45
51
  /**
46
52
  * Price per piece
47
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BalanceItem.js","sourceRoot":"","sources":["../../../src/models/BalanceItem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { Company, File, Invoice as InvoiceStruct, PaymentCustomer, VATSubtotal } from '@stamhoofd/structures';
2
+ import { QueryableModel } from '@stamhoofd/sql';
3
+ export declare class Invoice extends QueryableModel {
4
+ static table: string;
5
+ id: string;
6
+ number: string | null;
7
+ customer: PaymentCustomer;
8
+ seller: Company;
9
+ /**
10
+ * seller organization
11
+ */
12
+ organizationId: string;
13
+ /**
14
+ * Can be null if it is not linked to an organization.
15
+ * This is only used to allow the payer to list their (incoming) invoices.
16
+ *
17
+ * In the future we could expand this with members, users, and/or orders
18
+ */
19
+ payingOrganizationId: string | null;
20
+ /**
21
+ * This is the rounding amount in cents that is applied to the normal calculation of the invoiced balance items (prices exluding VAT) to come to the actual total price of the invoice.
22
+ *
23
+ * This is visible on the invoice. It is use to correct for differences between the paid price and the calculated invoice price because of rounding issues or things that can't be represented properly in PEPPOL due to rounding
24
+ *
25
+ * - Say we invoice 31 items of 5 euro including VAT, so 4,13 euro excluding VAT. This means InvoicedBalanceItem has
26
+ * - balanceInvoicedAmount = 5 euro
27
+ * - amount = 31_00_00 (31 pieces)
28
+ * - unitPrice = 4_13_00 (4,13 euro excluding VAT, rounded to 1 cent because of PEPPOL)
29
+ * The normal invoiced sum would be 155 euro if we sum balanceInvoicedAmount
30
+ * But the invoice total price will be 128,03 excluding VAT, and 154,92 euro including VAT because of rounding rules (round on total level, not individual item level).
31
+ * In this case payableRoundingAmount would be 0,08 euro, because that is the price that needs to be added to the normal calculation to come to the actual invoice total price that needs to be paid (155 euro).
32
+ * A different solution might be to increase the price excluding VAT of some items by 0,07 euro (or add an extra item on the invoice with the same VAT rate), so the total excluding VAT becomes 128,10 euro, and including VAT 155 euro. This is not always possible though, in some cases we maintain a difference of 1 cent.
33
+ * balanceRoundingAmount would be 0 because there is no difference lower than 1 cent.
34
+ */
35
+ payableRoundingAmount: number;
36
+ /**
37
+ * List of VAT per VAT rate or category. This is stored in case the calculation changes over time.
38
+ */
39
+ VATTotal: VATSubtotal[];
40
+ VATTotalAmount: number;
41
+ totalWithoutVAT: number;
42
+ totalBalanceInvoicedAmount: number;
43
+ totalWithVAT: number;
44
+ ipAddress: string | null;
45
+ userAgent: string | null;
46
+ stripeAccountId: string | null;
47
+ reference: string | null;
48
+ pdf: File | null;
49
+ xml: File | null;
50
+ /**
51
+ * If a invoice was refunded because of a cancellation, we store the negative invoice id here
52
+ */
53
+ negativeInvoiceId: string | null;
54
+ didSendPeppol: boolean;
55
+ createdAt: Date;
56
+ _forceUpdatedAt: Date | null;
57
+ updatedAt: Date;
58
+ static createFrom(organization: {
59
+ id: string;
60
+ }, struct: InvoiceStruct): Promise<void>;
61
+ }
62
+ //# sourceMappingURL=Invoice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Invoice.d.ts","sourceRoot":"","sources":["../../../src/models/Invoice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI9G,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,qBAAa,OAAQ,SAAQ,cAAc;IACvC,MAAM,CAAC,KAAK,SAAc;IAO1B,EAAE,EAAG,MAAM,CAAC;IAGZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAG7B,QAAQ,kBAA8B;IAGtC,MAAM,UAAsB;IAE5B;;OAEG;IAEH,cAAc,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IAEH,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE3C;;;;;;;;;;;;;;OAcG;IAEH,qBAAqB,EAAE,MAAM,CAAK;IAElC;;OAEG;IAEH,QAAQ,EAAE,WAAW,EAAE,CAAM;IAG7B,cAAc,SAAK;IAGnB,eAAe,SAAK;IAGpB,0BAA0B,SAAK;IAG/B,YAAY,SAAK;IAGjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGhC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAQ;IAGxB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAQ;IAExB;;OAEG;IAEH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAGxC,aAAa,UAAS;IAYtB,SAAS,EAAE,IAAI,CAAC;IAEhB,eAAe,EAAE,IAAI,GAAG,IAAI,CAAQ;IAapC,SAAS,EAAE,IAAI,CAAC;WAEH,UAAU,CAAC,YAAY,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,aAAa;CAwD9E"}
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Invoice = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const simple_database_1 = require("@simonbackx/simple-database");
6
+ const structures_1 = require("@stamhoofd/structures");
7
+ const uuid_1 = require("uuid");
8
+ const simple_encoding_1 = require("@simonbackx/simple-encoding");
9
+ const sql_1 = require("@stamhoofd/sql");
10
+ const InvoicedBalanceItem_js_1 = require("./InvoicedBalanceItem.js");
11
+ class Invoice extends sql_1.QueryableModel {
12
+ static table = 'invoices';
13
+ id;
14
+ number = null;
15
+ customer = structures_1.PaymentCustomer.create({});
16
+ seller = structures_1.Company.create({});
17
+ /**
18
+ * seller organization
19
+ */
20
+ organizationId;
21
+ /**
22
+ * Can be null if it is not linked to an organization.
23
+ * This is only used to allow the payer to list their (incoming) invoices.
24
+ *
25
+ * In the future we could expand this with members, users, and/or orders
26
+ */
27
+ payingOrganizationId = null;
28
+ /**
29
+ * This is the rounding amount in cents that is applied to the normal calculation of the invoiced balance items (prices exluding VAT) to come to the actual total price of the invoice.
30
+ *
31
+ * This is visible on the invoice. It is use to correct for differences between the paid price and the calculated invoice price because of rounding issues or things that can't be represented properly in PEPPOL due to rounding
32
+ *
33
+ * - Say we invoice 31 items of 5 euro including VAT, so 4,13 euro excluding VAT. This means InvoicedBalanceItem has
34
+ * - balanceInvoicedAmount = 5 euro
35
+ * - amount = 31_00_00 (31 pieces)
36
+ * - unitPrice = 4_13_00 (4,13 euro excluding VAT, rounded to 1 cent because of PEPPOL)
37
+ * The normal invoiced sum would be 155 euro if we sum balanceInvoicedAmount
38
+ * But the invoice total price will be 128,03 excluding VAT, and 154,92 euro including VAT because of rounding rules (round on total level, not individual item level).
39
+ * In this case payableRoundingAmount would be 0,08 euro, because that is the price that needs to be added to the normal calculation to come to the actual invoice total price that needs to be paid (155 euro).
40
+ * A different solution might be to increase the price excluding VAT of some items by 0,07 euro (or add an extra item on the invoice with the same VAT rate), so the total excluding VAT becomes 128,10 euro, and including VAT 155 euro. This is not always possible though, in some cases we maintain a difference of 1 cent.
41
+ * balanceRoundingAmount would be 0 because there is no difference lower than 1 cent.
42
+ */
43
+ payableRoundingAmount = 0;
44
+ /**
45
+ * List of VAT per VAT rate or category. This is stored in case the calculation changes over time.
46
+ */
47
+ VATTotal = [];
48
+ VATTotalAmount = 0;
49
+ totalWithoutVAT = 0;
50
+ totalBalanceInvoicedAmount = 0;
51
+ totalWithVAT = 0;
52
+ ipAddress = null;
53
+ userAgent = null;
54
+ stripeAccountId = null;
55
+ reference = null;
56
+ pdf = null;
57
+ xml = null;
58
+ /**
59
+ * If a invoice was refunded because of a cancellation, we store the negative invoice id here
60
+ */
61
+ negativeInvoiceId = null;
62
+ didSendPeppol = false;
63
+ createdAt;
64
+ _forceUpdatedAt = null;
65
+ updatedAt;
66
+ static async createFrom(organization, struct) {
67
+ const model = new Invoice();
68
+ model.customer = struct.customer;
69
+ model.seller = struct.seller;
70
+ model.organizationId = organization.id;
71
+ model.payingOrganizationId = struct.payingOrganizationId;
72
+ model.payableRoundingAmount = struct.payableRoundingAmount;
73
+ model.VATTotal = struct.VATTotal;
74
+ model.VATTotalAmount = struct.VATTotalAmount;
75
+ model.totalWithoutVAT = struct.totalWithoutVAT;
76
+ model.totalWithVAT = struct.totalWithVAT;
77
+ model.totalBalanceInvoicedAmount = struct.totalBalanceInvoicedAmount;
78
+ model.ipAddress = struct.ipAddress;
79
+ model.userAgent = struct.userAgent;
80
+ model.stripeAccountId = struct.stripeAccountId;
81
+ model.reference = struct.reference;
82
+ model.negativeInvoiceId = struct.negativeInvoiceId;
83
+ await model.save();
84
+ // Create balances
85
+ try {
86
+ for (const item of struct.items) {
87
+ const invoiced = new InvoicedBalanceItem_js_1.InvoicedBalanceItem();
88
+ invoiced.invoiceId = model.id;
89
+ invoiced.organizationId = model.organizationId;
90
+ invoiced.balanceItemId = item.balanceItemId;
91
+ invoiced.VATExcempt = item.VATExcempt;
92
+ invoiced.VATPercentage = item.VATPercentage;
93
+ invoiced.VATIncluded = item.VATIncluded;
94
+ invoiced.unitPrice = item.unitPrice;
95
+ invoiced.quantity = item.quantity;
96
+ invoiced.balanceInvoicedAmount = item.balanceInvoicedAmount;
97
+ invoiced.totalWithoutVAT = item.totalWithoutVAT;
98
+ await invoiced.save();
99
+ }
100
+ }
101
+ catch (e) {
102
+ try {
103
+ await model.delete();
104
+ }
105
+ catch (ee) {
106
+ console.error('Error while trying to delete invoice because of fail save', ee, 'Deleting because of error', e);
107
+ }
108
+ throw e;
109
+ }
110
+ }
111
+ }
112
+ exports.Invoice = Invoice;
113
+ tslib_1.__decorate([
114
+ (0, simple_database_1.column)({
115
+ primary: true, type: 'string', beforeSave(value) {
116
+ return value ?? (0, uuid_1.v4)();
117
+ },
118
+ })
119
+ ], Invoice.prototype, "id", void 0);
120
+ tslib_1.__decorate([
121
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
122
+ ], Invoice.prototype, "number", void 0);
123
+ tslib_1.__decorate([
124
+ (0, simple_database_1.column)({ type: 'json', decoder: structures_1.PaymentCustomer })
125
+ ], Invoice.prototype, "customer", void 0);
126
+ tslib_1.__decorate([
127
+ (0, simple_database_1.column)({ type: 'json', decoder: structures_1.Company })
128
+ ], Invoice.prototype, "seller", void 0);
129
+ tslib_1.__decorate([
130
+ (0, simple_database_1.column)({ type: 'string' })
131
+ ], Invoice.prototype, "organizationId", void 0);
132
+ tslib_1.__decorate([
133
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
134
+ ], Invoice.prototype, "payingOrganizationId", void 0);
135
+ tslib_1.__decorate([
136
+ (0, simple_database_1.column)({ type: 'integer' })
137
+ ], Invoice.prototype, "payableRoundingAmount", void 0);
138
+ tslib_1.__decorate([
139
+ (0, simple_database_1.column)({ type: 'json', decoder: new simple_encoding_1.ArrayDecoder(structures_1.VATSubtotal) })
140
+ ], Invoice.prototype, "VATTotal", void 0);
141
+ tslib_1.__decorate([
142
+ (0, simple_database_1.column)({ type: 'integer' })
143
+ ], Invoice.prototype, "VATTotalAmount", void 0);
144
+ tslib_1.__decorate([
145
+ (0, simple_database_1.column)({ type: 'integer' })
146
+ ], Invoice.prototype, "totalWithoutVAT", void 0);
147
+ tslib_1.__decorate([
148
+ (0, simple_database_1.column)({ type: 'integer' })
149
+ ], Invoice.prototype, "totalBalanceInvoicedAmount", void 0);
150
+ tslib_1.__decorate([
151
+ (0, simple_database_1.column)({ type: 'integer' })
152
+ ], Invoice.prototype, "totalWithVAT", void 0);
153
+ tslib_1.__decorate([
154
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
155
+ ], Invoice.prototype, "ipAddress", void 0);
156
+ tslib_1.__decorate([
157
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
158
+ ], Invoice.prototype, "userAgent", void 0);
159
+ tslib_1.__decorate([
160
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
161
+ ], Invoice.prototype, "stripeAccountId", void 0);
162
+ tslib_1.__decorate([
163
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
164
+ ], Invoice.prototype, "reference", void 0);
165
+ tslib_1.__decorate([
166
+ (0, simple_database_1.column)({ type: 'json', decoder: structures_1.File, nullable: true })
167
+ ], Invoice.prototype, "pdf", void 0);
168
+ tslib_1.__decorate([
169
+ (0, simple_database_1.column)({ type: 'json', decoder: structures_1.File, nullable: true })
170
+ ], Invoice.prototype, "xml", void 0);
171
+ tslib_1.__decorate([
172
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
173
+ ], Invoice.prototype, "negativeInvoiceId", void 0);
174
+ tslib_1.__decorate([
175
+ (0, simple_database_1.column)({ type: 'boolean' })
176
+ ], Invoice.prototype, "didSendPeppol", void 0);
177
+ tslib_1.__decorate([
178
+ (0, simple_database_1.column)({
179
+ type: 'datetime', beforeSave(old) {
180
+ if (old !== undefined) {
181
+ return old;
182
+ }
183
+ const date = new Date();
184
+ date.setMilliseconds(0);
185
+ return date;
186
+ },
187
+ })
188
+ ], Invoice.prototype, "createdAt", void 0);
189
+ tslib_1.__decorate([
190
+ (0, simple_database_1.column)({
191
+ type: 'datetime', beforeSave() {
192
+ if (this._forceUpdatedAt) {
193
+ return this._forceUpdatedAt;
194
+ }
195
+ const date = new Date();
196
+ date.setMilliseconds(0);
197
+ return date;
198
+ },
199
+ skipUpdate: true,
200
+ })
201
+ ], Invoice.prototype, "updatedAt", void 0);
202
+ //# sourceMappingURL=Invoice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Invoice.js","sourceRoot":"","sources":["../../../src/models/Invoice.ts"],"names":[],"mappings":";;;;AAAA,iEAAqD;AACrD,sDAA8G;AAC9G,+BAAoC;AAEpC,iEAA2D;AAC3D,wCAAgD;AAChD,qEAA+D;AAE/D,MAAa,OAAQ,SAAQ,oBAAc;IACvC,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC;IAO1B,EAAE,CAAU;IAGZ,MAAM,GAAkB,IAAI,CAAC;IAG7B,QAAQ,GAAG,4BAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAGtC,MAAM,GAAG,oBAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAE5B;;OAEG;IAEH,cAAc,CAAS;IAEvB;;;;;OAKG;IAEH,oBAAoB,GAAkB,IAAI,CAAC;IAE3C;;;;;;;;;;;;;;OAcG;IAEH,qBAAqB,GAAW,CAAC,CAAC;IAElC;;OAEG;IAEH,QAAQ,GAAkB,EAAE,CAAC;IAG7B,cAAc,GAAG,CAAC,CAAC;IAGnB,eAAe,GAAG,CAAC,CAAC;IAGpB,0BAA0B,GAAG,CAAC,CAAC;IAG/B,YAAY,GAAG,CAAC,CAAC;IAGjB,SAAS,GAAkB,IAAI,CAAC;IAGhC,SAAS,GAAkB,IAAI,CAAC;IAGhC,eAAe,GAAkB,IAAI,CAAC;IAGtC,SAAS,GAAkB,IAAI,CAAC;IAGhC,GAAG,GAAgB,IAAI,CAAC;IAGxB,GAAG,GAAgB,IAAI,CAAC;IAExB;;OAEG;IAEH,iBAAiB,GAAkB,IAAI,CAAC;IAGxC,aAAa,GAAG,KAAK,CAAC;IAYtB,SAAS,CAAO;IAEhB,eAAe,GAAgB,IAAI,CAAC;IAapC,SAAS,CAAO;IAEhB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,YAA4B,EAAE,MAAqB;QACvE,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;QAC5B,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QAEzD,KAAK,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC3D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC7C,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,KAAK,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC;QAErE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACnC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAEnC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAC/C,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAEnC,KAAK,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEnD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,kBAAkB;QAClB,IAAI,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,IAAI,4CAAmB,EAAE,CAAC;gBAC3C,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;gBAC/C,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAE5C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACtC,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC5C,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;gBAExC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBACpC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAElC,QAAQ,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;gBAE5D,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;gBAEhD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,OAAO,CAAC,EAAE,CAAC;YACP,IAAI,CAAC;gBACD,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YACzB,CAAC;YACD,OAAO,EAAE,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,2DAA2D,EAAE,EAAE,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;YACnH,CAAC;YACD,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;;AAnLL,0BAoLC;AA5KG;IALC,IAAA,wBAAM,EAAC;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK;YAC3C,OAAO,KAAK,IAAI,IAAA,SAAM,GAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;mCACU;AAGZ;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;uCACd;AAG7B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,4BAAe,EAAE,CAAC;yCACb;AAGtC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAO,EAAE,CAAC;uCACf;AAM5B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;+CACJ;AASvB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qDACA;AAkB3C;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;sDACM;AAMlC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,8BAAY,CAAC,wBAAW,CAAC,EAAE,CAAC;yCACpC;AAG7B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;+CACT;AAGnB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gDACR;AAGpB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;2DACG;AAG/B;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;6CACX;AAGjB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CACX;AAGhC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CACX;AAGhC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gDACL;AAGtC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;0CACX;AAGhC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oCAChC;AAGxB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oCAChC;AAMxB;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACH;AAGxC;IADC,IAAA,wBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;8CACN;AAYtB;IAVC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,GAAS;YAClC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC;YACf,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC;0CACc;AAehB;IAXC,IAAA,wBAAM,EAAC;QACJ,IAAI,EAAE,UAAU,EAAE,UAAU;YACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,eAAe,CAAC;YAChC,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,UAAU,EAAE,IAAI;KACnB,CAAC;0CACc"}
@@ -0,0 +1,66 @@
1
+ import { ManyToOneRelation } from '@simonbackx/simple-database';
2
+ import { QueryableModel } from '@stamhoofd/sql';
3
+ import { Invoice } from './Invoice.js';
4
+ import { BalanceItem } from './BalanceItem.js';
5
+ import { VATExcemptReason } from '@stamhoofd/structures';
6
+ /**
7
+ * Keeps track of all the created invoices of a balance item, which contains how many balance was invoiced (including VAT)
8
+ * and also how it was invoiced (since the unit price, quantity etc can't always match the balance items invoiced price due to rounding)
9
+ */
10
+ export declare class InvoicedBalanceItem extends QueryableModel {
11
+ static table: string;
12
+ id: string;
13
+ organizationId: string;
14
+ invoiceId: string;
15
+ balanceItemId: string;
16
+ name: string;
17
+ description: string;
18
+ /**
19
+ * Price of the balance that was actually invoiced. Always includes VAT.
20
+ *
21
+ * 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.
22
+ *
23
+ * - 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.
24
+ * - E.g. if balance item price is 0,242 euro including VAT (=balanceInvoicedAmount), then unit price would be 0,20 euro (no rounding issue)
25
+ * - E.g. if balance item price is 0,243 euro including VAT (=balanceInvoicedAmount), then unit price would also be 0,20 euro (rounding issue)
26
+ *
27
+ * Any rounding issues are fixed on the invoice level.
28
+ */
29
+ balanceInvoicedAmount: number;
30
+ /**
31
+ * quantity per ten thousand
32
+ * We need to support 4 decimals in case of partial payments.
33
+ * E.g. 10 euro of 30 euro was paid and is invoiced, then the amount would be 0.3333, stored as 3333
34
+ * Mostly for legal reasons, to be able to say wat was actually bought without faking an amount
35
+ */
36
+ quantity: number;
37
+ /**
38
+ * Price per piece
39
+ * Always excludes VAT
40
+ */
41
+ unitPrice: number;
42
+ /**
43
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
44
+ * mistakes can be corrected and credited.
45
+ */
46
+ VATPercentage: number;
47
+ /**
48
+ * Note: does not apply to unitPrice, only to the balance item at the time of invoicing
49
+ */
50
+ VATIncluded: boolean;
51
+ /**
52
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
53
+ * mistakes can be corrected and credited.
54
+ */
55
+ VATExcempt: VATExcemptReason | null;
56
+ /**
57
+ * This should be rounded to 2 decimals to match PEPPOL requirements
58
+ * = LineExtensionAmount
59
+ */
60
+ totalWithoutVAT: number;
61
+ createdAt: Date;
62
+ updatedAt: Date;
63
+ static balanceItem: ManyToOneRelation<"balanceItem", BalanceItem>;
64
+ static invoice: ManyToOneRelation<"invoice", Invoice>;
65
+ }
66
+ //# sourceMappingURL=InvoicedBalanceItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicedBalanceItem.d.ts","sourceRoot":"","sources":["../../../src/models/InvoicedBalanceItem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,cAAc;IACnD,MAAM,CAAC,KAAK,SAA2B;IAOvC,EAAE,EAAG,MAAM,CAAC;IAGZ,cAAc,EAAE,MAAM,CAAC;IAGvB,SAAS,EAAE,MAAM,CAAC;IAGlB,aAAa,EAAE,MAAM,CAAC;IAGtB,IAAI,SAAM;IAGV,WAAW,SAAM;IAEjB;;;;;;;;;;OAUG;IAEH,qBAAqB,SAAK;IAE1B;;;;;OAKG;IAEH,QAAQ,SAAW;IAEnB;;;OAGG;IAEH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IAEH,aAAa,SAAK;IAElB;;OAEG;IAEH,WAAW,UAAQ;IAEnB;;;OAGG;IAEH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAE3C;;;OAGG;IAEH,eAAe,SAAK;IAYpB,SAAS,EAAE,IAAI,CAAC;IAUhB,SAAS,EAAE,IAAI,CAAC;IAEhB,MAAM,CAAC,WAAW,gDAAqD;IACvE,MAAM,CAAC,OAAO,wCAA6C;CAC9D"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvoicedBalanceItem = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const simple_database_1 = require("@simonbackx/simple-database");
6
+ const uuid_1 = require("uuid");
7
+ const sql_1 = require("@stamhoofd/sql");
8
+ const Invoice_js_1 = require("./Invoice.js");
9
+ const BalanceItem_js_1 = require("./BalanceItem.js");
10
+ /**
11
+ * Keeps track of all the created invoices of a balance item, which contains how many balance was invoiced (including VAT)
12
+ * and also how it was invoiced (since the unit price, quantity etc can't always match the balance items invoiced price due to rounding)
13
+ */
14
+ class InvoicedBalanceItem extends sql_1.QueryableModel {
15
+ static table = 'balance_item_invoices';
16
+ id;
17
+ organizationId;
18
+ invoiceId;
19
+ balanceItemId;
20
+ name = '';
21
+ description = '';
22
+ /**
23
+ * Price of the balance that was actually invoiced. Always includes VAT.
24
+ *
25
+ * 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.
26
+ *
27
+ * - 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.
28
+ * - E.g. if balance item price is 0,242 euro including VAT (=balanceInvoicedAmount), then unit price would be 0,20 euro (no rounding issue)
29
+ * - E.g. if balance item price is 0,243 euro including VAT (=balanceInvoicedAmount), then unit price would also be 0,20 euro (rounding issue)
30
+ *
31
+ * Any rounding issues are fixed on the invoice level.
32
+ */
33
+ balanceInvoicedAmount = 0;
34
+ /**
35
+ * quantity per ten thousand
36
+ * We need to support 4 decimals in case of partial payments.
37
+ * E.g. 10 euro of 30 euro was paid and is invoiced, then the amount would be 0.3333, stored as 3333
38
+ * Mostly for legal reasons, to be able to say wat was actually bought without faking an amount
39
+ */
40
+ quantity = 1_00_00;
41
+ /**
42
+ * Price per piece
43
+ * Always excludes VAT
44
+ */
45
+ unitPrice;
46
+ /**
47
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
48
+ * mistakes can be corrected and credited.
49
+ */
50
+ VATPercentage = 0;
51
+ /**
52
+ * Note: does not apply to unitPrice, only to the balance item at the time of invoicing
53
+ */
54
+ VATIncluded = true;
55
+ /**
56
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
57
+ * mistakes can be corrected and credited.
58
+ */
59
+ VATExcempt = null;
60
+ /**
61
+ * This should be rounded to 2 decimals to match PEPPOL requirements
62
+ * = LineExtensionAmount
63
+ */
64
+ totalWithoutVAT = 0;
65
+ createdAt;
66
+ updatedAt;
67
+ static balanceItem = new simple_database_1.ManyToOneRelation(BalanceItem_js_1.BalanceItem, 'balanceItem');
68
+ static invoice = new simple_database_1.ManyToOneRelation(Invoice_js_1.Invoice, 'invoice');
69
+ }
70
+ exports.InvoicedBalanceItem = InvoicedBalanceItem;
71
+ tslib_1.__decorate([
72
+ (0, simple_database_1.column)({
73
+ primary: true, type: 'string', beforeSave(value) {
74
+ return value ?? (0, uuid_1.v4)();
75
+ },
76
+ })
77
+ ], InvoicedBalanceItem.prototype, "id", void 0);
78
+ tslib_1.__decorate([
79
+ (0, simple_database_1.column)({ type: 'string' })
80
+ ], InvoicedBalanceItem.prototype, "organizationId", void 0);
81
+ tslib_1.__decorate([
82
+ (0, simple_database_1.column)({ type: 'string', foreignKey: InvoicedBalanceItem.invoice })
83
+ ], InvoicedBalanceItem.prototype, "invoiceId", void 0);
84
+ tslib_1.__decorate([
85
+ (0, simple_database_1.column)({ type: 'string', foreignKey: InvoicedBalanceItem.balanceItem })
86
+ ], InvoicedBalanceItem.prototype, "balanceItemId", void 0);
87
+ tslib_1.__decorate([
88
+ (0, simple_database_1.column)({ type: 'string' })
89
+ ], InvoicedBalanceItem.prototype, "name", void 0);
90
+ tslib_1.__decorate([
91
+ (0, simple_database_1.column)({ type: 'string' })
92
+ ], InvoicedBalanceItem.prototype, "description", void 0);
93
+ tslib_1.__decorate([
94
+ (0, simple_database_1.column)({ type: 'integer' })
95
+ ], InvoicedBalanceItem.prototype, "balanceInvoicedAmount", void 0);
96
+ tslib_1.__decorate([
97
+ (0, simple_database_1.column)({ type: 'integer' })
98
+ ], InvoicedBalanceItem.prototype, "quantity", void 0);
99
+ tslib_1.__decorate([
100
+ (0, simple_database_1.column)({ type: 'integer' })
101
+ ], InvoicedBalanceItem.prototype, "unitPrice", void 0);
102
+ tslib_1.__decorate([
103
+ (0, simple_database_1.column)({ type: 'integer' })
104
+ ], InvoicedBalanceItem.prototype, "VATPercentage", void 0);
105
+ tslib_1.__decorate([
106
+ (0, simple_database_1.column)({ type: 'boolean' })
107
+ ], InvoicedBalanceItem.prototype, "VATIncluded", void 0);
108
+ tslib_1.__decorate([
109
+ (0, simple_database_1.column)({ type: 'string', nullable: true })
110
+ ], InvoicedBalanceItem.prototype, "VATExcempt", void 0);
111
+ tslib_1.__decorate([
112
+ (0, simple_database_1.column)({ type: 'integer' })
113
+ ], InvoicedBalanceItem.prototype, "totalWithoutVAT", void 0);
114
+ tslib_1.__decorate([
115
+ (0, simple_database_1.column)({
116
+ type: 'datetime', beforeSave(old) {
117
+ if (old !== undefined) {
118
+ return old;
119
+ }
120
+ const date = new Date();
121
+ date.setMilliseconds(0);
122
+ return date;
123
+ },
124
+ })
125
+ ], InvoicedBalanceItem.prototype, "createdAt", void 0);
126
+ tslib_1.__decorate([
127
+ (0, simple_database_1.column)({
128
+ type: 'datetime', beforeSave() {
129
+ const date = new Date();
130
+ date.setMilliseconds(0);
131
+ return date;
132
+ },
133
+ skipUpdate: true,
134
+ })
135
+ ], InvoicedBalanceItem.prototype, "updatedAt", void 0);
136
+ //# sourceMappingURL=InvoicedBalanceItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvoicedBalanceItem.js","sourceRoot":"","sources":["../../../src/models/InvoicedBalanceItem.ts"],"names":[],"mappings":"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"}
@@ -49,4 +49,6 @@ export * from './CachedBalance.js';
49
49
  export * from './AuditLog.js';
50
50
  export * from './MemberUser.js';
51
51
  export * from './UitpasClientCredential.js';
52
+ export * from './Invoice.js';
53
+ export * from './InvoicedBalanceItem.js';
52
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,cAAc,4BAA4B,CAAC;AAE3C,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AAExC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAEhD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,cAAc,4BAA4B,CAAC;AAE3C,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AAExC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,eAAe,CAAC;AAC9B,cAAc,iCAAiC,CAAC;AAEhD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
@@ -64,4 +64,6 @@ tslib_1.__exportStar(require("./CachedBalance.js"), exports);
64
64
  tslib_1.__exportStar(require("./AuditLog.js"), exports);
65
65
  tslib_1.__exportStar(require("./MemberUser.js"), exports);
66
66
  tslib_1.__exportStar(require("./UitpasClientCredential.js"), exports);
67
+ tslib_1.__exportStar(require("./Invoice.js"), exports);
68
+ tslib_1.__exportStar(require("./InvoicedBalanceItem.js"), exports);
67
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;AAAA,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AACb,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAChB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,sDAA4B;AAC5B,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAErB,qEAA2C;AAE3C,qDAA2B;AAC3B,6DAAmC;AACnC,2DAAiC;AACjC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,6DAAmC;AACnC,+DAAqC;AACrC,4DAAkC;AAClC,yDAA+B;AAC/B,yDAA+B;AAC/B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,uCAAkD;AAAzC,iGAAA,KAAK,OAAA;AACd,uDAA6B;AAC7B,wDAA8B;AAC9B,gEAAsC;AACtC,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AAEd,gEAAsC;AACtC,8DAAoC;AACpC,oEAA0C;AAC1C,kEAAwC;AAExC,6DAAmC;AACnC,mEAAyC;AACzC,qEAA2C;AAE3C,wDAA8B;AAC9B,gEAAsC;AAEtC,mEAAyC;AACzC,mEAAyC;AAEzC,wDAA8B;AAC9B,0EAAgD;AAEhD,8EAAoD;AACpD,kEAAwC;AACxC,wEAA8C;AAC9C,qDAA2B;AAC3B,8DAAoC;AACpC,qDAA2B;AAC3B,iEAAuC;AACvC,6DAAmC;AACnC,wDAA8B;AAC9B,0DAAgC;AAEhC,sEAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/models/index.ts"],"names":[],"mappings":";;;;AAAA,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AACb,2CAAuC;AAA9B,qGAAA,OAAO,OAAA;AAChB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,sDAA4B;AAC5B,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AAErB,qEAA2C;AAE3C,qDAA2B;AAC3B,6DAAmC;AACnC,2DAAiC;AACjC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,6DAAmC;AACnC,+DAAqC;AACrC,4DAAkC;AAClC,yDAA+B;AAC/B,yDAA+B;AAC/B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,uCAAkD;AAAzC,iGAAA,KAAK,OAAA;AACd,uDAA6B;AAC7B,wDAA8B;AAC9B,gEAAsC;AACtC,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,mDAA+C;AAAtC,6GAAA,WAAW,OAAA;AACpB,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AAEd,gEAAsC;AACtC,8DAAoC;AACpC,oEAA0C;AAC1C,kEAAwC;AAExC,6DAAmC;AACnC,mEAAyC;AACzC,qEAA2C;AAE3C,wDAA8B;AAC9B,gEAAsC;AAEtC,mEAAyC;AACzC,mEAAyC;AAEzC,wDAA8B;AAC9B,0EAAgD;AAEhD,8EAAoD;AACpD,kEAAwC;AACxC,wEAA8C;AAC9C,qDAA2B;AAC3B,8DAAoC;AACpC,qDAA2B;AAC3B,iEAAuC;AACvC,6DAAmC;AACnC,wDAA8B;AAC9B,0DAAgC;AAEhC,sEAA4C;AAE5C,uDAA6B;AAC7B,mEAAyC"}
@@ -1 +1 @@
1
- {"root":["../src/index.ts","../src/factories/addressfactory.ts","../src/factories/balanceitemfactory.ts","../src/factories/documenttemplatefactory.ts","../src/factories/emailtemplatefactory.ts","../src/factories/emergencycontactfactory.ts","../src/factories/eventfactory.ts","../src/factories/eventnotificationfactory.ts","../src/factories/eventnotificationtypefactory.ts","../src/factories/groupfactory.ts","../src/factories/memberfactory.ts","../src/factories/memberresponsibilityrecordfactory.ts","../src/factories/organizationfactory.ts","../src/factories/organizationregistrationperiodfactory.ts","../src/factories/organizationtagfactory.ts","../src/factories/parentfactory.ts","../src/factories/platformeventtypefactory.ts","../src/factories/platformresponsibilityfactory.ts","../src/factories/recordanswerfactory.ts","../src/factories/recordcategoryfactory.ts","../src/factories/recordfactory.ts","../src/factories/registercodefactory.ts","../src/factories/registrationfactory.ts","../src/factories/registrationperiodfactory.ts","../src/factories/stpackagefactory.ts","../src/factories/userfactory.ts","../src/factories/webshopfactory.ts","../src/factories/index.ts","../src/helpers/dnsvalidator.ts","../src/helpers/emailbuilder.ts","../src/helpers/groupbuilder.ts","../src/helpers/handlebars.ts","../src/helpers/membermerger.test.ts","../src/helpers/membermerger.ts","../src/helpers/ratelimiter.ts","../src/helpers/webshopcounter.ts","../src/migrations/1605262045-import-postcodes.ts","../src/migrations/1605262046-import-postcodes-nl.ts","../src/models/auditlog.ts","../src/models/balanceitem.ts","../src/models/balanceitempayment.ts","../src/models/buckaroopayment.ts","../src/models/cachedbalance.ts","../src/models/document.ts","../src/models/documenttemplate.test.ts","../src/models/documenttemplate.ts","../src/models/email.test.ts","../src/models/email.ts","../src/models/emailrecipient.ts","../src/models/emailtemplate.ts","../src/models/emailverificationcode.ts","../src/models/event.ts","../src/models/eventnotification.ts","../src/models/group.ts","../src/models/image.ts","../src/models/member.ts","../src/models/memberplatformmembership.ts","../src/models/memberresponsibilityrecord.ts","../src/models/memberuser.ts","../src/models/mergedmember.ts","../src/models/molliepayment.ts","../src/models/mollietoken.ts","../src/models/onetimetoken.ts","../src/models/order.ts","../src/models/organization.ts","../src/models/organizationregistrationperiod.ts","../src/models/passwordtoken.ts","../src/models/payconiqpayment.ts","../src/models/payment.ts","../src/models/platform.test.ts","../src/models/platform.ts","../src/models/registercode.ts","../src/models/registration.ts","../src/models/registrationperiod.ts","../src/models/stcredit.ts","../src/models/stinvoice.ts","../src/models/stpackage.ts","../src/models/stpendinginvoice.ts","../src/models/stripeaccount.ts","../src/models/stripecheckoutsession.ts","../src/models/stripepaymentintent.ts","../src/models/ticket.ts","../src/models/token.test.ts","../src/models/token.ts","../src/models/uitpasclientcredential.ts","../src/models/usedregistercode.ts","../src/models/user.ts","../src/models/userpermissions.ts","../src/models/webshop.ts","../src/models/webshopdiscountcode.ts","../src/models/webshopuitpasnumber.ts","../src/models/index.ts","../src/models/addresses/city.ts","../src/models/addresses/postalcode.test.ts","../src/models/addresses/postalcode.ts","../src/models/addresses/province.ts","../src/models/addresses/street.ts","../src/structures/organizationservermetadata.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
1
+ {"root":["../src/index.ts","../src/factories/addressfactory.ts","../src/factories/balanceitemfactory.ts","../src/factories/documenttemplatefactory.ts","../src/factories/emailtemplatefactory.ts","../src/factories/emergencycontactfactory.ts","../src/factories/eventfactory.ts","../src/factories/eventnotificationfactory.ts","../src/factories/eventnotificationtypefactory.ts","../src/factories/groupfactory.ts","../src/factories/memberfactory.ts","../src/factories/memberresponsibilityrecordfactory.ts","../src/factories/organizationfactory.ts","../src/factories/organizationregistrationperiodfactory.ts","../src/factories/organizationtagfactory.ts","../src/factories/parentfactory.ts","../src/factories/platformeventtypefactory.ts","../src/factories/platformresponsibilityfactory.ts","../src/factories/recordanswerfactory.ts","../src/factories/recordcategoryfactory.ts","../src/factories/recordfactory.ts","../src/factories/registercodefactory.ts","../src/factories/registrationfactory.ts","../src/factories/registrationperiodfactory.ts","../src/factories/stpackagefactory.ts","../src/factories/userfactory.ts","../src/factories/webshopfactory.ts","../src/factories/index.ts","../src/helpers/dnsvalidator.ts","../src/helpers/emailbuilder.ts","../src/helpers/groupbuilder.ts","../src/helpers/handlebars.ts","../src/helpers/membermerger.test.ts","../src/helpers/membermerger.ts","../src/helpers/ratelimiter.ts","../src/helpers/webshopcounter.ts","../src/migrations/1605262045-import-postcodes.ts","../src/migrations/1605262046-import-postcodes-nl.ts","../src/models/auditlog.ts","../src/models/balanceitem.ts","../src/models/balanceitempayment.ts","../src/models/buckaroopayment.ts","../src/models/cachedbalance.ts","../src/models/document.ts","../src/models/documenttemplate.test.ts","../src/models/documenttemplate.ts","../src/models/email.test.ts","../src/models/email.ts","../src/models/emailrecipient.ts","../src/models/emailtemplate.ts","../src/models/emailverificationcode.ts","../src/models/event.ts","../src/models/eventnotification.ts","../src/models/group.ts","../src/models/image.ts","../src/models/invoice.ts","../src/models/invoicedbalanceitem.ts","../src/models/member.ts","../src/models/memberplatformmembership.ts","../src/models/memberresponsibilityrecord.ts","../src/models/memberuser.ts","../src/models/mergedmember.ts","../src/models/molliepayment.ts","../src/models/mollietoken.ts","../src/models/onetimetoken.ts","../src/models/order.ts","../src/models/organization.ts","../src/models/organizationregistrationperiod.ts","../src/models/passwordtoken.ts","../src/models/payconiqpayment.ts","../src/models/payment.ts","../src/models/platform.test.ts","../src/models/platform.ts","../src/models/registercode.ts","../src/models/registration.ts","../src/models/registrationperiod.ts","../src/models/stcredit.ts","../src/models/stinvoice.ts","../src/models/stpackage.ts","../src/models/stpendinginvoice.ts","../src/models/stripeaccount.ts","../src/models/stripecheckoutsession.ts","../src/models/stripepaymentintent.ts","../src/models/ticket.ts","../src/models/token.test.ts","../src/models/token.ts","../src/models/uitpasclientcredential.ts","../src/models/usedregistercode.ts","../src/models/user.ts","../src/models/userpermissions.ts","../src/models/webshop.ts","../src/models/webshopdiscountcode.ts","../src/models/webshopuitpasnumber.ts","../src/models/index.ts","../src/models/addresses/city.ts","../src/models/addresses/postalcode.test.ts","../src/models/addresses/postalcode.ts","../src/models/addresses/province.ts","../src/models/addresses/street.ts","../src/structures/organizationservermetadata.ts","../tests/jest.global.setup.ts","../tests/jest.setup.ts","../../../../environment.d.ts","../../../../jest-extended.d.ts","../../../stamhoofd.d.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stamhoofd/models",
3
- "version": "2.110.0",
3
+ "version": "2.111.0",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "license": "UNLICENCED",
@@ -30,5 +30,5 @@
30
30
  "publishConfig": {
31
31
  "access": "public"
32
32
  },
33
- "gitHead": "b43604081c29f7d909dac1b47a2d1633b66670e5"
33
+ "gitHead": "21344c902f356539e4034b499b94f54adbe10e50"
34
34
  }
@@ -66,11 +66,19 @@ export class BalanceItem extends QueryableModel {
66
66
  description = '';
67
67
 
68
68
  /**
69
- * Total prices
69
+ * @deprecated Use quantity
70
70
  */
71
71
  @column({ type: 'integer' })
72
72
  amount = 1;
73
73
 
74
+ get quantity() {
75
+ return this.amount;
76
+ }
77
+
78
+ set quantity(quantity: number) {
79
+ this.amount = this.quantity;
80
+ }
81
+
74
82
  /**
75
83
  * Price per piece
76
84
  *
@@ -0,0 +1,189 @@
1
+ import { column } from '@simonbackx/simple-database';
2
+ import { Company, File, Invoice as InvoiceStruct, PaymentCustomer, VATSubtotal } from '@stamhoofd/structures';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+
5
+ import { ArrayDecoder } from '@simonbackx/simple-encoding';
6
+ import { QueryableModel } from '@stamhoofd/sql';
7
+ import { InvoicedBalanceItem } from './InvoicedBalanceItem.js';
8
+
9
+ export class Invoice extends QueryableModel {
10
+ static table = 'invoices';
11
+
12
+ @column({
13
+ primary: true, type: 'string', beforeSave(value) {
14
+ return value ?? uuidv4();
15
+ },
16
+ })
17
+ id!: string;
18
+
19
+ @column({ type: 'string', nullable: true })
20
+ number: string | null = null;
21
+
22
+ @column({ type: 'json', decoder: PaymentCustomer })
23
+ customer = PaymentCustomer.create({});
24
+
25
+ @column({ type: 'json', decoder: Company })
26
+ seller = Company.create({});
27
+
28
+ /**
29
+ * seller organization
30
+ */
31
+ @column({ type: 'string' })
32
+ organizationId: string;
33
+
34
+ /**
35
+ * Can be null if it is not linked to an organization.
36
+ * This is only used to allow the payer to list their (incoming) invoices.
37
+ *
38
+ * In the future we could expand this with members, users, and/or orders
39
+ */
40
+ @column({ type: 'string', nullable: true })
41
+ payingOrganizationId: string | null = null;
42
+
43
+ /**
44
+ * This is the rounding amount in cents that is applied to the normal calculation of the invoiced balance items (prices exluding VAT) to come to the actual total price of the invoice.
45
+ *
46
+ * This is visible on the invoice. It is use to correct for differences between the paid price and the calculated invoice price because of rounding issues or things that can't be represented properly in PEPPOL due to rounding
47
+ *
48
+ * - Say we invoice 31 items of 5 euro including VAT, so 4,13 euro excluding VAT. This means InvoicedBalanceItem has
49
+ * - balanceInvoicedAmount = 5 euro
50
+ * - amount = 31_00_00 (31 pieces)
51
+ * - unitPrice = 4_13_00 (4,13 euro excluding VAT, rounded to 1 cent because of PEPPOL)
52
+ * The normal invoiced sum would be 155 euro if we sum balanceInvoicedAmount
53
+ * But the invoice total price will be 128,03 excluding VAT, and 154,92 euro including VAT because of rounding rules (round on total level, not individual item level).
54
+ * In this case payableRoundingAmount would be 0,08 euro, because that is the price that needs to be added to the normal calculation to come to the actual invoice total price that needs to be paid (155 euro).
55
+ * A different solution might be to increase the price excluding VAT of some items by 0,07 euro (or add an extra item on the invoice with the same VAT rate), so the total excluding VAT becomes 128,10 euro, and including VAT 155 euro. This is not always possible though, in some cases we maintain a difference of 1 cent.
56
+ * balanceRoundingAmount would be 0 because there is no difference lower than 1 cent.
57
+ */
58
+ @column({ type: 'integer' })
59
+ payableRoundingAmount: number = 0;
60
+
61
+ /**
62
+ * List of VAT per VAT rate or category. This is stored in case the calculation changes over time.
63
+ */
64
+ @column({ type: 'json', decoder: new ArrayDecoder(VATSubtotal) })
65
+ VATTotal: VATSubtotal[] = [];
66
+
67
+ @column({ type: 'integer' })
68
+ VATTotalAmount = 0;
69
+
70
+ @column({ type: 'integer' })
71
+ totalWithoutVAT = 0;
72
+
73
+ @column({ type: 'integer' })
74
+ totalBalanceInvoicedAmount = 0;
75
+
76
+ @column({ type: 'integer' })
77
+ totalWithVAT = 0;
78
+
79
+ @column({ type: 'string', nullable: true })
80
+ ipAddress: string | null = null;
81
+
82
+ @column({ type: 'string', nullable: true })
83
+ userAgent: string | null = null;
84
+
85
+ @column({ type: 'string', nullable: true })
86
+ stripeAccountId: string | null = null;
87
+
88
+ @column({ type: 'string', nullable: true })
89
+ reference: string | null = null;
90
+
91
+ @column({ type: 'json', decoder: File, nullable: true })
92
+ pdf: File | null = null;
93
+
94
+ @column({ type: 'json', decoder: File, nullable: true })
95
+ xml: File | null = null;
96
+
97
+ /**
98
+ * If a invoice was refunded because of a cancellation, we store the negative invoice id here
99
+ */
100
+ @column({ type: 'string', nullable: true })
101
+ negativeInvoiceId: string | null = null;
102
+
103
+ @column({ type: 'boolean' })
104
+ didSendPeppol = false;
105
+
106
+ @column({
107
+ type: 'datetime', beforeSave(old?: any) {
108
+ if (old !== undefined) {
109
+ return old;
110
+ }
111
+ const date = new Date();
112
+ date.setMilliseconds(0);
113
+ return date;
114
+ },
115
+ })
116
+ createdAt: Date;
117
+
118
+ _forceUpdatedAt: Date | null = null;
119
+
120
+ @column({
121
+ type: 'datetime', beforeSave() {
122
+ if (this._forceUpdatedAt) {
123
+ return this._forceUpdatedAt;
124
+ }
125
+ const date = new Date();
126
+ date.setMilliseconds(0);
127
+ return date;
128
+ },
129
+ skipUpdate: true,
130
+ })
131
+ updatedAt: Date;
132
+
133
+ static async createFrom(organization: { id: string }, struct: InvoiceStruct) {
134
+ const model = new Invoice();
135
+ model.customer = struct.customer;
136
+ model.seller = struct.seller;
137
+ model.organizationId = organization.id;
138
+ model.payingOrganizationId = struct.payingOrganizationId;
139
+
140
+ model.payableRoundingAmount = struct.payableRoundingAmount;
141
+ model.VATTotal = struct.VATTotal;
142
+ model.VATTotalAmount = struct.VATTotalAmount;
143
+ model.totalWithoutVAT = struct.totalWithoutVAT;
144
+ model.totalWithVAT = struct.totalWithVAT;
145
+ model.totalBalanceInvoicedAmount = struct.totalBalanceInvoicedAmount;
146
+
147
+ model.ipAddress = struct.ipAddress;
148
+ model.userAgent = struct.userAgent;
149
+
150
+ model.stripeAccountId = struct.stripeAccountId;
151
+ model.reference = struct.reference;
152
+
153
+ model.negativeInvoiceId = struct.negativeInvoiceId;
154
+
155
+ await model.save();
156
+
157
+ // Create balances
158
+ try {
159
+ for (const item of struct.items) {
160
+ const invoiced = new InvoicedBalanceItem();
161
+ invoiced.invoiceId = model.id;
162
+ invoiced.organizationId = model.organizationId;
163
+ invoiced.balanceItemId = item.balanceItemId;
164
+
165
+ invoiced.VATExcempt = item.VATExcempt;
166
+ invoiced.VATPercentage = item.VATPercentage;
167
+ invoiced.VATIncluded = item.VATIncluded;
168
+
169
+ invoiced.unitPrice = item.unitPrice;
170
+ invoiced.quantity = item.quantity;
171
+
172
+ invoiced.balanceInvoicedAmount = item.balanceInvoicedAmount;
173
+
174
+ invoiced.totalWithoutVAT = item.totalWithoutVAT;
175
+
176
+ await invoiced.save();
177
+ }
178
+ }
179
+ catch (e) {
180
+ try {
181
+ await model.delete();
182
+ }
183
+ catch (ee) {
184
+ console.error('Error while trying to delete invoice because of fail save', ee, 'Deleting because of error', e);
185
+ }
186
+ throw e;
187
+ }
188
+ }
189
+ }
@@ -0,0 +1,119 @@
1
+ import { column, ManyToOneRelation } from '@simonbackx/simple-database';
2
+ import { v4 as uuidv4 } from 'uuid';
3
+
4
+ import { QueryableModel } from '@stamhoofd/sql';
5
+ import { Invoice } from './Invoice.js';
6
+ import { BalanceItem } from './BalanceItem.js';
7
+ import { VATExcemptReason } from '@stamhoofd/structures';
8
+
9
+ /**
10
+ * Keeps track of all the created invoices of a balance item, which contains how many balance was invoiced (including VAT)
11
+ * and also how it was invoiced (since the unit price, quantity etc can't always match the balance items invoiced price due to rounding)
12
+ */
13
+ export class InvoicedBalanceItem extends QueryableModel {
14
+ static table = 'balance_item_invoices';
15
+
16
+ @column({
17
+ primary: true, type: 'string', beforeSave(value) {
18
+ return value ?? uuidv4();
19
+ },
20
+ })
21
+ id!: string;
22
+
23
+ @column({ type: 'string' })
24
+ organizationId: string;
25
+
26
+ @column({ type: 'string', foreignKey: InvoicedBalanceItem.invoice })
27
+ invoiceId: string;
28
+
29
+ @column({ type: 'string', foreignKey: InvoicedBalanceItem.balanceItem })
30
+ balanceItemId: string;
31
+
32
+ @column({ type: 'string' })
33
+ name = '';
34
+
35
+ @column({ type: 'string' })
36
+ description = '';
37
+
38
+ /**
39
+ * Price of the balance that was actually invoiced. Always includes VAT.
40
+ *
41
+ * 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.
42
+ *
43
+ * - 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.
44
+ * - E.g. if balance item price is 0,242 euro including VAT (=balanceInvoicedAmount), then unit price would be 0,20 euro (no rounding issue)
45
+ * - E.g. if balance item price is 0,243 euro including VAT (=balanceInvoicedAmount), then unit price would also be 0,20 euro (rounding issue)
46
+ *
47
+ * Any rounding issues are fixed on the invoice level.
48
+ */
49
+ @column({ type: 'integer' })
50
+ balanceInvoicedAmount = 0;
51
+
52
+ /**
53
+ * quantity per ten thousand
54
+ * We need to support 4 decimals in case of partial payments.
55
+ * E.g. 10 euro of 30 euro was paid and is invoiced, then the amount would be 0.3333, stored as 3333
56
+ * Mostly for legal reasons, to be able to say wat was actually bought without faking an amount
57
+ */
58
+ @column({ type: 'integer' })
59
+ quantity = 1_00_00;
60
+
61
+ /**
62
+ * Price per piece
63
+ * Always excludes VAT
64
+ */
65
+ @column({ type: 'integer' })
66
+ unitPrice: number;
67
+
68
+ /**
69
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
70
+ * mistakes can be corrected and credited.
71
+ */
72
+ @column({ type: 'integer' })
73
+ VATPercentage = 0;
74
+
75
+ /**
76
+ * Note: does not apply to unitPrice, only to the balance item at the time of invoicing
77
+ */
78
+ @column({ type: 'boolean' })
79
+ VATIncluded = true;
80
+
81
+ /**
82
+ * This is duplicated to allow altering the vat percentage of the corresponding balance item later, so
83
+ * mistakes can be corrected and credited.
84
+ */
85
+ @column({ type: 'string', nullable: true })
86
+ VATExcempt: VATExcemptReason | null = null;
87
+
88
+ /**
89
+ * This should be rounded to 2 decimals to match PEPPOL requirements
90
+ * = LineExtensionAmount
91
+ */
92
+ @column({ type: 'integer' })
93
+ totalWithoutVAT = 0;
94
+
95
+ @column({
96
+ type: 'datetime', beforeSave(old?: any) {
97
+ if (old !== undefined) {
98
+ return old;
99
+ }
100
+ const date = new Date();
101
+ date.setMilliseconds(0);
102
+ return date;
103
+ },
104
+ })
105
+ createdAt: Date;
106
+
107
+ @column({
108
+ type: 'datetime', beforeSave() {
109
+ const date = new Date();
110
+ date.setMilliseconds(0);
111
+ return date;
112
+ },
113
+ skipUpdate: true,
114
+ })
115
+ updatedAt: Date;
116
+
117
+ static balanceItem = new ManyToOneRelation(BalanceItem, 'balanceItem');
118
+ static invoice = new ManyToOneRelation(Invoice, 'invoice');
119
+ }
@@ -58,3 +58,6 @@ export * from './AuditLog.js';
58
58
  export * from './MemberUser.js';
59
59
 
60
60
  export * from './UitpasClientCredential.js';
61
+
62
+ export * from './Invoice.js';
63
+ export * from './InvoicedBalanceItem.js';