@design.estate/dees-document 4.2.0 → 5.1.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_bundle/bundle.js +477 -368
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_bundle/bundle.js.third-party-notices.json +1767 -0
- package/dist_bundle/bundle.js.third-party-notices.txt +5056 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts_shared/paidamount.d.ts +13 -3
- package/dist_ts_shared/paidamount.js +18 -5
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/contentinvoice.d.ts +8 -4
- package/dist_ts_web/elements/contentinvoice.js +18 -8
- package/package.json +5 -5
- package/readme.md +4 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/contentinvoice.ts +20 -9
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-document',
|
|
6
|
-
version: '
|
|
6
|
+
version: '5.1.0',
|
|
7
7
|
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSw4QkFBOEI7SUFDcEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVMQUF1TDtDQUNyTSxDQUFBIn0=
|
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
import * as plugins from "./plugins.js";
|
|
2
|
+
/**
|
|
3
|
+
* The decimals an amount in a currency is printed with, so that no cents are
|
|
4
|
+
* rounded away: the currency's own (`Intl`'s) where they are two or more; where
|
|
5
|
+
* the locale prints the currency with fewer (the yen with none, the forint
|
|
6
|
+
* with none although ISO 4217 gives it two), two for an amount that has
|
|
7
|
+
* cents and the currency's own for a whole one. An unknown code gets 2, as
|
|
8
|
+
* `currencyFractionDigits`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const printedFractionDigits: (amountArg: number, currencyArg: string) => number;
|
|
2
11
|
/**
|
|
3
12
|
* Checks the one rule tsclass sets between the paid amount and the advance
|
|
4
13
|
* payments: when a document lists `advancePayments`, its `paidAmount` equals
|
|
@@ -34,9 +43,10 @@ export interface IPaidAmountSummary {
|
|
|
34
43
|
* The paid amount of an accounting document and the amount due, or null when
|
|
35
44
|
* the document states no paid amount or a paid amount of zero.
|
|
36
45
|
*
|
|
37
|
-
* The amount due is the gross total, rounded to the
|
|
38
|
-
*
|
|
39
|
-
* decimals. The advance payments are
|
|
46
|
+
* The amount due is the gross total, rounded to the decimals the document
|
|
47
|
+
* prints it with (`printedFractionDigits`: its cents kept), less the paid
|
|
48
|
+
* amount as stated, computed in exact decimals. The advance payments are
|
|
49
|
+
* checked against the paid amount first
|
|
40
50
|
* (`assertPaidAmountMatchesAdvancePayments`); a mismatch throws.
|
|
41
51
|
*/
|
|
42
52
|
export declare const getPaidAmountSummary: (docArg: plugins.tsclass.finance.TAccountingDoc, totalGrossArg: number) => IPaidAmountSummary | null;
|
|
@@ -75,6 +75,18 @@ const currencyFractionDigits = (currencyArg) => {
|
|
|
75
75
|
return 2;
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* The decimals an amount in a currency is printed with, so that no cents are
|
|
80
|
+
* rounded away: the currency's own (`Intl`'s) where they are two or more; where
|
|
81
|
+
* the locale prints the currency with fewer (the yen with none, the forint
|
|
82
|
+
* with none although ISO 4217 gives it two), two for an amount that has
|
|
83
|
+
* cents and the currency's own for a whole one. An unknown code gets 2, as
|
|
84
|
+
* `currencyFractionDigits`.
|
|
85
|
+
*/
|
|
86
|
+
export const printedFractionDigits = (amountArg, currencyArg) => {
|
|
87
|
+
const digits = currencyFractionDigits(currencyArg);
|
|
88
|
+
return digits < 2 && Math.round(Math.abs(amountArg) * 100) % 100 !== 0 ? 2 : digits;
|
|
89
|
+
};
|
|
78
90
|
/** The advance payments a document lists; only a document that can be a final invoice has them. */
|
|
79
91
|
const advancePaymentsOf = (docArg) => "advancePayments" in docArg ? docArg.advancePayments ?? [] : [];
|
|
80
92
|
/** The gross sum of advance payments: the `net` plus the `vat` of every group of every payment. */
|
|
@@ -111,9 +123,10 @@ export const assertPaidAmountMatchesAdvancePayments = (letterArg) => {
|
|
|
111
123
|
* The paid amount of an accounting document and the amount due, or null when
|
|
112
124
|
* the document states no paid amount or a paid amount of zero.
|
|
113
125
|
*
|
|
114
|
-
* The amount due is the gross total, rounded to the
|
|
115
|
-
*
|
|
116
|
-
* decimals. The advance payments are
|
|
126
|
+
* The amount due is the gross total, rounded to the decimals the document
|
|
127
|
+
* prints it with (`printedFractionDigits`: its cents kept), less the paid
|
|
128
|
+
* amount as stated, computed in exact decimals. The advance payments are
|
|
129
|
+
* checked against the paid amount first
|
|
117
130
|
* (`assertPaidAmountMatchesAdvancePayments`); a mismatch throws.
|
|
118
131
|
*/
|
|
119
132
|
export const getPaidAmountSummary = (docArg, totalGrossArg) => {
|
|
@@ -131,11 +144,11 @@ export const getPaidAmountSummary = (docArg, totalGrossArg) => {
|
|
|
131
144
|
}));
|
|
132
145
|
return {
|
|
133
146
|
paidAmount,
|
|
134
|
-
amountDue: decimalToNumber(addDecimals(printedDecimal(totalGrossArg,
|
|
147
|
+
amountDue: decimalToNumber(addDecimals(printedDecimal(totalGrossArg, printedFractionDigits(totalGrossArg, docArg.currency)), negateDecimal(statedDecimal(paidAmount, "paidAmount")))),
|
|
135
148
|
advancePayments,
|
|
136
149
|
advancePaymentTaxes: [...taxesByRate.entries()]
|
|
137
150
|
.map(([percentage, vat]) => ({ percentage, vat: decimalToNumber(vat) }))
|
|
138
151
|
.sort((aArg, bArg) => bArg.percentage - aArg.percentage),
|
|
139
152
|
};
|
|
140
153
|
};
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpZGFtb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX3NoYXJlZC9wYWlkYW1vdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVdyRCxNQUFNLGVBQWUsR0FBRyx3Q0FBd0MsQ0FBQztBQUVqRSwwRkFBMEY7QUFDMUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFlLEVBQWtCLEVBQUU7SUFDdkQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksT0FBTyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDRCxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsWUFBWSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUMvRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEMsSUFBSSxNQUFNLEdBQUcsYUFBYSxHQUFHLGNBQWMsQ0FBQztJQUM1QyxJQUFJLEtBQUssR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztJQUM3QyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtB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
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-document',
|
|
6
|
-
version: '
|
|
6
|
+
version: '5.1.0',
|
|
7
7
|
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSx1TEFBdUw7Q0FDck0sQ0FBQSJ9
|
|
@@ -110,7 +110,9 @@ export declare class DeContentInvoice extends DeesElement {
|
|
|
110
110
|
* The due date, which only an accounting document and a payment reminder
|
|
111
111
|
* have: it counts `dueInDays` from the letter's date. A document that
|
|
112
112
|
* states a paid amount names the amount due, since the total is not what
|
|
113
|
-
* remains to be paid.
|
|
113
|
+
* remains to be paid. A document that states no due date gets no payment
|
|
114
|
+
* terms and no date: no term is assumed for it. Its amount due stays in the
|
|
115
|
+
* sums.
|
|
114
116
|
*/
|
|
115
117
|
private renderPaymentTerms;
|
|
116
118
|
/**
|
|
@@ -142,7 +144,7 @@ export declare class DeContentInvoice extends DeesElement {
|
|
|
142
144
|
* for the gross total, or for the amount due when the document states a
|
|
143
145
|
* paid amount. When nothing is due, it says so, and names the credit
|
|
144
146
|
* balance when more was paid than the total; there are no terms and no QR
|
|
145
|
-
* pay box then.
|
|
147
|
+
* pay box then. A document that states no due date prints no terms.
|
|
146
148
|
*/
|
|
147
149
|
private renderPaymentRequest;
|
|
148
150
|
/**
|
|
@@ -199,8 +201,10 @@ export declare class DeContentInvoice extends DeesElement {
|
|
|
199
201
|
private renderReminderSums;
|
|
200
202
|
/**
|
|
201
203
|
* A payment reminder: the issuer's intro or the standard one, the reminded
|
|
202
|
-
* documents, the charges, the sums, the notes, the new payment deadline
|
|
203
|
-
* the QR pay box for the total payable
|
|
204
|
+
* documents, the charges, the sums, the notes, the new payment deadline
|
|
205
|
+
* when the reminder states one, and the QR pay box for the total payable
|
|
206
|
+
* with the reminder's number. A reminder needs no deadline of its own
|
|
207
|
+
* (§ 286 Abs. 1 Satz 1 BGB); without one it prints none.
|
|
204
208
|
*/
|
|
205
209
|
private renderPaymentReminder;
|
|
206
210
|
private renderReferencedContract;
|
|
@@ -515,7 +515,9 @@ let DeContentInvoice = (() => {
|
|
|
515
515
|
const locale = localeForLanguage(this.documentSettings?.languageCode);
|
|
516
516
|
if (currency) {
|
|
517
517
|
try {
|
|
518
|
-
|
|
518
|
+
// an amount's cents are printed even where the locale prints the currency with fewer decimals
|
|
519
|
+
const digits = plugins.shared.printedFractionDigits(value, currency);
|
|
520
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency, minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
|
|
519
521
|
}
|
|
520
522
|
catch {
|
|
521
523
|
// an unknown ISO code: fall through to the plain number
|
|
@@ -771,9 +773,15 @@ let DeContentInvoice = (() => {
|
|
|
771
773
|
* The due date, which only an accounting document and a payment reminder
|
|
772
774
|
* have: it counts `dueInDays` from the letter's date. A document that
|
|
773
775
|
* states a paid amount names the amount due, since the total is not what
|
|
774
|
-
* remains to be paid.
|
|
776
|
+
* remains to be paid. A document that states no due date gets no payment
|
|
777
|
+
* terms and no date: no term is assumed for it. Its amount due stays in the
|
|
778
|
+
* sums.
|
|
775
779
|
*/
|
|
776
780
|
renderPaymentTerms(optionsArg) {
|
|
781
|
+
const dueInDays = optionsArg.dueInDays;
|
|
782
|
+
if (dueInDays === undefined) {
|
|
783
|
+
return null;
|
|
784
|
+
}
|
|
777
785
|
return html `<div class="infoBox">
|
|
778
786
|
<div>
|
|
779
787
|
<div>
|
|
@@ -784,7 +792,7 @@ let DeContentInvoice = (() => {
|
|
|
784
792
|
: html `${this.translateKey("payment.amountDue")}:
|
|
785
793
|
${this.formatPrice(optionsArg.amountDue)}
|
|
786
794
|
${this.translateKey("payment.terms.amountDue")}`}
|
|
787
|
-
${this.formatDay(new Date(optionsArg.date).setDate(new Date(optionsArg.date).getDate() +
|
|
795
|
+
${this.formatDay(new Date(optionsArg.date).setDate(new Date(optionsArg.date).getDate() + dueInDays))}
|
|
788
796
|
</span>
|
|
789
797
|
</div>
|
|
790
798
|
</div>
|
|
@@ -889,7 +897,7 @@ let DeContentInvoice = (() => {
|
|
|
889
897
|
* for the gross total, or for the amount due when the document states a
|
|
890
898
|
* paid amount. When nothing is due, it says so, and names the credit
|
|
891
899
|
* balance when more was paid than the total; there are no terms and no QR
|
|
892
|
-
* pay box then.
|
|
900
|
+
* pay box then. A document that states no due date prints no terms.
|
|
893
901
|
*/
|
|
894
902
|
renderPaymentRequest(accountingDocArg, summaryArg) {
|
|
895
903
|
if (summaryArg && summaryArg.amountDue <= 0) {
|
|
@@ -1184,8 +1192,10 @@ let DeContentInvoice = (() => {
|
|
|
1184
1192
|
}
|
|
1185
1193
|
/**
|
|
1186
1194
|
* A payment reminder: the issuer's intro or the standard one, the reminded
|
|
1187
|
-
* documents, the charges, the sums, the notes, the new payment deadline
|
|
1188
|
-
* the QR pay box for the total payable
|
|
1195
|
+
* documents, the charges, the sums, the notes, the new payment deadline
|
|
1196
|
+
* when the reminder states one, and the QR pay box for the total payable
|
|
1197
|
+
* with the reminder's number. A reminder needs no deadline of its own
|
|
1198
|
+
* (§ 286 Abs. 1 Satz 1 BGB); without one it prints none.
|
|
1189
1199
|
*/
|
|
1190
1200
|
renderPaymentReminder(reminderArg) {
|
|
1191
1201
|
const totals = plugins.shared.getPaymentReminderTotals(reminderArg);
|
|
@@ -1202,7 +1212,7 @@ let DeContentInvoice = (() => {
|
|
|
1202
1212
|
<!-- NOTES -->
|
|
1203
1213
|
${this.renderNotes(reminderArg.notes)}
|
|
1204
1214
|
|
|
1205
|
-
<!-- PAYMENT DEADLINE -->
|
|
1215
|
+
<!-- PAYMENT DEADLINE, when the reminder states one -->
|
|
1206
1216
|
${this.renderPaymentTerms({
|
|
1207
1217
|
date: reminderArg.date,
|
|
1208
1218
|
dueInDays: reminderArg.dueInDays,
|
|
@@ -1403,4 +1413,4 @@ let DeContentInvoice = (() => {
|
|
|
1403
1413
|
return DeContentInvoice = _classThis;
|
|
1404
1414
|
})();
|
|
1405
1415
|
export { DeContentInvoice };
|
|
1406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGludm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29udGVudGludm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFwRCw4RUFBOEU7QUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGVBQXdCLEVBQVUsRUFBRTtJQUM3RCxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBWUYsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUseUJBQXlCO1FBQ3pDLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLHNCQUFzQixFQUFFLEtBQUs7S0FDOUI7SUFDRCx3RUFBd0U7SUFDeEUsMkVBQTJFO0lBQzNFLHNEQUFzRDtJQUN0RCxt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
|
|
1416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudGludm9pY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvY29udGVudGludm9pY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsSUFBSSxFQUNKLGFBQWEsRUFFYixHQUFHLEVBQ0gsTUFBTSxFQUNOLFFBQVEsR0FDVCxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQVFwRCw4RUFBOEU7QUFDOUUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLGVBQXdCLEVBQVUsRUFBRTtJQUM3RCxRQUFRLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEQsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakIsS0FBSyxJQUFJO1lBQ1AsT0FBTyxPQUFPLENBQUM7UUFDakI7WUFDRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBWUYsTUFBTSxxQkFBcUIsR0FHdkI7SUFDRixPQUFPLEVBQUU7UUFDUCxjQUFjLEVBQUUseUJBQXlCO1FBQ3pDLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLHNCQUFzQixFQUFFLEtBQUs7S0FDOUI7SUFDRCx3RUFBd0U7SUFDeEUsMkVBQTJFO0lBQzNFLHNEQUFzRDtJQUN0RCxt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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-document",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.",
|
|
6
6
|
"main": "dist_ts_web/index.js",
|
|
@@ -24,17 +24,17 @@
|
|
|
24
24
|
"@push.rocks/smartpath": "^6.0.0",
|
|
25
25
|
"@push.rocks/smartpdf": "^6.0.1",
|
|
26
26
|
"@push.rocks/smarttime": "^4.2.3",
|
|
27
|
-
"@tsclass/tsclass": "^
|
|
27
|
+
"@tsclass/tsclass": "^10.0.0",
|
|
28
28
|
"@types/qrcode": "^1.5.6",
|
|
29
29
|
"qrcode": "^1.5.4"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@design.estate/dees-wcctools": "^3.9.4",
|
|
33
33
|
"@git.zone/tsbuild": "^5.0.0",
|
|
34
|
-
"@git.zone/tsbundle": "^
|
|
35
|
-
"@git.zone/tsrun": "^3.0.
|
|
34
|
+
"@git.zone/tsbundle": "^3.0.1",
|
|
35
|
+
"@git.zone/tsrun": "^3.0.2",
|
|
36
36
|
"@git.zone/tstest": "^6.3.2",
|
|
37
|
-
"@git.zone/tswatch": "^4.0.
|
|
37
|
+
"@git.zone/tswatch": "^4.0.2",
|
|
38
38
|
"@types/node": "^26.6.2"
|
|
39
39
|
},
|
|
40
40
|
"files": [
|
package/readme.md
CHANGED
|
@@ -258,6 +258,8 @@ The framework includes these web components:
|
|
|
258
258
|
| `debitnote` | charges the positions additionally | printed | printed |
|
|
259
259
|
| `self-billed-invoice` | settles what the recipient supplied | omitted: the issuer is the payer | not printed |
|
|
260
260
|
|
|
261
|
+
The payment terms ("Ohne Abzug bis zum …" / "Without deduction until …") name the day `dueInDays` after the document's date. A document that states no due date leaves `dueInDays` out (from `@tsclass/tsclass` 10.0.0 on; EN 16931 makes the payment due date BT-9 optional): it prints no payment terms and no date, since no term is assumed for it, and keeps the QR pay box.
|
|
262
|
+
|
|
261
263
|
### Handing an accounting document over
|
|
262
264
|
|
|
263
265
|
Every accounting document is a letter: from `@tsclass/tsclass` 9.6.0 on, `business.TLetter` is a simple letter or any `finance.TAccountingDoc`, and from 9.7.0 on a payment reminder as well (see [Payment Reminders](#payment-reminders)). A credit note therefore goes straight into `PdfService.createPdfFromLetterObject()`, into `<dedocument-dedocument>` and into `<dedocument-viewer>` — no cast on the way in. A credit note names the document it corrects, so fill `relatedDocuments` with the number and, when known, the issue date of that document:
|
|
@@ -391,7 +393,7 @@ unitName('DE', 'hours', 2); // "hours" — a word is printed as it is
|
|
|
391
393
|
|
|
392
394
|
### Paid amounts and advance payments
|
|
393
395
|
|
|
394
|
-
A document with a `paidAmount` other than zero (EN 16931 BT-113, from `@tsclass/tsclass` 9.9.0 on) prints below the gross total "Bereits gezahlt" / "Paid in advance" with that amount, and "Zu zahlen" / "Amount due" with the gross total less it (BT-115). The payment terms then name the amount due ("Zu zahlen: 238,00 € ohne Abzug bis zum …" / "Amount due: €238.00 without deduction until …"), and the QR pay box asks for it. When nothing is due, the document prints neither payment terms nor a QR pay box but "Es ist nichts zu zahlen: Der Gesamtbetrag ist bezahlt." / "Nothing is due: the total has been paid."; when more was paid than the total, the last sum is "Guthaben" / "Credit balance" and the sentence names it. A credit note and a self-billed invoice print the sums and ask for nothing, as before.
|
|
396
|
+
A document with a `paidAmount` other than zero (EN 16931 BT-113, from `@tsclass/tsclass` 9.9.0 on) prints below the gross total "Bereits gezahlt" / "Paid in advance" with that amount, and "Zu zahlen" / "Amount due" with the gross total less it (BT-115). The payment terms then name the amount due ("Zu zahlen: 238,00 € ohne Abzug bis zum …" / "Amount due: €238.00 without deduction until …"), and the QR pay box asks for it. A document without a due date names the amount due in the sums only, without terms and without a date. When nothing is due, the document prints neither payment terms nor a QR pay box but "Es ist nichts zu zahlen: Der Gesamtbetrag ist bezahlt." / "Nothing is due: the total has been paid."; when more was paid than the total, the last sum is "Guthaben" / "Credit balance" and the sentence names it. A credit note and a self-billed invoice print the sums and ask for nothing, as before.
|
|
395
397
|
|
|
396
398
|
A final invoice (`invoice`, `corrected-invoice` or `self-billed-invoice`) that lists `advancePayments` deducts them as Abschnitt 14.8 Abs. 7 Satz 3 UStAE allows: the gross total received is deducted as the paid amount, and the tax it contains is stated per rate ("darin enthaltene USt 19%" / "of which VAT 19%"), added up from the `vat` of every group of every payment. Below the sums, one line per payment names the advance invoice by number and date and the day the payment was received, as far as the payment states them ("Anzahlung zur Rechnung Nr. AR-2025-0001 vom 01.02.25, eingegangen am 05.02.25").
|
|
397
399
|
|
|
@@ -412,7 +414,7 @@ A payment reminder (`finance.TPaymentReminder`, letter type `'payment-reminder'`
|
|
|
412
414
|
- **Ground of the claim**: one row per claim with the kind (invoice, corrected invoice or debit note) and number of the reminded document, its issue date, its due date when it stated one, its gross total and the amount still open.
|
|
413
415
|
- **Charges**, when there are any: each with its `description` and amount and what it rests on. Default interest prints its computation as stated: principal, rate a year, base rate plus the surcharge points with the provision (§ 288 Abs. 1 or Abs. 2 BGB; on an obligation that arose from 1 January 2002 to 28 July 2014 the 8 points of § 288 Abs. 2 BGB a. F. with Art. 229 § 34 Satz 1 EGBGB; a continuing obligation that arose earlier comes under that version from 1 January 2003 (Art. 229 § 5 Satz 2 EGBGB), and its consideration rendered after 30 June 2016 under the current § 288 Abs. 2 BGB (Art. 229 § 34 Satz 2 EGBGB)), and the first and last day. The default lump sum prints § 288 Abs. 5 BGB. Every charge that accrues on a claim names it; interest and the lump sum always do. A cost with lump sums credited against it lists them (§ 288 Abs. 5 Satz 3 BGB); its amount is already the cost less them.
|
|
414
416
|
- **Sums**: the open claims, the charges, and the total payable, their sum, added in cents. There are no VAT rows: the charges are damages, not consideration for a supply.
|
|
415
|
-
- **Notes**, then the **payment deadline**, `dueInDays` after the reminder's date.
|
|
417
|
+
- **Notes**, then the **payment deadline**, `dueInDays` after the reminder's date. A reminder needs no deadline of its own (§ 286 Abs. 1 Satz 1 BGB); one without `dueInDays` prints none, and its claims keep the due dates they stated.
|
|
416
418
|
- **QR pay box** for the total payable, with the reminder number as the remittance information, under the same conditions as on an invoice.
|
|
417
419
|
|
|
418
420
|
```typescript
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-document',
|
|
6
|
-
version: '
|
|
6
|
+
version: '5.1.0',
|
|
7
7
|
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
|
|
8
8
|
}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-document',
|
|
6
|
-
version: '
|
|
6
|
+
version: '5.1.0',
|
|
7
7
|
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
|
|
8
8
|
}
|
|
@@ -543,7 +543,9 @@ export class DeContentInvoice extends DeesElement {
|
|
|
543
543
|
const locale = localeForLanguage(this.documentSettings?.languageCode);
|
|
544
544
|
if (currency) {
|
|
545
545
|
try {
|
|
546
|
-
|
|
546
|
+
// an amount's cents are printed even where the locale prints the currency with fewer decimals
|
|
547
|
+
const digits = plugins.shared.printedFractionDigits(value, currency);
|
|
548
|
+
return new Intl.NumberFormat(locale, { style: "currency", currency, minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
|
|
547
549
|
} catch {
|
|
548
550
|
// an unknown ISO code: fall through to the plain number
|
|
549
551
|
}
|
|
@@ -856,16 +858,23 @@ export class DeContentInvoice extends DeesElement {
|
|
|
856
858
|
* The due date, which only an accounting document and a payment reminder
|
|
857
859
|
* have: it counts `dueInDays` from the letter's date. A document that
|
|
858
860
|
* states a paid amount names the amount due, since the total is not what
|
|
859
|
-
* remains to be paid.
|
|
861
|
+
* remains to be paid. A document that states no due date gets no payment
|
|
862
|
+
* terms and no date: no term is assumed for it. Its amount due stays in the
|
|
863
|
+
* sums.
|
|
860
864
|
*/
|
|
861
865
|
private renderPaymentTerms(optionsArg: {
|
|
862
866
|
date: number;
|
|
863
|
-
|
|
867
|
+
/** absent when the document states no due date */
|
|
868
|
+
dueInDays: number | undefined;
|
|
864
869
|
labelKey: plugins.shared.translation.TranslationKey;
|
|
865
870
|
textKey: plugins.shared.translation.TranslationKey;
|
|
866
871
|
/** the amount due, when the document states a paid amount */
|
|
867
872
|
amountDue?: number;
|
|
868
|
-
}): TemplateResult {
|
|
873
|
+
}): TemplateResult | null {
|
|
874
|
+
const dueInDays = optionsArg.dueInDays;
|
|
875
|
+
if (dueInDays === undefined) {
|
|
876
|
+
return null;
|
|
877
|
+
}
|
|
869
878
|
return html`<div class="infoBox">
|
|
870
879
|
<div>
|
|
871
880
|
<div>
|
|
@@ -878,7 +887,7 @@ export class DeContentInvoice extends DeesElement {
|
|
|
878
887
|
${this.translateKey("payment.terms.amountDue")}`}
|
|
879
888
|
${this.formatDay(
|
|
880
889
|
new Date(optionsArg.date).setDate(
|
|
881
|
-
new Date(optionsArg.date).getDate() +
|
|
890
|
+
new Date(optionsArg.date).getDate() + dueInDays
|
|
882
891
|
)
|
|
883
892
|
)}
|
|
884
893
|
</span>
|
|
@@ -1010,7 +1019,7 @@ export class DeContentInvoice extends DeesElement {
|
|
|
1010
1019
|
* for the gross total, or for the amount due when the document states a
|
|
1011
1020
|
* paid amount. When nothing is due, it says so, and names the credit
|
|
1012
1021
|
* balance when more was paid than the total; there are no terms and no QR
|
|
1013
|
-
* pay box then.
|
|
1022
|
+
* pay box then. A document that states no due date prints no terms.
|
|
1014
1023
|
*/
|
|
1015
1024
|
private renderPaymentRequest(
|
|
1016
1025
|
accountingDocArg: plugins.tsclass.finance.TAccountingDoc,
|
|
@@ -1353,8 +1362,10 @@ export class DeContentInvoice extends DeesElement {
|
|
|
1353
1362
|
|
|
1354
1363
|
/**
|
|
1355
1364
|
* A payment reminder: the issuer's intro or the standard one, the reminded
|
|
1356
|
-
* documents, the charges, the sums, the notes, the new payment deadline
|
|
1357
|
-
* the QR pay box for the total payable
|
|
1365
|
+
* documents, the charges, the sums, the notes, the new payment deadline
|
|
1366
|
+
* when the reminder states one, and the QR pay box for the total payable
|
|
1367
|
+
* with the reminder's number. A reminder needs no deadline of its own
|
|
1368
|
+
* (§ 286 Abs. 1 Satz 1 BGB); without one it prints none.
|
|
1358
1369
|
*/
|
|
1359
1370
|
private renderPaymentReminder(
|
|
1360
1371
|
reminderArg: plugins.tsclass.finance.TPaymentReminder
|
|
@@ -1373,7 +1384,7 @@ export class DeContentInvoice extends DeesElement {
|
|
|
1373
1384
|
<!-- NOTES -->
|
|
1374
1385
|
${this.renderNotes(reminderArg.notes)}
|
|
1375
1386
|
|
|
1376
|
-
<!-- PAYMENT DEADLINE -->
|
|
1387
|
+
<!-- PAYMENT DEADLINE, when the reminder states one -->
|
|
1377
1388
|
${this.renderPaymentTerms({
|
|
1378
1389
|
date: reminderArg.date,
|
|
1379
1390
|
dueInDays: reminderArg.dueInDays,
|