@acorex-platform/module-timesheet-management-client 0.0.53 → 0.0.56
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/fesm2022/{acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs → acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs} +3 -3
- package/fesm2022/acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs → acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs → acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs → acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs → acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs → acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs} +3 -3
- package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs → acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs → acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs → acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs} +2 -2
- package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-timesheet-management-client.mjs +18 -18
- package/i18n/en-AU/timesheet-management.json +263 -0
- package/i18n/en-US/timesheet-management.json +263 -0
- package/i18n/fa-IR/timesheet-management.json +263 -0
- package/package.json +1 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-8lA7h4rI.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-DlAeGANo.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-create-time-entry.command-DS2EVLym.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-delete-time-entry.command-5_ItHpnx.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-D7V7SWUK.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-CONxKPNm.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-DRr_c67L.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-C2qlQVIC.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-timesheet-management-client-update-time-entry.command-Do6s9OrI.mjs.map +0 -1
|
@@ -20,14 +20,14 @@ class AdminAdjustTimesheetPeriodCommand {
|
|
|
20
20
|
async execute(input) {
|
|
21
21
|
try {
|
|
22
22
|
if (isEmpty(input.adjustmentNote?.trim())) {
|
|
23
|
-
return { success: false, message: { text: '
|
|
23
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.adjustment-note-required' } };
|
|
24
24
|
}
|
|
25
25
|
const dataAccessor = this.entityService
|
|
26
26
|
.withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)
|
|
27
27
|
.data();
|
|
28
28
|
const period = await dataAccessor.byKey(input.id);
|
|
29
29
|
if (!period) {
|
|
30
|
-
return { success: false, message: { text: '
|
|
30
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
31
31
|
}
|
|
32
32
|
this.validationService.assertCanAdminAdjust(period);
|
|
33
33
|
const updateData = {
|
|
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
54
54
|
}] });
|
|
55
55
|
|
|
56
56
|
export { AdminAdjustTimesheetPeriodCommand };
|
|
57
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-
|
|
57
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/admin-adjust-timesheet-period.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface AdminAdjustTimesheetPeriodInput {\n id: string;\n totalSeconds?: number;\n adjustmentNote: string;\n}\n\n//#endregion\n\n/**\n * Applies an administrative adjustment to an approved or locked timesheet period.\n */\n@Injectable({ providedIn: 'root' })\nexport class AdminAdjustTimesheetPeriodCommand implements AXPCommand<AdminAdjustTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: AdminAdjustTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n if (isEmpty(input.adjustmentNote?.trim())) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.adjustment-note-required' } };\n }\n\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanAdminAdjust(period);\n\n const updateData: Partial<AXMTimesheetManagementTimesheetPeriodEntityModel> = {\n rejectionReason: input.adjustmentNote.trim(),\n };\n\n if (input.totalSeconds != null) {\n updateData.totalSeconds = input.totalSeconds;\n }\n\n await dataAccessor.update(input.id, updateData);\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to adjust timesheet period.';\n console.error('[AdminAdjustTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAkBA;AAEA;;AAEG;MAEU,iCAAiC,CAAA;AAD9C,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA0C3E,IAAA;;;IApCC,MAAM,OAAO,CAAC,KAAsC,EAAA;AAClD,QAAA,IAAI;YACF,IAAI,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE;AACzC,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,0EAA0E,EAAE,EAAE;YAC1H;AAEA,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,MAAM,CAAC;AAEnD,YAAA,MAAM,UAAU,GAA8D;AAC5E,gBAAA,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE;aAC7C;AAED,YAAA,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE;AAC9B,gBAAA,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY;YAC9C;YAEA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC;AAE/C,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAClE,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GA3CW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iCAAiC,cADpB,MAAM,EAAA,CAAA,CAAA;;2FACnB,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -26,7 +26,7 @@ class ApproveTimesheetPeriodCommand {
|
|
|
26
26
|
.data();
|
|
27
27
|
const period = await dataAccessor.byKey(input.id);
|
|
28
28
|
if (!period) {
|
|
29
|
-
return { success: false, message: { text: '
|
|
29
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
30
30
|
}
|
|
31
31
|
this.validationService.assertCanApprove(period);
|
|
32
32
|
await dataAccessor.update(input.id, {
|
|
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
51
51
|
}] });
|
|
52
52
|
|
|
53
53
|
export { ApproveTimesheetPeriodCommand };
|
|
54
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-
|
|
54
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/approve-timesheet-period.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface ApproveTimesheetPeriodInput {\n id: string;\n note?: string;\n}\n\n//#endregion\n\n/**\n * Approves a timesheet period that is awaiting approval.\n */\n@Injectable({ providedIn: 'root' })\nexport class ApproveTimesheetPeriodCommand implements AXPCommand<ApproveTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n private readonly sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: ApproveTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanApprove(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Approved,\n approvedAt: new Date().toISOString(),\n approvedById: this.sessionService.user?.id,\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to approve timesheet period.';\n console.error('[ApproveTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;;AAkBA;AAEA;;AAEG;MAEU,6BAA6B,CAAA;AAD1C,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AACzD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAkC5D,IAAA;;;IA5BC,MAAM,OAAO,CAAC,KAAkC,EAAA;AAC9C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAE/C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;AACtC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;AAC3C,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,qCAAqC;AAC9F,YAAA,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC;AAC9D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GApCW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,cADhB,MAAM,EAAA,CAAA,CAAA;;2FACnB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -25,7 +25,7 @@ class CreateTimeEntryCommand {
|
|
|
25
25
|
const id = await dataAccessor.create(input);
|
|
26
26
|
const entity = await dataAccessor.byKey(id);
|
|
27
27
|
if (!entity) {
|
|
28
|
-
return { success: false, message: { text: '
|
|
28
|
+
return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found-after-create' } };
|
|
29
29
|
}
|
|
30
30
|
return { success: true, kind: 'object', data: entity };
|
|
31
31
|
}
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
56
56
|
}] });
|
|
57
57
|
|
|
58
58
|
export { CreateTimeEntryCommand };
|
|
59
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-create-time-entry.command-
|
|
59
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/create-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport type CreateTimeEntryInput = Omit<AXMTimesheetManagementTimeEntryEntityModel, 'id'>;\n\n//#endregion\n\n/**\n * Creates a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class CreateTimeEntryCommand implements AXPCommand<CreateTimeEntryInput, AXMTimesheetManagementTimeEntryEntityModel> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: CreateTimeEntryInput,\n ): AXPCommandExecuteResultPromise<AXMTimesheetManagementTimeEntryEntityModel> {\n try {\n await this.assertPeriodEditable(input.periodId);\n\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const id = await dataAccessor.create(input);\n const entity = await dataAccessor.byKey(id);\n if (!entity) {\n return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found-after-create' } };\n }\n\n return { success: true, kind: 'object', data: entity };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to create time entry.';\n console.error('[CreateTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAcA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA+C3E,IAAA;;;IAzCC,MAAM,OAAO,CACX,KAA2B,EAAA;AAE3B,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC;AAE/C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,EAAE,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kEAAkE,EAAE,EAAE;YAClH;AAEA,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;QACxD;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GAhDW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -23,7 +23,7 @@ class DeleteTimeEntryCommand {
|
|
|
23
23
|
.data();
|
|
24
24
|
const existing = await dataAccessor.byKey(input.id);
|
|
25
25
|
if (!existing) {
|
|
26
|
-
return { success: false, message: { text: '
|
|
26
|
+
return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found' } };
|
|
27
27
|
}
|
|
28
28
|
await this.assertPeriodEditable(existing.periodId);
|
|
29
29
|
await dataAccessor.delete(input.id);
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
56
56
|
}] });
|
|
57
57
|
|
|
58
58
|
export { DeleteTimeEntryCommand };
|
|
59
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-delete-time-entry.command-
|
|
59
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/delete-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface DeleteTimeEntryInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Deletes a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class DeleteTimeEntryCommand implements AXPCommand<DeleteTimeEntryInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: DeleteTimeEntryInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const existing = await dataAccessor.byKey(input.id);\n if (!existing) {\n return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found' } };\n }\n\n await this.assertPeriodEditable(existing.periodId);\n await dataAccessor.delete(input.id);\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to delete time entry.';\n console.error('[DeleteTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAgBA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AA6C3E,IAAA;;;IAvCC,MAAM,OAAO,CAAC,KAA2B,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,qDAAqD,EAAE,EAAE;YACrG;YAEA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAClD,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAEnC,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GA9CW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -23,7 +23,7 @@ class LockTimesheetPeriodCommand {
|
|
|
23
23
|
.data();
|
|
24
24
|
const period = await dataAccessor.byKey(input.id);
|
|
25
25
|
if (!period) {
|
|
26
|
-
return { success: false, message: { text: '
|
|
26
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
27
27
|
}
|
|
28
28
|
this.validationService.assertCanLock(period);
|
|
29
29
|
await dataAccessor.update(input.id, {
|
|
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
47
47
|
}] });
|
|
48
48
|
|
|
49
49
|
export { LockTimesheetPeriodCommand };
|
|
50
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-
|
|
50
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/lock-timesheet-period.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { AXMTimesheetPeriodLockedStatusId, RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface LockTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Locks an approved timesheet period to prevent further edits.\n */\n@Injectable({ providedIn: 'root' })\nexport class LockTimesheetPeriodCommand implements AXPCommand<LockTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: LockTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanLock(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXMTimesheetPeriodLockedStatusId,\n lockedAt: new Date().toISOString(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to lock timesheet period.';\n console.error('[LockTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAeA;AAEA;;AAEG;MAEU,0BAA0B,CAAA;AADvC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAiC3E,IAAA;;;IA3BC,MAAM,OAAO,CAAC,KAA+B,EAAA;AAC3C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC;AAE5C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;AAClC,gBAAA,QAAQ,EAAE,gCAAgC;AAC1C,gBAAA,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACnC,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,kCAAkC;AAC3F,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAlCW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -25,11 +25,11 @@ class RejectTimesheetPeriodCommand {
|
|
|
25
25
|
.data();
|
|
26
26
|
const period = await dataAccessor.byKey(input.id);
|
|
27
27
|
if (!period) {
|
|
28
|
-
return { success: false, message: { text: '
|
|
28
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
29
29
|
}
|
|
30
30
|
this.validationService.assertCanReject(period);
|
|
31
31
|
if (isEmpty(input.rejectionReason?.trim())) {
|
|
32
|
-
return { success: false, message: { text: '
|
|
32
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.rejection-reason-required' } };
|
|
33
33
|
}
|
|
34
34
|
await dataAccessor.update(input.id, {
|
|
35
35
|
statusId: AXPSystemStatusType.Rejected,
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
53
53
|
}] });
|
|
54
54
|
|
|
55
55
|
export { RejectTimesheetPeriodCommand };
|
|
56
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-
|
|
56
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reject-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface RejectTimesheetPeriodInput {\n id: string;\n rejectionReason?: string;\n}\n\n//#endregion\n\n/**\n * Rejects a timesheet period that is awaiting approval.\n */\n@Injectable({ providedIn: 'root' })\nexport class RejectTimesheetPeriodCommand implements AXPCommand<RejectTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: RejectTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanReject(period);\n\n if (isEmpty(input.rejectionReason?.trim())) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.rejection-reason-required' } };\n }\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Rejected,\n rejectedAt: new Date().toISOString(),\n rejectionReason: input.rejectionReason?.trim(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reject timesheet period.';\n console.error('[RejectTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;;AAmBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;YAE9C,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE;AAC1C,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2EAA2E,EAAE,EAAE;YAC3H;AAEA,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;AACtC,gBAAA,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACpC,gBAAA,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE;AAC/C,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -24,7 +24,7 @@ class ReopenTimesheetPeriodCommand {
|
|
|
24
24
|
.data();
|
|
25
25
|
const period = await dataAccessor.byKey(input.id);
|
|
26
26
|
if (!period) {
|
|
27
|
-
return { success: false, message: { text: '
|
|
27
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
28
28
|
}
|
|
29
29
|
this.validationService.assertCanReopen(period);
|
|
30
30
|
await dataAccessor.update(input.id, {
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
53
53
|
}] });
|
|
54
54
|
|
|
55
55
|
export { ReopenTimesheetPeriodCommand };
|
|
56
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-
|
|
56
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/reopen-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface ReopenTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Reopens a rejected or approved timesheet period back to draft.\n */\n@Injectable({ providedIn: 'root' })\nexport class ReopenTimesheetPeriodCommand implements AXPCommand<ReopenTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: ReopenTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanReopen(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.Draft,\n submittedAt: undefined,\n approvedAt: undefined,\n approvedById: undefined,\n rejectedAt: undefined,\n rejectionReason: undefined,\n lockedAt: undefined,\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to reopen timesheet period.';\n console.error('[ReopenTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAiBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAsC3E,IAAA;;;IAhCC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;AAE9C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,KAAK;AACnC,gBAAA,WAAW,EAAE,SAAS;AACtB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAvCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -24,7 +24,7 @@ class SubmitTimesheetPeriodCommand {
|
|
|
24
24
|
.data();
|
|
25
25
|
const period = await dataAccessor.byKey(input.id);
|
|
26
26
|
if (!period) {
|
|
27
|
-
return { success: false, message: { text: '
|
|
27
|
+
return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };
|
|
28
28
|
}
|
|
29
29
|
this.validationService.assertCanSubmit(period);
|
|
30
30
|
await dataAccessor.update(input.id, {
|
|
@@ -48,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
48
48
|
}] });
|
|
49
49
|
|
|
50
50
|
export { SubmitTimesheetPeriodCommand };
|
|
51
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-
|
|
51
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/timesheet-period/commands/submit-timesheet-period.command.ts"],"sourcesContent":["\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult, AXPSystemStatusType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface SubmitTimesheetPeriodInput {\n id: string;\n}\n\n//#endregion\n\n/**\n * Submits a draft timesheet period for approval.\n */\n@Injectable({ providedIn: 'root' })\nexport class SubmitTimesheetPeriodCommand implements AXPCommand<SubmitTimesheetPeriodInput, void> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(input: SubmitTimesheetPeriodInput): AXPCommandExecuteResultPromise<void> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await dataAccessor.byKey(input.id);\n if (!period) {\n return { success: false, message: { text: '@timesheet-management:commands.timesheet-period.not-found' } };\n }\n\n this.validationService.assertCanSubmit(period);\n\n await dataAccessor.update(input.id, {\n statusId: AXPSystemStatusType.WaitingApproval,\n submittedAt: new Date().toISOString(),\n });\n\n return { success: true, kind: 'object', data: undefined };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to submit timesheet period.';\n console.error('[SubmitTimesheetPeriodCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAiBA;AAEA;;AAEG;MAEU,4BAA4B,CAAA;AADzC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAiC3E,IAAA;;;IA3BC,MAAM,OAAO,CAAC,KAAiC,EAAA;AAC7C,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,iBAAA,IAAI,EAA4D;YAEnE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2DAA2D,EAAE,EAAE;YAC3G;AAEA,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC;AAE9C,YAAA,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAClC,QAAQ,EAAE,mBAAmB,CAAC,eAAe;AAC7C,gBAAA,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AACtC,aAAA,CAAC;AAEF,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3D;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,oCAAoC;AAC7F,YAAA,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC;AAC7D,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;8GAlCW,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -23,7 +23,7 @@ class UpdateTimeEntryCommand {
|
|
|
23
23
|
.data();
|
|
24
24
|
const existing = await dataAccessor.byKey(input.id);
|
|
25
25
|
if (!existing) {
|
|
26
|
-
return { success: false, message: { text: '
|
|
26
|
+
return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found' } };
|
|
27
27
|
}
|
|
28
28
|
const periodId = input.data.periodId ?? existing.periodId;
|
|
29
29
|
await this.assertPeriodEditable(periodId);
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
57
57
|
}] });
|
|
58
58
|
|
|
59
59
|
export { UpdateTimeEntryCommand };
|
|
60
|
-
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-update-time-entry.command-
|
|
60
|
+
//# sourceMappingURL=acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs","sources":["../../../../libs/modules/timesheet-management/client/src/lib/features/time-entry/commands/update-time-entry.command.ts"],"sourcesContent":["import { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport { AXPRuntimeCommandResult } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\n\nimport { Injectable, inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimeEntryEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport type { AXMTimesheetManagementTimesheetPeriodEntityModel } from '@acorex-platform/module-timesheet-management-client/contracts';\nimport { AXMTimesheetValidationService } from '../../timesheet-period/timesheet-validation.service';\n\n//#region ---- Types ----\n\nexport interface UpdateTimeEntryInput {\n id: string;\n data: Partial<Omit<AXMTimesheetManagementTimeEntryEntityModel, 'id'>>;\n}\n\n//#endregion\n\n/**\n * Updates a time entry after validating the parent timesheet period is editable.\n */\n@Injectable({ providedIn: 'root' })\nexport class UpdateTimeEntryCommand implements AXPCommand<UpdateTimeEntryInput, AXMTimesheetManagementTimeEntryEntityModel> {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly validationService = inject(AXMTimesheetValidationService);\n\n //#endregion\n\n //#region ---- Command Implementation ----\n\n async execute(\n input: UpdateTimeEntryInput,\n ): AXPCommandExecuteResultPromise<AXMTimesheetManagementTimeEntryEntityModel> {\n try {\n const dataAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timeEntry.name)\n .data<string, AXMTimesheetManagementTimeEntryEntityModel>();\n\n const existing = await dataAccessor.byKey(input.id);\n if (!existing) {\n return { success: false, message: { text: '@timesheet-management:commands.time-entry.not-found' } };\n }\n\n const periodId = input.data.periodId ?? existing.periodId;\n await this.assertPeriodEditable(periodId);\n\n const updated = await dataAccessor.update(input.id, input.data);\n return { success: true, kind: 'object', data: updated };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to update time entry.';\n console.error('[UpdateTimeEntryCommand] Error:', error);\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Private helpers ----\n\n private async assertPeriodEditable(periodId: string): Promise<void> {\n const periodAccessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.timesheetPeriod.name)\n .data<string, AXMTimesheetManagementTimesheetPeriodEntityModel>();\n\n const period = await periodAccessor.byKey(periodId);\n if (!period) {\n throw new Error('Timesheet period not found.');\n }\n this.validationService.assertPeriodAllowsTimeEntryEdits(period);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;AAiBA;AAEA;;AAEG;MAEU,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAgD3E,IAAA;;;IA1CC,MAAM,OAAO,CACX,KAA2B,EAAA;AAE3B,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC;AACvB,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACrE,iBAAA,IAAI,EAAsD;YAE7D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,qDAAqD,EAAE,EAAE;YACrG;YAEA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;AACzD,YAAA,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AAEzC,YAAA,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC;AAC/D,YAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;QACzD;QAAE,OAAO,KAAc,EAAE;AACvB,YAAA,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,8BAA8B;AACvF,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACvD;IACF;;;IAMQ,MAAM,oBAAoB,CAAC,QAAgB,EAAA;AACjD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC;AACzB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI;AAC3E,aAAA,IAAI,EAA4D;QAEnE,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,MAAM,CAAC;IACjE;8GAjDW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;"}
|
|
@@ -661,39 +661,39 @@ class AXMTimesheetManagementModule {
|
|
|
661
661
|
// },
|
|
662
662
|
{
|
|
663
663
|
key: AXMTimesheetManagementCommandKeys.TimeEntryCreate,
|
|
664
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-create-time-entry.command-
|
|
664
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs').then((c) => c.CreateTimeEntryCommand),
|
|
665
665
|
},
|
|
666
666
|
{
|
|
667
667
|
key: AXMTimesheetManagementCommandKeys.TimeEntryUpdate,
|
|
668
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-update-time-entry.command-
|
|
668
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs').then((c) => c.UpdateTimeEntryCommand),
|
|
669
669
|
},
|
|
670
670
|
{
|
|
671
671
|
key: AXMTimesheetManagementCommandKeys.TimeEntryDelete,
|
|
672
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-delete-time-entry.command-
|
|
672
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs').then((c) => c.DeleteTimeEntryCommand),
|
|
673
673
|
},
|
|
674
674
|
{
|
|
675
675
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodSubmit,
|
|
676
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-
|
|
676
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs').then((c) => c.SubmitTimesheetPeriodCommand),
|
|
677
677
|
},
|
|
678
678
|
{
|
|
679
679
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodApprove,
|
|
680
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-
|
|
680
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs').then((c) => c.ApproveTimesheetPeriodCommand),
|
|
681
681
|
},
|
|
682
682
|
{
|
|
683
683
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReject,
|
|
684
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-
|
|
684
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs').then((c) => c.RejectTimesheetPeriodCommand),
|
|
685
685
|
},
|
|
686
686
|
{
|
|
687
687
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReopen,
|
|
688
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-
|
|
688
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs').then((c) => c.ReopenTimesheetPeriodCommand),
|
|
689
689
|
},
|
|
690
690
|
{
|
|
691
691
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodLock,
|
|
692
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-
|
|
692
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs').then((c) => c.LockTimesheetPeriodCommand),
|
|
693
693
|
},
|
|
694
694
|
{
|
|
695
695
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodAdminAdjust,
|
|
696
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-
|
|
696
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs').then((c) => c.AdminAdjustTimesheetPeriodCommand),
|
|
697
697
|
},
|
|
698
698
|
]),
|
|
699
699
|
provideQuerySetups([
|
|
@@ -786,39 +786,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
|
|
|
786
786
|
// },
|
|
787
787
|
{
|
|
788
788
|
key: AXMTimesheetManagementCommandKeys.TimeEntryCreate,
|
|
789
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-create-time-entry.command-
|
|
789
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-create-time-entry.command-DQFyQCD9.mjs').then((c) => c.CreateTimeEntryCommand),
|
|
790
790
|
},
|
|
791
791
|
{
|
|
792
792
|
key: AXMTimesheetManagementCommandKeys.TimeEntryUpdate,
|
|
793
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-update-time-entry.command-
|
|
793
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-update-time-entry.command-CoIUtLAn.mjs').then((c) => c.UpdateTimeEntryCommand),
|
|
794
794
|
},
|
|
795
795
|
{
|
|
796
796
|
key: AXMTimesheetManagementCommandKeys.TimeEntryDelete,
|
|
797
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-delete-time-entry.command-
|
|
797
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-delete-time-entry.command-B1v2woFH.mjs').then((c) => c.DeleteTimeEntryCommand),
|
|
798
798
|
},
|
|
799
799
|
{
|
|
800
800
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodSubmit,
|
|
801
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-
|
|
801
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-submit-timesheet-period.command-DnsUqTIv.mjs').then((c) => c.SubmitTimesheetPeriodCommand),
|
|
802
802
|
},
|
|
803
803
|
{
|
|
804
804
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodApprove,
|
|
805
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-
|
|
805
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-approve-timesheet-period.command-CbWpfp1p.mjs').then((c) => c.ApproveTimesheetPeriodCommand),
|
|
806
806
|
},
|
|
807
807
|
{
|
|
808
808
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReject,
|
|
809
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-
|
|
809
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-reject-timesheet-period.command-BgMbKLEo.mjs').then((c) => c.RejectTimesheetPeriodCommand),
|
|
810
810
|
},
|
|
811
811
|
{
|
|
812
812
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodReopen,
|
|
813
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-
|
|
813
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-reopen-timesheet-period.command-B8FWCCU4.mjs').then((c) => c.ReopenTimesheetPeriodCommand),
|
|
814
814
|
},
|
|
815
815
|
{
|
|
816
816
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodLock,
|
|
817
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-
|
|
817
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-lock-timesheet-period.command-BlUeTrr-.mjs').then((c) => c.LockTimesheetPeriodCommand),
|
|
818
818
|
},
|
|
819
819
|
{
|
|
820
820
|
key: AXMTimesheetManagementCommandKeys.TimesheetPeriodAdminAdjust,
|
|
821
|
-
command: () => import('./acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-
|
|
821
|
+
command: () => import('./acorex-platform-module-timesheet-management-client-admin-adjust-timesheet-period.command-BYDzzIT7.mjs').then((c) => c.AdminAdjustTimesheetPeriodCommand),
|
|
822
822
|
},
|
|
823
823
|
]),
|
|
824
824
|
provideQuerySetups([
|