From a5ff39d3061d0c046ddeba941273a317ec07019e Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Wed, 27 Nov 2024 19:15:29 +0100 Subject: [PATCH] fix(contentinvoice): Fixed currency display issues in invoice content rendering. --- changelog.md | 6 +++ ts/00_commitinfo_data.ts | 2 +- ts_web/00_commitinfo_data.ts | 2 +- ts_web/elements/contentinvoice.ts | 6 +-- ts_web/elements/document.ts | 11 +++-- ts_web/elements/shared/demoletter.ts | 68 ++++++++++++++++++++++++---- 6 files changed, 77 insertions(+), 18 deletions(-) diff --git a/changelog.md b/changelog.md index 818fc22..45933bb 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,11 @@ # Changelog +## 2024-11-27 - 1.0.102 - fix(contentinvoice) +Fixed currency display issues in invoice content rendering. + +- Corrected the usage of currency property to consistently pull from letterData content for invoice items. +- Ensured currency is correctly displayed in the invoice PDF generation. + ## 2024-11-27 - 1.0.101 - fix(shared) Fixed the demo letter item details by replacing `currency` with `position` to correctly define the item position. diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 972cb80..a0c1461 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@design.estate/dees-document', - version: '1.0.101', + version: '1.0.102', description: 'A comprehensive solution for generating documents like invoices, integrating elements, templates, and services to streamline document creation.' } diff --git a/ts_web/00_commitinfo_data.ts b/ts_web/00_commitinfo_data.ts index 972cb80..a0c1461 100644 --- a/ts_web/00_commitinfo_data.ts +++ b/ts_web/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@design.estate/dees-document', - version: '1.0.101', + version: '1.0.102', description: 'A comprehensive solution for generating documents like invoices, integrating elements, templates, and services to streamline document creation.' } diff --git a/ts_web/elements/contentinvoice.ts b/ts_web/elements/contentinvoice.ts index 20cb7ff..cb5baf5 100644 --- a/ts_web/elements/contentinvoice.ts +++ b/ts_web/elements/contentinvoice.ts @@ -292,9 +292,9 @@ export class DeContentInvoice extends DeesElement {
${invoiceItem.name}
${invoiceItem.unitQuantity}
${invoiceItem.unitType}
-
${invoiceItem.unitNetPrice} ${invoiceItem.currency}
+
${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}
- ${invoiceItem.unitQuantity * invoiceItem.unitNetPrice} ${invoiceItem.currency} + ${invoiceItem.unitQuantity * invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}
` @@ -343,7 +343,7 @@ export class DeContentInvoice extends DeesElement { IBAN: ${this.letterData?.from?.sepaConnection?.iban}
BIC: ${this.letterData?.from?.sepaConnection?.bic}
Description: ${this.letterData?.content.invoiceData?.id}
- Amount: ${this.getTotalGross()} ${this.letterData?.content.invoiceData.items[0].currency} + Amount: ${this.getTotalGross()} ${this.letterData?.content.invoiceData.currency} ${this.letterData?.content?.contractData?.contractDate ? html` diff --git a/ts_web/elements/document.ts b/ts_web/elements/document.ts index 925c742..6c2ee21 100644 --- a/ts_web/elements/document.ts +++ b/ts_web/elements/document.ts @@ -121,17 +121,20 @@ export class DeDocument extends DeesElement { } public latestRenderedLetterData: plugins.tsclass.business.ILetter = null; + + public async renderDocument() { const domtools = await this.domtoolsPromise; const documentContainer = this.shadowRoot.querySelector('.documentContainer'); let pages: DePage[] = []; let pageCounter = 0; let complete = false; - const content: DeContentInvoice = document.createElement( - 'dedocument-contentinvoice' - ) as DeContentInvoice; + + // lets append the content + const content: DeContentInvoice = new DeContentInvoice(); content.letterData = this.letterData; document.body.appendChild(content); + await domtools.convenience.smartdelay.delayFor(0); let overallContentOffset: number = 0; let currentContentOffset: number; @@ -179,7 +182,7 @@ export class DeDocument extends DeesElement { this.latestRenderedLetterData = this.letterData; } - async updated(changedProperties: Map): void { + async updated(changedProperties: Map): Promise { super.updated(changedProperties); const domtools = await this.domtoolsPromise; const renderedDocIsUpToDate = domtools.convenience.smartjson.deepEqualObjects(this.letterData, this.latestRenderedLetterData); diff --git a/ts_web/elements/shared/demoletter.ts b/ts_web/elements/shared/demoletter.ts index 0a44439..8023db0 100644 --- a/ts_web/elements/shared/demoletter.ts +++ b/ts_web/elements/shared/demoletter.ts @@ -59,11 +59,13 @@ export const demoLetter: tsclass.business.ILetter = { deliveryDate: new Date().getTime(), periodOfPerformance: null, printResult: null, - + currency: 'EUR', + notes: [], + type: 'debitnote', items: [ { name: 'Item with 19% VAT', - unitQuantity: 1, + unitQuantity: 2, unitNetPrice: 100, unitType: 'hours', vatPercentage: 19, @@ -71,7 +73,7 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 7% VAT', - unitQuantity: 1, + unitQuantity: 4, unitNetPrice: 100, unitType: 'hours', vatPercentage: 7, @@ -79,7 +81,7 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 7% VAT', - unitQuantity: 1, + unitQuantity: 3, unitNetPrice: 230, unitType: 'hours', vatPercentage: 7, @@ -95,14 +97,14 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 0% VAT', - unitQuantity: 1, + unitQuantity: 6, unitNetPrice: 230, unitType: 'hours', vatPercentage: 0, position: 4, },{ name: 'Item with 19% VAT', - unitQuantity: 1, + unitQuantity: 8, unitNetPrice: 100, unitType: 'hours', vatPercentage: 19, @@ -110,7 +112,7 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 7% VAT', - unitQuantity: 1, + unitQuantity: 9, unitNetPrice: 100, unitType: 'hours', vatPercentage: 7, @@ -118,7 +120,7 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 7% VAT', - unitQuantity: 1, + unitQuantity: 4, unitNetPrice: 230, unitType: 'hours', vatPercentage: 7, @@ -126,7 +128,7 @@ export const demoLetter: tsclass.business.ILetter = { }, { name: 'Item with 21% VAT', - unitQuantity: 1, + unitQuantity: 3, unitNetPrice: 230, unitType: 'hours', vatPercentage: 21, @@ -140,6 +142,54 @@ export const demoLetter: tsclass.business.ILetter = { vatPercentage: 0, position: 10, }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, + { + name: 'Item with 0% VAT', + unitQuantity: 1, + unitNetPrice: 230, + unitType: 'hours', + vatPercentage: 0, + position: 10, + }, ], } },