summaryrefslogtreecommitdiff
path: root/components/form-data-plant/form-data-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'components/form-data-plant/form-data-table.tsx')
-rw-r--r--components/form-data-plant/form-data-table.tsx91
1 files changed, 61 insertions, 30 deletions
diff --git a/components/form-data-plant/form-data-table.tsx b/components/form-data-plant/form-data-table.tsx
index c6c79a69..30c176bd 100644
--- a/components/form-data-plant/form-data-table.tsx
+++ b/components/form-data-plant/form-data-table.tsx
@@ -76,8 +76,7 @@ interface GenericData {
export interface DynamicTableProps {
dataJSON: GenericData[];
columnsJSON: DataTableColumnJSON[];
- projectCode: string;
- packageCode: string;
+ contractItemId: number;
formCode: string;
formId: number;
projectId: number;
@@ -90,8 +89,7 @@ export interface DynamicTableProps {
export default function DynamicTable({
dataJSON,
columnsJSON,
- projectCode,
- packageCode,
+ contractItemId,
formCode,
formId,
projectId,
@@ -158,8 +156,7 @@ export default function DynamicTable({
// 서버 액션 호출
const result = await excludeFormDataByTags({
formCode,
- projectCode,
- packageCode,
+ contractItemId,
tagNumbers,
});
@@ -291,7 +288,7 @@ export default function DynamicTable({
try {
setIsLoadingStats(true);
// getFormStatusByVendor 서버 액션 직접 호출
- const data = await getFormStatusByVendor(projectId, projectCode, packageCode,formCode);
+ const data = await getFormStatusByVendor(projectId, contractItemId, formCode);
if (data && data.length > 0) {
setFormStats(data[0]);
@@ -342,7 +339,9 @@ export default function DynamicTable({
// SEDP compare dialog state
const [sedpCompareOpen, setSedpCompareOpen] = React.useState(false);
- const projectType = "plant";
+ const [projectCode, setProjectCode] = React.useState<string>('');
+ const [projectType, setProjectType] = React.useState<string>('plant');
+ const [packageCode, setPackageCode] = React.useState<string>('');
// 새로 추가된 Template 다이얼로그 상태
const [templateDialogOpen, setTemplateDialogOpen] = React.useState(false);
@@ -375,13 +374,43 @@ const [isLoadingRegisters, setIsLoadingRegisters] = React.useState(false);
React.useEffect(() => {
const getTempCount = async () => {
- const tempList = await getReportTempList(projectCode, packageCode, formId);
+ const tempList = await getReportTempList(contractItemId, formId);
setTempCount(tempList.length);
};
getTempCount();
- }, [projectCode,packageCode, formId, tempUpDialog]);
+ }, [contractItemId, formId, tempUpDialog]);
+ React.useEffect(() => {
+ const getPackageCode = async () => {
+ try {
+ const packageCode = await getPackageCodeById(contractItemId);
+ setPackageCode(packageCode || ''); // 빈 문자열이나 다른 기본값
+ } catch (error) {
+ console.error('패키지 조회 실패:', error);
+ setPackageCode('');
+ }
+ };
+
+ getPackageCode();
+ }, [contractItemId])
+ // Get project code when component mounts
+ React.useEffect(() => {
+ const getProjectCode = async () => {
+ try {
+ const project = await getProjectById(projectId);
+ setProjectCode(project.code);
+ setProjectType(project.type);
+ } catch (error) {
+ console.error("Error fetching project code:", error);
+ toast.error("Failed to fetch project code");
+ }
+ };
+
+ if (projectId) {
+ getProjectCode();
+ }
+ }, [projectId]);
// 선택된 행들의 실제 데이터 가져오기
const getSelectedRowsData = React.useCallback(() => {
@@ -500,7 +529,7 @@ React.useEffect(() => {
async function handleSyncTags() {
try {
setIsSyncingTags(true);
- const result = await syncMissingTags(projectCode,packageCode, formCode);
+ const result = await syncMissingTags(contractItemId, formCode);
// Prepare the toast messages based on what changed
const changes = [];
@@ -533,9 +562,9 @@ React.useEffect(() => {
setIsLoadingTags(true);
// API 엔드포인트 호출 - 작업 시작만 요청
- const response = await fetch('/api/cron/form-tags-plant/start', {
+ const response = await fetch('/api/cron/form-tags/start', {
method: 'POST',
- body: JSON.stringify({ projectCode, formCode, packageCode })
+ body: JSON.stringify({ projectCode, formCode, contractItemId })
});
if (!response.ok) {
@@ -574,7 +603,7 @@ React.useEffect(() => {
// 5초마다 상태 확인
pollingRef.current = setInterval(async () => {
try {
- const response = await fetch(`/api/cron/form-tags-plant/status?id=${id}`);
+ const response = await fetch(`/api/cron/form-tags/status?id=${id}`);
if (!response.ok) {
throw new Error('Failed to get tag import status');
@@ -637,8 +666,7 @@ React.useEffect(() => {
tableData,
columnsJSON,
formCode,
- projectCode,
- packageCode,
+ contractItemId,
editableFieldsMap, // 추가: 편집 가능 필드 정보 전달
onPendingChange: setIsImporting, // Let importExcelData handle loading state
onDataUpdate: (newData) => {
@@ -719,8 +747,7 @@ React.useEffect(() => {
const sedpResult = await sendFormDataToSEDP(
formCode, // Send formCode instead of formName
projectId, // Project ID
- projectCode,
- packageCode,
+ contractItemId,
tableData.filter(v=>v.status !== 'excluded'), // Table data
columnsJSON // Column definitions
);
@@ -1199,8 +1226,7 @@ React.useEffect(() => {
columns={columnsJSON}
rowData={rowAction?.row.original ?? null}
formCode={formCode}
- projectCode={projectCode}
- packageCode={packageCode}
+ contractItemId={contractItemId}
editableFieldsMap={editableFieldsMap}
onUpdateSuccess={(updatedValues) => {
// Update the specific row in tableData when a single row is updated
@@ -1218,8 +1244,7 @@ React.useEffect(() => {
<DeleteFormDataDialog
formData={deleteTarget}
formCode={formCode}
- projectCode={projectCode}
- packageCode={packageCode}
+ contractItemId={contractItemId}
projectId={projectId}
open={deleteDialogOpen}
onOpenChange={(open) => {
@@ -1232,6 +1257,16 @@ React.useEffect(() => {
showTrigger={false}
/>
+ {/* Dialog for adding tags */}
+ {/* <AddFormTagDialog
+ projectId={projectId}
+ formCode={formCode}
+ formName={`Form ${formCode}`}
+ contractItemId={contractItemId}
+ packageCode={packageCode}
+ open={addTagDialogOpen}
+ onOpenChange={setAddTagDialogOpen}
+ /> */}
{/* 새로 추가된 Template 다이얼로그 */}
<TemplateViewDialog
@@ -1241,8 +1276,7 @@ React.useEffect(() => {
selectedRow={selectedRowsData[0]} // SPR_ITM_LST_SETUP용
tableData={tableData} // SPR_LST_SETUP용 - 새로 추가
formCode={formCode}
- projectCode={projectCode}
- packageCode={packageCode}
+ contractItemId={contractItemId}
editableFieldsMap={editableFieldsMap}
columnsJSON={columnsJSON}
onUpdateSuccess={(updatedValues) => {
@@ -1310,8 +1344,7 @@ React.useEffect(() => {
columnsJSON={columnsJSON}
open={tempUpDialog}
setOpen={setTempUpDialog}
- projectCode={projectCode}
- packageCode={packageCode}
+ packageId={contractItemId}
formCode={formCode}
formId={formId}
uploaderType="vendor"
@@ -1323,8 +1356,7 @@ React.useEffect(() => {
columnsJSON={columnsJSON}
reportData={reportData}
setReportData={setReportData}
- projectCode={projectCode}
- packageCode={packageCode}
+ packageId={contractItemId}
formCode={formCode}
formId={formId}
/>
@@ -1336,8 +1368,7 @@ React.useEffect(() => {
setOpen={setBatchDownDialog}
columnsJSON={columnsJSON}
reportData={selectedRowCount > 0 ? getSelectedRowsData() : tableData}
- projectCode={projectCode}
- packageCode={packageCode}
+ packageId={contractItemId}
formCode={formCode}
formId={formId}
/>