phx-node 1.0.79 → 1.0.80

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,10 @@
1
1
  import { PHXGrpcClientSystemService } from "../grpc-client/grpc-client-system.service";
2
2
  import { PayloadGetDepartmentManager } from "src/lib/types/department-manager";
3
+ export interface Department {
4
+ id: number;
5
+ name: string;
6
+ department_manager_id: number;
7
+ }
3
8
  export declare class DepartmentManagerService {
4
9
  private readonly grpcClientSystemService;
5
10
  constructor(grpcClientSystemService: PHXGrpcClientSystemService);
@@ -1 +1 @@
1
- {"version":3,"file":"department-manager.service.js","sourceRoot":"","sources":["../../../src/module/department-manager/department-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,0FAAuF;AAQvF,gEAG4C;AAGrC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YACmB,uBAAmD;QAAnD,4BAAuB,GAAvB,uBAAuB,CAA4B;IACnE,CAAC;IAEU,mBAAmB,CAC/B,OAAoC;;YAEpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YACtC,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;gBAC9D,KAAK,EAAE,+BAAuB;gBAC9B,SAAS,EAAE,EAAE,OAAO,EAAE;gBACtB,QAAQ;aACT,CAAC,CAA4B,CAAC;YAE/B,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;YAC1C,MAAM,YAAY,GAAkB,eAAe,CAAC,GAAG,CACrD,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CACjD,CAAC;YAEF,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAEa,wBAAwB,CACpC,OAAoC;;YAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC7B,MAAM,YAAY,GAAkB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEzC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;gBAC3D,KAAK,EAAE,gCAAwB;gBAC/B,SAAS,EAAE;oBACT,qBAAqB,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;iBACrD;gBACD,QAAQ;aACT,CAAC,CAA6B,CAAC;YAEhC,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;YAEvC,MAAM,sBAAsB,GAAkB,eAAe,CAAC,GAAG,CAC/D,CAAC,IAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAClD,CAAC;YAEF,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACtD,CAAC;KAAA;IAEY,GAAG,CACd,OAAoC;;YAEpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;CACF,CAAA;AArDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAGiC,uDAA0B;GAF3D,wBAAwB,CAqDpC"}
1
+ {"version":3,"file":"department-manager.service.js","sourceRoot":"","sources":["../../../src/module/department-manager/department-manager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAE5C,0FAAuF;AAQvF,gEAG4C;AASrC,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;IACnC,YACmB,uBAAmD;QAAnD,4BAAuB,GAAvB,uBAAuB,CAA4B;IACnE,CAAC;IAEU,mBAAmB,CAC/B,OAAoC;;YAEpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YACtC,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;gBAC9D,KAAK,EAAE,+BAAuB;gBAC9B,SAAS,EAAE,EAAE,OAAO,EAAE;gBACtB,QAAQ;aACT,CAAC,CAA4B,CAAC;YAE/B,MAAM,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;YAC1C,MAAM,YAAY,GAAkB,eAAe,CAAC,GAAG,CACrD,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CACjD,CAAC;YAEF,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;IAEa,wBAAwB,CACpC,OAAoC;;YAEpC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;YAC7B,MAAM,YAAY,GAAkB,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAC5E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEzC,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;gBAC3D,KAAK,EAAE,gCAAwB;gBAC/B,SAAS,EAAE;oBACT,qBAAqB,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;iBACrD;gBACD,QAAQ;aACT,CAAC,CAA6B,CAAC;YAEhC,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC;YAEvC,MAAM,sBAAsB,GAAkB,eAAe,CAAC,GAAG,CAC/D,CAAC,IAAyB,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAClD,CAAC;YAEF,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,sBAAsB,CAAC,CAAC;QACtD,CAAC;KAAA;IAEY,GAAG,CACd,OAAoC;;YAEpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC;QACb,CAAC;KAAA;CACF,CAAA;AArDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;qCAGiC,uDAA0B;GAF3D,wBAAwB,CAqDpC"}
@@ -3,9 +3,8 @@ import { PayloadGetActualWorkingHoursService } from "src/lib/types/hrm-checkin";
3
3
  export declare class GetActualWorkingHoursService {
4
4
  private readonly grpcClientSystemService;
5
5
  constructor(grpcClientSystemService: PHXGrpcClientSystemService);
6
- private getMinutesDiff;
7
6
  private getDurationTime;
8
7
  private getTimeCheckInOut;
9
8
  private getTotalActualWorkingHours;
10
- get(payload: PayloadGetActualWorkingHoursService): Promise<string>;
9
+ get(payload: PayloadGetActualWorkingHoursService): Promise<any>;
11
10
  }
@@ -26,31 +26,34 @@ let GetActualWorkingHoursService = class GetActualWorkingHoursService {
26
26
  constructor(grpcClientSystemService) {
27
27
  this.grpcClientSystemService = grpcClientSystemService;
28
28
  }
29
- getMinutesDiff(timeStart, timeEnd) {
30
- if (!timeStart || !timeEnd)
31
- return 0;
32
- const [h1, m1, s1] = timeStart.split(":").map(Number);
33
- const [h2, m2, s2] = timeEnd.split(":").map(Number);
34
- const totalMinutesStart = h1 * 60 + m1 + s1 / 60;
35
- const totalMinutesEnd = h2 * 60 + m2 + s2 / 60;
36
- return Math.round(Math.abs(totalMinutesEnd - totalMinutesStart));
37
- }
38
- getDurationTime(timeCheckin, timeCheckout, breakMinutes) {
39
- if (!timeCheckin || !timeCheckout) {
29
+ getDurationTime(timeCheckin, timeCheckout, lunchBreakStart, lunchBreakEnd) {
30
+ if (!timeCheckin || !timeCheckout)
40
31
  return "";
41
- }
42
32
  const start = new Date(timeCheckin);
43
33
  const end = new Date(timeCheckout);
44
- const diffMs = end.getTime() - start.getTime();
45
- let diffMinutes = Math.floor(diffMs / (1000 * 60));
46
- if (breakMinutes && diffMinutes > breakMinutes) {
47
- diffMinutes = diffMinutes - breakMinutes;
34
+ let totalMinutes = Math.floor((end.getTime() - start.getTime()) / (1000 * 60));
35
+ if (lunchBreakStart && lunchBreakEnd) {
36
+ const parseTimeToDate = (base, timeStr) => {
37
+ const [h, m, s] = timeStr.split(":").map(Number);
38
+ const d = new Date(base);
39
+ d.setHours(h, m, s || 0, 0);
40
+ return d;
41
+ };
42
+ const breakStart = parseTimeToDate(start, lunchBreakStart);
43
+ const breakEnd = parseTimeToDate(start, lunchBreakEnd);
44
+ const overlapStart = new Date(Math.max(start.getTime(), breakStart.getTime()));
45
+ const overlapEnd = new Date(Math.min(end.getTime(), breakEnd.getTime()));
46
+ const breakDurationMinutes = Math.max(0, (overlapEnd.getTime() - overlapStart.getTime()) / (1000 * 60));
47
+ totalMinutes -= breakDurationMinutes;
48
48
  }
49
- const hours = Math.floor(diffMinutes / 60);
50
- const minutes = diffMinutes % 60;
49
+ const totalMinuteCeils = Math.ceil(totalMinutes);
50
+ const totalHours = totalMinuteCeils / 60;
51
+ const hoursView = Math.floor(totalHours);
52
+ const minutes = totalMinuteCeils % 60;
51
53
  return {
52
- total_Minutes: diffMinutes,
53
- view: `${hours}h${minutes.toString().padStart(2, "0")}`,
54
+ totalMinutes: totalMinuteCeils,
55
+ totalHours: Math.round(totalHours * 100) / 100,
56
+ view: `${hoursView}h${minutes.toString().padStart(2, "0")}`,
54
57
  };
55
58
  }
56
59
  getTimeCheckInOut(listCheckins) {
@@ -66,7 +69,7 @@ let GetActualWorkingHoursService = class GetActualWorkingHoursService {
66
69
  }
67
70
  getTotalActualWorkingHours(payload) {
68
71
  return __awaiter(this, void 0, void 0, function* () {
69
- var _a, _b, _c, _d;
72
+ var _a, _b;
70
73
  const { user_id, hostname, working_day } = payload;
71
74
  let totalHours = "";
72
75
  const isHasFullData = Boolean(user_id && hostname && working_day);
@@ -92,13 +95,13 @@ let GetActualWorkingHoursService = class GetActualWorkingHoursService {
92
95
  const listAttendanceConfigs = (school === null || school === void 0 ? void 0 : school.hrm_checkin_shift_configs) || [];
93
96
  const dataAttendanceConfig = listAttendanceConfigs.find((configData) => configData.department_id === staffDepartmentId ||
94
97
  configData.department_id === null);
95
- totalHours = (_c = this.getDurationTime(dataCheckInOut.checkIn, dataCheckInOut.checkOut)) === null || _c === void 0 ? void 0 : _c.view;
98
+ totalHours = this.getDurationTime(dataCheckInOut.checkIn, dataCheckInOut.checkOut);
96
99
  if (dataAttendanceConfig) {
97
100
  const { break_start, break_end, allow_break_time } = dataAttendanceConfig;
98
- const totalTimeBreak = Boolean(allow_break_time)
99
- ? this.getMinutesDiff(break_start, break_end)
101
+ const isHasBreakTime = Boolean(allow_break_time && break_start && break_end);
102
+ totalHours = isHasBreakTime
103
+ ? this.getDurationTime(dataCheckInOut.checkIn, dataCheckInOut.checkOut, break_start, break_end)
100
104
  : 0;
101
- totalHours = (_d = this.getDurationTime(dataCheckInOut.checkIn, dataCheckInOut.checkOut, totalTimeBreak)) === null || _d === void 0 ? void 0 : _d.view;
102
105
  }
103
106
  }
104
107
  return totalHours;
@@ -107,8 +110,16 @@ let GetActualWorkingHoursService = class GetActualWorkingHoursService {
107
110
  get(payload) {
108
111
  return __awaiter(this, void 0, void 0, function* () {
109
112
  try {
113
+ let dataTimeWorking = {
114
+ totalMinutes: 0,
115
+ totalHours: 0,
116
+ view: "",
117
+ };
110
118
  const res = yield this.getTotalActualWorkingHours(payload);
111
- return res;
119
+ if (res) {
120
+ dataTimeWorking = res;
121
+ }
122
+ return dataTimeWorking;
112
123
  }
113
124
  catch (error) {
114
125
  console.log(`Không tìm được giờ làm thực tế: ${new Date()}-${error}`);
@@ -1 +1 @@
1
- {"version":3,"file":"get-actual-working-hours.service.js","sourceRoot":"","sources":["../../../src/module/hrm-checkin/get-actual-working-hours.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-actual-working-hours.service.js","sourceRoot":"","sources":["../../../src/module/hrm-checkin/get-actual-working-hours.service.ts"],"names":[],"mappings":"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"}