Merge branch 'develop-Bright' into develop
This commit is contained in:
commit
75e47f7773
2 changed files with 55 additions and 33 deletions
|
|
@ -2966,13 +2966,13 @@ export class DevelopmentController extends Controller {
|
||||||
.GetData(request, `/org/unauthorize/officer/citizen/${citizenId}`)
|
.GetData(request, `/org/unauthorize/officer/citizen/${citizenId}`)
|
||||||
.then(async (x: any) => {
|
.then(async (x: any) => {
|
||||||
development = Object.assign(development, x);
|
development = Object.assign(development, x);
|
||||||
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"], "dd/MM/yyyy") as Date;
|
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"]) as Date;
|
||||||
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"], "dd/MM/yyyy")as Date;
|
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"])as Date;
|
||||||
development.order =
|
development.order =
|
||||||
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
||||||
? null
|
? null
|
||||||
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
||||||
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"], "dd/MM/yyyy")as Date;
|
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"])as Date;
|
||||||
development.trainingDays =
|
development.trainingDays =
|
||||||
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
||||||
development.posLevelId = x.posLevelId;
|
development.posLevelId = x.posLevelId;
|
||||||
|
|
@ -2998,15 +2998,15 @@ export class DevelopmentController extends Controller {
|
||||||
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
||||||
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
||||||
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
||||||
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"], "dd/MM/yyyy") as Date;
|
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"]) as Date;
|
||||||
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"], "dd/MM/yyyy") as Date;
|
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"]) as Date;
|
||||||
development.citizenId = citizenId;
|
development.citizenId = citizenId;
|
||||||
development.type = "OFFICER" == null ? _null : "OFFICER";
|
development.type = "OFFICER" == null ? _null : "OFFICER";
|
||||||
development.order =
|
development.order =
|
||||||
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
||||||
? null
|
? null
|
||||||
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
||||||
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"], "dd/MM/yyyy") as Date;
|
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"]) as Date;
|
||||||
development.trainingDays =
|
development.trainingDays =
|
||||||
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
||||||
development.posLevelId = x.posLevelId;
|
development.posLevelId = x.posLevelId;
|
||||||
|
|
@ -3030,13 +3030,13 @@ export class DevelopmentController extends Controller {
|
||||||
.GetData(request, `/org/unauthorize/employee/citizen/${citizenId}`)
|
.GetData(request, `/org/unauthorize/employee/citizen/${citizenId}`)
|
||||||
.then(async (x: any) => {
|
.then(async (x: any) => {
|
||||||
development = Object.assign(development, x);
|
development = Object.assign(development, x);
|
||||||
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"], "dd/MM/yyyy") as Date;
|
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"]) as Date;
|
||||||
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"], "dd/MM/yyyy") as Date;
|
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"]) as Date;
|
||||||
development.order =
|
development.order =
|
||||||
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
||||||
? null
|
? null
|
||||||
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
||||||
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"], "dd/MM/yyyy") as Date;
|
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"]) as Date;
|
||||||
development.trainingDays =
|
development.trainingDays =
|
||||||
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
||||||
development.posLevelId = null;
|
development.posLevelId = null;
|
||||||
|
|
@ -3061,15 +3061,15 @@ export class DevelopmentController extends Controller {
|
||||||
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
||||||
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
||||||
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
||||||
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"], "dd/MM/yyyy") as Date;
|
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"]) as Date;
|
||||||
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"], "dd/MM/yyyy") as Date;
|
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"]) as Date;
|
||||||
development.citizenId = citizenId;
|
development.citizenId = citizenId;
|
||||||
development.type = "EMPLOYEE" == null ? _null : "EMPLOYEE";
|
development.type = "EMPLOYEE" == null ? _null : "EMPLOYEE";
|
||||||
development.order =
|
development.order =
|
||||||
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
||||||
? null
|
? null
|
||||||
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
||||||
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"], "dd/MM/yyyy") as Date;
|
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"]) as Date;
|
||||||
development.trainingDays =
|
development.trainingDays =
|
||||||
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"].toString();
|
||||||
development.posLevelId = x.posLevelId;
|
development.posLevelId = x.posLevelId;
|
||||||
|
|
@ -3096,15 +3096,15 @@ export class DevelopmentController extends Controller {
|
||||||
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
development.lastName = item["นามสกุล"] == null ? null : item["นามสกุล"].toString();
|
||||||
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
development.position = item["ตำแหน่ง"] == null ? null : item["ตำแหน่ง"].toString();
|
||||||
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
development.org = item["สังกัด"] == null ? null : item["สังกัด"].toString();
|
||||||
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"], "dd/MM/yyyy") as Date;
|
development.dateStart = Extension.checkDateTime(item["วันที่เริ่มต้น"]) as Date;
|
||||||
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"], "dd/MM/yyyy") as Date;
|
development.dateEnd = Extension.checkDateTime(item["วันที่สิ้นสุด"]) as Date;
|
||||||
development.citizenId = citizenId;
|
development.citizenId = citizenId;
|
||||||
development.type = "OTHER";
|
development.type = "OTHER";
|
||||||
development.order =
|
development.order =
|
||||||
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"] == null
|
||||||
? null
|
? null
|
||||||
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
: item["เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"].toString();
|
||||||
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"], "dd/MM/yyyy") as Date;
|
development.dateOrder = Extension.checkDateTime(item["คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"]) as Date;
|
||||||
development.trainingDays =
|
development.trainingDays =
|
||||||
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"] .toString();
|
item["จำนวนวันที่อบรม"] == null ? null : item["จำนวนวันที่อบรม"] .toString();
|
||||||
development.posLevelId = null;
|
development.posLevelId = null;
|
||||||
|
|
|
||||||
|
|
@ -1,38 +1,60 @@
|
||||||
class Extension {
|
class Extension {
|
||||||
public static checkDateTime(value: any, format: "dd/MM/yyyy" | "yyyy-MM-dd"): Date | null {
|
public static checkDateTime(
|
||||||
if (value == null) return null;
|
value: any,
|
||||||
|
format?: "dd/MM/yyyy" | "yyyy-MM-dd",
|
||||||
|
): Date | null {
|
||||||
|
if (value == null || value === "") return null;
|
||||||
|
|
||||||
let dateStr = String(value).trim();
|
// ===== Excel serial number =====
|
||||||
if (!dateStr) return null;
|
if (typeof value === "number") {
|
||||||
|
if (value < 1) return null;
|
||||||
|
return new Date(Math.round((value - 25569) * 86400 * 1000));
|
||||||
|
}
|
||||||
|
|
||||||
const parts = dateStr.replace(/-/g, "/").split("/");
|
const raw = String(value).trim();
|
||||||
|
if (!raw) return null;
|
||||||
|
|
||||||
|
const parts = raw.replace(/-/g, "/").split("/");
|
||||||
if (parts.length !== 3) return null;
|
if (parts.length !== 3) return null;
|
||||||
|
|
||||||
let year = 0, month = 0, day = 0;
|
let year = 0, month = 0, day = 0;
|
||||||
|
|
||||||
switch (format) {
|
// ===== use format if provided =====
|
||||||
case "dd/MM/yyyy":
|
if (format === "dd/MM/yyyy") {
|
||||||
year = Number(parts[2]);
|
day = Number(parts[0]);
|
||||||
month = Number(parts[1]);
|
month = Number(parts[1]);
|
||||||
day = Number(parts[0]);
|
year = Number(parts[2]);
|
||||||
break;
|
} else if (format === "yyyy-MM-dd") {
|
||||||
|
year = Number(parts[0]);
|
||||||
case "yyyy-MM-dd":
|
month = Number(parts[1]);
|
||||||
|
day = Number(parts[2]);
|
||||||
|
}
|
||||||
|
// ===== auto detect =====
|
||||||
|
else {
|
||||||
|
if (parts[0].length === 4) {
|
||||||
|
// yyyy/MM/dd
|
||||||
year = Number(parts[0]);
|
year = Number(parts[0]);
|
||||||
month = Number(parts[1]);
|
month = Number(parts[1]);
|
||||||
day = Number(parts[2]);
|
day = Number(parts[2]);
|
||||||
break;
|
} else if (parts[2].length === 4) {
|
||||||
|
// dd/MM/yyyy
|
||||||
|
day = Number(parts[0]);
|
||||||
|
month = Number(parts[1]);
|
||||||
|
year = Number(parts[2]);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNaN(year) || isNaN(month) || isNaN(day)) return null;
|
if ([year, month, day].some(Number.isNaN)) return null;
|
||||||
|
|
||||||
// พ.ศ. → ค.ศ.
|
// ===== Buddhist year =====
|
||||||
if (year > 2500) year -= 543;
|
if (year > 2500) year -= 543;
|
||||||
|
if (year < 1800 || year > 2500) return null;
|
||||||
|
|
||||||
// clamp month
|
// ===== normalize =====
|
||||||
if (month < 1 || month > 12) month = 1;
|
if (month < 1 || month > 12) month = 1;
|
||||||
|
|
||||||
// clamp day
|
|
||||||
const maxDay = new Date(year, month, 0).getDate();
|
const maxDay = new Date(year, month, 0).getDate();
|
||||||
if (day < 1) day = 1;
|
if (day < 1) day = 1;
|
||||||
else if (day > maxDay) day = maxDay;
|
else if (day > maxDay) day = maxDay;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue