fix leave

This commit is contained in:
AdisakKanthawilang 2025-05-02 11:41:49 +07:00
parent d8a47d88bc
commit 816682357c
2 changed files with 44 additions and 0 deletions

View file

@ -260,6 +260,40 @@ export class ProfileLeaveController extends Controller {
return new HttpSuccess();
}
@Patch("cancel/{leaveId}")
public async updateCancel(
@Request() req: RequestWithUser,
@Path() leaveId: string,
) {
const record = await this.leaveRepo.findOneBy({ leaveId: leaveId });
if (!record) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลการลา");
const before = structuredClone(record);
const history = new ProfileLeaveHistory();
Object.assign(history, { ...record, id: undefined });
record.status = "CANCEL";
history.profileLeaveId = leaveId;
record.lastUpdateUserId = req.user.sub;
record.lastUpdateFullName = req.user.name;
record.lastUpdatedAt = new Date();
history.lastUpdateUserId = req.user.sub;
history.lastUpdateFullName = req.user.name;
history.createdUserId = req.user.sub;
history.createdFullName = req.user.name;
history.createdAt = new Date();
history.lastUpdatedAt = new Date();
await Promise.all([
this.leaveRepo.save(record, { data: req }),
setLogDataDiff(req, { before, after: record }),
this.leaveHistoryRepo.save(history, { data: req }),
]);
return new HttpSuccess();
}
@Delete("{leaveId}")
public async deleteLeave(@Path() leaveId: string, @Request() req: RequestWithUser) {
const _record = await this.leaveRepo.findOneBy({ id: leaveId });