Auto-load missing 8092 overview and plan data
This commit is contained in:
@@ -1167,11 +1167,45 @@
|
||||
const data = await detailResponse.json();
|
||||
const overviewData = await overviewResponse.json();
|
||||
const budgetPlanData = await budgetPlanResponse.json();
|
||||
const fetchFreshOverviewIfNeeded = async () => {
|
||||
if (refresh || (overviewResponse.ok && Array.isArray(overviewData.overviews) && overviewData.overviews.length)) {
|
||||
return Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
|
||||
}
|
||||
try {
|
||||
const freshOverviewResponse = await fetch(
|
||||
`/api/erp-bridge-overviews?page=const&projectCode=${encodeURIComponent(projectCode)}&projectName=${encodeURIComponent(projectName || '')}&refresh=1`,
|
||||
{ cache: 'no-store' }
|
||||
);
|
||||
const freshOverviewData = await freshOverviewResponse.json();
|
||||
if (freshOverviewResponse.ok) {
|
||||
return Array.isArray(freshOverviewData.overviews) ? freshOverviewData.overviews : [];
|
||||
}
|
||||
} catch (error) {
|
||||
}
|
||||
return Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
|
||||
};
|
||||
const fetchFreshBudgetPlanIfNeeded = async () => {
|
||||
if (refresh || (budgetPlanResponse.ok && budgetPlanData.plan)) {
|
||||
return budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
|
||||
}
|
||||
try {
|
||||
const freshBudgetPlanResponse = await fetch(
|
||||
`/api/erp-budget-plan?page=const&projectCode=${encodeURIComponent(projectCode)}&projectName=${encodeURIComponent(projectName || '')}&refresh=1`,
|
||||
{ cache: 'no-store' }
|
||||
);
|
||||
const freshBudgetPlanData = await freshBudgetPlanResponse.json();
|
||||
if (freshBudgetPlanResponse.ok) {
|
||||
return freshBudgetPlanData.plan || null;
|
||||
}
|
||||
} catch (error) {
|
||||
}
|
||||
return budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
|
||||
};
|
||||
|
||||
if (!detailResponse.ok) {
|
||||
if (!refresh && detailResponse.status === 404) {
|
||||
state.bridgeOverviews = overviewResponse.ok ? (Array.isArray(overviewData.overviews) ? overviewData.overviews : []) : [];
|
||||
state.budgetPlan = budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
|
||||
state.bridgeOverviews = await fetchFreshOverviewIfNeeded();
|
||||
state.budgetPlan = await fetchFreshBudgetPlanIfNeeded();
|
||||
detailTitle.textContent = `${projectName || '-'} [${projectCode}]`;
|
||||
detailMeta.textContent = 'DB 캐시에 계약정보가 없어 ERP에서 기본 계약정보를 가져오는 중입니다.';
|
||||
try {
|
||||
@@ -1216,8 +1250,8 @@
|
||||
}
|
||||
|
||||
state.detail = data.detail || null;
|
||||
state.bridgeOverviews = Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
|
||||
state.budgetPlan = budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
|
||||
state.bridgeOverviews = await fetchFreshOverviewIfNeeded();
|
||||
state.budgetPlan = await fetchFreshBudgetPlanIfNeeded();
|
||||
if (state.selectedRow && state.detail) {
|
||||
state.selectedRow.businessCode = state.detail.businessCode || state.selectedRow.businessCode || '';
|
||||
state.selectedRow.siteLocation = state.detail.siteLocation || state.selectedRow.siteLocation || '';
|
||||
|
||||
Reference in New Issue
Block a user