noxctl 0.7.4 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -2
- package/dist/auth.d.ts +17 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +122 -15
- package/dist/auth.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +45 -28
- package/dist/cli.js.map +1 -1
- package/dist/credentials-store.d.ts +3 -0
- package/dist/credentials-store.d.ts.map +1 -1
- package/dist/credentials-store.js +54 -10
- package/dist/credentials-store.js.map +1 -1
- package/dist/embedded.d.ts +15 -0
- package/dist/embedded.d.ts.map +1 -0
- package/dist/embedded.js +11 -0
- package/dist/embedded.js.map +1 -0
- package/dist/fortnox-client.d.ts +34 -25
- package/dist/fortnox-client.d.ts.map +1 -1
- package/dist/fortnox-client.js +130 -50
- package/dist/fortnox-client.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -35
- package/dist/index.js.map +1 -1
- package/dist/keychain-target.d.ts +3 -0
- package/dist/keychain-target.d.ts.map +1 -1
- package/dist/keychain-target.js +28 -7
- package/dist/keychain-target.js.map +1 -1
- package/dist/operations/absencetransactions.d.ts +9 -6
- package/dist/operations/absencetransactions.d.ts.map +1 -1
- package/dist/operations/absencetransactions.js +42 -33
- package/dist/operations/absencetransactions.js.map +1 -1
- package/dist/operations/accounts.d.ts +6 -3
- package/dist/operations/accounts.d.ts.map +1 -1
- package/dist/operations/accounts.js +28 -24
- package/dist/operations/accounts.js.map +1 -1
- package/dist/operations/analytics.d.ts +35 -0
- package/dist/operations/analytics.d.ts.map +1 -1
- package/dist/operations/analytics.js +59 -35
- package/dist/operations/analytics.js.map +1 -1
- package/dist/operations/articles.d.ts +9 -6
- package/dist/operations/articles.d.ts.map +1 -1
- package/dist/operations/articles.js +36 -32
- package/dist/operations/articles.js.map +1 -1
- package/dist/operations/attendancetransactions.d.ts +9 -6
- package/dist/operations/attendancetransactions.d.ts.map +1 -1
- package/dist/operations/attendancetransactions.js +45 -36
- package/dist/operations/attendancetransactions.js.map +1 -1
- package/dist/operations/company.d.ts +5 -1
- package/dist/operations/company.d.ts.map +1 -1
- package/dist/operations/company.js +8 -4
- package/dist/operations/company.js.map +1 -1
- package/dist/operations/contracts.d.ts +12 -9
- package/dist/operations/contracts.d.ts.map +1 -1
- package/dist/operations/contracts.js +59 -47
- package/dist/operations/contracts.js.map +1 -1
- package/dist/operations/costcenters.d.ts +10 -7
- package/dist/operations/costcenters.d.ts.map +1 -1
- package/dist/operations/costcenters.js +39 -35
- package/dist/operations/costcenters.js.map +1 -1
- package/dist/operations/customers.d.ts +9 -6
- package/dist/operations/customers.d.ts.map +1 -1
- package/dist/operations/customers.js +46 -42
- package/dist/operations/customers.js.map +1 -1
- package/dist/operations/employees.d.ts +9 -6
- package/dist/operations/employees.d.ts.map +1 -1
- package/dist/operations/employees.js +35 -31
- package/dist/operations/employees.js.map +1 -1
- package/dist/operations/financial-reports.d.ts +7 -2
- package/dist/operations/financial-reports.d.ts.map +1 -1
- package/dist/operations/financial-reports.js +169 -165
- package/dist/operations/financial-reports.js.map +1 -1
- package/dist/operations/financial-years.d.ts +8 -5
- package/dist/operations/financial-years.d.ts.map +1 -1
- package/dist/operations/financial-years.js +33 -29
- package/dist/operations/financial-years.js.map +1 -1
- package/dist/operations/index.d.ts +301 -0
- package/dist/operations/index.d.ts.map +1 -0
- package/dist/operations/index.js +64 -0
- package/dist/operations/index.js.map +1 -0
- package/dist/operations/invoice-payments.d.ts +10 -7
- package/dist/operations/invoice-payments.d.ts.map +1 -1
- package/dist/operations/invoice-payments.js +45 -35
- package/dist/operations/invoice-payments.js.map +1 -1
- package/dist/operations/invoices.d.ts +14 -30
- package/dist/operations/invoices.d.ts.map +1 -1
- package/dist/operations/invoices.js +131 -113
- package/dist/operations/invoices.js.map +1 -1
- package/dist/operations/offers.d.ts +11 -8
- package/dist/operations/offers.d.ts.map +1 -1
- package/dist/operations/offers.js +54 -43
- package/dist/operations/offers.js.map +1 -1
- package/dist/operations/orders.d.ts +10 -7
- package/dist/operations/orders.d.ts.map +1 -1
- package/dist/operations/orders.js +43 -39
- package/dist/operations/orders.js.map +1 -1
- package/dist/operations/pricelists.d.ts +16 -10
- package/dist/operations/pricelists.d.ts.map +1 -1
- package/dist/operations/pricelists.js +56 -48
- package/dist/operations/pricelists.js.map +1 -1
- package/dist/operations/projects.d.ts +9 -6
- package/dist/operations/projects.d.ts.map +1 -1
- package/dist/operations/projects.js +34 -30
- package/dist/operations/projects.js.map +1 -1
- package/dist/operations/recurrings.d.ts +14 -10
- package/dist/operations/recurrings.d.ts.map +1 -1
- package/dist/operations/recurrings.js +74 -59
- package/dist/operations/recurrings.js.map +1 -1
- package/dist/operations/salarytransactions.d.ts +9 -6
- package/dist/operations/salarytransactions.d.ts.map +1 -1
- package/dist/operations/salarytransactions.js +41 -32
- package/dist/operations/salarytransactions.js.map +1 -1
- package/dist/operations/scheduletimes.d.ts +7 -3
- package/dist/operations/scheduletimes.d.ts.map +1 -1
- package/dist/operations/scheduletimes.js +26 -22
- package/dist/operations/scheduletimes.js.map +1 -1
- package/dist/operations/supplier-invoice-payments.d.ts +9 -6
- package/dist/operations/supplier-invoice-payments.d.ts.map +1 -1
- package/dist/operations/supplier-invoice-payments.js +38 -29
- package/dist/operations/supplier-invoice-payments.js.map +1 -1
- package/dist/operations/supplier-invoices.d.ts +9 -6
- package/dist/operations/supplier-invoices.d.ts.map +1 -1
- package/dist/operations/supplier-invoices.js +41 -32
- package/dist/operations/supplier-invoices.js.map +1 -1
- package/dist/operations/suppliers.d.ts +9 -6
- package/dist/operations/suppliers.d.ts.map +1 -1
- package/dist/operations/suppliers.js +36 -32
- package/dist/operations/suppliers.js.map +1 -1
- package/dist/operations/tax.d.ts +5 -1
- package/dist/operations/tax.d.ts.map +1 -1
- package/dist/operations/tax.js +43 -39
- package/dist/operations/tax.js.map +1 -1
- package/dist/operations/taxreductions.d.ts +8 -5
- package/dist/operations/taxreductions.d.ts.map +1 -1
- package/dist/operations/taxreductions.js +28 -24
- package/dist/operations/taxreductions.js.map +1 -1
- package/dist/operations/vouchers.d.ts +11 -8
- package/dist/operations/vouchers.d.ts.map +1 -1
- package/dist/operations/vouchers.js +137 -122
- package/dist/operations/vouchers.js.map +1 -1
- package/dist/schema-audit-mappings.d.ts +9 -0
- package/dist/schema-audit-mappings.d.ts.map +1 -0
- package/dist/schema-audit-mappings.js +45 -0
- package/dist/schema-audit-mappings.js.map +1 -0
- package/dist/schema-audit.d.ts +45 -0
- package/dist/schema-audit.d.ts.map +1 -0
- package/dist/schema-audit.js +132 -0
- package/dist/schema-audit.js.map +1 -0
- package/dist/strict-mcp-server.d.ts +17 -0
- package/dist/strict-mcp-server.d.ts.map +1 -0
- package/dist/strict-mcp-server.js +35 -0
- package/dist/strict-mcp-server.js.map +1 -0
- package/dist/tools/absencetransactions.d.ts +2 -1
- package/dist/tools/absencetransactions.d.ts.map +1 -1
- package/dist/tools/absencetransactions.js +3 -2
- package/dist/tools/absencetransactions.js.map +1 -1
- package/dist/tools/analytics.d.ts +2 -1
- package/dist/tools/analytics.d.ts.map +1 -1
- package/dist/tools/analytics.js +3 -2
- package/dist/tools/analytics.js.map +1 -1
- package/dist/tools/articles.d.ts +2 -1
- package/dist/tools/articles.d.ts.map +1 -1
- package/dist/tools/articles.js +3 -2
- package/dist/tools/articles.js.map +1 -1
- package/dist/tools/attendancetransactions.d.ts +2 -1
- package/dist/tools/attendancetransactions.d.ts.map +1 -1
- package/dist/tools/attendancetransactions.js +3 -2
- package/dist/tools/attendancetransactions.js.map +1 -1
- package/dist/tools/bookkeeping.d.ts +2 -1
- package/dist/tools/bookkeeping.d.ts.map +1 -1
- package/dist/tools/bookkeeping.js +4 -4
- package/dist/tools/bookkeeping.js.map +1 -1
- package/dist/tools/company.d.ts +2 -1
- package/dist/tools/company.d.ts.map +1 -1
- package/dist/tools/company.js +3 -2
- package/dist/tools/company.js.map +1 -1
- package/dist/tools/contracts.d.ts +2 -1
- package/dist/tools/contracts.d.ts.map +1 -1
- package/dist/tools/contracts.js +3 -2
- package/dist/tools/contracts.js.map +1 -1
- package/dist/tools/costcenters.d.ts +2 -1
- package/dist/tools/costcenters.d.ts.map +1 -1
- package/dist/tools/costcenters.js +3 -2
- package/dist/tools/costcenters.js.map +1 -1
- package/dist/tools/customers.d.ts +2 -1
- package/dist/tools/customers.d.ts.map +1 -1
- package/dist/tools/customers.js +3 -2
- package/dist/tools/customers.js.map +1 -1
- package/dist/tools/employees.d.ts +2 -1
- package/dist/tools/employees.d.ts.map +1 -1
- package/dist/tools/employees.js +3 -2
- package/dist/tools/employees.js.map +1 -1
- package/dist/tools/financial-reports.d.ts +2 -1
- package/dist/tools/financial-reports.d.ts.map +1 -1
- package/dist/tools/financial-reports.js +3 -2
- package/dist/tools/financial-reports.js.map +1 -1
- package/dist/tools/financial-years.d.ts +2 -1
- package/dist/tools/financial-years.d.ts.map +1 -1
- package/dist/tools/financial-years.js +3 -2
- package/dist/tools/financial-years.js.map +1 -1
- package/dist/tools/invoice-payments.d.ts +2 -1
- package/dist/tools/invoice-payments.d.ts.map +1 -1
- package/dist/tools/invoice-payments.js +3 -2
- package/dist/tools/invoice-payments.js.map +1 -1
- package/dist/tools/invoices.d.ts +2 -1
- package/dist/tools/invoices.d.ts.map +1 -1
- package/dist/tools/invoices.js +58 -19
- package/dist/tools/invoices.js.map +1 -1
- package/dist/tools/offers.d.ts +2 -1
- package/dist/tools/offers.d.ts.map +1 -1
- package/dist/tools/offers.js +50 -19
- package/dist/tools/offers.js.map +1 -1
- package/dist/tools/orders.d.ts +2 -1
- package/dist/tools/orders.d.ts.map +1 -1
- package/dist/tools/orders.js +58 -18
- package/dist/tools/orders.js.map +1 -1
- package/dist/tools/pricelists.d.ts +2 -1
- package/dist/tools/pricelists.d.ts.map +1 -1
- package/dist/tools/pricelists.js +3 -2
- package/dist/tools/pricelists.js.map +1 -1
- package/dist/tools/projects.d.ts +2 -1
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +3 -2
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/recurrings.d.ts +2 -1
- package/dist/tools/recurrings.d.ts.map +1 -1
- package/dist/tools/recurrings.js +3 -2
- package/dist/tools/recurrings.js.map +1 -1
- package/dist/tools/salarytransactions.d.ts +2 -1
- package/dist/tools/salarytransactions.d.ts.map +1 -1
- package/dist/tools/salarytransactions.js +3 -2
- package/dist/tools/salarytransactions.js.map +1 -1
- package/dist/tools/scheduletimes.d.ts +2 -1
- package/dist/tools/scheduletimes.d.ts.map +1 -1
- package/dist/tools/scheduletimes.js +3 -2
- package/dist/tools/scheduletimes.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +5 -4
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/supplier-invoice-payments.d.ts +2 -1
- package/dist/tools/supplier-invoice-payments.d.ts.map +1 -1
- package/dist/tools/supplier-invoice-payments.js +3 -2
- package/dist/tools/supplier-invoice-payments.js.map +1 -1
- package/dist/tools/supplier-invoices.d.ts +2 -1
- package/dist/tools/supplier-invoices.d.ts.map +1 -1
- package/dist/tools/supplier-invoices.js +47 -6
- package/dist/tools/supplier-invoices.js.map +1 -1
- package/dist/tools/suppliers.d.ts +2 -1
- package/dist/tools/suppliers.d.ts.map +1 -1
- package/dist/tools/suppliers.js +3 -2
- package/dist/tools/suppliers.js.map +1 -1
- package/dist/tools/tax.d.ts +2 -1
- package/dist/tools/tax.d.ts.map +1 -1
- package/dist/tools/tax.js +3 -2
- package/dist/tools/tax.js.map +1 -1
- package/dist/tools/taxreductions.d.ts +2 -1
- package/dist/tools/taxreductions.d.ts.map +1 -1
- package/dist/tools/taxreductions.js +3 -2
- package/dist/tools/taxreductions.js.map +1 -1
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/docs/embedded.md +60 -0
- package/package.json +23 -4
|
@@ -1,125 +1,143 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultFortnoxTransport } from '../fortnox-client.js';
|
|
2
2
|
import { documentSegment } from '../identifiers.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (params.all) {
|
|
11
|
-
const { items, totalResources } = await fetchAllPages('invoices', 'Invoices', queryParams);
|
|
12
|
-
return {
|
|
13
|
-
Invoices: items,
|
|
14
|
-
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
3
|
+
export function createInvoiceOperations(transport) {
|
|
4
|
+
async function listInvoices(params = {}) {
|
|
5
|
+
const queryParams = {
|
|
6
|
+
filter: params.filter,
|
|
7
|
+
customernumber: params.customerNumber,
|
|
8
|
+
fromdate: params.fromDate,
|
|
9
|
+
todate: params.toDate,
|
|
15
10
|
};
|
|
11
|
+
if (params.all) {
|
|
12
|
+
const { items, totalResources } = await transport.fetchAllPages('invoices', 'Invoices', queryParams);
|
|
13
|
+
return {
|
|
14
|
+
Invoices: items,
|
|
15
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return transport.request('invoices', {
|
|
19
|
+
params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
|
|
20
|
+
});
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
export async function updateInvoice(documentNumber, fields) {
|
|
33
|
-
const { documentNumber: _, ...body } = fields;
|
|
34
|
-
const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}`, {
|
|
35
|
-
method: 'PUT',
|
|
36
|
-
body: { Invoice: body },
|
|
37
|
-
});
|
|
38
|
-
return data.Invoice;
|
|
39
|
-
}
|
|
40
|
-
export async function sendInvoice(documentNumber, method = 'email', emailOptions) {
|
|
41
|
-
const documentId = documentSegment(documentNumber);
|
|
42
|
-
// Update EmailInformation before sending if any email options are provided
|
|
43
|
-
if (emailOptions && (emailOptions.subject || emailOptions.body || emailOptions.bcc)) {
|
|
44
|
-
const current = await fortnoxRequest(`invoices/${documentId}`);
|
|
45
|
-
const existing = current.Invoice?.EmailInformation || {};
|
|
46
|
-
const emailInfo = { ...existing };
|
|
47
|
-
if (emailOptions.subject)
|
|
48
|
-
emailInfo.EmailSubject = emailOptions.subject;
|
|
49
|
-
if (emailOptions.body)
|
|
50
|
-
emailInfo.EmailBody = emailOptions.body;
|
|
51
|
-
if (emailOptions.bcc)
|
|
52
|
-
emailInfo.EmailAddressBCC = emailOptions.bcc;
|
|
53
|
-
await fortnoxRequest(`invoices/${documentId}`, {
|
|
22
|
+
async function getInvoice(documentNumber) {
|
|
23
|
+
const data = await transport.request(`invoices/${documentSegment(documentNumber)}`);
|
|
24
|
+
return data.Invoice;
|
|
25
|
+
}
|
|
26
|
+
async function createInvoice(params) {
|
|
27
|
+
const data = await transport.request('invoices', {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
body: { Invoice: params },
|
|
30
|
+
});
|
|
31
|
+
return data.Invoice;
|
|
32
|
+
}
|
|
33
|
+
async function updateInvoice(documentNumber, fields) {
|
|
34
|
+
const { documentNumber: _, ...body } = fields;
|
|
35
|
+
const data = await transport.request(`invoices/${documentSegment(documentNumber)}`, {
|
|
54
36
|
method: 'PUT',
|
|
55
|
-
body: { Invoice:
|
|
37
|
+
body: { Invoice: body },
|
|
56
38
|
});
|
|
39
|
+
return data.Invoice;
|
|
57
40
|
}
|
|
58
|
-
|
|
59
|
-
|
|
41
|
+
async function sendInvoice(documentNumber, method = 'email', emailOptions) {
|
|
42
|
+
const documentId = documentSegment(documentNumber);
|
|
43
|
+
// Update EmailInformation before sending if any email options are provided
|
|
44
|
+
if (emailOptions && (emailOptions.subject || emailOptions.body || emailOptions.bcc)) {
|
|
45
|
+
const current = await transport.request(`invoices/${documentId}`);
|
|
46
|
+
const existing = current.Invoice?.EmailInformation || {};
|
|
47
|
+
const emailInfo = { ...existing };
|
|
48
|
+
if (emailOptions.subject)
|
|
49
|
+
emailInfo.EmailSubject = emailOptions.subject;
|
|
50
|
+
if (emailOptions.body)
|
|
51
|
+
emailInfo.EmailBody = emailOptions.body;
|
|
52
|
+
if (emailOptions.bcc)
|
|
53
|
+
emailInfo.EmailAddressBCC = emailOptions.bcc;
|
|
54
|
+
await transport.request(`invoices/${documentId}`, {
|
|
55
|
+
method: 'PUT',
|
|
56
|
+
body: { Invoice: { EmailInformation: emailInfo } },
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (method === 'print') {
|
|
60
|
+
return (await markInvoicePrinted(documentNumber)).invoice;
|
|
61
|
+
}
|
|
62
|
+
// Exhaustive on purpose: no silent fallback. 'email' and 'einvoice' both send
|
|
63
|
+
// the invoice to the customer, so an unrecognised method must fail loudly
|
|
64
|
+
// rather than pick one of them.
|
|
65
|
+
if (method !== 'email' && method !== 'einvoice') {
|
|
66
|
+
throw new Error(`Unsupported send method: ${String(method)}`);
|
|
67
|
+
}
|
|
68
|
+
const data = await transport.request(`invoices/${documentId}/${method}`, {
|
|
69
|
+
// Fortnox models these delivery actions as GET, but they send an invoice
|
|
70
|
+
// to a customer. Never retry them automatically after an ambiguous error.
|
|
71
|
+
mutation: true,
|
|
72
|
+
});
|
|
73
|
+
return data?.Invoice || {};
|
|
60
74
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Fetch an invoice as a PDF. Always uses /preview, which returns the same
|
|
77
|
+
* document as /print but leaves the invoice untouched.
|
|
78
|
+
*
|
|
79
|
+
* Marking the invoice as sent is deliberately NOT folded in here: callers that
|
|
80
|
+
* want both run this first, write the bytes out, and only then call
|
|
81
|
+
* `markInvoicePrinted`. Doing it the other way round means a full disk or a bad
|
|
82
|
+
* path leaves an invoice flagged as sent with no PDF to show for it.
|
|
83
|
+
*/
|
|
84
|
+
async function getInvoicePdf(documentNumber) {
|
|
85
|
+
return transport.requestPdf(`invoices/${documentSegment(documentNumber)}/preview`);
|
|
66
86
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
/**
|
|
88
|
+
* Mark an invoice as sent via Fortnox's /print action, and report its resulting
|
|
89
|
+
* state. /print is a GET that changes data, so it is flagged as a mutation to
|
|
90
|
+
* keep it out of the automatic retry path.
|
|
91
|
+
*
|
|
92
|
+
* Once the /print request succeeds the invoice has been changed, so from that
|
|
93
|
+
* point on this function does not throw: neither a malformed PDF body nor a
|
|
94
|
+
* failed read-back may turn a completed accounting change into a reported
|
|
95
|
+
* failure.
|
|
96
|
+
*/
|
|
97
|
+
async function markInvoicePrinted(documentNumber) {
|
|
98
|
+
const documentId = documentSegment(documentNumber);
|
|
99
|
+
const pdf = await transport.requestPdfFromMutation(`invoices/${documentId}/print`);
|
|
100
|
+
try {
|
|
101
|
+
return { invoice: await getInvoice(documentNumber), confirmed: true, pdf };
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
// Fortnox accepted the print request, so the change has most likely been
|
|
105
|
+
// applied — but "most likely" is not "confirmed". Deliberately no
|
|
106
|
+
// `Sent: true` here: synthesizing it would present an unverified outcome as
|
|
107
|
+
// established fact about someone's accounting records.
|
|
108
|
+
return {
|
|
109
|
+
invoice: {
|
|
110
|
+
DocumentNumber: documentNumber,
|
|
111
|
+
Note: `Fortnox accepted the print request, but reading the invoice back failed, so its sent status could not be confirmed: ${err instanceof Error ? err.message : String(err)}`,
|
|
112
|
+
},
|
|
113
|
+
confirmed: false,
|
|
114
|
+
pdf,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
97
117
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return {
|
|
104
|
-
invoice: {
|
|
105
|
-
DocumentNumber: documentNumber,
|
|
106
|
-
Note: `Fortnox accepted the print request, but reading the invoice back failed, so its sent status could not be confirmed: ${err instanceof Error ? err.message : String(err)}`,
|
|
107
|
-
},
|
|
108
|
-
confirmed: false,
|
|
109
|
-
pdf,
|
|
110
|
-
};
|
|
118
|
+
async function bookkeepInvoice(documentNumber) {
|
|
119
|
+
const data = await transport.request(`invoices/${documentSegment(documentNumber)}/bookkeep`, {
|
|
120
|
+
method: 'PUT',
|
|
121
|
+
});
|
|
122
|
+
return data?.Invoice || {};
|
|
111
123
|
}
|
|
124
|
+
async function creditInvoice(documentNumber) {
|
|
125
|
+
const data = await transport.request(`invoices/${documentSegment(documentNumber)}/credit`, {
|
|
126
|
+
method: 'PUT',
|
|
127
|
+
});
|
|
128
|
+
return data?.Invoice || {};
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
listInvoices,
|
|
132
|
+
getInvoice,
|
|
133
|
+
createInvoice,
|
|
134
|
+
updateInvoice,
|
|
135
|
+
sendInvoice,
|
|
136
|
+
getInvoicePdf,
|
|
137
|
+
markInvoicePrinted,
|
|
138
|
+
bookkeepInvoice,
|
|
139
|
+
creditInvoice,
|
|
140
|
+
};
|
|
112
141
|
}
|
|
113
|
-
export
|
|
114
|
-
const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}/bookkeep`, {
|
|
115
|
-
method: 'PUT',
|
|
116
|
-
});
|
|
117
|
-
return data?.Invoice || {};
|
|
118
|
-
}
|
|
119
|
-
export async function creditInvoice(documentNumber) {
|
|
120
|
-
const data = await fortnoxRequest(`invoices/${documentSegment(documentNumber)}/credit`, {
|
|
121
|
-
method: 'PUT',
|
|
122
|
-
});
|
|
123
|
-
return data?.Invoice || {};
|
|
124
|
-
}
|
|
142
|
+
export const { listInvoices, getInvoice, createInvoice, updateInvoice, sendInvoice, getInvoicePdf, markInvoicePrinted, bookkeepInvoice, creditInvoice, } = createInvoiceOperations(defaultFortnoxTransport);
|
|
125
143
|
//# sourceMappingURL=invoices.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"invoices.js","sourceRoot":"","sources":["../../src/operations/invoices.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type FortnoxTransport } from '../fortnox-client.js';
|
|
2
|
+
export interface OffersResponse {
|
|
2
3
|
Offers: Record<string, unknown>[];
|
|
3
4
|
MetaInformation?: {
|
|
4
5
|
'@TotalResources': number;
|
|
@@ -15,11 +16,13 @@ export interface ListOffersParams {
|
|
|
15
16
|
limit?: number;
|
|
16
17
|
all?: boolean;
|
|
17
18
|
}
|
|
18
|
-
export declare function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
export declare function createOfferOperations(transport: FortnoxTransport): {
|
|
20
|
+
listOffers: (params?: ListOffersParams) => Promise<OffersResponse>;
|
|
21
|
+
getOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
22
|
+
createOffer: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
23
|
+
updateOffer: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
24
|
+
createInvoiceFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
25
|
+
createOrderFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
26
|
+
};
|
|
27
|
+
export declare const listOffers: (params?: ListOffersParams) => Promise<OffersResponse>, getOffer: (documentNumber: string) => Promise<Record<string, unknown>>, createOffer: (params: Record<string, unknown>) => Promise<Record<string, unknown>>, updateOffer: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>, createInvoiceFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>, createOrderFromOffer: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
25
28
|
//# sourceMappingURL=offers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOtF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,gBAAgB;0BAC7B,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC;+BAyBzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;0BAO9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;kCAS3E,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;6CAYmB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;2CAQ3C,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAgB9F;AAED,eAAO,MACL,UAAU,YAlFwB,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC,EAmFjF,QAAQ,mBA1DgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EA2DjF,WAAW,WApDwB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAqD7F,WAAW,mBA5CO,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EA2CnC,sBAAsB,mBA/BgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAgC/F,oBAAoB,mBAxBgC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyB5C,CAAC"}
|
|
@@ -1,48 +1,59 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultFortnoxTransport } from '../fortnox-client.js';
|
|
2
2
|
import { documentSegment } from '../identifiers.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (params.all) {
|
|
11
|
-
const { items, totalResources } = await fetchAllPages('offers', 'Offers', queryParams);
|
|
12
|
-
return {
|
|
13
|
-
Offers: items,
|
|
14
|
-
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
3
|
+
export function createOfferOperations(transport) {
|
|
4
|
+
async function listOffers(params = {}) {
|
|
5
|
+
const queryParams = {
|
|
6
|
+
filter: params.filter,
|
|
7
|
+
customernumber: params.customerNumber,
|
|
8
|
+
fromdate: params.fromDate,
|
|
9
|
+
todate: params.toDate,
|
|
15
10
|
};
|
|
11
|
+
if (params.all) {
|
|
12
|
+
const { items, totalResources } = await transport.fetchAllPages('offers', 'Offers', queryParams);
|
|
13
|
+
return {
|
|
14
|
+
Offers: items,
|
|
15
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return transport.request('offers', {
|
|
19
|
+
params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
|
|
20
|
+
});
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
22
|
+
async function getOffer(documentNumber) {
|
|
23
|
+
const data = await transport.request(`offers/${documentSegment(documentNumber)}`);
|
|
24
|
+
return data.Offer;
|
|
25
|
+
}
|
|
26
|
+
async function createOffer(params) {
|
|
27
|
+
const data = await transport.request('offers', {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
body: { Offer: params },
|
|
30
|
+
});
|
|
31
|
+
return data.Offer;
|
|
32
|
+
}
|
|
33
|
+
async function updateOffer(documentNumber, fields) {
|
|
34
|
+
const { documentNumber: _, ...body } = fields;
|
|
35
|
+
const data = await transport.request(`offers/${documentSegment(documentNumber)}`, {
|
|
36
|
+
method: 'PUT',
|
|
37
|
+
body: { Offer: body },
|
|
38
|
+
});
|
|
39
|
+
return data.Offer;
|
|
40
|
+
}
|
|
41
|
+
async function createInvoiceFromOffer(documentNumber) {
|
|
42
|
+
const data = await transport.request(`offers/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
|
|
43
|
+
return data.Invoice;
|
|
44
|
+
}
|
|
45
|
+
async function createOrderFromOffer(documentNumber) {
|
|
46
|
+
const data = await transport.request(`offers/${documentSegment(documentNumber)}/createorder`, { method: 'PUT' });
|
|
47
|
+
return data.Order;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
listOffers,
|
|
51
|
+
getOffer,
|
|
52
|
+
createOffer,
|
|
53
|
+
updateOffer,
|
|
54
|
+
createInvoiceFromOffer,
|
|
55
|
+
createOrderFromOffer,
|
|
56
|
+
};
|
|
47
57
|
}
|
|
58
|
+
export const { listOffers, getOffer, createOffer, updateOffer, createInvoiceFromOffer, createOrderFromOffer, } = createOfferOperations(defaultFortnoxTransport);
|
|
48
59
|
//# sourceMappingURL=offers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"offers.js","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"offers.js","sourceRoot":"","sources":["../../src/operations/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,MAAM,UAAU,qBAAqB,CAAC,SAA2B;IAC/D,KAAK,UAAU,UAAU,CAAC,SAA2B,EAAE;QACrD,MAAM,WAAW,GAAgD;YAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAC7D,QAAQ,EACR,QAAQ,EACR,WAAW,CACZ,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,OAAO,CAAiB,QAAQ,EAAE;YACjD,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,cAAsB;QAC5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,CAC5C,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,MAA+B;QACxD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAgB,QAAQ,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,cAAsB,EACtB,MAA+B;QAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,EAC3C;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACtB,CACF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,cAAsB;QAC1D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,gBAAgB,EACzD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,cAAsB;QACxD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,cAAc,EACvD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO;QACL,UAAU;QACV,QAAQ;QACR,WAAW;QACX,WAAW;QACX,sBAAsB;QACtB,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,oBAAoB,GACrB,GAAG,qBAAqB,CAAC,uBAAuB,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type FortnoxTransport } from '../fortnox-client.js';
|
|
2
|
+
export interface OrdersResponse {
|
|
2
3
|
Orders: Record<string, unknown>[];
|
|
3
4
|
MetaInformation?: {
|
|
4
5
|
'@TotalResources': number;
|
|
@@ -15,10 +16,12 @@ export interface ListOrdersParams {
|
|
|
15
16
|
limit?: number;
|
|
16
17
|
all?: boolean;
|
|
17
18
|
}
|
|
18
|
-
export declare function
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
export declare function createOrderOperations(transport: FortnoxTransport): {
|
|
20
|
+
listOrders: (params?: ListOrdersParams) => Promise<OrdersResponse>;
|
|
21
|
+
getOrder: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
22
|
+
createOrder: (params: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
23
|
+
updateOrder: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>;
|
|
24
|
+
createInvoiceFromOrder: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
25
|
+
};
|
|
26
|
+
export declare const listOrders: (params?: ListOrdersParams) => Promise<OrdersResponse>, getOrder: (documentNumber: string) => Promise<Record<string, unknown>>, createOrder: (params: Record<string, unknown>) => Promise<Record<string, unknown>>, updateOrder: (documentNumber: string, fields: Record<string, unknown>) => Promise<Record<string, unknown>>, createInvoiceFromOrder: (documentNumber: string) => Promise<Record<string, unknown>>;
|
|
24
27
|
//# sourceMappingURL=orders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/operations/orders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../src/operations/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAOtF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,gBAAgB;0BAC7B,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC;+BAyBzC,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;0BAO9C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;kCAS3E,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;6CAYmB,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;EAShG;AAED,eAAO,MAAQ,UAAU,YAlEW,gBAAgB,KAAQ,OAAO,CAAC,cAAc,CAAC,EAkExD,QAAQ,mBAzCO,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAyC9C,WAAW,WAlCX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAkC7C,WAAW,mBAzBzC,MAAM,UACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAuB0B,sBAAsB,mBAX7B,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYhD,CAAC"}
|
|
@@ -1,44 +1,48 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defaultFortnoxTransport } from '../fortnox-client.js';
|
|
2
2
|
import { documentSegment } from '../identifiers.js';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (params.all) {
|
|
11
|
-
const { items, totalResources } = await fetchAllPages('orders', 'Orders', queryParams);
|
|
12
|
-
return {
|
|
13
|
-
Orders: items,
|
|
14
|
-
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
3
|
+
export function createOrderOperations(transport) {
|
|
4
|
+
async function listOrders(params = {}) {
|
|
5
|
+
const queryParams = {
|
|
6
|
+
filter: params.filter,
|
|
7
|
+
customernumber: params.customerNumber,
|
|
8
|
+
fromdate: params.fromDate,
|
|
9
|
+
todate: params.toDate,
|
|
15
10
|
};
|
|
11
|
+
if (params.all) {
|
|
12
|
+
const { items, totalResources } = await transport.fetchAllPages('orders', 'Orders', queryParams);
|
|
13
|
+
return {
|
|
14
|
+
Orders: items,
|
|
15
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return transport.request('orders', {
|
|
19
|
+
params: { ...queryParams, page: params.page || 1, limit: params.limit || 100 },
|
|
20
|
+
});
|
|
16
21
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const data = await fortnoxRequest(`orders/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
|
|
42
|
-
return data.Invoice;
|
|
22
|
+
async function getOrder(documentNumber) {
|
|
23
|
+
const data = await transport.request(`orders/${documentSegment(documentNumber)}`);
|
|
24
|
+
return data.Order;
|
|
25
|
+
}
|
|
26
|
+
async function createOrder(params) {
|
|
27
|
+
const data = await transport.request('orders', {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
body: { Order: params },
|
|
30
|
+
});
|
|
31
|
+
return data.Order;
|
|
32
|
+
}
|
|
33
|
+
async function updateOrder(documentNumber, fields) {
|
|
34
|
+
const { documentNumber: _, ...body } = fields;
|
|
35
|
+
const data = await transport.request(`orders/${documentSegment(documentNumber)}`, {
|
|
36
|
+
method: 'PUT',
|
|
37
|
+
body: { Order: body },
|
|
38
|
+
});
|
|
39
|
+
return data.Order;
|
|
40
|
+
}
|
|
41
|
+
async function createInvoiceFromOrder(documentNumber) {
|
|
42
|
+
const data = await transport.request(`orders/${documentSegment(documentNumber)}/createinvoice`, { method: 'PUT' });
|
|
43
|
+
return data.Invoice;
|
|
44
|
+
}
|
|
45
|
+
return { listOrders, getOrder, createOrder, updateOrder, createInvoiceFromOrder };
|
|
43
46
|
}
|
|
47
|
+
export const { listOrders, getOrder, createOrder, updateOrder, createInvoiceFromOrder } = createOrderOperations(defaultFortnoxTransport);
|
|
44
48
|
//# sourceMappingURL=orders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/operations/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"orders.js","sourceRoot":"","sources":["../../src/operations/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAqBpD,MAAM,UAAU,qBAAqB,CAAC,SAA2B;IAC/D,KAAK,UAAU,UAAU,CAAC,SAA2B,EAAE;QACrD,MAAM,WAAW,GAAgD;YAC/D,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,SAAS,CAAC,aAAa,CAC7D,QAAQ,EACR,QAAQ,EACR,WAAW,CACZ,CAAC;YACF,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;aAC5F,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,OAAO,CAAiB,QAAQ,EAAE;YACjD,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,cAAsB;QAC5C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,CAC5C,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,MAA+B;QACxD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAgB,QAAQ,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;SACxB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,cAAsB,EACtB,MAA+B;QAE/B,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,EAAE,EAC3C;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;SACtB,CACF,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,UAAU,sBAAsB,CAAC,cAAsB;QAC1D,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAClC,UAAU,eAAe,CAAC,cAAc,CAAC,gBAAgB,EACzD,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACF,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,GACrF,qBAAqB,CAAC,uBAAuB,CAAC,CAAC"}
|