edit report if no value

This commit is contained in:
kittapath 2025-02-13 21:52:49 +07:00
parent 724a41a6a0
commit 00d0f1f0fb

View file

@ -26,11 +26,7 @@ export class ReportController extends Controller {
* @param {string} type type report * @param {string} type type report
*/ */
@Get("main") @Get("main")
async GetReportDevelopemtMain( async GetReportDevelopemtMain(@Query("year") year?: number, @Query("rootId") rootId?: string) {
@Query("year") year?: number,
@Query("rootId") rootId?: string,
) {
// const _type = type.trim().toUpperCase(); // const _type = type.trim().toUpperCase();
const formattedData = { const formattedData = {
org: "_type", org: "_type",
@ -81,12 +77,27 @@ export class ReportController extends Controller {
return { return {
strategy: item.strategy1, strategy: item.strategy1,
projectName: item.projectName, projectName: item.projectName,
totalDate: item.totalDate != null && item.totalDate != "" ? Extension.ToThaiNumber(item.totalDate.toLocaleString()): "-", totalDate:
goalParticipants: item.goalParticipants != null && item.goalParticipants != "" ? Extension.ToThaiNumber(item.goalParticipants.toLocaleString()): "-", item.totalDate != null && item.totalDate != ""
actualParticipants: item.actualParticipants != null && item.actualParticipants != "" ? Extension.ToThaiNumber(item.actualParticipants.toLocaleString()): "-", ? Extension.ToThaiNumber(item.totalDate.toLocaleString())
: "-",
goalParticipants:
item.goalParticipants != null && item.goalParticipants != ""
? Extension.ToThaiNumber(item.goalParticipants.toLocaleString())
: "-",
actualParticipants:
item.actualParticipants != null && item.actualParticipants != ""
? Extension.ToThaiNumber(item.actualParticipants.toLocaleString())
: "-",
budget: budget, budget: budget,
acceptBudget: item.acceptBudget != null && item.acceptBudget != "" ? Extension.ToThaiNumber(item.acceptBudget.toLocaleString()): "-", acceptBudget:
receiveBudget: item.receiveBudget != null && item.receiveBudget != "" ? Extension.ToThaiNumber(item.receiveBudget.toLocaleString()): "-", item.acceptBudget != null && item.acceptBudget != ""
? Extension.ToThaiNumber(item.acceptBudget.toLocaleString())
: "-",
receiveBudget:
item.receiveBudget != null && item.receiveBudget != ""
? Extension.ToThaiNumber(item.receiveBudget.toLocaleString())
: "-",
obstacle: item.obstacle, obstacle: item.obstacle,
root: item.root, root: item.root,
output: "-", output: "-",
@ -111,7 +122,9 @@ export class ReportController extends Controller {
"SUM(development.receive) AS receiveBudget", "SUM(development.receive) AS receiveBudget",
"development.root AS root", "development.root AS root",
]) ])
.groupBy("development.rootId, development.strategyChild1ActualId, strategy1.strategyChild1Name, development.root") .groupBy(
"development.rootId, development.strategyChild1ActualId, strategy1.strategyChild1Name, development.root",
)
.orderBy("strategy1.createdAt", "ASC") .orderBy("strategy1.createdAt", "ASC")
.getRawMany(); .getRawMany();
@ -123,9 +136,9 @@ export class ReportController extends Controller {
sumDev: string; sumDev: string;
sumTraget: string; sumTraget: string;
sumBudget: string; sumBudget: string;
sumRowDev: string, sumRowDev: string;
sumRowTarget: string, sumRowTarget: string;
sumRowBudget: string, sumRowBudget: string;
} }
interface GroupedData { interface GroupedData {
@ -135,7 +148,7 @@ export class ReportController extends Controller {
} }
const groupedData: GroupedData[] = resultAllStrategy.reduce((acc: GroupedData[], item) => { const groupedData: GroupedData[] = resultAllStrategy.reduce((acc: GroupedData[], item) => {
const existingRoot = acc.find(entry => entry.rootId === item.rootId); const existingRoot = acc.find((entry) => entry.rootId === item.rootId);
if (existingRoot) { if (existingRoot) {
existingRoot.strategy.push({ existingRoot.strategy.push({
@ -154,7 +167,8 @@ export class ReportController extends Controller {
acc.push({ acc.push({
rootId: item.rootId, rootId: item.rootId,
root: item.root, root: item.root,
strategy: [{ strategy: [
{
strategyId: item.strategyId, strategyId: item.strategyId,
strategyName: item.strategyName, strategyName: item.strategyName,
devCount: item.devCount ? item.devCount : "-", devCount: item.devCount ? item.devCount : "-",
@ -165,7 +179,8 @@ export class ReportController extends Controller {
sumRowDev: "", sumRowDev: "",
sumRowTarget: "", sumRowTarget: "",
sumRowBudget: "", sumRowBudget: "",
}] },
],
}); });
} }
@ -184,44 +199,86 @@ export class ReportController extends Controller {
let sumTraget4 = 0; let sumTraget4 = 0;
let sumBudget4 = 0; let sumBudget4 = 0;
const reformattedData = groupedData.map((group, x) => { const reformattedData = groupedData.map((group, x) => {
const sumRowDev = (group.strategy[0] && group.strategy[0].devCount !== "-" ? Number(group.strategy[0].devCount) : 0) + const sumRowDev =
(group.strategy[1] && group.strategy[1].devCount !== "-" ? Number(group.strategy[1].devCount) : 0) + (group.strategy[0] && group.strategy[0].devCount !== "-"
(group.strategy[2] && group.strategy[2].devCount !== "-" ? Number(group.strategy[2].devCount) : 0); ? Number(group.strategy[0].devCount)
(group.strategy[3] && group.strategy[3].devCount !== "-" ? Number(group.strategy[3].devCount) : 0); : 0) +
const sumRowBudget = (group.strategy[0] && group.strategy[0].receiveBudget !== "-" ? Number(group.strategy[0].receiveBudget) : 0) + (group.strategy[1] && group.strategy[1].devCount !== "-"
(group.strategy[1] && group.strategy[1].receiveBudget !== "-" ? Number(group.strategy[1].receiveBudget) : 0) + ? Number(group.strategy[1].devCount)
(group.strategy[2] && group.strategy[2].receiveBudget !== "-" ? Number(group.strategy[2].receiveBudget) : 0); : 0) +
(group.strategy[3] && group.strategy[3].receiveBudget !== "-" ? Number(group.strategy[3].receiveBudget) : 0); (group.strategy[2] && group.strategy[2].devCount !== "-"
? Number(group.strategy[2].devCount)
: 0);
group.strategy[3] && group.strategy[3].devCount !== "-"
? Number(group.strategy[3].devCount)
: 0;
const sumRowBudget =
(group.strategy[0] && group.strategy[0].receiveBudget !== "-"
? Number(group.strategy[0].receiveBudget)
: 0) +
(group.strategy[1] && group.strategy[1].receiveBudget !== "-"
? Number(group.strategy[1].receiveBudget)
: 0) +
(group.strategy[2] && group.strategy[2].receiveBudget !== "-"
? Number(group.strategy[2].receiveBudget)
: 0);
group.strategy[3] && group.strategy[3].receiveBudget !== "-"
? Number(group.strategy[3].receiveBudget)
: 0;
sumDev1 = groupedData.reduce((sum, group) => { sumDev1 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[0] && group.strategy[0].devCount !== "-" ? Number(group.strategy[0].devCount) : 0; const devCount =
group.strategy[0] && group.strategy[0].devCount !== "-"
? Number(group.strategy[0].devCount)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumBudget1 = groupedData.reduce((sum, group) => { sumBudget1 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[0] && group.strategy[0].receiveBudget !== "-" ? Number(group.strategy[0].receiveBudget) : 0; const devCount =
group.strategy[0] && group.strategy[0].receiveBudget !== "-"
? Number(group.strategy[0].receiveBudget)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumDev2 = groupedData.reduce((sum, group) => { sumDev2 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[1] && group.strategy[1].devCount !== "-" ? Number(group.strategy[1].devCount) : 0; const devCount =
group.strategy[1] && group.strategy[1].devCount !== "-"
? Number(group.strategy[1].devCount)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumBudget2 = groupedData.reduce((sum, group) => { sumBudget2 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[1] && group.strategy[1].receiveBudget !== "-" ? Number(group.strategy[1].receiveBudget) : 0; const devCount =
group.strategy[1] && group.strategy[1].receiveBudget !== "-"
? Number(group.strategy[1].receiveBudget)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumDev3 = groupedData.reduce((sum, group) => { sumDev3 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[2] && group.strategy[2].devCount !== "-" ? Number(group.strategy[2].devCount) : 0; const devCount =
group.strategy[2] && group.strategy[2].devCount !== "-"
? Number(group.strategy[2].devCount)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumBudget3 = groupedData.reduce((sum, group) => { sumBudget3 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[2] && group.strategy[2].receiveBudget !== "-" ? Number(group.strategy[2].receiveBudget) : 0; const devCount =
group.strategy[2] && group.strategy[2].receiveBudget !== "-"
? Number(group.strategy[2].receiveBudget)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumDev4 = groupedData.reduce((sum, group) => { sumDev4 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[3] && group.strategy[3].devCount !== "-" ? Number(group.strategy[3].devCount) : 0; const devCount =
group.strategy[3] && group.strategy[3].devCount !== "-"
? Number(group.strategy[3].devCount)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
sumBudget4 = groupedData.reduce((sum, group) => { sumBudget4 = groupedData.reduce((sum, group) => {
const devCount = group.strategy[3] && group.strategy[3].receiveBudget !== "-" ? Number(group.strategy[3].receiveBudget) : 0; const devCount =
group.strategy[3] && group.strategy[3].receiveBudget !== "-"
? Number(group.strategy[3].receiveBudget)
: 0;
return sum + devCount; return sum + devCount;
}, 0); }, 0);
@ -229,29 +286,61 @@ export class ReportController extends Controller {
rowNo: x ? Extension.ToThaiNumber((x + 1).toString()) : Extension.ToThaiNumber("๑"), rowNo: x ? Extension.ToThaiNumber((x + 1).toString()) : Extension.ToThaiNumber("๑"),
rootId: group.rootId, rootId: group.rootId,
root: group.root, root: group.root,
strategyName1: group.strategy[0]&&group.strategy[0].strategyName?group.strategy[0].strategyName:"-", strategyName1:
devCount1: group.strategy[0]&&group.strategy[0].devCount?Extension.ToThaiNumber(group.strategy[0].devCount.toLocaleString()):"-", group.strategy[0] && group.strategy[0].strategyName
? group.strategy[0].strategyName
: "-",
devCount1:
group.strategy[0] && group.strategy[0].devCount
? Extension.ToThaiNumber(group.strategy[0].devCount.toLocaleString())
: "-",
target1: "-", target1: "-",
receiveBudget1: group.strategy[0]&&group.strategy[0].receiveBudget?Extension.ToThaiNumber(group.strategy[0].receiveBudget.toLocaleString()):"-", receiveBudget1:
group.strategy[0] && group.strategy[0].receiveBudget
? Extension.ToThaiNumber(group.strategy[0].receiveBudget.toLocaleString())
: "-",
strategyName2:
strategyName2: group.strategy[1]&&group.strategy[1].strategyName?group.strategy[1].strategyName:"-", group.strategy[1] && group.strategy[1].strategyName
devCount2: group.strategy[1]&&group.strategy[1].devCount?Extension.ToThaiNumber(group.strategy[1].devCount.toLocaleString()):"-", ? group.strategy[1].strategyName
: "-",
devCount2:
group.strategy[1] && group.strategy[1].devCount
? Extension.ToThaiNumber(group.strategy[1].devCount.toLocaleString())
: "-",
target2: "-", target2: "-",
receiveBudget2: group.strategy[1]&&group.strategy[1].receiveBudget?Extension.ToThaiNumber(group.strategy[1].receiveBudget.toLocaleString()):"-", receiveBudget2:
group.strategy[1] && group.strategy[1].receiveBudget
? Extension.ToThaiNumber(group.strategy[1].receiveBudget.toLocaleString())
: "-",
strategyName3:
strategyName3: group.strategy[2]&&group.strategy[2].strategyName?group.strategy[2].strategyName:"-", group.strategy[2] && group.strategy[2].strategyName
devCount3: group.strategy[2]&&group.strategy[2].devCount?Extension.ToThaiNumber(group.strategy[2].devCount.toLocaleString()):"-", ? group.strategy[2].strategyName
: "-",
devCount3:
group.strategy[2] && group.strategy[2].devCount
? Extension.ToThaiNumber(group.strategy[2].devCount.toLocaleString())
: "-",
target3: "-", target3: "-",
receiveBudget3: group.strategy[2]&&group.strategy[2].receiveBudget?Extension.ToThaiNumber(group.strategy[2].receiveBudget.toLocaleString()):"-", receiveBudget3:
group.strategy[2] && group.strategy[2].receiveBudget
? Extension.ToThaiNumber(group.strategy[2].receiveBudget.toLocaleString())
: "-",
strategyName4:
strategyName4: group.strategy[3]&&group.strategy[3].strategyName?group.strategy[3].strategyName:"-", group.strategy[3] && group.strategy[3].strategyName
devCount4: group.strategy[3]&&group.strategy[3].devCount?Extension.ToThaiNumber(group.strategy[3].devCount.toLocaleString()):"-", ? group.strategy[3].strategyName
: "-",
devCount4:
group.strategy[3] && group.strategy[3].devCount
? Extension.ToThaiNumber(group.strategy[3].devCount.toLocaleString())
: "-",
target4: "-", target4: "-",
receiveBudget4: group.strategy[3]&&group.strategy[3].receiveBudget?Extension.ToThaiNumber(group.strategy[3].receiveBudget.toLocaleString()):"-", receiveBudget4:
group.strategy[3] && group.strategy[3].receiveBudget
? Extension.ToThaiNumber(group.strategy[3].receiveBudget.toLocaleString())
: "-",
sumRowDev: sumRowDev ? Extension.ToThaiNumber(sumRowDev.toLocaleString()) : "-", sumRowDev: sumRowDev ? Extension.ToThaiNumber(sumRowDev.toLocaleString()) : "-",
sumRowTarget: "-", sumRowTarget: "-",
@ -306,9 +395,16 @@ export class ReportController extends Controller {
sumDev4: Extension.ToThaiNumber(sumDev4.toLocaleString()) ?? "-", sumDev4: Extension.ToThaiNumber(sumDev4.toLocaleString()) ?? "-",
sumTraget4: Extension.ToThaiNumber(sumTraget4.toLocaleString()) ?? "-", sumTraget4: Extension.ToThaiNumber(sumTraget4.toLocaleString()) ?? "-",
sumBudget4: Extension.ToThaiNumber(sumBudget4.toLocaleString()) ?? "-", sumBudget4: Extension.ToThaiNumber(sumBudget4.toLocaleString()) ?? "-",
sumAllDev: Extension.ToThaiNumber((sumDev1 + sumDev2 + sumDev3 + sumDev4).toLocaleString())??"-", sumAllDev:
sumTraget: Extension.ToThaiNumber((sumTraget1 +sumTraget2 +sumTraget3 +sumTraget4).toLocaleString())??"-", Extension.ToThaiNumber((sumDev1 + sumDev2 + sumDev3 + sumDev4).toLocaleString()) ?? "-",
sumAllBudget: Extension.ToThaiNumber((sumBudget1 + sumBudget2 + sumBudget3 + sumBudget4).toLocaleString())??"-", sumTraget:
Extension.ToThaiNumber(
(sumTraget1 + sumTraget2 + sumTraget3 + sumTraget4).toLocaleString(),
) ?? "-",
sumAllBudget:
Extension.ToThaiNumber(
(sumBudget1 + sumBudget2 + sumBudget3 + sumBudget4).toLocaleString(),
) ?? "-",
}, },
}); });
} }
@ -568,10 +664,7 @@ export class ReportController extends Controller {
* *
*/ */
@Get("report3") @Get("report3")
async report3( async report3(@Query("year") year?: number, @Query("rootId") rootId?: string) {
@Query("year") year?: number,
@Query("rootId") rootId?: string,
) {
const developments = await AppDataSource.getRepository(DevelopmentScholarship) const developments = await AppDataSource.getRepository(DevelopmentScholarship)
.createQueryBuilder("developmentScholarship") .createQueryBuilder("developmentScholarship")
.leftJoinAndSelect("developmentScholarship.posLevel", "posLevel") .leftJoinAndSelect("developmentScholarship.posLevel", "posLevel")
@ -595,8 +688,8 @@ export class ReportController extends Controller {
const mapData = developments.map((item, idx: number) => ({ const mapData = developments.map((item, idx: number) => ({
no: Extension.ToThaiNumber((idx + 1).toString()), no: Extension.ToThaiNumber((idx + 1).toString()),
institution: item.educationalInstitution ? item.educationalInstitution : "-", institution: item.educationalInstitution ? item.educationalInstitution : "-",
scholarshipType: item.scholarshipType ? scholarshipType: item.scholarshipType
item.scholarshipType == "DOMESTICE" ? item.scholarshipType == "DOMESTICE"
? "การศึกษาในประเทศ" ? "การศึกษาในประเทศ"
: item.scholarshipType == "NOABROAD" : item.scholarshipType == "NOABROAD"
? "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่ไม่มีการไปต่างประเทศ)" ? "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยวงานภายนอก (หลักสูตรที่ไม่มีการไปต่างประเทศ)"
@ -615,35 +708,44 @@ export class ReportController extends Controller {
position: item.position ? item.position : "-", position: item.position ? item.position : "-",
posLevel: item.posLevel ? item.posLevel.posLevelName : "-", posLevel: item.posLevel ? item.posLevel.posLevelName : "-",
totalPeriod: item.totalPeriod ? item.totalPeriod : "-", totalPeriod: item.totalPeriod ? item.totalPeriod : "-",
budgetApprove: item.budgetApprove ? Extension.ToThaiNumber(item.budgetApprove.toLocaleString()) : "" budgetApprove: item.budgetApprove
? Extension.ToThaiNumber(item.budgetApprove.toLocaleString())
: "",
})); }));
const sum = developments const sum = developments
.filter(x => x.budgetApprove) .filter((x) => x.budgetApprove)
.reduce((acc, item) => acc + (Number(item.budgetApprove)), 0); .reduce((acc, item) => acc + Number(item.budgetApprove), 0);
return new HttpSuccess({ return new HttpSuccess({
template: "reportFund3", template: "reportFund3",
reportName: "reportFund3", reportName: "reportFund3",
data: { data: {
year: year ? Extension.ToThaiNumber((year+543).toString()) : "-", year: year ? Extension.ToThaiNumber((year + 543).toString()) : "",
root: rootId ? developments.length > 0 ? developments.find(x => x.root != "")?.root: "-" : "-", root: rootId
data: mapData.length > 0 ? developments.length > 0
? developments.find((x) => x.root != "")?.root
: ""
: "",
data:
mapData.length > 0
? mapData ? mapData
: [{ : [
no: "-", {
institution: "-", no: "",
scholarshipType: "-", institution: "",
degreeLevel: "-", scholarshipType: "",
course: "-", degreeLevel: "",
field: "-", course: "",
fullName: "-", field: "",
position: "-", fullName: "",
posLevel: "-", position: "",
totalPeriod: "-", posLevel: "",
budgetApprove: "-", totalPeriod: "",
}], budgetApprove: "",
sum: sum ? Extension.ToThaiNumber(sum.toLocaleString()): "-" },
],
sum: sum ? Extension.ToThaiNumber(sum.toLocaleString()) : "-",
}, },
}); });
} }
@ -654,9 +756,7 @@ export class ReportController extends Controller {
* *
*/ */
@Get("report4") @Get("report4")
async report4( async report4(@Query("year") year?: number) {
@Query("year") year?: number,
) {
const developments = await AppDataSource.getRepository(DevelopmentScholarship) const developments = await AppDataSource.getRepository(DevelopmentScholarship)
.createQueryBuilder("developmentScholarship") .createQueryBuilder("developmentScholarship")
.andWhere( .andWhere(
@ -676,12 +776,13 @@ export class ReportController extends Controller {
// order: { "scholarshipYear" : "DESC" } // order: { "scholarshipYear" : "DESC" }
// }) // })
const groupDevelopment = Array.isArray(developments) && developments.length > 0 const groupDevelopment =
Array.isArray(developments) && developments.length > 0
? developments.reduce((acc: any, current: any, idx: number) => { ? developments.reduce((acc: any, current: any, idx: number) => {
const root = current.root || ""; const root = current.root || "";
if (!acc[root]) { if (!acc[root]) {
acc[root] = { acc[root] = {
no: (idx+1), no: idx + 1,
root: root, root: root,
Bachelor: 0, Bachelor: 0,
BachelorHight: 0, BachelorHight: 0,
@ -728,9 +829,21 @@ export class ReportController extends Controller {
break; break;
} }
acc[root].TotalCourseCount = acc[root].DomesticeCourseCount + acc[root].NoAbroadCourseCount + acc[root].AbroadCourseCount + acc[root].ExecutiveCourseCount; acc[root].TotalCourseCount =
acc[root].TotalProfileCount = acc[root].DomesticeProfileCount + acc[root].NoAbroadProfileCount + acc[root].AbroadProfileCount + acc[root].ExecutiveProfileCount; acc[root].DomesticeCourseCount +
acc[root].TotalBudgetApprove = acc[root].DomesticeBudgetApprove + acc[root].NoAbroadBudgetApprove + acc[root].AbroadBudgetApprove + acc[root].ExecutiveBudgetApprove; acc[root].NoAbroadCourseCount +
acc[root].AbroadCourseCount +
acc[root].ExecutiveCourseCount;
acc[root].TotalProfileCount =
acc[root].DomesticeProfileCount +
acc[root].NoAbroadProfileCount +
acc[root].AbroadProfileCount +
acc[root].ExecutiveProfileCount;
acc[root].TotalBudgetApprove =
acc[root].DomesticeBudgetApprove +
acc[root].NoAbroadBudgetApprove +
acc[root].AbroadBudgetApprove +
acc[root].ExecutiveBudgetApprove;
return acc; return acc;
}, {}) }, {})
@ -743,31 +856,62 @@ export class ReportController extends Controller {
data: { data: {
year: year ? Extension.ToThaiNumber((year + 543).toString()) : "-", year: year ? Extension.ToThaiNumber((year + 543).toString()) : "-",
data: Array.isArray(_group) data: Array.isArray(_group)
// ? _group ? // ? _group
? _group.map((x:any) => ({ _group.map((x: any) => ({
no: x.no ? Extension.ToThaiNumber(x.no.toString()) : "-", no: x.no ? Extension.ToThaiNumber(x.no.toString()) : "-",
root: x.root ? x.root : "-", root: x.root ? x.root : "ไม่พบหน่วยงาน",
Bachelor: "-", Bachelor: "-",
BachelorHight: "-", BachelorHight: "-",
Master: "-", Master: "-",
Doctor: "-", Doctor: "-",
DomesticeCourseCount: x.DomesticeCourseCount ? Extension.ToThaiNumber(x.DomesticeCourseCount.toLocaleString()) : "-", DomesticeCourseCount: x.DomesticeCourseCount
DomesticeProfileCount: x.DomesticeProfileCount ? Extension.ToThaiNumber(x.DomesticeProfileCount.toLocaleString()) : "-", ? Extension.ToThaiNumber(x.DomesticeCourseCount.toLocaleString())
DomesticeBudgetApprove: x.DomesticeBudgetApprove ? Extension.ToThaiNumber(x.DomesticeBudgetApprove.toLocaleString()) : "-", : "-",
NoAbroadCourseCount: x.NoAbroadCourseCount ? Extension.ToThaiNumber(x.NoAbroadCourseCount.toLocaleString()) : "-", DomesticeProfileCount: x.DomesticeProfileCount
NoAbroadDProfileCount: x.NoAbroadDProfileCount ? Extension.ToThaiNumber(x.NoAbroadDProfileCount.toLocaleString()) : "-", ? Extension.ToThaiNumber(x.DomesticeProfileCount.toLocaleString())
NoAbroadBudgetApprove: x.NoAbroadBudgetApprove ? Extension.ToThaiNumber(x.NoAbroadBudgetApprove.toLocaleString()) : "-", : "-",
AbroadCourseCount: x.AbroadCourseCount ? Extension.ToThaiNumber(x.AbroadCourseCount.toLocaleString()) : "-", DomesticeBudgetApprove: x.DomesticeBudgetApprove
AbroadProfileCount: x.AbroadProfileCount ? Extension.ToThaiNumber(x.AbroadProfileCount.toLocaleString()) : "-", ? Extension.ToThaiNumber(x.DomesticeBudgetApprove.toLocaleString())
AbroadBudgetApprove: x.AbroadBudgetApprove ? Extension.ToThaiNumber(x.AbroadBudgetApprove.toLocaleString()) : "-", : "-",
ExecutiveCourseCount: x.ExecutiveCourseCount ? Extension.ToThaiNumber(x.ExecutiveCourseCount.toLocaleString()) : "-", NoAbroadCourseCount: x.NoAbroadCourseCount
ExecutiveProfileCount: x.ExecutiveProfileCount ? Extension.ToThaiNumber(x.ExecutiveProfileCount.toLocaleString()) : "-", ? Extension.ToThaiNumber(x.NoAbroadCourseCount.toLocaleString())
ExecutiveBudgetApprove: x.ExecutiveBudgetApprove ? Extension.ToThaiNumber(x.ExecutiveBudgetApprove.toLocaleString()) : "-", : "-",
TotalCourseCount: x.TotalCourseCount ? Extension.ToThaiNumber(x.TotalCourseCount.toLocaleString()) : "-", NoAbroadDProfileCount: x.NoAbroadDProfileCount
TotalProfileCount: x.TotalProfileCount ? Extension.ToThaiNumber(x.TotalProfileCount.toLocaleString()) : "-", ? Extension.ToThaiNumber(x.NoAbroadDProfileCount.toLocaleString())
TotalBudgetApprove: x.TotalBudgetApprove ? Extension.ToThaiNumber(x.TotalBudgetApprove.toLocaleString()) : "-", : "-",
NoAbroadBudgetApprove: x.NoAbroadBudgetApprove
? Extension.ToThaiNumber(x.NoAbroadBudgetApprove.toLocaleString())
: "-",
AbroadCourseCount: x.AbroadCourseCount
? Extension.ToThaiNumber(x.AbroadCourseCount.toLocaleString())
: "-",
AbroadProfileCount: x.AbroadProfileCount
? Extension.ToThaiNumber(x.AbroadProfileCount.toLocaleString())
: "-",
AbroadBudgetApprove: x.AbroadBudgetApprove
? Extension.ToThaiNumber(x.AbroadBudgetApprove.toLocaleString())
: "-",
ExecutiveCourseCount: x.ExecutiveCourseCount
? Extension.ToThaiNumber(x.ExecutiveCourseCount.toLocaleString())
: "-",
ExecutiveProfileCount: x.ExecutiveProfileCount
? Extension.ToThaiNumber(x.ExecutiveProfileCount.toLocaleString())
: "-",
ExecutiveBudgetApprove: x.ExecutiveBudgetApprove
? Extension.ToThaiNumber(x.ExecutiveBudgetApprove.toLocaleString())
: "-",
TotalCourseCount: x.TotalCourseCount
? Extension.ToThaiNumber(x.TotalCourseCount.toLocaleString())
: "-",
TotalProfileCount: x.TotalProfileCount
? Extension.ToThaiNumber(x.TotalProfileCount.toLocaleString())
: "-",
TotalBudgetApprove: x.TotalBudgetApprove
? Extension.ToThaiNumber(x.TotalBudgetApprove.toLocaleString())
: "-",
})) }))
: [{ : [
{
no: "-", no: "-",
root: "-", root: "-",
Bachelor: "-", Bachelor: "-",
@ -789,8 +933,11 @@ export class ReportController extends Controller {
TotalCourseCount: "-", TotalCourseCount: "-",
TotalProfileCount: "-", TotalProfileCount: "-",
TotalBudgetApprove: "-", TotalBudgetApprove: "-",
}], },
totalRoot: Array.isArray(_group) ? Extension.ToThaiNumber(_group.length.toLocaleString()) : "-" ],
totalRoot: Array.isArray(_group)
? Extension.ToThaiNumber(_group.length.toLocaleString())
: "-",
}, },
}); });
} }
@ -805,7 +952,6 @@ export class ReportController extends Controller {
@Query("year") year?: number, @Query("year") year?: number,
// @Query("rootId") rootId: string, // @Query("rootId") rootId: string,
) { ) {
const [development, total] = await AppDataSource.getRepository(DevelopmentScholarship) const [development, total] = await AppDataSource.getRepository(DevelopmentScholarship)
.createQueryBuilder("developmentScholarship") .createQueryBuilder("developmentScholarship")
.leftJoinAndSelect("developmentScholarship.posLevel", "posLevel") .leftJoinAndSelect("developmentScholarship.posLevel", "posLevel")
@ -819,18 +965,21 @@ export class ReportController extends Controller {
: "1=1", : "1=1",
{ scholarshipYear: year }, { scholarshipYear: year },
) )
.andWhere( .andWhere("developmentScholarship.scholarshipType = :scholarshipType", {
"developmentScholarship.scholarshipType = :scholarshipType", { scholarshipType: "RESEARCH" }, scholarshipType: "RESEARCH",
) })
.orderBy("developmentScholarship.scholarshipYear", "DESC") .orderBy("developmentScholarship.scholarshipYear", "DESC")
.addOrderBy("developmentScholarship.createdAt", "DESC") .addOrderBy("developmentScholarship.createdAt", "DESC")
.getManyAndCount(); .getManyAndCount();
const totalBudgetApprove = development.reduce((sum, item) => sum + Number(item.budgetApprove), 0); const totalBudgetApprove = development.reduce(
(sum, item) => sum + Number(item.budgetApprove),
0,
);
const formattedData = development.map((item, index) => { const formattedData = development.map((item, index) => {
const rawPath = [ const rawPath = [
item.course == "-" ? null : item.course, item.course == "-" ? null : item.course,
item.field == "-" ? null : item.course item.field == "-" ? null : item.course,
]; ];
const courseAndfield = rawPath const courseAndfield = rawPath
@ -839,12 +988,10 @@ export class ReportController extends Controller {
const date = [ const date = [
Extension.ToThaiNumber(Extension.ToThaiShortDate(item.startDate)), Extension.ToThaiNumber(Extension.ToThaiShortDate(item.startDate)),
Extension.ToThaiNumber(Extension.ToThaiShortDate(item.endDate)) Extension.ToThaiNumber(Extension.ToThaiShortDate(item.endDate)),
]; ];
const dateDulation = date const dateDulation = date.filter((path) => path !== undefined && path !== null).join(" - ");
.filter((path) => path !== undefined && path !== null)
.join(" - ");
return { return {
no: Extension.ToThaiNumber((index + 1).toString()), no: Extension.ToThaiNumber((index + 1).toString()),
@ -857,11 +1004,12 @@ export class ReportController extends Controller {
place: item.studyPlace ? item.studyPlace : "-", place: item.studyPlace ? item.studyPlace : "-",
country: item.studyCountry ? item.studyCountry : "-", country: item.studyCountry ? item.studyCountry : "-",
startAndendDate: dateDulation, startAndendDate: dateDulation,
budgetApprove: item.budgetApprove ? Extension.ToThaiNumber(item.budgetApprove.toLocaleString()) : "-", budgetApprove: item.budgetApprove
? Extension.ToThaiNumber(item.budgetApprove.toLocaleString())
: "-",
}; };
}); });
return new HttpSuccess({ return new HttpSuccess({
template: "reportFund5", template: "reportFund5",
reportName: "reportFund5", reportName: "reportFund5",
@ -880,14 +1028,8 @@ export class ReportController extends Controller {
* *
*/ */
@Get("report6") @Get("report6")
async report6( async report6(@Query("year") year?: number) {
@Query("year") year?: number, const degree = ["ปริญญาเอก", "ปริญญาโท", "ปริญญาตรี"];
) {
const degree = [
"ปริญญาเอก",
"ปริญญาโท",
"ปริญญาตรี",
];
const development = await this.viewDevScholarship.find({ const development = await this.viewDevScholarship.find({
where: { where: {
@ -939,35 +1081,64 @@ export class ReportController extends Controller {
}, {}); }, {});
const formattedData = Object.values(groupedData).map((item: any, index: any) => { const formattedData = Object.values(groupedData).map((item: any, index: any) => {
const sumnumberOfRecords = item.degreeLevel1.numberOfRecords + item.degreeLevel2.numberOfRecords + item.degreeLevel3.numberOfRecords; const sumnumberOfRecords =
const sumnumberOfScholarshipTypes = item.degreeLevel1.numberOfScholarshipTypes + item.degreeLevel2.numberOfScholarshipTypes + item.degreeLevel3.numberOfScholarshipTypes; item.degreeLevel1.numberOfRecords +
const sumtotalBudgetApprove = item.degreeLevel1.totalBudgetApprove + item.degreeLevel2.totalBudgetApprove + item.degreeLevel3.totalBudgetApprove; item.degreeLevel2.numberOfRecords +
item.degreeLevel3.numberOfRecords;
const sumnumberOfScholarshipTypes =
item.degreeLevel1.numberOfScholarshipTypes +
item.degreeLevel2.numberOfScholarshipTypes +
item.degreeLevel3.numberOfScholarshipTypes;
const sumtotalBudgetApprove =
item.degreeLevel1.totalBudgetApprove +
item.degreeLevel2.totalBudgetApprove +
item.degreeLevel3.totalBudgetApprove;
return { return {
no: index ? Extension.ToThaiNumber((index + 1).toString()) : "๑", no: index ? Extension.ToThaiNumber((index + 1).toString()) : "๑",
rootId: item.rootId ? item.rootId : "-", rootId: item.rootId ? item.rootId : "-",
root: item.root ? item.root : "-", root: item.root ? item.root : "-",
degreeLevel1: "ปริญญาตรี", degreeLevel1: "ปริญญาตรี",
numberOfRecords1: item.degreeLevel1.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel1.numberOfRecords.toString()) : "-", numberOfRecords1: item.degreeLevel1.numberOfRecords
numberOfScholarshipTypes1: item.degreeLevel1.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel1.numberOfScholarshipTypes.toString()) : "-", ? Extension.ToThaiNumber(item.degreeLevel1.numberOfRecords.toString())
totalBudgetApprove1: item.degreeLevel1.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel1.totalBudgetApprove.toLocaleString()) : "-", : "-",
numberOfScholarshipTypes1: item.degreeLevel1.numberOfScholarshipTypes
? Extension.ToThaiNumber(item.degreeLevel1.numberOfScholarshipTypes.toString())
: "-",
totalBudgetApprove1: item.degreeLevel1.totalBudgetApprove
? Extension.ToThaiNumber(item.degreeLevel1.totalBudgetApprove.toLocaleString())
: "-",
degreeLevel2: "ปริญญาโท", degreeLevel2: "ปริญญาโท",
numberOfRecords2: item.degreeLevel2.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel2.numberOfRecords.toString()) : "-", numberOfRecords2: item.degreeLevel2.numberOfRecords
numberOfScholarshipTypes2: item.degreeLevel2.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel2.numberOfScholarshipTypes.toString()) : "-", ? Extension.ToThaiNumber(item.degreeLevel2.numberOfRecords.toString())
totalBudgetApprove2: item.degreeLevel2.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel2.totalBudgetApprove.toLocaleString()) : "-", : "-",
numberOfScholarshipTypes2: item.degreeLevel2.numberOfScholarshipTypes
? Extension.ToThaiNumber(item.degreeLevel2.numberOfScholarshipTypes.toString())
: "-",
totalBudgetApprove2: item.degreeLevel2.totalBudgetApprove
? Extension.ToThaiNumber(item.degreeLevel2.totalBudgetApprove.toLocaleString())
: "-",
degreeLevel3: "ปริญญาเอก", degreeLevel3: "ปริญญาเอก",
numberOfRecords3: item.degreeLevel3.numberOfRecords ? Extension.ToThaiNumber(item.degreeLevel3.numberOfRecords.toString()) : "-", numberOfRecords3: item.degreeLevel3.numberOfRecords
numberOfScholarshipTypes3: item.degreeLevel3.numberOfScholarshipTypes ? Extension.ToThaiNumber(item.degreeLevel3.numberOfScholarshipTypes.toString()) : "-", ? Extension.ToThaiNumber(item.degreeLevel3.numberOfRecords.toString())
totalBudgetApprove3: item.degreeLevel3.totalBudgetApprove ? Extension.ToThaiNumber(item.degreeLevel3.totalBudgetApprove.toLocaleString()) : "-", : "-",
numberOfScholarshipTypes3: item.degreeLevel3.numberOfScholarshipTypes
? Extension.ToThaiNumber(item.degreeLevel3.numberOfScholarshipTypes.toString())
: "-",
totalBudgetApprove3: item.degreeLevel3.totalBudgetApprove
? Extension.ToThaiNumber(item.degreeLevel3.totalBudgetApprove.toLocaleString())
: "-",
totalNumberOfRecords: Extension.ToThaiNumber(sumnumberOfRecords.toString()), totalNumberOfRecords: Extension.ToThaiNumber(sumnumberOfRecords.toString()),
totalNumberOfScholarshipTypes: Extension.ToThaiNumber(sumnumberOfScholarshipTypes.toString()), totalNumberOfScholarshipTypes: Extension.ToThaiNumber(
totalTotalBudgetApprove: Extension.ToThaiNumber(sumtotalBudgetApprove.toLocaleString()) sumnumberOfScholarshipTypes.toString(),
),
totalTotalBudgetApprove: Extension.ToThaiNumber(sumtotalBudgetApprove.toLocaleString()),
}; };
}); });
const uniqueRoots = new Set(formattedData.map(item => item.root)); const uniqueRoots = new Set(formattedData.map((item) => item.root));
const numberOfORG = uniqueRoots.size; const numberOfORG = uniqueRoots.size;
return new HttpSuccess({ return new HttpSuccess({
@ -976,11 +1147,10 @@ export class ReportController extends Controller {
data: { data: {
year: year ? Extension.ToThaiNumber((year + 543).toString()) : "", year: year ? Extension.ToThaiNumber((year + 543).toString()) : "",
data: formattedData, data: formattedData,
coutOrg: numberOfORG?Extension.ToThaiNumber(numberOfORG.toString())+" หน่วยงาน":" หน่วยงาน" coutOrg: numberOfORG
? Extension.ToThaiNumber(numberOfORG.toString()) + " หน่วยงาน"
: " หน่วยงาน",
}, },
}); });
} }
} }