This commit is contained in:
parent
26a224eeda
commit
0af89e7ecf
2 changed files with 391 additions and 9 deletions
|
|
@ -2953,8 +2953,8 @@ export class ReportController extends Controller {
|
||||||
* @summary 04-แบบ ลจ.กทม.1-รายชื่อลูกจ้างผู้สมควรได้เลื่อนขั้นค่าจ้าง
|
* @summary 04-แบบ ลจ.กทม.1-รายชื่อลูกจ้างผู้สมควรได้เลื่อนขั้นค่าจ้าง
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@Get("emp-04/{rootId}/{salaryPeriodId}")
|
@Get("emp-04/{rootId}/{salaryPeriodId}/{type}")
|
||||||
async SalaryReportEmp1_4(@Path() rootId: string, @Path() salaryPeriodId: string) {
|
async SalaryReportEmp1_4(@Path() rootId: string, @Path() salaryPeriodId: string, @Path() type: string = 'ALL') {
|
||||||
const salaryPeriod = await this.salaryPeriodRepository.findOne({
|
const salaryPeriod = await this.salaryPeriodRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
id: salaryPeriodId,
|
id: salaryPeriodId,
|
||||||
|
|
@ -2970,11 +2970,21 @@ export class ReportController extends Controller {
|
||||||
salaryPeriodId: salaryPeriodId,
|
salaryPeriodId: salaryPeriodId,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
condition.type = In(["HAFT", "FULL", "FULLHAFT"]);
|
||||||
if(salaryPeriod.period == "APR"){
|
if(salaryPeriod.period == "APR"){
|
||||||
condition.type = In(["HAFT", "FULL"]);
|
if(type == "HAFT"){
|
||||||
|
condition.type = "HAFT";
|
||||||
|
}else if(type == "FULL"){
|
||||||
|
condition.type = "FULL";
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
condition.type = In(["HAFT", "FULL", "FULLHAFT"]);
|
if(type == "HAFT"){
|
||||||
|
condition.type = "HAFT";
|
||||||
|
}else if(type == "FULL"){
|
||||||
|
condition.type = "FULL";
|
||||||
|
}else if(type == "FULLHAFT"){
|
||||||
|
condition.type = "FULLHAFT";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const _salaryPeriod = await this.salaryProfileEmployeeRepository.find({
|
const _salaryPeriod = await this.salaryProfileEmployeeRepository.find({
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import {
|
||||||
Query,
|
Query,
|
||||||
} from "tsoa";
|
} from "tsoa";
|
||||||
import { AppDataSource } from "../database/data-source";
|
import { AppDataSource } from "../database/data-source";
|
||||||
import { In, Not, MoreThan, Brackets, Like } from "typeorm";
|
import { In, Not, MoreThan, Brackets, Like, MoreThanOrEqual } from "typeorm";
|
||||||
import HttpSuccess from "../interfaces/http-success";
|
import HttpSuccess from "../interfaces/http-success";
|
||||||
import HttpError from "../interfaces/http-error";
|
import HttpError from "../interfaces/http-error";
|
||||||
import HttpStatusCode from "../interfaces/http-status";
|
import HttpStatusCode from "../interfaces/http-status";
|
||||||
|
|
@ -438,7 +438,7 @@ export class SalaryPeriodEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
let type = salaryProfile.type;
|
let type = salaryProfile.type;
|
||||||
|
|
||||||
salaryProfile = await this.calSalary(type, salaryProfile);
|
salaryProfile = await this.calSalaryNew(type, salaryProfile);
|
||||||
|
|
||||||
salaryProfile.lastUpdateUserId = req.user.sub;
|
salaryProfile.lastUpdateUserId = req.user.sub;
|
||||||
salaryProfile.lastUpdateFullName = req.user.name;
|
salaryProfile.lastUpdateFullName = req.user.name;
|
||||||
|
|
@ -761,7 +761,7 @@ export class SalaryPeriodEmployeeController extends Controller {
|
||||||
salaryProfile.remark = body.remark == null ? _null : body.remark;
|
salaryProfile.remark = body.remark == null ? _null : body.remark;
|
||||||
let type = salaryProfile.type;
|
let type = salaryProfile.type;
|
||||||
|
|
||||||
salaryProfile = await this.calSalary(type, salaryProfile);
|
salaryProfile = await this.calSalaryNew(type, salaryProfile);
|
||||||
|
|
||||||
salaryProfile.lastUpdateUserId = req.user.sub;
|
salaryProfile.lastUpdateUserId = req.user.sub;
|
||||||
salaryProfile.lastUpdateFullName = req.user.name;
|
salaryProfile.lastUpdateFullName = req.user.name;
|
||||||
|
|
@ -2298,6 +2298,378 @@ export class SalaryPeriodEmployeeController extends Controller {
|
||||||
return salaryProfile;
|
return salaryProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async calSalaryNew(
|
||||||
|
type: string,
|
||||||
|
salaryProfile: SalaryProfileEmployee,
|
||||||
|
): Promise<SalaryProfileEmployee> {
|
||||||
|
if (type == "NONE") {
|
||||||
|
salaryProfile.isNext = false;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
salaryProfile.amountUse = 0;
|
||||||
|
salaryProfile.positionSalaryAmount = salaryProfile.amount == null ? 0 : salaryProfile.amount;
|
||||||
|
salaryProfile.positionSalaryDayAmount = 0;
|
||||||
|
salaryProfile.groupNew = 0;
|
||||||
|
salaryProfile.salaryLevelNew = 0;
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
} else if (type == "PENDING") {
|
||||||
|
salaryProfile.isNext = false;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
salaryProfile.amountUse = 0;
|
||||||
|
salaryProfile.positionSalaryAmount = 0;
|
||||||
|
salaryProfile.positionSalaryDayAmount = 0;
|
||||||
|
salaryProfile.groupNew = 0;
|
||||||
|
salaryProfile.salaryLevelNew = 0;
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
} else if (type == "HAFT" || type == "FULL" || type == "FULLHAFT") {
|
||||||
|
|
||||||
|
const salaryFormula = await this.salaryFormulaEmployeeRepository.findOne({
|
||||||
|
where: {
|
||||||
|
position: salaryProfile.position,
|
||||||
|
posType: { posTypeName: salaryProfile.posType },
|
||||||
|
posLevel: { posLevelName: salaryProfile.posLevel },
|
||||||
|
},
|
||||||
|
relations: ["salaryEmployeeMins", "salaryEmployee"],
|
||||||
|
});
|
||||||
|
|
||||||
|
//ขั้นเก่าที่เลื่อนมา
|
||||||
|
// let group = salaryProfile.group == null ? 0 : salaryProfile.group;
|
||||||
|
// let step = salaryProfile.salaryLevel == null ? 0 : salaryProfile.salaryLevel;
|
||||||
|
|
||||||
|
// if (group == null || group == 0) {
|
||||||
|
// if (salaryFormula != null) {
|
||||||
|
// //หากลุ่มต่ำสุดตามเกณฑ์
|
||||||
|
// group = salaryFormula.salaryEmployeeMins.sort((a, b) => a.group - b.group)[0].group;
|
||||||
|
// } else {
|
||||||
|
// group = 1;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// if (step == null || step == 0) {
|
||||||
|
// if (salaryFormula != null) {
|
||||||
|
// let salary = salaryProfile.amount == null ? 0 : salaryProfile.amount;
|
||||||
|
// //หาขั้นต่ำสุดตามเกณฑ์
|
||||||
|
// let salaryRankMin = await this.salaryRankRepository.findOne({
|
||||||
|
// where: {
|
||||||
|
// salaryMonth: salary,
|
||||||
|
// salaryEmployee_: {
|
||||||
|
// isActive: true,
|
||||||
|
// group: group,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// // order: { salaryMonth: "ASC" },
|
||||||
|
// });
|
||||||
|
|
||||||
|
// if (salaryRankMin == null) {
|
||||||
|
// salaryRankMin = await this.salaryRankRepository.findOne({
|
||||||
|
// where: {
|
||||||
|
// salaryMonth: MoreThan(salary),
|
||||||
|
// salaryEmployee_: {
|
||||||
|
// isActive: true,
|
||||||
|
// group: group,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// order: { salaryMonth: "ASC" },
|
||||||
|
// });
|
||||||
|
// if (salaryRankMin == null) {
|
||||||
|
// salaryRankMin = await this.salaryRankRepository.findOne({
|
||||||
|
// where: {
|
||||||
|
// salaryMonth: salary,
|
||||||
|
// salaryEmployee_: {
|
||||||
|
// isActive: true,
|
||||||
|
// group: salaryFormula.salaryEmployee.group,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// order: { salaryMonth: "ASC" },
|
||||||
|
// });
|
||||||
|
// if (salaryRankMin == null) {
|
||||||
|
// salaryRankMin = await this.salaryRankRepository.findOne({
|
||||||
|
// where: {
|
||||||
|
// salaryMonth: MoreThan(salary),
|
||||||
|
// salaryEmployee_: {
|
||||||
|
// isActive: true,
|
||||||
|
// group: salaryFormula.salaryEmployee.group,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// order: { salaryMonth: "ASC" },
|
||||||
|
// });
|
||||||
|
// let _salaryRankAmountMax = await this.salaryRankRepository.findOne({
|
||||||
|
// where: {
|
||||||
|
// salaryMonth: salaryFormula.salaryMax == null ? 0 : salaryFormula.salaryMax,
|
||||||
|
// salaryEmployee_: {
|
||||||
|
// id: salaryFormula.salaryEmployee.id,
|
||||||
|
// },
|
||||||
|
// },
|
||||||
|
// });
|
||||||
|
// step =
|
||||||
|
// salaryRankMin == null
|
||||||
|
// ? _salaryRankAmountMax == null
|
||||||
|
// ? 0.5
|
||||||
|
// : _salaryRankAmountMax.step
|
||||||
|
// : salaryRankMin.step - 0.5;
|
||||||
|
// group = salaryFormula.salaryEmployee.group;
|
||||||
|
// } else {
|
||||||
|
// step = salaryRankMin.step;
|
||||||
|
// group = salaryFormula.salaryEmployee.group;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// step = salaryRankMin.step - 0.5;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// step = salaryRankMin.step;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// step = 0.5;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
let group = 0;
|
||||||
|
let step = 0;
|
||||||
|
let stepUp = 0;
|
||||||
|
|
||||||
|
//****หา group และ step จาก amount MoreThanOrEqual
|
||||||
|
if (salaryProfile.amount != null) {
|
||||||
|
let salaryCurrentRanks = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryMonth: salaryProfile.amount,
|
||||||
|
},
|
||||||
|
relations: ["salaryEmployee_"],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!salaryCurrentRanks) {
|
||||||
|
salaryCurrentRanks = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryMonth: MoreThanOrEqual(salaryProfile.amount),
|
||||||
|
},
|
||||||
|
order: {
|
||||||
|
salaryMonth: "ASC",
|
||||||
|
},
|
||||||
|
relations: ["salaryEmployee_"],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (salaryCurrentRanks) {
|
||||||
|
group = salaryCurrentRanks.salaryEmployee_.group;
|
||||||
|
step = salaryCurrentRanks.step;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//console.log("group", group);
|
||||||
|
//console.log("step", step);
|
||||||
|
|
||||||
|
|
||||||
|
if (type == "HAFT") {
|
||||||
|
step = step + 0.5;
|
||||||
|
stepUp = 0.5;
|
||||||
|
} else if (type == "FULL") {
|
||||||
|
step = step + 1;
|
||||||
|
stepUp = 1;
|
||||||
|
} else if (type == "FULLHAFT") {
|
||||||
|
step = step + 1.5;
|
||||||
|
stepUp = 1.5;
|
||||||
|
}
|
||||||
|
//console.log("step+type", step);
|
||||||
|
//หาขั้นสูงสุดในกลุ่มนั้น
|
||||||
|
let salaryRankMax = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryEmployee_: {
|
||||||
|
isActive: true,
|
||||||
|
group: group,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
order: { step: "DESC" },
|
||||||
|
});
|
||||||
|
|
||||||
|
//console.log("salaryRankMax.step", salaryRankMax?.step);
|
||||||
|
//console.log("salaryProfile.amount", salaryProfile.amount);
|
||||||
|
//console.log("salaryFormula.salaryMax", salaryFormula?.salaryMax);
|
||||||
|
//เงินเดือนเกินตาราง
|
||||||
|
//****หา shot ที่ +ขั้น แล้วแก้เป็นหาเงินเดือนที่ใกล้เคียงกับขั้นผังเก่าก่อนแล้วค่อย +ขั้นที่เลื่อนเข้าไป ex.เงินตันที่ 20000 ไปหาผังใหม่ได้ใกล้เคียง 20100 ยึดตัวเลขนี้ไว้แล้วค่อย +ขั้นในผังใหม่ขึ้นไป
|
||||||
|
if (
|
||||||
|
salaryRankMax != null &&
|
||||||
|
step > salaryRankMax.step &&
|
||||||
|
(salaryFormula == null ||
|
||||||
|
(salaryFormula != null &&
|
||||||
|
salaryProfile.amount != null &&
|
||||||
|
salaryFormula.salaryMax != null &&
|
||||||
|
salaryFormula.salaryMax > salaryProfile.amount))
|
||||||
|
) {
|
||||||
|
//console.log("in function เกินตาราง");
|
||||||
|
|
||||||
|
group = group + 1;
|
||||||
|
//เงินเดือนในกลุ่มต่อไป
|
||||||
|
let salaryRankAmount = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryMonth:
|
||||||
|
salaryRankMax.salaryMonth != null && salaryRankMax.salaryMonth > 0
|
||||||
|
? MoreThan(salaryRankMax.salaryMonth)
|
||||||
|
: 0,
|
||||||
|
salaryEmployee_: {
|
||||||
|
isActive: true,
|
||||||
|
group: group,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
order: { salaryMonth: "ASC" },
|
||||||
|
});
|
||||||
|
//console.log("salaryRankAmount", salaryRankAmount?.salaryMonth);
|
||||||
|
// step =
|
||||||
|
// (salaryRankAmount == null ? 1 : salaryRankAmount.step) +
|
||||||
|
// (step - (salaryRankMax == null ? 0 : salaryRankMax.step) - 0.5);
|
||||||
|
|
||||||
|
step = (salaryRankAmount == null ? 1 : salaryRankAmount.step) + stepUp; //****หาขั้นของผังใหม่แล้ว + ด้วยขั้นที่ได้เลื่อน
|
||||||
|
//console.log("step in if", step);
|
||||||
|
}
|
||||||
|
|
||||||
|
let whereCondition: any = {
|
||||||
|
step: step,
|
||||||
|
salaryEmployee_: {
|
||||||
|
isActive: true,
|
||||||
|
group: group,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let salaryRanks = await this.salaryRankRepository.findOne({
|
||||||
|
where: whereCondition,
|
||||||
|
});
|
||||||
|
//console.log("salaryRanks.salaryMonth", salaryRanks?.salaryMonth);
|
||||||
|
if (salaryRanks != null && salaryRanks.salaryMonth != null) {
|
||||||
|
if (
|
||||||
|
salaryFormula != null &&
|
||||||
|
salaryFormula.salaryMax != null &&
|
||||||
|
salaryRanks.salaryMonth > salaryFormula.salaryMax
|
||||||
|
) {
|
||||||
|
let salaryRankAmountMax = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryMonth: salaryFormula.salaryMax,
|
||||||
|
salaryEmployee_: {
|
||||||
|
id: salaryFormula.salaryEmployee.id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
salaryProfile.isNext = true;
|
||||||
|
salaryProfile.amountUse =
|
||||||
|
salaryFormula.salaryMax - (salaryProfile.amount == null ? 0 : salaryProfile.amount);
|
||||||
|
salaryProfile.positionSalaryAmount =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: salaryRankAmountMax.salaryMonth;
|
||||||
|
salaryProfile.positionSalaryDayAmount =
|
||||||
|
salaryRankAmountMax == null ? 0 : salaryRankAmountMax.salaryDay;
|
||||||
|
salaryProfile.groupNew = salaryFormula.salaryEmployee.group;
|
||||||
|
salaryProfile.salaryLevelNew = salaryRankAmountMax == null ? 0 : salaryRankAmountMax.step;;
|
||||||
|
salaryRankAmountMax == null ? 0 : salaryRankAmountMax.step;
|
||||||
|
if (salaryRankAmountMax != null) {
|
||||||
|
if (step - salaryRankAmountMax.step <= 0.5) {
|
||||||
|
//console.log("in case 0.5 * 0.02");
|
||||||
|
//console.log("salaryRankAmountMax.salaryMont>>>" ,salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null? 0 : salaryRankAmountMax.salaryMonth);
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.02;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.02);
|
||||||
|
} else if (step - salaryRankAmountMax.step <= 1) {
|
||||||
|
//console.log("in case 1 * 0.04");
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.04;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.04);
|
||||||
|
} else {
|
||||||
|
//console.log("in case 1.5 * 0.06");
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.06;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.06);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
}
|
||||||
|
//console.log("in case เงินเดือน max ตำแหน่งแต่ไม่เกินผัง");
|
||||||
|
//console.log(" salaryProfile.amountSpecial", salaryProfile.amountSpecial);
|
||||||
|
//console.log("salaryRanks.salaryMonth",salaryRanks.salaryMonth);
|
||||||
|
//console.log("salaryProfile.amount",(salaryProfile.amount == null ? 0 : salaryProfile.amount));
|
||||||
|
} else {
|
||||||
|
//console.log("in case normal");
|
||||||
|
//console.log("salaryRanks.salaryMonth",salaryRanks.salaryMonth);
|
||||||
|
//console.log("salaryProfile.amount",(salaryProfile.amount == null ? 0 : salaryProfile.amount));
|
||||||
|
//console.log("salaryRanks.salaryMonth - salaryProfile.amount",salaryRanks.salaryMonth - (salaryProfile.amount == null ? 0 : salaryProfile.amount));
|
||||||
|
salaryProfile.isNext = false;
|
||||||
|
salaryProfile.amountUse =
|
||||||
|
salaryRanks.salaryMonth - (salaryProfile.amount == null ? 0 : salaryProfile.amount);
|
||||||
|
salaryProfile.positionSalaryAmount = salaryRanks.salaryMonth;
|
||||||
|
salaryProfile.positionSalaryDayAmount = salaryRanks.salaryDay;
|
||||||
|
salaryProfile.groupNew = group;
|
||||||
|
salaryProfile.salaryLevelNew = step;
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (
|
||||||
|
salaryFormula != null &&
|
||||||
|
salaryFormula.salaryMax != null &&
|
||||||
|
salaryProfile.amount != null &&
|
||||||
|
salaryFormula.salaryMax <= salaryProfile.amount
|
||||||
|
) {
|
||||||
|
let salaryRankAmountMax = await this.salaryRankRepository.findOne({
|
||||||
|
where: {
|
||||||
|
salaryMonth: salaryFormula.salaryMax,
|
||||||
|
salaryEmployee_: {
|
||||||
|
id: salaryFormula.salaryEmployee.id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
salaryProfile.isNext = true;
|
||||||
|
salaryProfile.amountUse = salaryFormula.salaryMax - salaryProfile.amount;
|
||||||
|
salaryProfile.positionSalaryAmount =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: salaryRankAmountMax.salaryMonth;
|
||||||
|
salaryProfile.positionSalaryDayAmount =
|
||||||
|
salaryRankAmountMax == null ? 0 : salaryRankAmountMax.salaryDay;
|
||||||
|
salaryProfile.groupNew = salaryFormula.salaryEmployee.group;
|
||||||
|
salaryProfile.salaryLevelNew = salaryRankAmountMax == null ? 0 : salaryRankAmountMax.step;
|
||||||
|
salaryRankAmountMax == null ? 0 : salaryRankAmountMax.step;
|
||||||
|
if (salaryRankAmountMax != null) {
|
||||||
|
if (step - salaryRankAmountMax.step <= 0.5) {
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.02;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.02);
|
||||||
|
} else if (step - salaryRankAmountMax.step <= 1) {
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.04;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.04);
|
||||||
|
} else {
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0.06;
|
||||||
|
salaryProfile.amountSpecial =
|
||||||
|
salaryRankAmountMax == null || salaryRankAmountMax.salaryMonth == null
|
||||||
|
? 0
|
||||||
|
: Math.floor(salaryRankAmountMax.salaryMonth * 0.06);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
salaryProfile.isNext = false;
|
||||||
|
salaryProfile.amountUse = 0;
|
||||||
|
salaryProfile.positionSalaryAmount =
|
||||||
|
salaryProfile.amount == null ? 0 : salaryProfile.amount;
|
||||||
|
salaryProfile.positionSalaryDayAmount = 0;
|
||||||
|
salaryProfile.positionSalaryAmountPer = 0;
|
||||||
|
salaryProfile.amountSpecial = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw "ประเภทการเลื่อนขึ้นเงินเดือนไม่ถูกต้อง";
|
||||||
|
}
|
||||||
|
|
||||||
|
return salaryProfile;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* API แก้ไขรอบเงินเดือน
|
* API แก้ไขรอบเงินเดือน
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue