2021-04-02 09:10:22 -07:00
import {
2021-04-02 08:56:45 -07:00
INodeProperties ,
} from 'n8n-workflow' ;
2020-01-28 07:50:15 -08:00
2021-04-02 08:56:45 -07:00
const resource = [
'invoice' ,
] ;
2020-01-31 05:43:40 -08:00
2021-12-03 00:44:16 -08:00
export const invoiceOperations : INodeProperties [ ] = [
2020-01-28 07:50:15 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-01-28 07:50:15 -08:00
displayOptions : {
show : {
2020-01-31 05:43:40 -08:00
resource ,
2020-01-28 07:50:15 -08:00
} ,
} ,
options : [
2022-06-03 10:23:49 -07:00
{
name : 'Create' ,
value : 'create' ,
description : 'Create an invoice' ,
} ,
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete an invoice' ,
} ,
2020-01-28 07:50:15 -08:00
{
name : 'Get' ,
value : 'get' ,
2020-07-24 03:56:41 -07:00
description : 'Get data of an invoice' ,
2020-01-28 07:50:15 -08:00
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get data of all invoices' ,
} ,
2020-02-03 03:57:39 -08:00
{
name : 'Update' ,
value : 'update' ,
2022-05-06 14:01:25 -07:00
description : 'Update an invoice' ,
2020-02-03 03:57:39 -08:00
} ,
2020-01-28 07:50:15 -08:00
] ,
2020-01-28 23:04:52 -08:00
default : 'getAll' ,
2020-01-28 07:50:15 -08:00
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-01-28 07:50:15 -08:00
2021-12-03 00:44:16 -08:00
export const invoiceFields : INodeProperties [ ] = [
2020-01-28 07:50:15 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* invoice:getAll */
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2020-01-28 07:50:15 -08:00
2020-11-24 05:15:47 -08:00
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Filters' ,
name : 'filters' ,
type : 'collection' ,
placeholder : 'Add Filter' ,
default : { } ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
options : [
{
displayName : 'Client ID' ,
name : 'client_id' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries belonging to the client with the given ID' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'From' ,
name : 'from' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries with a spent_date on or after the given date' ,
2020-11-24 05:15:47 -08:00
} ,
{
2021-04-02 09:10:22 -07:00
displayName : 'Page' ,
name : 'page' ,
type : 'number' ,
typeOptions : {
minValue : 1 ,
} ,
default : 1 ,
description : 'The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)' ,
} ,
{
displayName : 'Project ID' ,
name : 'project_id' ,
type : 'string' ,
2020-11-24 05:15:47 -08:00
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries belonging to the client with the given ID' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'State' ,
name : 'state' ,
type : 'multiOptions' ,
options : [
{
2022-06-03 10:23:49 -07:00
name : 'Draft' ,
2020-11-24 05:15:47 -08:00
value : 'draft' ,
} ,
{
2022-06-03 10:23:49 -07:00
name : 'Open' ,
2020-11-24 05:15:47 -08:00
value : 'open' ,
} ,
{
2022-06-03 10:23:49 -07:00
name : 'Paid' ,
2020-11-24 05:15:47 -08:00
value : 'paid' ,
} ,
{
2022-06-03 10:23:49 -07:00
name : 'Closed' ,
2020-11-24 05:15:47 -08:00
value : 'closed' ,
} ,
] ,
default : [ ] ,
description : 'Only return invoices with a state matching the value provided. Options: draft, open, paid, or closed.' ,
} ,
{
2021-04-02 09:10:22 -07:00
displayName : 'To' ,
name : 'to' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries with a spent_date on or before the given date' ,
2021-04-02 09:10:22 -07:00
} ,
{
displayName : 'Updated Since' ,
name : 'updated_since' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries that have been updated since the given date and time' ,
2020-11-24 05:15:47 -08:00
} ,
] ,
} ,
2020-01-28 07:50:15 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* invoice:get */
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Invoice ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'get' ,
] ,
resource ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the invoice you are retrieving' ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 04:47:20 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* invoice:delete */
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Invoice ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'delete' ,
] ,
resource ,
} ,
2020-01-31 04:47:20 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the invoice want to delete' ,
2020-01-31 04:47:20 -08:00
} ,
2020-02-03 01:23:58 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* invoice:create */
2020-02-03 01:23:58 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Client ID' ,
2020-02-07 20:38:13 -08:00
name : 'clientId' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the retainer associated with this invoice' ,
2020-02-03 01:23:58 -08:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : { } ,
options : [
{
2020-02-07 20:38:13 -08:00
displayName : 'Currency' ,
name : 'currency' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The currency used by the invoice. If not provided, the client’ s currency will be used. See a list of supported currencies' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Discount' ,
name : 'over_budget_notification_percentage' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Due Date' ,
name : 'ends_on' ,
type : 'dateTime' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Date the invoice is due. Defaults to the issue_date if no payment_term is specified.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2022-05-20 14:47:24 -07:00
displayName : 'Estimate ID' ,
2020-02-07 20:38:13 -08:00
name : 'estimate_id' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the estimate associated with this invoice' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Issue Date' ,
name : 'issue_date' ,
type : 'dateTime' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Date the invoice was issued. Defaults to today’ s date.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Notes' ,
name : 'notes' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Notes about the project' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Number' ,
name : 'number' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'If no value is set, the number will be automatically generated' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Payment Term' ,
name : 'payment_term' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The timeframe in which the invoice should be paid. Defaults to custom. Options: upon receipt, net 15, net 30, net 45, or net 60.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Purchase Order' ,
name : 'purchase_order' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The purchase order number' ,
2020-02-03 01:23:58 -08:00
} ,
{
2022-05-20 14:47:24 -07:00
displayName : 'Retainer ID' ,
2020-02-07 20:38:13 -08:00
name : 'retainer_id' ,
type : 'boolean' ,
default : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the retainer associated with this invoice' ,
2020-02-07 20:38:13 -08:00
} ,
{
displayName : 'Subject' ,
name : 'subject' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The invoice subject' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Tax' ,
name : 'tax' ,
type : 'string' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Tax2' ,
name : 'tax2' ,
type : 'string' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
] ,
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* invoice:update */
2020-02-03 01:23:58 -08:00
/* -------------------------------------------------------------------------- */
2020-02-03 01:54:21 -08:00
{
2022-05-20 14:47:24 -07:00
displayName : 'Invoice ID' ,
2020-02-03 01:54:21 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the invoice want to update' ,
2020-02-03 01:54:21 -08:00
} ,
2020-02-03 01:23:58 -08:00
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
2020-02-03 01:54:21 -08:00
'update' ,
2020-02-03 01:23:58 -08:00
] ,
resource ,
} ,
} ,
default : { } ,
options : [
{
2022-05-20 14:47:24 -07:00
displayName : 'Client ID' ,
2020-02-03 01:23:58 -08:00
name : 'client_id' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the retainer associated with this invoice' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Currency' ,
name : 'currency' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The currency used by the invoice. If not provided, the client’ s currency will be used. See a list of supported currencies' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Discount' ,
name : 'over_budget_notification_percentage' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Due Date' ,
name : 'ends_on' ,
type : 'dateTime' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Date the invoice is due. Defaults to the issue_date if no payment_term is specified.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2022-05-20 14:47:24 -07:00
displayName : 'Estimate ID' ,
2020-02-07 20:38:13 -08:00
name : 'estimate_id' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the estimate associated with this invoice' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Issue Date' ,
name : 'issue_date' ,
type : 'dateTime' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Date the invoice was issued. Defaults to today’ s date.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Notes' ,
name : 'notes' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Notes about the project' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Number' ,
name : 'number' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'If no value is set, the number will be automatically generated' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Payment Term' ,
name : 'payment_term' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The timeframe in which the invoice should be paid. Defaults to custom. Options: upon receipt, net 15, net 30, net 45, or net 60.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Purchase Order' ,
name : 'purchase_order' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The purchase order number' ,
2020-02-03 01:23:58 -08:00
} ,
{
2022-05-20 14:47:24 -07:00
displayName : 'Retainer ID' ,
2020-02-07 20:38:13 -08:00
name : 'retainer_id' ,
type : 'boolean' ,
default : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the retainer associated with this invoice' ,
2020-02-07 20:38:13 -08:00
} ,
{
displayName : 'Subject' ,
name : 'subject' ,
2020-02-03 01:23:58 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The invoice subject' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Tax' ,
name : 'tax' ,
type : 'string' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Tax2' ,
name : 'tax2' ,
type : 'string' ,
2020-02-03 01:23:58 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%.' ,
2020-02-03 01:23:58 -08:00
} ,
] ,
} ,
2021-12-03 00:44:16 -08:00
] ;