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