diff --git a/docs/swagger/swagger-spec.json b/docs/swagger/swagger-spec.json index 9d03aa2..2751e71 100644 --- a/docs/swagger/swagger-spec.json +++ b/docs/swagger/swagger-spec.json @@ -464,24 +464,36 @@ ] }, "get": { - "operationId": "TimesheetsController_findAll", - "parameters": [], - "responses": { - "201": { - "description": "List of timesheet found", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CreateTimesheetDto" - } - } - } + "operationId": "TimesheetsController_getPeriodByQuery", + "parameters": [ + { + "name": "year", + "required": true, + "in": "query", + "schema": { + "type": "number" } }, - "400": { - "description": "List of timesheets not found" + { + "name": "period_no", + "required": true, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "email", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" } }, "security": [ @@ -489,7 +501,6 @@ "access-token": [] } ], - "summary": "Find all timesheets", "tags": [ "Timesheets" ] @@ -618,7 +629,7 @@ ] } }, - "/timesheets/{id}/approval": { + "/timesheets/approval/{id}": { "patch": { "operationId": "TimesheetsController_approve", "parameters": [ @@ -840,7 +851,7 @@ ] } }, - "/Expenses/{id}/approval": { + "/Expenses/approval/{id}": { "patch": { "operationId": "ExpensesController_approve", "parameters": [ @@ -1062,7 +1073,7 @@ ] } }, - "/shifts/{id}/approval": { + "/shifts/approval/{id}": { "patch": { "operationId": "ShiftsController_approve", "parameters": [ @@ -1206,7 +1217,7 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/CreateLeaveRequestsDto" + "$ref": "#/components/schemas/LeaveRequestViewDto" } } } @@ -1246,7 +1257,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateLeaveRequestsDto" + "$ref": "#/components/schemas/LeaveRequestViewDto" } } } @@ -1293,7 +1304,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateLeaveRequestsDto" + "$ref": "#/components/schemas/LeaveRequestViewDto" } } } @@ -1350,7 +1361,7 @@ ] } }, - "/leave-requests/{id}/approval": { + "/leave-requests/approval/{id}": { "patch": { "operationId": "LeaveRequestController_updateApproval", "parameters": [ @@ -2646,16 +2657,6 @@ "CreateLeaveRequestsDto": { "type": "object", "properties": { - "id": { - "type": "number", - "example": 1, - "description": "Leave request`s unique id(auto-incremented)" - }, - "employee_id": { - "type": "number", - "example": "4655867", - "description": "Employee`s id" - }, "bank_code_id": { "type": "number", "example": 7, @@ -2667,13 +2668,11 @@ "description": "type of leave request for an accounting perception" }, "start_date_time": { - "format": "date-time", "type": "string", "example": "22/06/2463", "description": "Leave request`s start date" }, "end_date_time": { - "format": "date-time", "type": "string", "example": "25/03/3019", "description": "Leave request`s end date" @@ -2690,8 +2689,6 @@ } }, "required": [ - "id", - "employee_id", "bank_code_id", "leave_type", "start_date_time", @@ -2700,19 +2697,13 @@ "approval_status" ] }, + "LeaveRequestViewDto": { + "type": "object", + "properties": {} + }, "UpdateLeaveRequestsDto": { "type": "object", "properties": { - "id": { - "type": "number", - "example": 1, - "description": "Leave request`s unique id(auto-incremented)" - }, - "employee_id": { - "type": "number", - "example": "4655867", - "description": "Employee`s id" - }, "bank_code_id": { "type": "number", "example": 7, @@ -2724,13 +2715,11 @@ "description": "type of leave request for an accounting perception" }, "start_date_time": { - "format": "date-time", "type": "string", "example": "22/06/2463", "description": "Leave request`s start date" }, "end_date_time": { - "format": "date-time", "type": "string", "example": "25/03/3019", "description": "Leave request`s end date" diff --git a/src/modules/expenses/controllers/expenses.controller.ts b/src/modules/expenses/controllers/expenses.controller.ts index 1b3b2f0..f4f20cb 100644 --- a/src/modules/expenses/controllers/expenses.controller.ts +++ b/src/modules/expenses/controllers/expenses.controller.ts @@ -65,7 +65,7 @@ export class ExpensesController { return this.expensesService.remove(id); } - @Patch(':id/approval') + @Patch('approval/:id') //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR, RoleEnum.SUPERVISOR) async approve(@Param('id', ParseIntPipe) id: number, @Body('is_approved', ParseBoolPipe) isApproved: boolean) { return this.expensesApprovalService.updateApproval(id, isApproved); diff --git a/src/modules/leave-requests/controllers/leave-requests.controller.ts b/src/modules/leave-requests/controllers/leave-requests.controller.ts index 8948df4..d3251ad 100644 --- a/src/modules/leave-requests/controllers/leave-requests.controller.ts +++ b/src/modules/leave-requests/controllers/leave-requests.controller.ts @@ -64,7 +64,7 @@ export class LeaveRequestController { } //remove emp_id and use email - @Patch(':id/approval') + @Patch('approval/:id') updateApproval( @Param('id', ParseIntPipe) id: number, @Body('is_approved', ParseBoolPipe) is_approved: boolean): Promise { const approvalStatus = is_approved ? diff --git a/src/modules/pay-periods/services/pay-periods-query.service.ts b/src/modules/pay-periods/services/pay-periods-query.service.ts index 219a9be..8e20b08 100644 --- a/src/modules/pay-periods/services/pay-periods-query.service.ts +++ b/src/modules/pay-periods/services/pay-periods-query.service.ts @@ -96,7 +96,14 @@ export class PayPeriodsQueryService { const crew = await this.resolveCrew(supervisor.id, include_subtree); // [{ id, first_name, last_name }] const crew_ids = crew.map(c => c.id); // seed names map for employee without data - const seed_names = new Map(crew.map(crew => [crew.id, `${crew.first_name} ${crew.last_name}`.trim()])); + const seed_names = new Map( + crew.map(crew => [ + crew.id, + { name:`${crew.first_name} ${crew.last_name}`.trim(), + email: crew.email } + ] + ) + ); // 4) overview build return this.buildOverview({ @@ -112,7 +119,7 @@ export class PayPeriodsQueryService { private async buildOverview( period: { period_start: string | Date; period_end: string | Date; payday: string | Date; period_no: number; pay_year: number; label: string; }, - options?: { filtered_employee_ids?: number[]; seed_names?: Map }, + options?: { filtered_employee_ids?: number[]; seed_names?: Map} ): Promise { const toDateString = (d: Date) => d.toISOString().slice(0, 10); const toMoney = (v: any) => (typeof v === "object" && "toNumber" in v ? v.toNumber() : (v as number)); @@ -184,9 +191,9 @@ export class PayPeriodsQueryService { // seed for employee without data if (options?.seed_names) { - for (const [id, name] of options.seed_names.entries()) { + for (const [id, {name, email}] of options.seed_names.entries()) { by_employee.set(id, { - email: '', + email, employee_name: name, regular_hours: 0, evening_hours: 0, diff --git a/src/modules/shifts/controllers/shifts.controller.ts b/src/modules/shifts/controllers/shifts.controller.ts index b3213f9..e1c4292 100644 --- a/src/modules/shifts/controllers/shifts.controller.ts +++ b/src/modules/shifts/controllers/shifts.controller.ts @@ -67,7 +67,7 @@ export class ShiftsController { return this.shiftsService.remove(id); } - @Patch(':id/approval') + @Patch('approval/:id') //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR, RoleEnum.SUPERVISOR) async approve(@Param('id', ParseIntPipe) id: number, @Body('is_approved', ParseBoolPipe) isApproved: boolean) { return this.shiftsApprovalService.updateApproval(id, isApproved); diff --git a/src/modules/timesheets/controllers/timesheets.controller.ts b/src/modules/timesheets/controllers/timesheets.controller.ts index a5519ef..eb495b8 100644 --- a/src/modules/timesheets/controllers/timesheets.controller.ts +++ b/src/modules/timesheets/controllers/timesheets.controller.ts @@ -70,7 +70,7 @@ export class TimesheetsController { return this.timesheetsQuery.remove(id); } - @Patch(':id/approval') + @Patch('approval/:id') //@RolesAllowed(RoleEnum.ACCOUNTING, RoleEnum.ADMIN, RoleEnum.HR, RoleEnum.SUPERVISOR) async approve(@Param('id', ParseIntPipe) id: number, @Body('is_approved', ParseBoolPipe) isApproved: boolean) { return this.timesheetsCommand.updateApproval(id, isApproved);