@@ -93,12 +93,12 @@ export default function CoMatRvw() {
|
||||
|
||||
const form = useForm<z.infer<typeof DmdCoReqSchema>>({
|
||||
resolver: zodResolver(DmdCoReqSchema),
|
||||
shouldUnregister: true
|
||||
shouldUnregister: false,
|
||||
// defaultValues: DmdCoReqSchema.parse({})
|
||||
});
|
||||
|
||||
|
||||
const TableCellClick = (index: number) => {
|
||||
console.log(coMatRvwRes);
|
||||
if (coMatRvwRes && coMatRvwRes[index]) {
|
||||
setSelectData(coMatRvwRes[index]);
|
||||
setSelectionVersion((v) => v + 1); // 행을 클릭할 때마다 버전을 1씩 증가
|
||||
@@ -107,7 +107,6 @@ export default function CoMatRvw() {
|
||||
const useUsgCdWatch = useWatch({ control: form.control, name: "useUsgCd" });
|
||||
useEffect(() => {
|
||||
|
||||
console.log(' useUsgCdWatch page ' ,useUsgCdWatch)
|
||||
if (useUsgCdWatch) {
|
||||
form.setValue(
|
||||
"demandCst.usgPrcsProcs",
|
||||
@@ -160,7 +159,15 @@ export default function CoMatRvw() {
|
||||
|
||||
useEffect(() => {
|
||||
if (selectData) {
|
||||
form.reset(selectData);
|
||||
|
||||
try {
|
||||
DmdCoReqSchema.parse(selectData);
|
||||
} catch (e) {
|
||||
if (e instanceof z.ZodError) {
|
||||
console.log(e.flatten());
|
||||
}
|
||||
}
|
||||
form.reset( selectData);
|
||||
setSelectionVersion((v) => v + 1); // 강제로 바뀌었다고 알리기
|
||||
}
|
||||
}, [selectData, form]);
|
||||
@@ -168,6 +175,7 @@ export default function CoMatRvw() {
|
||||
<>
|
||||
<ContentsDiv>
|
||||
<div className="grid grid-cols-4 gap-4">
|
||||
|
||||
<div className="col-span-4">
|
||||
<Title title={"수요매칭검토"} />
|
||||
<SearchDiv>
|
||||
@@ -288,7 +296,7 @@ export default function CoMatRvw() {
|
||||
<div className="col-span-3 mt-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="demandCo.regDt"
|
||||
name="dmndTmng"
|
||||
render={({ field }) => (
|
||||
<FormUi label="요구시기">
|
||||
<Input
|
||||
|
||||
@@ -61,17 +61,29 @@ export default function CoSttn() {
|
||||
const [seartchTxt, setSearchTxt] = useState<string>();
|
||||
const [upadateData, setUpdateData] = useState<DemandCompType>();
|
||||
|
||||
const getSelCity = (val: string | number) => {
|
||||
const cityValue = String(val); // Ensure val is treated as a string
|
||||
const data = getCity(cityValue, code.sggCd);
|
||||
setSelectSgg(data);
|
||||
setObjSearch({ city: cityValue, sgg: "" });
|
||||
};
|
||||
const getSelCity = useCallback((val: string | number) => {
|
||||
const cityValue = String(val);
|
||||
const data = getCity(cityValue, code.sggCd);
|
||||
setSelectSgg(data);
|
||||
// 시/도를 변경하면 시/군/구는 '전체'("0")로 초기화합니다.
|
||||
setObjSearch({ city: cityValue, sgg: "0" });
|
||||
}, [code.sggCd]);
|
||||
|
||||
const getSgg = (val: string | number) => {
|
||||
setObjSearch({ ...objSearch, sgg: String(val) });
|
||||
};
|
||||
const getSgg = useCallback((val: string | number) => {
|
||||
setObjSearch((prev) => ({ ...prev, sgg: String(val) }));
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
// code.cityCd 데이터가 로드되었고, 아직 시/도 선택이 안된 초기 상태일 때 실행
|
||||
if (code.cityCd && code.cityCd.length > 0 && !objSearch.city) {
|
||||
const firstCityVal = code.cityCd[0]?.val;
|
||||
if (firstCityVal) {
|
||||
// 첫 번째 시/도 값으로 상태를 초기화합니다.
|
||||
getSelCity(firstCityVal);
|
||||
}
|
||||
}
|
||||
}, [code.cityCd, objSearch.city, getSelCity]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!coSttn.isInit) {
|
||||
coSttnInit("1", "13", "0");
|
||||
@@ -124,8 +136,11 @@ export default function CoSttn() {
|
||||
|
||||
const searchClick = () => {
|
||||
const con = (objSearch.sgg && objSearch.sgg !== "0") ? objSearch.sgg : objSearch.city;
|
||||
|
||||
if (con) {
|
||||
if (seartchTxt && seartchTxt?.length > 0) {
|
||||
|
||||
console.log(' seartchTxt ', seartchTxt)
|
||||
coSttnTxtSearch("1", "13", String(con), seartchTxt ?? "");
|
||||
} else {
|
||||
coSttnSearch("1", "13", String(con));
|
||||
@@ -147,13 +162,15 @@ export default function CoSttn() {
|
||||
selectClass={""}
|
||||
selectArray={code.cityCd || []}
|
||||
onSelectValue={getSelCity}
|
||||
value={objSearch.city}
|
||||
/>
|
||||
<SelectBox
|
||||
className="col-span-2 w-1/6 h-full text-2xl"
|
||||
label="시군구"
|
||||
selectClass={""}
|
||||
selectArray={selectSgg?selectSgg : [{text:"전체",val:"0"}]}
|
||||
selectArray={selectSgg || []}
|
||||
onSelectValue={getSgg}
|
||||
value={objSearch.sgg}
|
||||
/>
|
||||
<SearchInput
|
||||
className={"!text-3xl"}
|
||||
|
||||
@@ -94,10 +94,13 @@ export const comFcltSearchAction: (set: any) => comFcltActions = (set: any) => {
|
||||
`/reuseFc/request/${searchNm}/${cnt}`
|
||||
);
|
||||
|
||||
console.log(coList);
|
||||
set((state: comFcltState) => {
|
||||
return (state.demandCompList = [...coList]);
|
||||
});
|
||||
|
||||
if(coList&&coList.length>0){
|
||||
|
||||
set((state: comFcltState) => {
|
||||
return (state.demandCompList = [...coList]);
|
||||
});
|
||||
}
|
||||
},
|
||||
regDemandCompany: async (data: DemandCompType) => {
|
||||
try {
|
||||
@@ -112,9 +115,10 @@ export const comFcltSearchAction: (set: any) => comFcltActions = (set: any) => {
|
||||
} else {
|
||||
message = "fail";
|
||||
}
|
||||
|
||||
|
||||
set((state: comFcltState) => {
|
||||
state.dmdIsSucees = message;
|
||||
return state;
|
||||
return state.dmdIsSucees = message;
|
||||
});
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
@@ -132,8 +136,7 @@ export const comFcltSearchAction: (set: any) => comFcltActions = (set: any) => {
|
||||
}
|
||||
|
||||
set((state: comFcltState) => {
|
||||
state.dmdIsSucees = message;
|
||||
return state;
|
||||
return state.dmdIsSucees = message;
|
||||
});
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
import { constCostHeadListExport, coRvwHeadListExport, coRvwNodeListExport, rateFeeHeadListExport } from "./headList";
|
||||
import {
|
||||
constCostHeadListExport,
|
||||
coRvwHeadListExport,
|
||||
coRvwNodeListExport,
|
||||
rateFeeHeadListExport,
|
||||
} from "./headList";
|
||||
import type { CommonTableProps } from "../../common/type/header";
|
||||
import type { DedMatUpdateType, DmdCoReqType } from "./type";
|
||||
import { fetchType, getFetch, putFectch } from "@/components/lib/api";
|
||||
import toast from "react-hot-toast/headless";
|
||||
import toast from "react-hot-toast";
|
||||
|
||||
const coRvwHeadList = coRvwHeadListExport;
|
||||
const coRvwNodeList = coRvwNodeListExport;
|
||||
const rateFeeHeadList =rateFeeHeadListExport;
|
||||
const constCostHeadList=constCostHeadListExport
|
||||
const rateFeeHeadList = rateFeeHeadListExport;
|
||||
const constCostHeadList = constCostHeadListExport;
|
||||
export type coRvwState = {
|
||||
coRvw: {
|
||||
isInit: boolean;
|
||||
@@ -25,8 +30,8 @@ export const coRvwStateExport: coRvwState = {
|
||||
coMatRvwRes: [],
|
||||
coRvwHeadList: coRvwHeadList,
|
||||
coRvwNodeList: coRvwNodeList,
|
||||
rateFeeHeadList:rateFeeHeadList,
|
||||
constCostHeadList:constCostHeadList
|
||||
rateFeeHeadList: rateFeeHeadList,
|
||||
constCostHeadList: constCostHeadList,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -37,7 +42,7 @@ type coRvwActions = {
|
||||
pageNo: number,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
endYear: string
|
||||
) => void;
|
||||
coMatRvwUpdate: (
|
||||
splyCd: string,
|
||||
@@ -50,7 +55,7 @@ type coRvwActions = {
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
sggCd: string,
|
||||
dmdCoNm: string,
|
||||
dmdCoNm: string
|
||||
) => void;
|
||||
coMatRvwInqua: (
|
||||
pageNo: number,
|
||||
@@ -65,7 +70,7 @@ const coMatInit = async (
|
||||
pageNo: number,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
endYear: string
|
||||
) => {
|
||||
const url = `/reuseFc/request/infoList/sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, url);
|
||||
@@ -79,7 +84,7 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
pageNo: number,
|
||||
pageCnt: number,
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
endYear: string
|
||||
) => {
|
||||
const coMatRvwRes = await coMatInit(pageNo, pageCnt, startYear, endYear);
|
||||
|
||||
@@ -98,27 +103,29 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
data: DedMatUpdateType
|
||||
) => {
|
||||
try {
|
||||
const isUpdate = await putFectch(
|
||||
const response = await putFectch(
|
||||
`/reuseFc/request/cst/${splyCd}/${dmdCd}`,
|
||||
data
|
||||
);
|
||||
if(isUpdate){
|
||||
toast.error("수요 매칭 검토 검토로 저장되었습니다.");
|
||||
if (response.status === 200) {
|
||||
toast.success("매칭 검토로 저장되었습니다.");
|
||||
const coMatRvwRes = await coMatInit(
|
||||
1,
|
||||
10,
|
||||
new Date().getFullYear().toString(),
|
||||
new Date().getFullYear().toString()
|
||||
);
|
||||
return set((state: coRvwState) => ({
|
||||
...state,
|
||||
coRvw: {
|
||||
...state.coRvw,
|
||||
coMatRvwRes: coMatRvwRes,
|
||||
init: false,
|
||||
},
|
||||
}));
|
||||
} else {
|
||||
toast.error("매칭 검토 저장에 실패했습니다.");
|
||||
}
|
||||
const coMatRvwRes = coMatInit(
|
||||
1,
|
||||
10,
|
||||
new Date().getFullYear().toString(),
|
||||
new Date().getFullYear().toString(),
|
||||
);
|
||||
return set((state: coRvwState) => ({
|
||||
...state,
|
||||
coRvw: {
|
||||
...state.coRvw,
|
||||
init: false,
|
||||
coMatRvwRes: coMatRvwRes,
|
||||
},
|
||||
}));
|
||||
} catch (e) {
|
||||
toast.error("매칭 검토 저장 오류입니다.");
|
||||
}
|
||||
@@ -129,7 +136,7 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
startYear: string,
|
||||
endYear: string,
|
||||
sggCd: string,
|
||||
dmdCoNm: string,
|
||||
dmdCoNm: string
|
||||
) => {
|
||||
let url = `/reuseFc/request/infoList/sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
|
||||
|
||||
@@ -144,7 +151,7 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
url += `/0`;
|
||||
}
|
||||
|
||||
console.log(' url ', url)
|
||||
console.log(" url ", url);
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, url);
|
||||
|
||||
return set((state: coRvwState) => ({
|
||||
@@ -166,7 +173,7 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
let url = `/reuseFc/request/infoList/sub/${pageNo}/${pageCnt}/${startYear}/${endYear}`;
|
||||
if (sggCd.length > 0) {
|
||||
url += `/${sggCd}/0`;
|
||||
}else if(sggCd ==='0'){
|
||||
} else if (sggCd === "0") {
|
||||
url += `/0/0`;
|
||||
}
|
||||
const coMatRvwRes = await getFetch(fetchType.WR, url);
|
||||
@@ -180,6 +187,6 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => {
|
||||
} catch (e) {
|
||||
console.log(" error ", e);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,157 +1,147 @@
|
||||
import { z } from "zod";
|
||||
|
||||
const DemandInfoSchema = z.object({
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
dmdInfoFk: z.string().nullish(),
|
||||
dmndTmng: z.coerce.date().nullish(),
|
||||
dmndQty: z.number().nullish(),
|
||||
wntUntprc: z.number().nullish(),
|
||||
grssClfg: z.number().nullish(),
|
||||
combResdch: z.number().nullish(),
|
||||
trbt: z.number().nullish(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number().nullish(),
|
||||
crmty: z.number().nullish(),
|
||||
tn: z.number().nullish(),
|
||||
tph: z.number().nullish(),
|
||||
ph: z.number(),
|
||||
clIonQnt: z.number().nullish(),
|
||||
cdtnv: z.number().nullish(),
|
||||
rmrk: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
mtchnCmptnYmd: z.string().nullish(),
|
||||
rvwCmptnYmd: z.string().nullish()
|
||||
});
|
||||
|
||||
const DemandMatchingSchema = z.object({
|
||||
dmdInfoFk: z.string().nullish(),
|
||||
splyFcltFk: z.string().nullish(),
|
||||
splyFcltFlg: z.string().nullish(),
|
||||
pbnstRuseFcltBizFk: z.number().nullish(),
|
||||
splyBgngDay: z.coerce.date().nullish(),
|
||||
splyEndDay: z.coerce.date().nullish(),
|
||||
splyCpct: z.number().nullish(),
|
||||
splyFmYn: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
splyCndtList:z.array(z.string().nullish() ).nullish()
|
||||
});
|
||||
|
||||
const DemandCoSchema = z.object({
|
||||
dmdInfoPk: z.string().nullish(),
|
||||
dmdCoNm: z.string().nullish(),
|
||||
ctpvCd: z.string().nullish(),
|
||||
sggCd: z.string().nullish(),
|
||||
daddr: z.string().nullish(),
|
||||
splyBgngDay: z.coerce.date().nullish(),
|
||||
splyEndDay: z.coerce.date().nullish(),
|
||||
splyCpct: z.number().nullish(),
|
||||
splyFmYn: z.string().nullish(),
|
||||
telno: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
regDt: z.coerce.date().nullish(),
|
||||
rgtr: z.string().nullish(),
|
||||
mdfcnDt: z.coerce.date().nullish(),
|
||||
mdfr: z.string().nullish(),
|
||||
dmdAplyPswd: z.string().nullish(),
|
||||
demandInfo: z.array(DemandInfoSchema.nullish()).nullish(), // 안쓰는 거임
|
||||
demandMatchings: z.array(DemandMatchingSchema.nullish()).nullish()// 안쓰는 거임
|
||||
});
|
||||
|
||||
const DemandCstSchema = z.object({
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
usgPrcsProcs: z.string().nullish(),
|
||||
cstrnCst: z.number(),
|
||||
fcltSbsdCstrnCst: z.number(),
|
||||
prcsFcltCpctCstrnCst: z.number()
|
||||
});
|
||||
|
||||
export const DmdCoReqSchema = z.object({
|
||||
cityText:z.string().nullish(),
|
||||
sggText:z.string().nullish(),
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
dmdInfoFk: z.string().nullish(),
|
||||
dmndTmng: z.coerce.date().nullish(),
|
||||
dmndQty: z.number(),
|
||||
wntUntprc: z.number().nullish(),
|
||||
grssClfg: z.number().nullish(),
|
||||
combResdch: z.number().nullish(),
|
||||
trbt: z.number().nullish(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number().nullish(),
|
||||
crmty: z.number().nullish(),
|
||||
tn: z.number().nullish(),
|
||||
tph: z.number().nullish(),
|
||||
ph: z.number().nullish(),
|
||||
clIonQnt: z.number().nullish(),
|
||||
cdtnv: z.number(),
|
||||
rmrk: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
mtchnCmptnYmd: z.string().nullish(),
|
||||
rvwCmptnYmd: z.string().nullish(),
|
||||
demandCo: DemandCoSchema.nullish(),
|
||||
demandMatching: DemandMatchingSchema.nullish(),
|
||||
demandCst: DemandCstSchema,
|
||||
ruseUtztnFcltNm:z.string().nullish(),
|
||||
totalConstCost:z.number().nullish(),
|
||||
const DemandInfoSchema = z.object({
|
||||
dmdInfoSn: z.number(),
|
||||
dmdInfoFk: z.string().nullish(),
|
||||
dmndTmng: z.coerce.date().nullish(),
|
||||
dmndQty: z.number().nullish(),
|
||||
wntUntprc: z.number().nullish(),
|
||||
grssClfg: z.number().nullish(),
|
||||
combResdch: z.number().nullish(),
|
||||
trbt: z.number().nullish(),
|
||||
blgcOxygDmndQnt: z.number(),
|
||||
smll: z.number().nullish(),
|
||||
crmty: z.number().nullish(),
|
||||
tn: z.number().nullish(),
|
||||
tph: z.number().nullish(),
|
||||
ph: z.number(),
|
||||
clIonQnt: z.number().nullish(),
|
||||
cdtnv: z.number().nullish(),
|
||||
rmrk: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
mtchnCmptnYmd: z.string().nullish(),
|
||||
rvwCmptnYmd: z.string().nullish(),
|
||||
});
|
||||
|
||||
});
|
||||
const DemandMatchingSchema = z.object({
|
||||
dmdInfoFk: z.string().nullish(),
|
||||
splyFcltFk: z.string().nullish(),
|
||||
splyFcltFlg: z.string().nullish(),
|
||||
pbnstRuseFcltBizFk: z.number().nullish(),
|
||||
splyBgngDay: z.coerce.date().nullish(),
|
||||
splyEndDay: z.coerce.date().nullish(),
|
||||
splyCpct: z.number().nullish(),
|
||||
splyFmYn: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
splyCndtList: z.array(z.string().nullish()).nullish(),
|
||||
});
|
||||
|
||||
const DemandCoSchema = z.object({
|
||||
dmdInfoPk: z.string().nullish(),
|
||||
dmdCoNm: z.string().nullish(),
|
||||
ctpvCd: z.string().nullish(),
|
||||
sggCd: z.string().nullish(),
|
||||
daddr: z.string().nullish(),
|
||||
splyBgngDay: z.coerce.date().nullish(),
|
||||
splyEndDay: z.coerce.date().nullish(),
|
||||
splyCpct: z.number().nullish(),
|
||||
splyFmYn: z.string().nullish(),
|
||||
telno: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
regDt: z.coerce.date().nullish(),
|
||||
rgtr: z.string().nullish(),
|
||||
mdfcnDt: z.coerce.date().nullish(),
|
||||
mdfr: z.string().nullish(),
|
||||
dmdAplyPswd: z.string().nullish(),
|
||||
demandInfo: z.array(DemandInfoSchema.nullish()).nullish(), // 안쓰는 거임
|
||||
demandMatchings: z.array(DemandMatchingSchema.nullish()).nullish(), // 안쓰는 거임
|
||||
});
|
||||
|
||||
const DemandCstSchema = z.object({
|
||||
dmdInfoSn: z.number().nullish(),
|
||||
usgPrcsProcs: z.string().nullish(),
|
||||
cstrnCst: z.number().default(0),
|
||||
fcltSbsdCstrnCst: z.number().default(0),
|
||||
prcsFcltCpctCstrnCst: z.number().default(0),
|
||||
});
|
||||
|
||||
export const DmdCoReqSchema = z.object({
|
||||
cityText: z.string().nullish(),
|
||||
sggText: z.string().nullish(),
|
||||
dmdInfoSn: z.number().default(0),
|
||||
dmdInfoFk: z.string().default(''),
|
||||
dmndTmng: z.coerce.date().nullish(),
|
||||
dmndQty: z.number().nullish(), // null 또는 undefined 허용
|
||||
blgcOxygDmndQnt: z.number().nullish(),
|
||||
wntUntprc: z.number().nullish(),
|
||||
grssClfg: z.number().nullish(),
|
||||
combResdch: z.number().nullish(),
|
||||
trbt: z.number().nullish(),
|
||||
smll: z.number().nullish(),
|
||||
crmty: z.number().nullish(),
|
||||
tn: z.number().nullish(),
|
||||
tph: z.number().nullish(),
|
||||
ph: z.number().nullish(),
|
||||
clIonQnt: z.number().nullish(),
|
||||
cdtnv: z.number().nullish(),
|
||||
rmrk: z.string().nullish(),
|
||||
useUsgCd: z.string().nullish(),
|
||||
mtchnCmptnYmd: z.string().nullish(),
|
||||
rvwCmptnYmd: z.string().nullish(),
|
||||
demandCo: DemandCoSchema.nullish(),
|
||||
demandMatching: DemandMatchingSchema.nullish(),
|
||||
demandCst: DemandCstSchema.nullish(),
|
||||
ruseUtztnFcltNm: z.string().nullish(),
|
||||
totalConstCost: z.number().nullish(),
|
||||
});
|
||||
|
||||
export type DmdCoReqType = z.infer<typeof DmdCoReqSchema>;
|
||||
export type DmdMatTableType = {
|
||||
cityText:string,
|
||||
sggText:string,
|
||||
dmdCoNm:string,
|
||||
daddr:string,
|
||||
telno:string,
|
||||
regDt:string,
|
||||
splyFcltFlg:string
|
||||
}
|
||||
cityText: string;
|
||||
sggText: string;
|
||||
dmdCoNm: string;
|
||||
daddr: string;
|
||||
telno: string;
|
||||
regDt: string;
|
||||
splyFcltFlg: string;
|
||||
};
|
||||
|
||||
|
||||
export type DedMatUpdateType =
|
||||
{
|
||||
export type DedMatUpdateType = {
|
||||
dmdInfoSn: number;
|
||||
usgPrcsProcs: string;
|
||||
cstrnCst: number;
|
||||
fcltSbsdCstrnCst: number;
|
||||
prcsFcltCpctCstrnCst: number;
|
||||
rgtr: string;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
export type RvwHistTableType = {
|
||||
cityText:string,
|
||||
sggText:string,
|
||||
dmdCoNm:string,
|
||||
daddr:string,
|
||||
telno:string,
|
||||
regDt:string,
|
||||
rvwCmptnYmd:string,
|
||||
mtchnCmptnYmd:string,
|
||||
ruseUtztnFcltNm:string,
|
||||
dmndQty:string,
|
||||
useUsgCd:string,
|
||||
splyFcltFlg:string
|
||||
completeYn:boolean
|
||||
dmdInfoSn :string
|
||||
cityText: string;
|
||||
sggText: string;
|
||||
dmdCoNm: string;
|
||||
daddr: string;
|
||||
telno: string;
|
||||
regDt: string;
|
||||
rvwCmptnYmd: string;
|
||||
mtchnCmptnYmd: string;
|
||||
ruseUtztnFcltNm: string;
|
||||
dmndQty: string;
|
||||
useUsgCd: string;
|
||||
splyFcltFlg: string;
|
||||
completeYn: boolean;
|
||||
dmdInfoSn: string;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
export type conCostFeeType= {
|
||||
yr: string,
|
||||
fctCpc: string,
|
||||
fctCd: string,
|
||||
stdCost: string
|
||||
}
|
||||
export type conCostFeeType = {
|
||||
yr: string;
|
||||
fctCpc: string;
|
||||
fctCd: string;
|
||||
stdCost: string;
|
||||
};
|
||||
export type rateFeeType = {
|
||||
yr: string,
|
||||
incExpCd: string,
|
||||
stdCost: number,
|
||||
rt: number
|
||||
}
|
||||
yr: string;
|
||||
incExpCd: string;
|
||||
stdCost: number;
|
||||
rt: number;
|
||||
};
|
||||
|
||||
@@ -74,14 +74,19 @@ export default function ConCostForm({
|
||||
const cstrnCst = form.watch("demandCst.cstrnCst");
|
||||
const useUsgCdWatch = form.watch("useUsgCd");
|
||||
|
||||
useEffect(() =>{
|
||||
console.log('usgPrcsProcsWatch ', usgPrcsProcsWatch)
|
||||
|
||||
|
||||
console.log('useUsgCdWatch ' , useUsgCdWatch)
|
||||
|
||||
},[usgPrcsProcsWatch, useUsgCdWatch, selectionVersion])
|
||||
const calculateConstCost = useCallback(() => {
|
||||
const usgPrcsProcs = usgPrcsProcsWatch;
|
||||
if(!dmndQtyWatch){
|
||||
toast.error('요구수량(M3/d)을 확인해주세요 계산할수 없습니다. ')
|
||||
return
|
||||
}
|
||||
if(usgPrcsProcs === null || usgPrcsProcs === undefined){
|
||||
toast.error('용도에 따른 처리공정을 확인할수 없습니다. 용도를 확인해주세요. ')
|
||||
return
|
||||
}
|
||||
|
||||
const dmndQtyYear = dmndQtyWatch * 365;
|
||||
if (usgPrcsProcs && usgPrcsProcs?.length > 0) {
|
||||
const firstProc = getConstFctCode(usgPrcsProcs?.split("+")[0] || "") || "";
|
||||
@@ -131,20 +136,23 @@ export default function ConCostForm({
|
||||
}, [constCostRes, rateFeeRes, usgPrcsProcsWatch, dmndQtyWatch]);
|
||||
const onSubmit = (value: DmdCoReqType) => {
|
||||
|
||||
if( !form.getValues('demandCst.prcsFcltCpctCstrnCst') ){
|
||||
if(value.demandCst&& !value.demandCst.prcsFcltCpctCstrnCst ){
|
||||
toast.error('공사비 계산 진행 후 저장을 눌러주새요')
|
||||
return
|
||||
}
|
||||
if (type === "mat") {
|
||||
const data: DedMatUpdateType = {
|
||||
dmdInfoSn: form.getValues("dmdInfoSn"),
|
||||
usgPrcsProcs: form.getValues("demandCst.usgPrcsProcs")|| "",
|
||||
cstrnCst: form.getValues("demandCst.cstrnCst"),
|
||||
fcltSbsdCstrnCst: form.getValues("demandCst.fcltSbsdCstrnCst"),
|
||||
prcsFcltCpctCstrnCst: form.getValues("demandCst.prcsFcltCpctCstrnCst"),
|
||||
rgtr: TEST_UUID,
|
||||
};
|
||||
coMatRvwUpdate("11000SW001R1", form.getValues("dmdInfoFk"), data);
|
||||
|
||||
if(value.demandCst ){
|
||||
const data: DedMatUpdateType = {
|
||||
dmdInfoSn: value.dmdInfoSn,
|
||||
usgPrcsProcs: value.demandCst.usgPrcsProcs|| "",
|
||||
cstrnCst: value.demandCst.cstrnCst ||0,
|
||||
fcltSbsdCstrnCst: value.demandCst.fcltSbsdCstrnCst ||0,
|
||||
prcsFcltCpctCstrnCst: value.demandCst.prcsFcltCpctCstrnCst ||0,
|
||||
rgtr: TEST_UUID,
|
||||
};
|
||||
coMatRvwUpdate("11000SW001R1", form.getValues("dmdInfoFk"), data);
|
||||
}
|
||||
} else if (type === "hist") {
|
||||
|
||||
delete value.totalConstCost
|
||||
@@ -159,6 +167,13 @@ export default function ConCostForm({
|
||||
console.log(" form ", form.formState.errors);
|
||||
}, [form.formState]);
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
form.register("dmdInfoSn");
|
||||
form.register("dmdInfoFk");
|
||||
form.register("ruseUtztnFcltNm");
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
<hr className="mt-8" />
|
||||
|
||||
Reference in New Issue
Block a user