noxctl 0.3.0 → 0.4.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 +56 -6
- package/dist/auth.d.ts +6 -2
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +17 -5
- package/dist/auth.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +391 -6
- package/dist/cli.js.map +1 -1
- package/dist/fortnox-client.d.ts.map +1 -1
- package/dist/fortnox-client.js +12 -0
- package/dist/fortnox-client.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/operations/absencetransactions.d.ts +21 -0
- package/dist/operations/absencetransactions.d.ts.map +1 -0
- package/dist/operations/absencetransactions.js +36 -0
- package/dist/operations/absencetransactions.js.map +1 -0
- package/dist/operations/attendancetransactions.d.ts +21 -0
- package/dist/operations/attendancetransactions.d.ts.map +1 -0
- package/dist/operations/attendancetransactions.js +40 -0
- package/dist/operations/attendancetransactions.js.map +1 -0
- package/dist/operations/employees.d.ts +19 -0
- package/dist/operations/employees.d.ts.map +1 -0
- package/dist/operations/employees.js +34 -0
- package/dist/operations/employees.js.map +1 -0
- package/dist/operations/salarytransactions.d.ts +21 -0
- package/dist/operations/salarytransactions.d.ts.map +1 -0
- package/dist/operations/salarytransactions.js +35 -0
- package/dist/operations/salarytransactions.js.map +1 -0
- package/dist/operations/scheduletimes.d.ts +4 -0
- package/dist/operations/scheduletimes.d.ts.map +1 -0
- package/dist/operations/scheduletimes.js +24 -0
- package/dist/operations/scheduletimes.js.map +1 -0
- package/dist/tools/absencetransactions.d.ts +3 -0
- package/dist/tools/absencetransactions.d.ts.map +1 -0
- package/dist/tools/absencetransactions.js +66 -0
- package/dist/tools/absencetransactions.js.map +1 -0
- package/dist/tools/attendancetransactions.d.ts +3 -0
- package/dist/tools/attendancetransactions.d.ts.map +1 -0
- package/dist/tools/attendancetransactions.js +63 -0
- package/dist/tools/attendancetransactions.js.map +1 -0
- package/dist/tools/employees.d.ts +3 -0
- package/dist/tools/employees.d.ts.map +1 -0
- package/dist/tools/employees.js +107 -0
- package/dist/tools/employees.js.map +1 -0
- package/dist/tools/salarytransactions.d.ts +3 -0
- package/dist/tools/salarytransactions.d.ts.map +1 -0
- package/dist/tools/salarytransactions.js +70 -0
- package/dist/tools/salarytransactions.js.map +1 -0
- package/dist/tools/scheduletimes.d.ts +3 -0
- package/dist/tools/scheduletimes.d.ts.map +1 -0
- package/dist/tools/scheduletimes.js +62 -0
- package/dist/tools/scheduletimes.js.map +1 -0
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +4 -2
- package/dist/tools/status.js.map +1 -1
- package/dist/views.d.ts +9 -0
- package/dist/views.d.ts.map +1 -1
- package/dist/views.js +97 -0
- package/dist/views.js.map +1 -1
- package/package.json +2 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,mCAAmC,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface AbsenceTransactionsResponse {
|
|
2
|
+
AbsenceTransactions: Record<string, unknown>[];
|
|
3
|
+
MetaInformation?: {
|
|
4
|
+
'@TotalResources': number;
|
|
5
|
+
'@TotalPages': number;
|
|
6
|
+
'@CurrentPage': number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface ListAbsenceTransactionsParams {
|
|
10
|
+
employeeId?: string;
|
|
11
|
+
date?: string;
|
|
12
|
+
page?: number;
|
|
13
|
+
limit?: number;
|
|
14
|
+
all?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function listAbsenceTransactions(params?: ListAbsenceTransactionsParams): Promise<AbsenceTransactionsResponse>;
|
|
17
|
+
export declare function getAbsenceTransaction(id: string): Promise<Record<string, unknown>>;
|
|
18
|
+
export declare function createAbsenceTransaction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
19
|
+
export declare function deleteAbsenceTransaction(id: string): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=absencetransactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absencetransactions.d.ts","sourceRoot":"","sources":["../../src/operations/absencetransactions.ts"],"names":[],"mappings":"AAMA,UAAU,2BAA2B;IACnC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC/C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,GAAE,6BAAkC,GACzC,OAAO,CAAC,2BAA2B,CAAC,CAsBtC;AAED,wBAAsB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKxF;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
|
|
2
|
+
export async function listAbsenceTransactions(params = {}) {
|
|
3
|
+
// Note the lowercase query keys: Fortnox expects "employeeid" and "date".
|
|
4
|
+
if (params.all) {
|
|
5
|
+
const { items, totalResources } = await fetchAllPages('absencetransactions', 'AbsenceTransactions', { employeeid: params.employeeId, date: params.date });
|
|
6
|
+
return {
|
|
7
|
+
AbsenceTransactions: items,
|
|
8
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
return fortnoxRequest('absencetransactions', {
|
|
12
|
+
params: {
|
|
13
|
+
employeeid: params.employeeId,
|
|
14
|
+
date: params.date,
|
|
15
|
+
page: params.page || 1,
|
|
16
|
+
limit: params.limit || 100,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
export async function getAbsenceTransaction(id) {
|
|
21
|
+
const data = await fortnoxRequest(`absencetransactions/${encodeURIComponent(id)}`);
|
|
22
|
+
return data.AbsenceTransaction;
|
|
23
|
+
}
|
|
24
|
+
export async function createAbsenceTransaction(params) {
|
|
25
|
+
const data = await fortnoxRequest('absencetransactions', {
|
|
26
|
+
method: 'POST',
|
|
27
|
+
body: { AbsenceTransaction: params },
|
|
28
|
+
});
|
|
29
|
+
return data.AbsenceTransaction;
|
|
30
|
+
}
|
|
31
|
+
export async function deleteAbsenceTransaction(id) {
|
|
32
|
+
await fortnoxRequest(`absencetransactions/${encodeURIComponent(id)}`, {
|
|
33
|
+
method: 'DELETE',
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=absencetransactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absencetransactions.js","sourceRoot":"","sources":["../../src/operations/absencetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,SAAwC,EAAE;IAE1C,0EAA0E;IAC1E,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,qBAAqB,EACrB,qBAAqB,EACrB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CACrD,CAAC;QACF,OAAO;YACL,mBAAmB,EAAE,KAAK;YAC1B,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAA8B,qBAAqB,EAAE;QACxE,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;SAC3B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAAU;IACpD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAChD,CAAC;IACF,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAA6B,qBAAqB,EAAE;QACnF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE;KACrC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU;IACvD,MAAM,cAAc,CAAC,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;QACpE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface AttendanceTransactionsResponse {
|
|
2
|
+
AttendanceTransactions: Record<string, unknown>[];
|
|
3
|
+
MetaInformation?: {
|
|
4
|
+
'@TotalResources': number;
|
|
5
|
+
'@TotalPages': number;
|
|
6
|
+
'@CurrentPage': number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface ListAttendanceTransactionsParams {
|
|
10
|
+
employeeId?: string;
|
|
11
|
+
date?: string;
|
|
12
|
+
page?: number;
|
|
13
|
+
limit?: number;
|
|
14
|
+
all?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function listAttendanceTransactions(params?: ListAttendanceTransactionsParams): Promise<AttendanceTransactionsResponse>;
|
|
17
|
+
export declare function getAttendanceTransaction(id: string): Promise<Record<string, unknown>>;
|
|
18
|
+
export declare function createAttendanceTransaction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
19
|
+
export declare function deleteAttendanceTransaction(id: string): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=attendancetransactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attendancetransactions.d.ts","sourceRoot":"","sources":["../../src/operations/attendancetransactions.ts"],"names":[],"mappings":"AAMA,UAAU,8BAA8B;IACtC,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAClD,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,GAAE,gCAAqC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CA0BzC;AAED,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK3F;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
|
|
2
|
+
export async function listAttendanceTransactions(params = {}) {
|
|
3
|
+
if (params.all) {
|
|
4
|
+
// The Fortnox attendance list endpoint names its filter params "employeeid"
|
|
5
|
+
// (all lowercase) and "date" — the filters must survive pagination, so pass
|
|
6
|
+
// them through to fetchAllPages too (not just the single-page branch below).
|
|
7
|
+
const { items, totalResources } = await fetchAllPages('attendancetransactions', 'AttendanceTransactions', { employeeid: params.employeeId, date: params.date });
|
|
8
|
+
return {
|
|
9
|
+
AttendanceTransactions: items,
|
|
10
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// The Fortnox attendance list endpoint names its filter params "employeeid"
|
|
14
|
+
// (all lowercase) and "date" — map employeeId onto the lowercase key.
|
|
15
|
+
return fortnoxRequest('attendancetransactions', {
|
|
16
|
+
params: {
|
|
17
|
+
employeeid: params.employeeId,
|
|
18
|
+
date: params.date,
|
|
19
|
+
page: params.page || 1,
|
|
20
|
+
limit: params.limit || 100,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
export async function getAttendanceTransaction(id) {
|
|
25
|
+
const data = await fortnoxRequest(`attendancetransactions/${encodeURIComponent(id)}`);
|
|
26
|
+
return data.AttendanceTransaction;
|
|
27
|
+
}
|
|
28
|
+
export async function createAttendanceTransaction(params) {
|
|
29
|
+
const data = await fortnoxRequest('attendancetransactions', {
|
|
30
|
+
method: 'POST',
|
|
31
|
+
body: { AttendanceTransaction: params },
|
|
32
|
+
});
|
|
33
|
+
return data.AttendanceTransaction;
|
|
34
|
+
}
|
|
35
|
+
export async function deleteAttendanceTransaction(id) {
|
|
36
|
+
await fortnoxRequest(`attendancetransactions/${encodeURIComponent(id)}`, {
|
|
37
|
+
method: 'DELETE',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=attendancetransactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attendancetransactions.js","sourceRoot":"","sources":["../../src/operations/attendancetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,SAA2C,EAAE;IAE7C,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,wBAAwB,EACxB,wBAAwB,EACxB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CACrD,CAAC;QACF,OAAO;YACL,sBAAsB,EAAE,KAAK;YAC7B,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,OAAO,cAAc,CAAiC,wBAAwB,EAAE;QAC9E,MAAM,EAAE;YACN,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG;SAC3B;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,EAAU;IACvD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CACnD,CAAC;IACF,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAgC,wBAAwB,EAAE;QACzF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,qBAAqB,EAAE,MAAM,EAAE;KACxC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAAU;IAC1D,MAAM,cAAc,CAAC,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;QACvE,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface EmployeesResponse {
|
|
2
|
+
Employees: Record<string, unknown>[];
|
|
3
|
+
MetaInformation?: {
|
|
4
|
+
'@TotalResources': number;
|
|
5
|
+
'@TotalPages': number;
|
|
6
|
+
'@CurrentPage': number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface ListEmployeesParams {
|
|
10
|
+
page?: number;
|
|
11
|
+
limit?: number;
|
|
12
|
+
all?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function listEmployees(params?: ListEmployeesParams): Promise<EmployeesResponse>;
|
|
15
|
+
export declare function getEmployee(employeeId: string): Promise<Record<string, unknown>>;
|
|
16
|
+
export declare function createEmployee(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
17
|
+
export declare function updateEmployee(employeeId: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=employees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../src/operations/employees.ts"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAehG;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKtF;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
|
|
2
|
+
export async function listEmployees(params = {}) {
|
|
3
|
+
if (params.all) {
|
|
4
|
+
const { items, totalResources } = await fetchAllPages('employees', 'Employees');
|
|
5
|
+
return {
|
|
6
|
+
Employees: items,
|
|
7
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
return fortnoxRequest('employees', {
|
|
11
|
+
params: { page: params.page || 1, limit: params.limit || 100 },
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export async function getEmployee(employeeId) {
|
|
15
|
+
const data = await fortnoxRequest(`employees/${encodeURIComponent(employeeId)}`);
|
|
16
|
+
return data.Employee;
|
|
17
|
+
}
|
|
18
|
+
export async function createEmployee(params) {
|
|
19
|
+
const data = await fortnoxRequest('employees', {
|
|
20
|
+
method: 'POST',
|
|
21
|
+
body: { Employee: params },
|
|
22
|
+
});
|
|
23
|
+
return data.Employee;
|
|
24
|
+
}
|
|
25
|
+
export async function updateEmployee(employeeId, fields) {
|
|
26
|
+
// EmployeeId is the path key — never send it in the PUT body.
|
|
27
|
+
const { EmployeeId: _, ...body } = fields;
|
|
28
|
+
const data = await fortnoxRequest(`employees/${encodeURIComponent(employeeId)}`, {
|
|
29
|
+
method: 'PUT',
|
|
30
|
+
body: { Employee: body },
|
|
31
|
+
});
|
|
32
|
+
return data.Employee;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=employees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../src/operations/employees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAA8B,EAAE;IAClE,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,WAAW,EACX,WAAW,CACZ,CAAC;QACF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAoB,WAAW,EAAE;QACpD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE;KAC/D,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAC9C,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAAmB,WAAW,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;KAC3B,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB,EAClB,MAA+B;IAE/B,8DAA8D;IAC9D,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,aAAa,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAC7C;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;KACzB,CACF,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface SalaryTransactionsResponse {
|
|
2
|
+
SalaryTransactions: Record<string, unknown>[];
|
|
3
|
+
MetaInformation?: {
|
|
4
|
+
'@TotalResources': number;
|
|
5
|
+
'@TotalPages': number;
|
|
6
|
+
'@CurrentPage': number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface ListSalaryTransactionsParams {
|
|
10
|
+
employeeId?: string;
|
|
11
|
+
date?: string;
|
|
12
|
+
page?: number;
|
|
13
|
+
limit?: number;
|
|
14
|
+
all?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function listSalaryTransactions(params?: ListSalaryTransactionsParams): Promise<SalaryTransactionsResponse>;
|
|
17
|
+
export declare function getSalaryTransaction(salaryRow: string): Promise<Record<string, unknown>>;
|
|
18
|
+
export declare function createSalaryTransaction(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
19
|
+
export declare function deleteSalaryTransaction(salaryRow: string): Promise<void>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=salarytransactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"salarytransactions.d.ts","sourceRoot":"","sources":["../../src/operations/salarytransactions.ts"],"names":[],"mappings":"AAMA,UAAU,0BAA0B;IAClC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC9C,eAAe,CAAC,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,GAAE,4BAAiC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAoBrC;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAK9F;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAMlC;AAED,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { fortnoxRequest, fetchAllPages } from '../fortnox-client.js';
|
|
2
|
+
export async function listSalaryTransactions(params = {}) {
|
|
3
|
+
const filters = {};
|
|
4
|
+
if (params.employeeId !== undefined)
|
|
5
|
+
filters.employeeId = params.employeeId;
|
|
6
|
+
if (params.date !== undefined)
|
|
7
|
+
filters.date = params.date;
|
|
8
|
+
if (params.all) {
|
|
9
|
+
const { items, totalResources } = await fetchAllPages('salarytransactions', 'SalaryTransactions', filters);
|
|
10
|
+
return {
|
|
11
|
+
SalaryTransactions: items,
|
|
12
|
+
MetaInformation: { '@TotalResources': totalResources, '@TotalPages': 1, '@CurrentPage': 1 },
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return fortnoxRequest('salarytransactions', {
|
|
16
|
+
params: { page: params.page || 1, limit: params.limit || 100, ...filters },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export async function getSalaryTransaction(salaryRow) {
|
|
20
|
+
const data = await fortnoxRequest(`salarytransactions/${encodeURIComponent(String(salaryRow))}`);
|
|
21
|
+
return data.SalaryTransaction;
|
|
22
|
+
}
|
|
23
|
+
export async function createSalaryTransaction(params) {
|
|
24
|
+
const data = await fortnoxRequest('salarytransactions', {
|
|
25
|
+
method: 'POST',
|
|
26
|
+
body: { SalaryTransaction: params },
|
|
27
|
+
});
|
|
28
|
+
return data.SalaryTransaction;
|
|
29
|
+
}
|
|
30
|
+
export async function deleteSalaryTransaction(salaryRow) {
|
|
31
|
+
await fortnoxRequest(`salarytransactions/${encodeURIComponent(String(salaryRow))}`, {
|
|
32
|
+
method: 'DELETE',
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=salarytransactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"salarytransactions.js","sourceRoot":"","sources":["../../src/operations/salarytransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAmBrE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAuC,EAAE;IAEzC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IAC5E,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAE1D,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,aAAa,CACnD,oBAAoB,EACpB,oBAAoB,EACpB,OAAO,CACR,CAAC;QACF,OAAO;YACL,kBAAkB,EAAE,KAAK;YACzB,eAAe,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE;SAC5F,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAA6B,oBAAoB,EAAE;QACtE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE;KAC3E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IAC1D,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAC9D,CAAC;IACF,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA+B;IAE/B,MAAM,IAAI,GAAG,MAAM,cAAc,CAA4B,oBAAoB,EAAE;QACjF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE;KACpC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,SAAiB;IAC7D,MAAM,cAAc,CAAC,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE;QAClF,MAAM,EAAE,QAAQ;KACjB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function getScheduleTime(employeeId: string, date: string): Promise<Record<string, unknown>>;
|
|
2
|
+
export declare function updateScheduleTime(employeeId: string, date: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
3
|
+
export declare function resetScheduleTimeDay(employeeId: string, date: string, fields: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
4
|
+
//# sourceMappingURL=scheduletimes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduletimes.d.ts","sourceRoot":"","sources":["../../src/operations/scheduletimes.ts"],"names":[],"mappings":"AAMA,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAKlC;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAWlC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { fortnoxRequest } from '../fortnox-client.js';
|
|
2
|
+
export async function getScheduleTime(employeeId, date) {
|
|
3
|
+
const data = await fortnoxRequest(`scheduletimes/${encodeURIComponent(employeeId)}/${encodeURIComponent(date)}`);
|
|
4
|
+
return data.ScheduleTime;
|
|
5
|
+
}
|
|
6
|
+
export async function updateScheduleTime(employeeId, date, fields) {
|
|
7
|
+
// EmployeeId and Date are the path keys — never send them in the PUT body.
|
|
8
|
+
const { EmployeeId: _employeeId, Date: _date, ...body } = fields;
|
|
9
|
+
const data = await fortnoxRequest(`scheduletimes/${encodeURIComponent(employeeId)}/${encodeURIComponent(date)}`, {
|
|
10
|
+
method: 'PUT',
|
|
11
|
+
body: { ScheduleTime: body },
|
|
12
|
+
});
|
|
13
|
+
return data.ScheduleTime;
|
|
14
|
+
}
|
|
15
|
+
export async function resetScheduleTimeDay(employeeId, date, fields) {
|
|
16
|
+
// EmployeeId and Date are the path keys — never send them in the PUT body.
|
|
17
|
+
const { EmployeeId: _employeeId, Date: _date, ...body } = fields;
|
|
18
|
+
const data = await fortnoxRequest(`scheduletimes/${encodeURIComponent(employeeId)}/${encodeURIComponent(date)}/resetday`, {
|
|
19
|
+
method: 'PUT',
|
|
20
|
+
body: { ScheduleTime: body },
|
|
21
|
+
});
|
|
22
|
+
return data.ScheduleTime;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=scheduletimes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduletimes.js","sourceRoot":"","sources":["../../src/operations/scheduletimes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,IAAY;IAEZ,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;IACF,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,IAAY,EACZ,MAA+B;IAE/B,2EAA2E;IAC3E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAC7E;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KAC7B,CACF,CAAC;IACF,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,IAAY,EACZ,MAA+B;IAE/B,2EAA2E;IAC3E,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,EACtF;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KAC7B,CACF,CAAC;IACF,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absencetransactions.d.ts","sourceRoot":"","sources":["../../src/tools/absencetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBpE,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4FvE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { listAbsenceTransactions, getAbsenceTransaction, createAbsenceTransaction, deleteAbsenceTransaction, } from '../operations/absencetransactions.js';
|
|
3
|
+
import { absenceTransactionListColumns, absenceTransactionDetailColumns } from '../views.js';
|
|
4
|
+
import { detailResponse, dryRunResponse, listResponse, requireConfirmation, textResponse, } from '../tool-output.js';
|
|
5
|
+
export function registerAbsenceTransactionTools(server) {
|
|
6
|
+
server.tool('fortnox_list_absencetransactions', 'Lista frånvarotransaktioner i Fortnox (kräver Lön-behörigheten). Returnerar: id, EmployeeId, CauseCode, Date, Hours.', {
|
|
7
|
+
employeeId: z.string().optional().describe('Filtrera på EmployeeId'),
|
|
8
|
+
date: z.string().optional().describe('Filtrera på datum (YYYY-MM-DD)'),
|
|
9
|
+
page: z.number().optional().describe('Sidnummer (default 1)'),
|
|
10
|
+
limit: z.number().optional().describe('Antal per sida (default 100)'),
|
|
11
|
+
all: z.boolean().optional().describe('Hämta alla sidor (ignorerar page/limit)'),
|
|
12
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
13
|
+
}, async ({ employeeId, date, page, limit, all, includeRaw }) => {
|
|
14
|
+
const data = await listAbsenceTransactions({ employeeId, date, page, limit, all });
|
|
15
|
+
return listResponse(data.AbsenceTransactions ?? [], absenceTransactionListColumns, data, data.MetaInformation, includeRaw);
|
|
16
|
+
});
|
|
17
|
+
server.tool('fortnox_get_absencetransaction', 'Hämta en enskild frånvarotransaktion från Fortnox (kräver Lön-behörigheten).', {
|
|
18
|
+
id: z.string().describe('id (UUID) för frånvarotransaktionen'),
|
|
19
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
20
|
+
}, async ({ id, includeRaw }) => {
|
|
21
|
+
const data = await getAbsenceTransaction(id);
|
|
22
|
+
return detailResponse(data, absenceTransactionDetailColumns, data, includeRaw);
|
|
23
|
+
});
|
|
24
|
+
server.tool('fortnox_create_absencetransaction', 'Skapa en ny frånvarotransaktion i Fortnox (kräver Lön-behörigheten). EmployeeId, CauseCode och Date krävs.', {
|
|
25
|
+
EmployeeId: z.string().describe('EmployeeId för den anställde'),
|
|
26
|
+
CauseCode: z
|
|
27
|
+
.string()
|
|
28
|
+
.describe('Frånvarokod. Giltiga koder: ASK, FPE, FRA, HAV, KOM, MIL, NAR, OS1, OS2, OS3, OS4, OS5, PAP, PEM, PER, SEM, SJK, SMB, SVE, TJL, UTB, VAB'),
|
|
29
|
+
Date: z.string().describe('Datum (YYYY-MM-DD)'),
|
|
30
|
+
Hours: z.number().optional().describe('Antal timmar (tal, t.ex. 8)'),
|
|
31
|
+
Extent: z.number().optional().describe('Omfattning i procent (tal, t.ex. 50)'),
|
|
32
|
+
HolidayEntitling: z.boolean().optional().describe('Semestergrundande'),
|
|
33
|
+
CostCenter: z.string().optional().describe('Kostnadsställe'),
|
|
34
|
+
Project: z.string().optional().describe('Projekt'),
|
|
35
|
+
confirm: z.boolean().optional().describe('Bekräfta att frånvarotransaktionen ska skapas'),
|
|
36
|
+
dryRun: z.boolean().optional().describe('Visa vad som skulle skickas utan att skapa'),
|
|
37
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
38
|
+
}, async ({ confirm, dryRun, includeRaw, ...params }) => {
|
|
39
|
+
if (dryRun) {
|
|
40
|
+
return dryRunResponse(`create absence transaction for employee ${params.EmployeeId}`, {
|
|
41
|
+
AbsenceTransaction: params,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
if (!confirm)
|
|
45
|
+
requireConfirmation(`create absence transaction for employee ${params.EmployeeId}`);
|
|
46
|
+
const data = await createAbsenceTransaction(params);
|
|
47
|
+
return detailResponse(data, absenceTransactionDetailColumns, data, includeRaw);
|
|
48
|
+
});
|
|
49
|
+
server.tool('fortnox_delete_absencetransaction', 'Ta bort en frånvarotransaktion från Fortnox (kräver Lön-behörigheten).', {
|
|
50
|
+
id: z.string().describe('id (UUID) för frånvarotransaktionen att ta bort'),
|
|
51
|
+
confirm: z.boolean().optional().describe('Bekräfta att frånvarotransaktionen ska tas bort'),
|
|
52
|
+
dryRun: z
|
|
53
|
+
.boolean()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('Visa vad som skulle göras utan att ta bort frånvarotransaktionen'),
|
|
56
|
+
}, async ({ id, confirm, dryRun }) => {
|
|
57
|
+
if (dryRun) {
|
|
58
|
+
return dryRunResponse(`delete absence transaction ${id}`);
|
|
59
|
+
}
|
|
60
|
+
if (!confirm)
|
|
61
|
+
requireConfirmation(`delete absence transaction ${id}`);
|
|
62
|
+
await deleteAbsenceTransaction(id);
|
|
63
|
+
return textResponse(`Absence transaction ${id} deleted.`);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=absencetransactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"absencetransactions.js","sourceRoot":"","sources":["../../src/tools/absencetransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attendancetransactions.d.ts","sourceRoot":"","sources":["../../src/tools/attendancetransactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBpE,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8F1E"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { listAttendanceTransactions, getAttendanceTransaction, createAttendanceTransaction, deleteAttendanceTransaction, } from '../operations/attendancetransactions.js';
|
|
3
|
+
import { attendanceTransactionListColumns, attendanceTransactionDetailColumns } from '../views.js';
|
|
4
|
+
import { detailResponse, dryRunResponse, listResponse, requireConfirmation, textResponse, } from '../tool-output.js';
|
|
5
|
+
export function registerAttendanceTransactionTools(server) {
|
|
6
|
+
server.tool('fortnox_list_attendancetransactions', 'Lista närvarotransaktioner i Fortnox (kräver Lön-behörigheten). Returnerar: id, EmployeeId, CauseCode, Date, Hours.', {
|
|
7
|
+
employeeId: z.string().optional().describe('Filtrera på EmployeeId'),
|
|
8
|
+
date: z.string().optional().describe('Filtrera på datum (YYYY-MM-DD)'),
|
|
9
|
+
page: z.number().optional().describe('Sidnummer (default 1)'),
|
|
10
|
+
limit: z.number().optional().describe('Antal per sida (default 100)'),
|
|
11
|
+
all: z.boolean().optional().describe('Hämta alla sidor (ignorerar page/limit)'),
|
|
12
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
13
|
+
}, async ({ employeeId, date, page, limit, all, includeRaw }) => {
|
|
14
|
+
const data = await listAttendanceTransactions({ employeeId, date, page, limit, all });
|
|
15
|
+
return listResponse(data.AttendanceTransactions ?? [], attendanceTransactionListColumns, data, data.MetaInformation, includeRaw);
|
|
16
|
+
});
|
|
17
|
+
server.tool('fortnox_get_attendancetransaction', 'Hämta en enskild närvarotransaktion från Fortnox (kräver Lön-behörigheten).', {
|
|
18
|
+
id: z.string().describe('id (UUID) för närvarotransaktionen'),
|
|
19
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
20
|
+
}, async ({ id, includeRaw }) => {
|
|
21
|
+
const data = await getAttendanceTransaction(id);
|
|
22
|
+
return detailResponse(data, attendanceTransactionDetailColumns, data, includeRaw);
|
|
23
|
+
});
|
|
24
|
+
server.tool('fortnox_create_attendancetransaction', 'Skapa en ny närvarotransaktion i Fortnox (kräver Lön-behörigheten). EmployeeId, CauseCode och Date krävs.', {
|
|
25
|
+
EmployeeId: z.string().describe('EmployeeId för den anställde'),
|
|
26
|
+
CauseCode: z
|
|
27
|
+
.string()
|
|
28
|
+
.describe('Orsakskod. Giltiga koder: ARB, BE2, BER, FLX, HLG, JO2, JOR, MER, OB1, OB2, OB3, OB4, OB5, OK0, OK1, OK2, OK3, OK4, OK5, OT1, OT2, OT3, OT4, OT5, RES, TID'),
|
|
29
|
+
Date: z.string().describe('Datum (YYYY-MM-DD)'),
|
|
30
|
+
Hours: z.string().optional().describe('Antal timmar'),
|
|
31
|
+
CostCenter: z.string().optional().describe('Kostnadsställe'),
|
|
32
|
+
Project: z.string().optional().describe('Projekt'),
|
|
33
|
+
confirm: z.boolean().optional().describe('Bekräfta att närvarotransaktionen ska skapas'),
|
|
34
|
+
dryRun: z.boolean().optional().describe('Visa vad som skulle skickas utan att skapa'),
|
|
35
|
+
includeRaw: z.boolean().optional().describe('Inkludera rå JSON från Fortnox'),
|
|
36
|
+
}, async ({ confirm, dryRun, includeRaw, ...params }) => {
|
|
37
|
+
if (dryRun) {
|
|
38
|
+
return dryRunResponse(`create attendance transaction for employee ${params.EmployeeId} (${params.CauseCode} ${params.Date})`, { AttendanceTransaction: params });
|
|
39
|
+
}
|
|
40
|
+
if (!confirm) {
|
|
41
|
+
requireConfirmation(`create attendance transaction for employee ${params.EmployeeId} (${params.CauseCode} ${params.Date})`);
|
|
42
|
+
}
|
|
43
|
+
const data = await createAttendanceTransaction(params);
|
|
44
|
+
return detailResponse(data, attendanceTransactionDetailColumns, data, includeRaw);
|
|
45
|
+
});
|
|
46
|
+
server.tool('fortnox_delete_attendancetransaction', 'Ta bort en närvarotransaktion från Fortnox (kräver Lön-behörigheten).', {
|
|
47
|
+
id: z.string().describe('id (UUID) för närvarotransaktionen att ta bort'),
|
|
48
|
+
confirm: z.boolean().optional().describe('Bekräfta att närvarotransaktionen ska tas bort'),
|
|
49
|
+
dryRun: z
|
|
50
|
+
.boolean()
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Visa vad som skulle göras utan att ta bort närvarotransaktionen'),
|
|
53
|
+
}, async ({ id, confirm, dryRun }) => {
|
|
54
|
+
if (dryRun) {
|
|
55
|
+
return dryRunResponse(`delete attendance transaction ${id}`);
|
|
56
|
+
}
|
|
57
|
+
if (!confirm)
|
|
58
|
+
requireConfirmation(`delete attendance transaction ${id}`);
|
|
59
|
+
await deleteAttendanceTransaction(id);
|
|
60
|
+
return textResponse(`Attendance transaction ${id} deleted.`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=attendancetransactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attendancetransactions.js","sourceRoot":"","sources":["../../src/tools/attendancetransactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"employees.d.ts","sourceRoot":"","sources":["../../src/tools/employees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4DpE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuF7D"}
|