From d14de45654443777b54527d7ad97a35ccdd345fc Mon Sep 17 00:00:00 2001 From: Francis Parent-Valiquette Date: Tue, 13 May 2025 16:10:28 -0400 Subject: [PATCH 1/2] Add new QuickBooks bill created and updated triggers --- .../new-bill-created/new-bill-created.mjs | 25 +++++++ .../sources/new-bill-created/test-event.mjs | 59 +++++++++++++++ .../new-bill-updated/new-bill-updated.mjs | 28 +++++++ .../sources/new-bill-updated/test-event.mjs | 74 +++++++++++++++++++ 4 files changed, 186 insertions(+) create mode 100644 components/quickbooks/sources/new-bill-created/new-bill-created.mjs create mode 100644 components/quickbooks/sources/new-bill-created/test-event.mjs create mode 100644 components/quickbooks/sources/new-bill-updated/new-bill-updated.mjs create mode 100644 components/quickbooks/sources/new-bill-updated/test-event.mjs diff --git a/components/quickbooks/sources/new-bill-created/new-bill-created.mjs b/components/quickbooks/sources/new-bill-created/new-bill-created.mjs new file mode 100644 index 0000000000000..2cd63684ea2d0 --- /dev/null +++ b/components/quickbooks/sources/new-bill-created/new-bill-created.mjs @@ -0,0 +1,25 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "quickbooks-new-bill-created", + name: "New Bill Created", + description: "Emit new event when a new Bill is created.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getQuery(lastDate) { + return `select * from Bill Where Metadata.CreateTime >= '${lastDate}' orderby Metadata.CreateTime desc`; + }, + getFieldList() { + return "Bill"; + }, + getSummary(item) { + return `New Bill: ${item.Id}`; + }, + }, + sampleEmit, +}; diff --git a/components/quickbooks/sources/new-bill-created/test-event.mjs b/components/quickbooks/sources/new-bill-created/test-event.mjs new file mode 100644 index 0000000000000..3c3d113d3fcd8 --- /dev/null +++ b/components/quickbooks/sources/new-bill-created/test-event.mjs @@ -0,0 +1,59 @@ +// components/quickbooks/sources/new-bill-created/test-event.mjs + +export default { + "Id": "123456", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2023-04-15T10:30:00Z", + "LastUpdatedTime": "2023-04-15T10:30:00Z" + }, + "VendorRef": { + "value": "56789", + "name": "Acme Supplies" + }, + "APAccountRef": { + "value": "33", + "name": "Accounts Payable" + }, + "TxnDate": "2023-04-15", + "CurrencyRef": { + "value": "CAD", + "name": "Canadian Dollar" + }, + "PrivateNote": "Monthly office supplies", + "TotalAmt": 350.75, + "DueDate": "2023-05-15", + "sparse": false, + "Line": [ + { + "Id": "1", + "LineNum": 1, + "Description": "Paper supplies", + "Amount": 150.50, + "DetailType": "ItemBasedExpenseLineDetail", + "ItemBasedExpenseLineDetail": { + "ItemRef": { + "value": "11", + "name": "Office Supplies" + }, + "Qty": 5, + "UnitPrice": 30.10 + } + }, + { + "Id": "2", + "LineNum": 2, + "Description": "Printer ink", + "Amount": 200.25, + "DetailType": "ItemBasedExpenseLineDetail", + "ItemBasedExpenseLineDetail": { + "ItemRef": { + "value": "12", + "name": "Printing Supplies" + }, + "Qty": 3, + "UnitPrice": 66.75 + } + } + ] +} \ No newline at end of file diff --git a/components/quickbooks/sources/new-bill-updated/new-bill-updated.mjs b/components/quickbooks/sources/new-bill-updated/new-bill-updated.mjs new file mode 100644 index 0000000000000..fd41858269264 --- /dev/null +++ b/components/quickbooks/sources/new-bill-updated/new-bill-updated.mjs @@ -0,0 +1,28 @@ +import common from "../common/base.mjs"; +import sampleEmit from "./test-event.mjs"; + +export default { + ...common, + key: "quickbooks-new-bill-updated", + name: "New Bill Updated", + description: "Emit new event when a bill is updated.", + version: "0.0.1", + type: "source", + dedupe: "unique", + methods: { + ...common.methods, + getQuery(lastDate) { + return `select * from Bill Where Metadata.LastUpdatedTime >= '${lastDate}' orderby Metadata.LastUpdatedTime desc`; + }, + getFieldList() { + return "Bill"; + }, + getFieldDate() { + return "LastUpdatedTime"; + }, + getSummary(item) { + return `New Bill Updated: ${item.Id}`; + }, + }, + sampleEmit, +}; diff --git a/components/quickbooks/sources/new-bill-updated/test-event.mjs b/components/quickbooks/sources/new-bill-updated/test-event.mjs new file mode 100644 index 0000000000000..3d8d6ac978534 --- /dev/null +++ b/components/quickbooks/sources/new-bill-updated/test-event.mjs @@ -0,0 +1,74 @@ +// components/quickbooks/sources/new-bill-updated/test-event.mjs + +export default { + "Id": "123456", + "SyncToken": "1", // Incrémenté car c'est une mise à jour + "MetaData": { + "CreateTime": "2023-04-15T10:30:00Z", + "LastUpdatedTime": "2023-04-16T14:45:00Z" // Date de mise à jour différente + }, + "VendorRef": { + "value": "56789", + "name": "Acme Supplies" + }, + "APAccountRef": { + "value": "33", + "name": "Accounts Payable" + }, + "TxnDate": "2023-04-15", + "CurrencyRef": { + "value": "CAD", + "name": "Canadian Dollar" + }, + "PrivateNote": "Monthly office supplies - Updated with additional items", + "TotalAmt": 425.25, // Montant modifié + "DueDate": "2023-05-15", + "sparse": true, // Indique que c'est une mise à jour + "Line": [ + { + "Id": "1", + "LineNum": 1, + "Description": "Paper supplies", + "Amount": 150.50, + "DetailType": "ItemBasedExpenseLineDetail", + "ItemBasedExpenseLineDetail": { + "ItemRef": { + "value": "11", + "name": "Office Supplies" + }, + "Qty": 5, + "UnitPrice": 30.10 + } + }, + { + "Id": "2", + "LineNum": 2, + "Description": "Printer ink", + "Amount": 200.25, + "DetailType": "ItemBasedExpenseLineDetail", + "ItemBasedExpenseLineDetail": { + "ItemRef": { + "value": "12", + "name": "Printing Supplies" + }, + "Qty": 3, + "UnitPrice": 66.75 + } + }, + { + "Id": "3", // Nouvelle ligne ajoutée + "LineNum": 3, + "Description": "USB Cables", + "Amount": 74.50, + "DetailType": "ItemBasedExpenseLineDetail", + "ItemBasedExpenseLineDetail": { + "ItemRef": { + "value": "13", + "name": "Computer Accessories" + }, + "Qty": 5, + "UnitPrice": 14.90 + } + } + ] +} \ No newline at end of file From 906f2e536454fbf97f7f1dd9cff8a5bce936a534 Mon Sep 17 00:00:00 2001 From: Francis Parent-Valiquette Date: Wed, 14 May 2025 09:02:28 -0400 Subject: [PATCH 2/2] Change test-event.mjs comments from French to English --- .../quickbooks/sources/new-bill-updated/test-event.mjs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/components/quickbooks/sources/new-bill-updated/test-event.mjs b/components/quickbooks/sources/new-bill-updated/test-event.mjs index 3d8d6ac978534..6965d3bfe22ab 100644 --- a/components/quickbooks/sources/new-bill-updated/test-event.mjs +++ b/components/quickbooks/sources/new-bill-updated/test-event.mjs @@ -2,10 +2,10 @@ export default { "Id": "123456", - "SyncToken": "1", // Incrémenté car c'est une mise à jour + "SyncToken": "1", // Incremented because this is an update "MetaData": { "CreateTime": "2023-04-15T10:30:00Z", - "LastUpdatedTime": "2023-04-16T14:45:00Z" // Date de mise à jour différente + "LastUpdatedTime": "2023-04-16T14:45:00Z" // Different update date }, "VendorRef": { "value": "56789", @@ -21,9 +21,9 @@ export default { "name": "Canadian Dollar" }, "PrivateNote": "Monthly office supplies - Updated with additional items", - "TotalAmt": 425.25, // Montant modifié + "TotalAmt": 425.25, // Modified amount "DueDate": "2023-05-15", - "sparse": true, // Indique que c'est une mise à jour + "sparse": true, // Indicates this is an update "Line": [ { "Id": "1", @@ -56,7 +56,7 @@ export default { } }, { - "Id": "3", // Nouvelle ligne ajoutée + "Id": "3", // New line added "LineNum": 3, "Description": "USB Cables", "Amount": 74.50,