From 3b5e1d127fe049934a0a32310ed408cd129b2d7d Mon Sep 17 00:00:00 2001 From: Paras Daryanani Date: Thu, 2 Feb 2023 12:26:56 +0000 Subject: [PATCH] fix(Invoice Ninja Node): Fix line items not being correctly set for quotes and invoices (#5304) --- .../nodes/InvoiceNinja/InvoiceNinja.node.ts | 28 ++++++++++++++++--- .../nodes/InvoiceNinja/QuoteInterface.ts | 2 ++ .../nodes/InvoiceNinja/invoiceInterface.ts | 2 ++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts index 74032ba88..54e668a1a 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts @@ -472,15 +472,25 @@ export class InvoiceNinja implements INodeType { cost: itemValue.cost as number, notes: itemValue.description as string, product_key: itemValue.service as string, - qty: itemValue.hours as number, tax_rate1: itemValue.taxRate1 as number, tax_rate2: itemValue.taxRate2 as number, tax_name1: itemValue.taxName1 as string, tax_name2: itemValue.taxName2 as string, }; + if (apiVersion === 'v4') { + item.qty = itemValue.hours as number; + } + if (apiVersion === 'v5') { + item.quantity = itemValue.hours as number; + } invoiceItems.push(item); } - body.invoice_items = invoiceItems; + if (apiVersion === 'v4') { + body.invoice_items = invoiceItems; + } + if (apiVersion === 'v5') { + body.line_items = invoiceItems; + } } responseData = await invoiceNinjaApiRequest.call( this, @@ -902,15 +912,25 @@ export class InvoiceNinja implements INodeType { cost: itemValue.cost as number, notes: itemValue.description as string, product_key: itemValue.service as string, - qty: itemValue.hours as number, tax_rate1: itemValue.taxRate1 as number, tax_rate2: itemValue.taxRate2 as number, tax_name1: itemValue.taxName1 as string, tax_name2: itemValue.taxName2 as string, }; + if (apiVersion === 'v4') { + item.qty = itemValue.hours as number; + } + if (apiVersion === 'v5') { + item.quantity = itemValue.hours as number; + } invoiceItems.push(item); } - body.invoice_items = invoiceItems; + if (apiVersion === 'v4') { + body.invoice_items = invoiceItems; + } + if (apiVersion === 'v5') { + body.line_items = invoiceItems; + } } responseData = await invoiceNinjaApiRequest.call( this, diff --git a/packages/nodes-base/nodes/InvoiceNinja/QuoteInterface.ts b/packages/nodes-base/nodes/InvoiceNinja/QuoteInterface.ts index 7b053b8ac..f1e5329e4 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/QuoteInterface.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/QuoteInterface.ts @@ -3,6 +3,7 @@ export interface IItem { notes?: string; product_key?: string; qty?: number; + quantity?: number; tax_rate1?: number; tax_rate2?: number; tax_name1?: string; @@ -20,6 +21,7 @@ export interface IQuote { email?: string; invoice_date?: string; invoice_items?: IItem[]; + line_items?: IItem[]; invoice_number?: string; invoice_status_id?: number; is_amount_discount?: boolean; diff --git a/packages/nodes-base/nodes/InvoiceNinja/invoiceInterface.ts b/packages/nodes-base/nodes/InvoiceNinja/invoiceInterface.ts index ab61e4fd9..22a8728ae 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/invoiceInterface.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/invoiceInterface.ts @@ -3,6 +3,7 @@ export interface IItem { notes?: string; product_key?: string; qty?: number; + quantity?: number; tax_rate1?: number; tax_rate2?: number; tax_name1?: string; @@ -20,6 +21,7 @@ export interface IInvoice { due_date?: string; invoice_date?: string; invoice_items?: IItem[]; + line_items?: IItem[]; invoice_number?: string; invoice_status_id?: number; is_amount_discount?: boolean;