@machinemetrics/mm-erp-sdk 0.1.8-beta.3 → 0.1.8-beta.5
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/mm-erp-sdk.js +19 -46
- package/dist/mm-erp-sdk.js.map +1 -1
- package/dist/services/psql-erp-service/index.d.ts +0 -5
- package/dist/services/psql-erp-service/index.d.ts.map +1 -1
- package/dist/services/psql-erp-service/internal/types/psql-types.d.ts +0 -3
- package/dist/services/psql-erp-service/internal/types/psql-types.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/timezone.d.ts +7 -0
- package/dist/utils/timezone.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -1
- package/src/services/psql-erp-service/index.ts +0 -6
- package/src/services/psql-erp-service/internal/types/psql-types.ts +0 -4
- package/src/services/psql-erp-service/psql-service.ts +1 -1
- package/src/utils/index.ts +1 -1
- package/src/utils/mm-labor-ticket-helpers.ts +2 -2
- package/src/utils/timezone.ts +28 -0
- package/dist/services/psql-erp-service/internal/psql-config.d.ts +0 -28
- package/dist/services/psql-erp-service/internal/psql-config.d.ts.map +0 -1
- package/dist/services/psql-erp-service/internal/psql-labor-ticket-operations.d.ts +0 -40
- package/dist/services/psql-erp-service/internal/psql-labor-ticket-operations.d.ts.map +0 -1
- package/src/services/psql-erp-service/internal/psql-config.ts +0 -13
- package/src/services/psql-erp-service/internal/psql-labor-ticket-operations.ts +0 -58
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { PsqlService } from "./psql-service";
|
|
2
|
-
import { PsqlLaborTicketOperations } from "./internal/psql-labor-ticket-operations";
|
|
3
2
|
/**
|
|
4
3
|
* A class to manage interactions with PSQL (Pervasive) databases via ODBC
|
|
5
4
|
*/
|
|
6
5
|
export { PsqlService };
|
|
7
|
-
/**
|
|
8
|
-
* Labor ticket operations for PSQL (Phase 2)
|
|
9
|
-
*/
|
|
10
|
-
export { PsqlLaborTicketOperations };
|
|
11
6
|
/**
|
|
12
7
|
* Configuration interface for PSQL connections
|
|
13
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/psql-erp-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/psql-erp-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;GAEG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD;;GAEG;AACH,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"psql-types.d.ts","sourceRoot":"","sources":["../../../../../src/services/psql-erp-service/internal/types/psql-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"psql-types.d.ts","sourceRoot":"","sources":["../../../../../src/services/psql-erp-service/internal/types/psql-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC9C,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { addNewFieldFromExternalSource, addNewFieldFromLookupField, } from "./da
|
|
|
11
11
|
* Timezone and time-related utilities
|
|
12
12
|
*/
|
|
13
13
|
export { getTimezoneOffsetAndPersist } from "./time-utils";
|
|
14
|
-
export { formatDateWithTZOffset, convertToLocalTime } from "./timezone";
|
|
14
|
+
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
|
|
15
15
|
export { applyTimezoneOffsetsToFields } from "./time-utils";
|
|
16
16
|
export * from "./time-utils";
|
|
17
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,YAAY,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAEpF;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAG9E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEjF;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;GAEG;AACH,cAAc,2BAA2B,CAAC;AAE1C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAExE;;GAEG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/utils/timezone.d.ts
CHANGED
|
@@ -18,4 +18,11 @@ export declare const convertToLocalTime: (zuluTime: string | Date | null | undef
|
|
|
18
18
|
* @returns The formatted date string in format: YYYY-MM-DDTHH:mm:ss+/-HH:MM
|
|
19
19
|
*/
|
|
20
20
|
export declare const formatDateWithTZOffset: (date: string | null | undefined, timezoneOffset: number) => string | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Formats a Date object as an ISO string with the specified timezone offset
|
|
23
|
+
* @param date The Date object to format (should be a Date that has been shifted by convertToLocalTime)
|
|
24
|
+
* @param timezoneOffset The timezone offset in hours
|
|
25
|
+
* @returns ISO string with offset in format: YYYY-MM-DDTHH:mm:ss.SSS±HH:MM
|
|
26
|
+
*/
|
|
27
|
+
export declare const toISOWithOffset: (date: Date, timezoneOffset: number) => string;
|
|
21
28
|
//# sourceMappingURL=timezone.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CA6CxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,EAC1C,gBAAgB,MAAM,KACrB,IAAI,GAAG,SAIT,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,gBAAgB,MAAM,KACrB,MAAM,GAAG,SAgBX,CAAC"}
|
|
1
|
+
{"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../src/utils/timezone.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAa,OAAO,CAAC,MAAM,CA6CxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,EAC1C,gBAAgB,MAAM,KACrB,IAAI,GAAG,SAIT,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,gBAAgB,MAAM,KACrB,MAAM,GAAG,SAgBX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,EAAE,gBAAgB,MAAM,KAAG,MAoBpE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@machinemetrics/mm-erp-sdk",
|
|
3
3
|
"description": "A library for syncing data between MachineMetrics and ERP systems",
|
|
4
|
-
"version": "0.1.8-beta.
|
|
4
|
+
"version": "0.1.8-beta.5",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "machinemetrics",
|
|
7
7
|
"main": "dist/mm-erp-sdk.js",
|
package/src/index.ts
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { PsqlService } from "./psql-service";
|
|
2
|
-
import { PsqlLaborTicketOperations } from "./internal/psql-labor-ticket-operations";
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* A class to manage interactions with PSQL (Pervasive) databases via ODBC
|
|
6
5
|
*/
|
|
7
6
|
export { PsqlService };
|
|
8
7
|
|
|
9
|
-
/**
|
|
10
|
-
* Labor ticket operations for PSQL (Phase 2)
|
|
11
|
-
*/
|
|
12
|
-
export { PsqlLaborTicketOperations };
|
|
13
|
-
|
|
14
8
|
/**
|
|
15
9
|
* Configuration interface for PSQL connections
|
|
16
10
|
*/
|
|
@@ -65,7 +65,7 @@ export class PsqlService {
|
|
|
65
65
|
if (Object.keys(params).length > 0) {
|
|
66
66
|
logger.warn(
|
|
67
67
|
"PsqlService: Query parameters provided but parameter binding not yet implemented. " +
|
|
68
|
-
"Using direct query execution.
|
|
68
|
+
"Using direct query execution."
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
|
package/src/utils/index.ts
CHANGED
|
@@ -15,7 +15,7 @@ export {
|
|
|
15
15
|
* Timezone and time-related utilities
|
|
16
16
|
*/
|
|
17
17
|
export { getTimezoneOffsetAndPersist } from "./time-utils";
|
|
18
|
-
export { formatDateWithTZOffset, convertToLocalTime } from "./timezone";
|
|
18
|
+
export { formatDateWithTZOffset, convertToLocalTime, toISOWithOffset } from "./timezone";
|
|
19
19
|
export { applyTimezoneOffsetsToFields } from "./time-utils";
|
|
20
20
|
export * from "./time-utils";
|
|
21
21
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convertToLocalTime } from "./timezone";
|
|
1
|
+
import { convertToLocalTime, toISOWithOffset } from "./timezone";
|
|
2
2
|
import { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -22,7 +22,7 @@ export function convertLaborTicketToLocalTimezone(
|
|
|
22
22
|
|
|
23
23
|
timeFields.forEach((field) => {
|
|
24
24
|
const localTime = convertToLocalTime(laborTicket[field], timezoneOffset);
|
|
25
|
-
laborTicket[field] = localTime
|
|
25
|
+
laborTicket[field] = localTime ? toISOWithOffset(localTime, timezoneOffset) : null;
|
|
26
26
|
});
|
|
27
27
|
return laborTicket;
|
|
28
28
|
}
|
package/src/utils/timezone.ts
CHANGED
|
@@ -94,3 +94,31 @@ export const formatDateWithTZOffset = (
|
|
|
94
94
|
// Append the timezone offset
|
|
95
95
|
return `${isoDate}${sign}${hours}:${minutes}`;
|
|
96
96
|
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Formats a Date object as an ISO string with the specified timezone offset
|
|
100
|
+
* @param date The Date object to format (should be a Date that has been shifted by convertToLocalTime)
|
|
101
|
+
* @param timezoneOffset The timezone offset in hours
|
|
102
|
+
* @returns ISO string with offset in format: YYYY-MM-DDTHH:mm:ss.SSS±HH:MM
|
|
103
|
+
*/
|
|
104
|
+
export const toISOWithOffset = (date: Date, timezoneOffset: number): string => {
|
|
105
|
+
const sign = timezoneOffset >= 0 ? "+" : "-";
|
|
106
|
+
const abs = Math.abs(timezoneOffset);
|
|
107
|
+
const hours = Math.floor(abs);
|
|
108
|
+
const minutes = Math.round((abs - hours) * 60);
|
|
109
|
+
const pad2 = (n: number) => n.toString().padStart(2, "0");
|
|
110
|
+
const pad3 = (n: number) => n.toString().padStart(3, "0");
|
|
111
|
+
|
|
112
|
+
// Use UTC getters since convertToLocalTime shifts the Date's internal timestamp
|
|
113
|
+
// The UTC components of the shifted Date represent the local wall time
|
|
114
|
+
const yyyy = date.getUTCFullYear();
|
|
115
|
+
const MM = pad2(date.getUTCMonth() + 1);
|
|
116
|
+
const dd = pad2(date.getUTCDate());
|
|
117
|
+
const HH = pad2(date.getUTCHours());
|
|
118
|
+
const mm = pad2(date.getUTCMinutes());
|
|
119
|
+
const ss = pad2(date.getUTCSeconds());
|
|
120
|
+
const SSS = pad3(date.getUTCMilliseconds());
|
|
121
|
+
const off = `${sign}${pad2(hours)}:${pad2(minutes)}`;
|
|
122
|
+
|
|
123
|
+
return `${yyyy}-${MM}-${dd}T${HH}:${mm}:${ss}.${SSS}${off}`;
|
|
124
|
+
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const PsqlConfigSchema: z.ZodObject<{
|
|
3
|
-
host: z.ZodString;
|
|
4
|
-
port: z.ZodString;
|
|
5
|
-
database: z.ZodString;
|
|
6
|
-
username: z.ZodString;
|
|
7
|
-
password: z.ZodString;
|
|
8
|
-
connectionTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
9
|
-
requestTimeout: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
10
|
-
}, "strip", z.ZodTypeAny, {
|
|
11
|
-
password: string;
|
|
12
|
-
database: string;
|
|
13
|
-
port: string;
|
|
14
|
-
connectionTimeout: string;
|
|
15
|
-
requestTimeout: string;
|
|
16
|
-
host: string;
|
|
17
|
-
username: string;
|
|
18
|
-
}, {
|
|
19
|
-
password: string;
|
|
20
|
-
database: string;
|
|
21
|
-
port: string;
|
|
22
|
-
host: string;
|
|
23
|
-
username: string;
|
|
24
|
-
connectionTimeout?: string | undefined;
|
|
25
|
-
requestTimeout?: string | undefined;
|
|
26
|
-
}>;
|
|
27
|
-
export type PsqlConfig = z.infer<typeof PsqlConfigSchema>;
|
|
28
|
-
//# sourceMappingURL=psql-config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"psql-config.d.ts","sourceRoot":"","sources":["../../../../src/services/psql-erp-service/internal/psql-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;EAQ3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PSQL Labor Ticket Operations
|
|
3
|
-
*
|
|
4
|
-
* Phase 2: This will handle INSERT/UPDATE/DELETE operations for labor tickets
|
|
5
|
-
* Phase 1: Placeholder - throws errors if called
|
|
6
|
-
*/
|
|
7
|
-
import { PsqlService } from "../psql-service";
|
|
8
|
-
import { MMReceiveLaborTicket } from "../../../services/mm-api-service";
|
|
9
|
-
export declare class PsqlLaborTicketOperations {
|
|
10
|
-
private service;
|
|
11
|
-
constructor(service: PsqlService);
|
|
12
|
-
/**
|
|
13
|
-
* Create labor ticket in START_LABOR table
|
|
14
|
-
*
|
|
15
|
-
* Phase 2 Implementation Notes:
|
|
16
|
-
* - Will use prepared statements with parameter binding
|
|
17
|
-
* - Insert into START_LABOR table
|
|
18
|
-
* - Return GUID as erpUid
|
|
19
|
-
*
|
|
20
|
-
* @param laborTicket Labor ticket from MachineMetrics
|
|
21
|
-
* @returns Labor ticket and ERP unique ID
|
|
22
|
-
*/
|
|
23
|
-
createLaborTicket(laborTicket: MMReceiveLaborTicket): Promise<{
|
|
24
|
-
laborTicket: MMReceiveLaborTicket;
|
|
25
|
-
erpUid: string;
|
|
26
|
-
}>;
|
|
27
|
-
/**
|
|
28
|
-
* Update labor ticket (move from START_LABOR to COMPLETED_LABOR)
|
|
29
|
-
*
|
|
30
|
-
* Phase 2 Implementation Notes:
|
|
31
|
-
* - Insert into COMPLETED_LABOR
|
|
32
|
-
* - Delete from START_LABOR
|
|
33
|
-
* - Should be done in a transaction
|
|
34
|
-
*
|
|
35
|
-
* @param laborTicket Labor ticket to update
|
|
36
|
-
* @returns Updated labor ticket
|
|
37
|
-
*/
|
|
38
|
-
updateLaborTicket(laborTicket: MMReceiveLaborTicket): Promise<MMReceiveLaborTicket>;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=psql-labor-ticket-operations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"psql-labor-ticket-operations.d.ts","sourceRoot":"","sources":["../../../../src/services/psql-erp-service/internal/psql-labor-ticket-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,qBAAa,yBAAyB;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW;IAExC;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC;QAAE,WAAW,EAAE,oBAAoB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IASjE;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,WAAW,EAAE,oBAAoB,GAChC,OAAO,CAAC,oBAAoB,CAAC;CAQjC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
export const PsqlConfigSchema = z.object({
|
|
4
|
-
host: z.string().nonempty("Host is required."),
|
|
5
|
-
port: z.string().nonempty("Port is required."),
|
|
6
|
-
database: z.string().nonempty("Database name is required."),
|
|
7
|
-
username: z.string().nonempty("Username is required."),
|
|
8
|
-
password: z.string().nonempty("Password is required."),
|
|
9
|
-
connectionTimeout: z.string().optional().default("15000"),
|
|
10
|
-
requestTimeout: z.string().optional().default("15000"),
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
export type PsqlConfig = z.infer<typeof PsqlConfigSchema>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* PSQL Labor Ticket Operations
|
|
3
|
-
*
|
|
4
|
-
* Phase 2: This will handle INSERT/UPDATE/DELETE operations for labor tickets
|
|
5
|
-
* Phase 1: Placeholder - throws errors if called
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { PsqlService } from "../psql-service";
|
|
9
|
-
import { MMReceiveLaborTicket } from "../../../services/mm-api-service";
|
|
10
|
-
import logger from "../../reporting-service/logger";
|
|
11
|
-
|
|
12
|
-
export class PsqlLaborTicketOperations {
|
|
13
|
-
constructor(private service: PsqlService) {}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Create labor ticket in START_LABOR table
|
|
17
|
-
*
|
|
18
|
-
* Phase 2 Implementation Notes:
|
|
19
|
-
* - Will use prepared statements with parameter binding
|
|
20
|
-
* - Insert into START_LABOR table
|
|
21
|
-
* - Return GUID as erpUid
|
|
22
|
-
*
|
|
23
|
-
* @param laborTicket Labor ticket from MachineMetrics
|
|
24
|
-
* @returns Labor ticket and ERP unique ID
|
|
25
|
-
*/
|
|
26
|
-
async createLaborTicket(
|
|
27
|
-
laborTicket: MMReceiveLaborTicket
|
|
28
|
-
): Promise<{ laborTicket: MMReceiveLaborTicket; erpUid: string }> {
|
|
29
|
-
logger.warn(
|
|
30
|
-
"PsqlLaborTicketOperations.createLaborTicket not yet implemented (Phase 2)"
|
|
31
|
-
);
|
|
32
|
-
throw new Error(
|
|
33
|
-
"Labor ticket creation not implemented for PSQL. This is a Phase 2 feature."
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Update labor ticket (move from START_LABOR to COMPLETED_LABOR)
|
|
39
|
-
*
|
|
40
|
-
* Phase 2 Implementation Notes:
|
|
41
|
-
* - Insert into COMPLETED_LABOR
|
|
42
|
-
* - Delete from START_LABOR
|
|
43
|
-
* - Should be done in a transaction
|
|
44
|
-
*
|
|
45
|
-
* @param laborTicket Labor ticket to update
|
|
46
|
-
* @returns Updated labor ticket
|
|
47
|
-
*/
|
|
48
|
-
async updateLaborTicket(
|
|
49
|
-
laborTicket: MMReceiveLaborTicket
|
|
50
|
-
): Promise<MMReceiveLaborTicket> {
|
|
51
|
-
logger.warn(
|
|
52
|
-
"PsqlLaborTicketOperations.updateLaborTicket not yet implemented (Phase 2)"
|
|
53
|
-
);
|
|
54
|
-
throw new Error(
|
|
55
|
-
"Labor ticket update not implemented for PSQL. This is a Phase 2 feature."
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
}
|