feat: 피팅류 엑셀 내보내기 개선 및 프로젝트 비활성화 버그 수정
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
Some checks failed
SonarQube Analysis / SonarQube Scan (push) Has been cancelled
✨ 피팅류 엑셀 내보내기 개선: - 품목명에 상세 피팅 타입 표시 (SOCK-O-LET, ELBOW 90° LR 등) - G열부터 압력등급/스케줄/재질/사용자요구/추가요청사항 체계적 배치 - 분류기 추출 요구사항(J열)과 사용자 입력 요구사항(K열) 분리 - P열 납기일 고정 규칙 유지, 관리항목 자동 채움 🐛 프로젝트 비활성화 버그 수정: - 백엔드: job_no 필드 추가로 프론트엔드 호환성 확보 - 프론트엔드: 안전한 프로젝트 식별자 처리 로직 구현 - 개별 프로젝트 비활성화 시 전체 프로젝트 영향 문제 해결 - 디버깅 로그 추가로 상태 변경 추적 가능 🔧 기타 개선사항: - BOM 페이지 이모지 제거 - 구매신청 후 자재 비활성화 기능 구현 - 모든 카테고리 뷰에 onPurchasedMaterialsUpdate 콜백 추가
This commit is contained in:
@@ -167,7 +167,16 @@ const BOMManagementPage = ({
|
||||
userRequirements,
|
||||
setUserRequirements,
|
||||
purchasedMaterials,
|
||||
onPurchasedMaterialsUpdate: (materialIds) => {
|
||||
setPurchasedMaterials(prev => {
|
||||
const newSet = new Set(prev);
|
||||
materialIds.forEach(id => newSet.add(id));
|
||||
console.log(`📦 구매신청 자재 추가: 기존 ${prev.size}개 → 신규 ${newSet.size}개`);
|
||||
return newSet;
|
||||
});
|
||||
},
|
||||
fileId,
|
||||
jobNo,
|
||||
user,
|
||||
onNavigate
|
||||
};
|
||||
|
||||
@@ -43,9 +43,20 @@ const DashboardPage = ({
|
||||
|
||||
// 프로젝트 비활성화
|
||||
const handleDeactivateProject = (project) => {
|
||||
if (window.confirm(`"${project.job_name || project.job_no}" 프로젝트를 비활성화하시겠습니까?`)) {
|
||||
setInactiveProjects(prev => new Set([...prev, project.job_no]));
|
||||
if (selectedProject?.job_no === project.job_no) {
|
||||
const projectId = project.job_no || project.official_project_code || project.id;
|
||||
const projectName = project.job_name || project.project_name || projectId;
|
||||
|
||||
console.log('🔍 비활성화 요청:', { project, projectId, projectName });
|
||||
|
||||
if (window.confirm(`"${projectName}" 프로젝트를 비활성화하시겠습니까?`)) {
|
||||
setInactiveProjects(prev => {
|
||||
const newSet = new Set([...prev, projectId]);
|
||||
console.log('📦 비활성화 프로젝트 업데이트:', { prev: Array.from(prev), new: Array.from(newSet) });
|
||||
return newSet;
|
||||
});
|
||||
|
||||
const selectedProjectId = selectedProject?.job_no || selectedProject?.official_project_code || selectedProject?.id;
|
||||
if (selectedProjectId === projectId) {
|
||||
setSelectedProject(null);
|
||||
}
|
||||
setShowProjectDropdown(false);
|
||||
@@ -323,7 +334,10 @@ const DashboardPage = ({
|
||||
</div>
|
||||
) : (
|
||||
projects
|
||||
.filter(project => !inactiveProjects.has(project.job_no))
|
||||
.filter(project => {
|
||||
const projectId = project.job_no || project.official_project_code || project.id;
|
||||
return !inactiveProjects.has(projectId);
|
||||
})
|
||||
.map((project) => (
|
||||
<div
|
||||
key={project.job_no}
|
||||
|
||||
Reference in New Issue
Block a user