diff --git a/packages/backend/src/apps/vtiger-crm/triggers/index.js b/packages/backend/src/apps/vtiger-crm/triggers/index.js index 29dae04f..537f97fc 100644 --- a/packages/backend/src/apps/vtiger-crm/triggers/index.js +++ b/packages/backend/src/apps/vtiger-crm/triggers/index.js @@ -1,4 +1,5 @@ import newCases from './new-cases/index.js'; import newContacts from './new-contacts/index.js'; +import newInvoices from './new-invoices/index.js'; -export default [newCases, newContacts]; +export default [newCases, newContacts, newInvoices]; diff --git a/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js b/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js new file mode 100644 index 00000000..d23062f9 --- /dev/null +++ b/packages/backend/src/apps/vtiger-crm/triggers/new-invoices/index.js @@ -0,0 +1,41 @@ +import defineTrigger from '../../../../helpers/define-trigger.js'; + +export default defineTrigger({ + name: 'New invoices', + key: 'newInvoices', + pollInterval: 15, + description: 'Triggers when a new invoice is created.', + + async run($) { + let offset = 0; + const limit = 100; + let hasMore = true; + + const params = { + operation: 'query', + sessionName: $.auth.data.sessionName, + query: `SELECT * FROM Invoice ORDER BY createdtime DESC LIMIT ${offset}, ${limit};`, + }; + + do { + const { data } = await $.http.get('/webservice.php', { + params, + }); + offset = limit + offset; + + if (!data?.result?.length) { + hasMore = false; + return; + } + + for (const item of data.result) { + $.pushTriggerItem({ + raw: item, + meta: { + internalId: item.id, + }, + }); + } + } while (hasMore); + }, +}); diff --git a/packages/docs/pages/apps/vtiger-crm/triggers.md b/packages/docs/pages/apps/vtiger-crm/triggers.md index c76d8109..01ed4573 100644 --- a/packages/docs/pages/apps/vtiger-crm/triggers.md +++ b/packages/docs/pages/apps/vtiger-crm/triggers.md @@ -5,6 +5,8 @@ items: desc: Triggers when a new case is created. - name: New contacts desc: Triggers when a new contact is created. + - name: New invoices + desc: Triggers when a new invoice is created. ---