diff --git a/src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx b/src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx index afb0ff8..4d42de8 100644 --- a/src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx +++ b/src/components/ResourceOverconsumptionReport/ResourceOverconsumptionReport.tsx @@ -11,6 +11,7 @@ import { StaffResult } from "@/app/api/staff"; import { TeamResult } from "@/app/api/team"; import { Customer } from "@/app/api/customer"; import { Subsidiary } from "@/app/api/subsidiary"; +import CostAndExpenseReportLoading from "../CostAndExpenseReport/CostAndExpenseReportLoading"; interface Props { team: TeamResult[] @@ -19,6 +20,12 @@ interface Props { needAll: boolean } +type combo = { + value: string, + label: string, + group: string +} + type SearchQuery = Partial>; type SearchParamNames = keyof SearchQuery; @@ -26,19 +33,27 @@ const ResourceOverconsumptionReport: React.FC = ({ team, customer, subsid const { t } = useTranslation("report"); const statusCombo = ["Potential Overconsumption"] const teamCombo = team.map(t => `${t.code} - ${t.name}`).sort() - const custCombo = customer.map(c => ({ + const custCombo: combo[] = customer.map(c => ({ value: `custId-${c.id}`, label: `${c.code} - ${c.name}`, group: t("Client") - })).sort() - const subsidiariesCombo = subsidiaries.map(sub => ({ + })) + .sort((a: combo, b: combo) => { + const [_custType_A, id_A] = readIntFromString(a.value) as [string, number] + const [_custType_B, id_B] = readIntFromString(b.value) as [string, number] + return (id_A - id_B) + }); + const subsidiariesCombo: combo[] = subsidiaries.map(sub => ({ value: `subsidiaryId-${sub.id}`, label: `${sub.code} - ${sub.name}`, group: t("Subsidiary") - })).sort() - // const staffCombo = staffs.map(staff => `${staff.name} - ${staff.staffId}`) - // console.log(staffs) - + })) + .sort((a: combo, b: combo) => { + const [_custType_A, id_A] = readIntFromString(a.value) as [string, number] + const [_custType_B, id_B] = readIntFromString(b.value) as [string, number] + return (id_A - id_B) + }); + const searchCriteria: Criterion[] = useMemo( () => [ { @@ -83,18 +98,11 @@ return ( status: "All", lowerLimit: 0.9 } - if (query.team.length > 0 && query.team.toLocaleLowerCase() !== "all") { + if (query.team.length > 0 && query.team.toLocaleLowerCase() !== "all") { index = teamCombo.findIndex(team => team === query.team) - // console.log(index) - // console.log(teamCombo) - const sortedTeam = team.sort((a, b) => a.code.localeCompare(b.code)) - // console.log(sortedTeam) - const sortedId = sortedTeam[index].id - // console.log(sortedId) - // console.log(team.find(team => query.team === `${team.code} - Team ${team.staffName}`)?.id) - // const teamId = team.find(team => query.team === `${team.code} - Team ${team.staffName}`)?.id - postData.teamId = sortedId - // postData.teamId = teamId + const teamId = team[index].id + console.log(teamId) + postData.teamId = teamId } if (Boolean(query.lowerLimit)) { postData.lowerLimit = query.lowerLimit/100