feat: migrate to new tsclass schema

This commit is contained in:
2025-03-26 14:51:14 +00:00
parent 04e668ff83
commit df4c782fbb
15 changed files with 2531 additions and 2696 deletions

View File

@@ -41,7 +41,7 @@ export class DeContentInvoice extends DeesElement {
type: Object,
reflect: true,
})
public letterData: plugins.tsclass.business.ILetter;
public letterData: plugins.tsclass.finance.TInvoice;
@property({
type: Object,
@@ -178,7 +178,7 @@ export class DeContentInvoice extends DeesElement {
return totalNet;
}
for (const item of this.letterData.content.invoiceData.items) {
for (const item of this.letterData.items) {
totalNet += item.unitNetPrice * item.unitQuantity;
}
return totalNet;
@@ -200,7 +200,7 @@ export class DeContentInvoice extends DeesElement {
public getVatGroups = () => {
const vatGroups: {
vatPercentage: number;
items: plugins.tsclass.finance.IInvoice["items"];
items: plugins.tsclass.finance.TInvoice["items"];
vatAmountSum: number;
}[] = [];
@@ -209,14 +209,14 @@ export class DeContentInvoice extends DeesElement {
}
const taxAmounts: number[] = [];
for (const item of this.letterData.content.invoiceData.items) {
for (const item of this.letterData.items) {
taxAmounts.includes(item.vatPercentage)
? null
: taxAmounts.push(item.vatPercentage);
}
for (const taxAmount of taxAmounts) {
const matchingItems = this.letterData.content.invoiceData.items.filter(
const matchingItems = this.letterData.items.filter(
(itemArg) => itemArg.vatPercentage === taxAmount
);
let sum = 0;
@@ -324,7 +324,7 @@ export class DeContentInvoice extends DeesElement {
}).format(
new Date(this.letterData.date).setDate(
new Date(this.letterData.date).getDate() +
this.letterData?.content.invoiceData.dueInDays
this.letterData?.dueInDays
)
)}
</span>
@@ -334,14 +334,12 @@ export class DeContentInvoice extends DeesElement {
}
private renderPaymentInfo(): TemplateResult {
const bic =
this.letterData?.content.invoiceData.billedBy.sepaConnection.bic;
const name = this.letterData?.content.invoiceData.billedBy.name;
const iban =
this.letterData?.content.invoiceData.billedBy.sepaConnection.iban;
const currency = this.letterData?.content.invoiceData.currency;
const bic = this.letterData?.from.sepaConnection.bic;
const name = this.letterData?.from.name;
const iban = this.letterData?.from.sepaConnection.iban;
const currency = this.letterData?.currency;
const totalGross = this.getTotalGross();
const reference = this.letterData?.content.invoiceData.id;
const reference = this.letterData?.id;
return html`<div class="infoBox">
<div>
@@ -362,22 +360,23 @@ export class DeContentInvoice extends DeesElement {
}
private renderReferencedContract(): TemplateResult {
return this.documentSettings.enableInvoiceContractRefSection &&
this.letterData?.content?.contractData?.contractDate
? html`
<div class="infoBox">
<div class="label">
${this.translateKey("invoice@@referencedContract")}
</div>
${this.translateKey("invoice@@referencedContract.text")}
${new Intl.DateTimeFormat(this.documentSettings.languageCode, {
dateStyle: this.documentSettings.dateStyle,
}).format(
new Date(this.letterData?.content.contractData.contractDate)
)}.
</div>
`
: null;
return null;
// return this.documentSettings.enableInvoiceContractRefSection &&
// this.invoiceData?.content?.contractData?.contractDate
// ? html`
// <div class="infoBox">
// <div class="label">
// ${this.translateKey("invoice@@referencedContract")}
// </div>
// ${this.translateKey("invoice@@referencedContract.text")}
// ${new Intl.DateTimeFormat(this.documentSettings.languageCode, {
// dateStyle: this.documentSettings.dateStyle,
// }).format(
// new Date(this.invoiceData?.content.contractData.contractDate)
// )}.
// </div>
// `
// : null;
}
public async attachInvoiceDom() {
@@ -406,7 +405,7 @@ export class DeContentInvoice extends DeesElement {
${this.translateKey("invoice@@price.total.net")}
</div>
</div>
${this.letterData?.content.invoiceData?.items?.map(
${this.letterData?.items?.map(
(invoiceItem, index) => html`
<div class="grid needsDataHeader">
<div class="lineItem rightAlign">${index + 1}</div>
@@ -438,10 +437,7 @@ export class DeContentInvoice extends DeesElement {
</div>
${this.getVatGroups().map((vatGroupArg) => {
let itemNumbers = vatGroupArg.items
.map(
(item) =>
this.letterData.content.invoiceData.items.indexOf(item) + 1
)
.map((item) => this.letterData.items.indexOf(item) + 1)
.join(", ");
return html`
<div class="sumline">
@@ -472,7 +468,7 @@ export class DeContentInvoice extends DeesElement {
</div>
<div class="divider"></div>
${this.letterData?.content.invoiceData.reverseCharge
${this.letterData?.reverseCharge
? html`<div class="taxNote">
${this.translateKey("invoice@@vat.reverseCharge.note")}
</div>`