law-common 9.1.3-beta.5 → 9.1.4

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.
@@ -1,5 +1,5 @@
1
- import { IEntityCreateDto, ILeaveEntity, LeaveStatusEnum } from "../../entities";
1
+ import { IEntityCreateDto, ILeaveDtoInclude, ILeaveEntity, LeaveStatusEnum } from "../../entities";
2
2
  export type ILeaveExclude = "status";
3
- export interface ILeaveCreateDto extends Omit<IEntityCreateDto<ILeaveEntity>, ILeaveExclude> {
3
+ export interface ILeaveCreateDto extends Omit<IEntityCreateDto<ILeaveEntity>, ILeaveExclude>, ILeaveDtoInclude {
4
4
  status?: LeaveStatusEnum;
5
5
  }
@@ -1,8 +1,8 @@
1
- import { IEntityUpdateDto, ILeaveEntity, LeaveActionEnum } from "../../entities";
1
+ import { IEntityUpdateDto, ILeaveDtoInclude, ILeaveEntity, LeaveActionEnum } from "../../entities";
2
2
  export interface ILeaveActionDataDto {
3
3
  action: LeaveActionEnum;
4
4
  remark?: string;
5
5
  }
6
- export interface ILeaveUpdateDto extends IEntityUpdateDto<ILeaveEntity> {
6
+ export interface ILeaveUpdateDto extends IEntityUpdateDto<ILeaveEntity>, Partial<ILeaveDtoInclude> {
7
7
  actionData?: ILeaveActionDataDto;
8
8
  }
@@ -3,3 +3,4 @@ export declare const timesheetThreshold = "timesheetThreshold";
3
3
  export declare const timesheetEnterThreshold = "timesheetEnterThreshold";
4
4
  export declare const timesheetMinimumTotalDuration = 15;
5
5
  export declare const reimbursementPaymentProcessorPermissionName = "REIMBURSEMENT_PAYMENT_PROCESSOR";
6
+ export declare const leaveImplicitDays: string[];
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.reimbursementPaymentProcessorPermissionName = exports.timesheetMinimumTotalDuration = exports.timesheetEnterThreshold = exports.timesheetThreshold = exports.timesheetViewThreshold = void 0;
3
+ exports.leaveImplicitDays = exports.reimbursementPaymentProcessorPermissionName = exports.timesheetMinimumTotalDuration = exports.timesheetEnterThreshold = exports.timesheetThreshold = exports.timesheetViewThreshold = void 0;
4
4
  exports.timesheetViewThreshold = "timesheetViewThreshold";
5
5
  exports.timesheetThreshold = "timesheetThreshold";
6
6
  exports.timesheetEnterThreshold = "timesheetEnterThreshold";
7
7
  exports.timesheetMinimumTotalDuration = 15;
8
8
  exports.reimbursementPaymentProcessorPermissionName = "REIMBURSEMENT_PAYMENT_PROCESSOR";
9
+ exports.leaveImplicitDays = ["Saturday", "Sunday"];
@@ -0,0 +1,16 @@
1
+ export declare enum LeaveTypeEnum {
2
+ FIRST = "first",
3
+ SECOND = "second",
4
+ FULL = "full",
5
+ FULL_FIRST = "full_first",
6
+ SECOND_FULL = "second_full",
7
+ SECOND_FIRST = "second_first"
8
+ }
9
+ export declare namespace LeaveTypeEnum {
10
+ function getDropdownLabel(action: LeaveTypeEnum): string;
11
+ function getLeaveTypeFromStartEnd(from: LeaveTypeEnum, to?: LeaveTypeEnum): LeaveTypeEnum;
12
+ function getStartEndFromLeaveType(type: LeaveTypeEnum): {
13
+ fromType: LeaveTypeEnum;
14
+ toType: LeaveTypeEnum;
15
+ };
16
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LeaveTypeEnum = void 0;
4
+ const error_key_enum_1 = require("../../enums/error.key.enum");
5
+ const exceptions_1 = require("../../exceptions");
6
+ var LeaveTypeEnum;
7
+ (function (LeaveTypeEnum) {
8
+ LeaveTypeEnum["FIRST"] = "first";
9
+ LeaveTypeEnum["SECOND"] = "second";
10
+ LeaveTypeEnum["FULL"] = "full";
11
+ LeaveTypeEnum["FULL_FIRST"] = "full_first";
12
+ LeaveTypeEnum["SECOND_FULL"] = "second_full";
13
+ LeaveTypeEnum["SECOND_FIRST"] = "second_first";
14
+ })(LeaveTypeEnum || (exports.LeaveTypeEnum = LeaveTypeEnum = {}));
15
+ (function (LeaveTypeEnum) {
16
+ const typeLabelMap = {
17
+ [LeaveTypeEnum.FIRST]: "First Half",
18
+ [LeaveTypeEnum.SECOND]: "Second Half",
19
+ [LeaveTypeEnum.FULL]: "Full Day",
20
+ };
21
+ function getDropdownLabel(action) {
22
+ if (!Object.values(LeaveTypeEnum).includes(action)) {
23
+ throw new exceptions_1.AppBadRequestException({
24
+ key: error_key_enum_1.ErrorKeyEnum.LEAVE_TYPE,
25
+ message: ["Invalid type value"],
26
+ });
27
+ }
28
+ const label = typeLabelMap[action];
29
+ if (!label) {
30
+ throw new exceptions_1.AppBadRequestException({
31
+ key: error_key_enum_1.ErrorKeyEnum.LEAVE_TYPE,
32
+ message: ["Invalid type value"],
33
+ });
34
+ }
35
+ return label;
36
+ }
37
+ LeaveTypeEnum.getDropdownLabel = getDropdownLabel;
38
+ function getLeaveTypeFromStartEnd(from, to) {
39
+ if (!to || from === to)
40
+ return from;
41
+ if (from === LeaveTypeEnum.FULL && to === LeaveTypeEnum.FIRST)
42
+ return LeaveTypeEnum.FULL_FIRST;
43
+ if (from === LeaveTypeEnum.SECOND && to === LeaveTypeEnum.FULL)
44
+ return LeaveTypeEnum.SECOND_FULL;
45
+ if (from === LeaveTypeEnum.SECOND && to === LeaveTypeEnum.FIRST)
46
+ return LeaveTypeEnum.SECOND_FIRST;
47
+ throw new Error(`Invalid leave type: ${from} + ${to}`);
48
+ }
49
+ LeaveTypeEnum.getLeaveTypeFromStartEnd = getLeaveTypeFromStartEnd;
50
+ function getStartEndFromLeaveType(type) {
51
+ switch (type) {
52
+ case LeaveTypeEnum.FIRST:
53
+ return {
54
+ fromType: LeaveTypeEnum.FIRST,
55
+ toType: LeaveTypeEnum.FIRST,
56
+ };
57
+ case LeaveTypeEnum.SECOND:
58
+ return {
59
+ fromType: LeaveTypeEnum.SECOND,
60
+ toType: LeaveTypeEnum.SECOND,
61
+ };
62
+ case LeaveTypeEnum.FULL:
63
+ return {
64
+ fromType: LeaveTypeEnum.FULL,
65
+ toType: LeaveTypeEnum.FULL,
66
+ };
67
+ case LeaveTypeEnum.FULL_FIRST:
68
+ return {
69
+ fromType: LeaveTypeEnum.FULL,
70
+ toType: LeaveTypeEnum.FIRST,
71
+ };
72
+ case LeaveTypeEnum.SECOND_FULL:
73
+ return {
74
+ fromType: LeaveTypeEnum.SECOND,
75
+ toType: LeaveTypeEnum.FULL,
76
+ };
77
+ case LeaveTypeEnum.SECOND_FIRST:
78
+ return {
79
+ fromType: LeaveTypeEnum.SECOND,
80
+ toType: LeaveTypeEnum.FIRST,
81
+ };
82
+ default:
83
+ throw new Error(`Invalid LeaveTypeEnum: ${type}`);
84
+ }
85
+ }
86
+ LeaveTypeEnum.getStartEndFromLeaveType = getStartEndFromLeaveType;
87
+ })(LeaveTypeEnum || (exports.LeaveTypeEnum = LeaveTypeEnum = {}));
@@ -65,3 +65,4 @@ export * from "./interface/country.entity.interface";
65
65
  export * from "./enums/billing_invoice_type.enum";
66
66
  export * from "./interface/billing_timesheet.entity.interface";
67
67
  export * from "./interface/intermediary_bank.entity.interface";
68
+ export * from "./enums/leave-type.enum";
@@ -82,3 +82,4 @@ __exportStar(require("./interface/country.entity.interface"), exports);
82
82
  __exportStar(require("./enums/billing_invoice_type.enum"), exports);
83
83
  __exportStar(require("./interface/billing_timesheet.entity.interface"), exports);
84
84
  __exportStar(require("./interface/intermediary_bank.entity.interface"), exports);
85
+ __exportStar(require("./enums/leave-type.enum"), exports);
@@ -75,6 +75,14 @@ export declare enum EntityEnum {
75
75
  export type EntityRelations = {
76
76
  [K in EntityEnum]: K;
77
77
  };
78
+ export type ISearchIncludeEntity<T extends EntityEnum> = {
79
+ name: T;
80
+ relations?: ISearchIncludeEntity<EntityRelations[EntityEnum]>[];
81
+ entities?: ISearchIncludeEntity<EntityRelations[EntityEnum]>[];
82
+ columnkeys?: EntityKeyType<EntityRelations[T]>[];
83
+ mappingProperties?: EntityKeyType<T>[];
84
+ searchProperty?: EntityKeyType<T>;
85
+ };
78
86
  export type IEntityServiceResponse = {
79
87
  [K in EntityEnum]?: IBaseEntityServiceResponse<EntityKeyType<K>>;
80
88
  };
@@ -133,17 +141,6 @@ export type IEntityFilterData<T extends EnumEntityType<EntityEnum>> = ConvertToA
133
141
  entities?: ISearchIncludeEntity<EntityEnum>[];
134
142
  columnKeys?: (keyof T)[];
135
143
  };
136
- export type ISearchIncludeEntity<T extends EntityEnum> = {
137
- name: T;
138
- relations?: ISearchIncludeEntity<EntityRelations[EntityEnum]>[];
139
- entities?: ISearchIncludeEntity<EntityRelations[EntityEnum]>[];
140
- columnKeys?: EntityKeyType<EntityRelations[T]>[];
141
- mappingProperties?: EntityKeyType<T>[];
142
- searchProperty?: EntityKeyType<T>;
143
- include?: {
144
- [key in keyof EnumEntityType<EntityRelations[T]>]?: EnumEntityType<EntityRelations[T]>[key][];
145
- };
146
- };
147
144
  export type IEntityHistoryParsed = {
148
145
  parsedData: any;
149
146
  id: number;
@@ -1,13 +1,26 @@
1
+ import { LeaveTypeEnum } from "../enums/leave-type.enum";
1
2
  import { LeaveStatusEnum } from "../enums/leave.status.enum";
2
3
  import { IAuditColumnEntity } from "./audit-column.entity.interface";
3
4
  import { IEntityFilterData } from "./entity.utils.interface";
5
+ import { IUserEntity } from "./user.entity.interface";
4
6
  export interface ILeaveEntity extends IAuditColumnEntity {
5
7
  id: number;
6
8
  employeeId: number;
7
9
  fromDate: string;
8
10
  toDate: string;
9
11
  reason: string;
12
+ type: LeaveTypeEnum;
10
13
  status: LeaveStatusEnum;
11
14
  remark?: string;
12
15
  }
13
16
  export type ILeaveEntityFilterData = IEntityFilterData<ILeaveEntity>;
17
+ export interface ILeaveDtoInclude {
18
+ fromType: LeaveTypeEnum;
19
+ toType?: LeaveTypeEnum;
20
+ }
21
+ export interface ILeaveEntityCreateDtoValidationData {
22
+ userEntity: IUserEntity;
23
+ }
24
+ export interface ILeaveEntityUpdateDtoValidationData extends ILeaveEntityCreateDtoValidationData {
25
+ leaveEntity: ILeaveEntity;
26
+ }
@@ -17,6 +17,7 @@ export declare enum ErrorKeyEnum {
17
17
  LEAVE_FLOW = "LEAVE_FLOW",
18
18
  LEAVE_KEY = "LEAVE_KEY",
19
19
  LEAVE_FLOW_ACTION = "LEAVE_FLOW_ACTION",
20
+ LEAVE_TYPE = "LEAVE_TYPE",
20
21
  WORK_FROM_HOME_FLOW_ACTION = "WORK_FROM_HOME_FLOW_ACTION",
21
22
  WORK_FROM_HOME_STATUS = "WORK_FROM_HOME_STATUS",
22
23
  WORK_FROM_HOME_FLOW = "WORK_FROM_HOME_FLOW",
@@ -21,6 +21,7 @@ var ErrorKeyEnum;
21
21
  ErrorKeyEnum["LEAVE_FLOW"] = "LEAVE_FLOW";
22
22
  ErrorKeyEnum["LEAVE_KEY"] = "LEAVE_KEY";
23
23
  ErrorKeyEnum["LEAVE_FLOW_ACTION"] = "LEAVE_FLOW_ACTION";
24
+ ErrorKeyEnum["LEAVE_TYPE"] = "LEAVE_TYPE";
24
25
  ErrorKeyEnum["WORK_FROM_HOME_FLOW_ACTION"] = "WORK_FROM_HOME_FLOW_ACTION";
25
26
  ErrorKeyEnum["WORK_FROM_HOME_STATUS"] = "WORK_FROM_HOME_STATUS";
26
27
  ErrorKeyEnum["WORK_FROM_HOME_FLOW"] = "WORK_FROM_HOME_FLOW";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "law-common",
3
- "version": "9.1.3-beta.5",
3
+ "version": "9.1.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [