API สร้างรอบเงินเดือน
This commit is contained in:
parent
9edb9993be
commit
383c31b7a3
2 changed files with 76 additions and 5 deletions
76
src/controllers/SalaryPeriodController.ts
Normal file
76
src/controllers/SalaryPeriodController.ts
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
import {
|
||||
Controller,
|
||||
Get,
|
||||
Post,
|
||||
Put,
|
||||
Delete,
|
||||
Patch,
|
||||
Route,
|
||||
Security,
|
||||
Tags,
|
||||
Body,
|
||||
Path,
|
||||
Request,
|
||||
Example,
|
||||
Query,
|
||||
} from "tsoa";
|
||||
import { AppDataSource } from "../database/data-source";
|
||||
import { DeepPartial, In, IsNull, Not, Between } from "typeorm";
|
||||
import HttpSuccess from "../interfaces/http-success";
|
||||
import HttpError from "../interfaces/http-error";
|
||||
import HttpStatusCode from "../interfaces/http-status";
|
||||
import { query } from "express";
|
||||
import { randomUUID } from "crypto";
|
||||
import { CreateSalaryPeriod, SalaryPeriod } from "../entities/SalaryPeriod";
|
||||
import Extension from "../interfaces/extension";
|
||||
|
||||
@Route("api/v1/salary")
|
||||
@Tags("Salary")
|
||||
@Security("bearerAuth")
|
||||
export class SalaryPeriodController extends Controller {
|
||||
private salaryPeriodRepository = AppDataSource.getRepository(SalaryPeriod);
|
||||
|
||||
/**
|
||||
* API สร้างรอบเงินเดือน
|
||||
*
|
||||
* @summary SLR_016 - สร้างรอบเงินเดือน #16
|
||||
*
|
||||
*/
|
||||
@Post("period")
|
||||
async create_salary_period(
|
||||
@Body() requestBody: CreateSalaryPeriod,
|
||||
@Request() request: { user: Record<string, any> },
|
||||
) {
|
||||
const salaryPeriod = Object.assign(new SalaryPeriod(), requestBody);
|
||||
if (!salaryPeriod) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล");
|
||||
}
|
||||
|
||||
const chk_toUpper = ["SPECIAL", "APR", "OCT"];
|
||||
if (!chk_toUpper.includes(salaryPeriod.period.toUpperCase())) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ประเภทผัง ไม่ถูกต้อง");
|
||||
}
|
||||
|
||||
const startOfYear = new Date(salaryPeriod.effectiveDate.getFullYear(), 0, 1);
|
||||
const endOfYear = new Date(salaryPeriod.effectiveDate.getFullYear(), 11, 31);
|
||||
const chk_period = await this.salaryPeriodRepository.findOne({
|
||||
where: {
|
||||
period: salaryPeriod.period,
|
||||
effectiveDate: Between(startOfYear, endOfYear)
|
||||
},
|
||||
});
|
||||
|
||||
if (chk_period) {
|
||||
throw new HttpError(HttpStatusCode.NOT_FOUND, "ประเภทผังปี "+ salaryPeriod.effectiveDate.getFullYear() +" ซ้ำ");
|
||||
}
|
||||
|
||||
salaryPeriod.period = salaryPeriod.period.toUpperCase();
|
||||
salaryPeriod.createdUserId = request.user.sub;
|
||||
salaryPeriod.createdFullName = request.user.name;
|
||||
salaryPeriod.lastUpdateUserId = request.user.sub;
|
||||
salaryPeriod.lastUpdateFullName = request.user.name;
|
||||
await this.salaryPeriodRepository.save(salaryPeriod);
|
||||
return new HttpSuccess(salaryPeriod.id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -42,8 +42,6 @@ export class CreateSalaryPeriod {
|
|||
@Column()
|
||||
effectiveDate: Date;
|
||||
|
||||
@Column()
|
||||
status?: string;
|
||||
}
|
||||
|
||||
export class UpdateSalaryPeriod {
|
||||
|
|
@ -57,7 +55,4 @@ export class UpdateSalaryPeriod {
|
|||
@Column()
|
||||
effectiveDate: Date;
|
||||
|
||||
@Column()
|
||||
status?: string;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue