Kaynağa Gözat

+ 대시보드 업데이트

송용우 4 ay önce
ebeveyn
işleme
3418136db5

+ 0 - 1
backend/app/Config/Routes2.php

@@ -123,7 +123,6 @@ $routes->post('deli/delivered', 'Deli::getDeliveredList');
 $routes->post('deli/markDelivered', 'Deli::markAsDelivered');
 $routes->post('deli/markSettled', 'Deli::markAsSettled');
 $routes->post('deli/settlement', 'Deli::getSettlementList');
-$routes->post('deli/pendingOrders', 'Deli::getPendingOrderList');
 
 // =============================================================================
 // 파트너십 전용 웹 라우팅 (향후 확장)

+ 0 - 110
backend/app/Controllers/Deli.php

@@ -65,12 +65,6 @@ class Deli extends ResourceController
 
         $lists = $builder->get()->getResultArray();
 
-        // 디버깅 로그 추가
-        error_log("itemlist (배송관리) - memberType: " . ($memberType ?? 'null') . ", companyNumber: " . ($companyNumber ?? 'null') . ", infSeq: " . ($infSeq ?? 'null'));
-        error_log("itemlist (배송관리) - result count: " . count($lists));
-        if (count($lists) > 0) {
-            error_log("itemlist (배송관리) - sample data: " . json_encode($lists[0]));
-        }
 
         return $this->respond($lists, 200);
     }
@@ -103,12 +97,6 @@ class Deli extends ResourceController
         $builder->orderBy('I.ORDER_DATE', 'DESC');
         $lists = $builder->get()->getResultArray();
 
-        // 디버깅 로그 추가
-        error_log("delilist (송장등록용) - itemSeq: " . ($itemSeq ?? 'null') . ", infSeq: " . ($infSeq ?? 'null'));
-        error_log("delilist (송장등록용) - result count: " . count($lists));
-        if (count($lists) > 0) {
-            error_log("delilist (송장등록용) - sample data: " . json_encode($lists[0]));
-        }
 
         return $this->respond($lists, 200);
     }
@@ -315,12 +303,6 @@ class Deli extends ResourceController
         $builder->orderBy('IOL.REG_DATE', 'DESC');
         $lists = $builder->get()->getResultArray();
 
-        // 디버깅 로그 추가
-        error_log("getShippingList - memberType: " . ($memberType ?? 'null') . ", companyNumber: " . ($companyNumber ?? 'null') . ", infSeq: " . ($infSeq ?? 'null'));
-        error_log("getShippingList - result count: " . count($lists));
-        if (count($lists) > 0) {
-            error_log("getShippingList - sample data: " . json_encode($lists[0]));
-        }
 
         return $this->respond($lists, 200);
     }
@@ -372,12 +354,6 @@ class Deli extends ResourceController
         
         $lists = $builder->get()->getResultArray();
 
-        // 디버깅 로그 추가
-        error_log("getDeliveredList - memberType: " . ($memberType ?? 'null') . ", companyNumber: " . ($companyNumber ?? 'null') . ", infSeq: " . ($infSeq ?? 'null'));
-        error_log("getDeliveredList - result count: " . count($lists));
-        if (count($lists) > 0) {
-            error_log("getDeliveredList - sample data: " . json_encode($lists[0]));
-        }
 
         return $this->respond($lists, 200);
     }
@@ -493,90 +469,4 @@ class Deli extends ResourceController
         return $this->respond($lists, 200);
     }
 
-    // 대기중인 개별 주문 조회
-    public function getPendingOrderList()
-    {
-        $db = \Config\Database::connect();
-        
-        // POST JSON 파라미터 받기
-        $request = $this->request->getJSON(true);
-        
-        $memberType = isset($request['MEMBER_TYPE']) ? $request['MEMBER_TYPE'] : null;
-        $companyNumber = isset($request['COMPANY_NUMBER']) ? $request['COMPANY_NUMBER'] : null;
-        $infSeq = isset($request['INF_SEQ']) ? $request['INF_SEQ'] : null;
-        
-        // 디버깅 로그
-        log_message('info', 'getPendingOrderList 호출됨');
-        log_message('info', 'Request 파라미터: ' . json_encode($request));
-        log_message('info', 'MEMBER_TYPE: ' . $memberType);
-        log_message('info', 'COMPANY_NUMBER: ' . $companyNumber);
-        
-        // 먼저 ITEM_LIST에서 COMPANY_NUMBER 확인해보자
-        $itemResult = $db->table('ITEM_LIST')->where('SEQ', 1)->get()->getRowArray();
-        log_message('info', 'ITEM_SEQ=1인 제품 정보: ' . json_encode($itemResult));
-        
-        $builder = $db->table('ITEM_ORDER_LIST IOL')
-            ->select('IOL.*, IL.ITEM_NAME, IL.COMPANY_NUMBER, IM.NICK_NAME')
-            ->join('ITEM_LIST IL', 'IOL.ITEM_SEQ = IL.SEQ', 'left')
-            ->join('INF_MEMBER IM', 'IOL.INF_SEQ = IM.SEQ', 'left')
-            ->where('IOL.DEL_YN', 'N');
-        
-        // 배송정보가 등록되지 않은 주문만 (대기중)
-        $builder->where('(IOL.DELI_COMP IS NULL OR IOL.DELI_COMP = "")')
-                ->where('(IOL.DELI_NUMB IS NULL OR IOL.DELI_NUMB = "")');
-        
-        // 벤더: 자사 제품의 주문만
-        if ($memberType === 'VENDOR') {
-            if (empty($companyNumber)) {
-                log_message('error', 'VENDOR 타입인데 COMPANY_NUMBER가 없음');
-                return $this->respond([], 200);
-            }
-            $builder->where('IL.COMPANY_NUMBER', $companyNumber);
-            log_message('info', 'VENDOR 필터 적용: COMPANY_NUMBER = ' . $companyNumber);
-            
-            // 임시로 JOIN 조건 확인을 위해 COMPANY_NUMBER 조건을 제거하고 테스트
-            log_message('info', '=== 임시 테스트: COMPANY_NUMBER 조건 제거 후 조회 ===');
-            $testBuilder = $db->table('ITEM_ORDER_LIST IOL')
-                ->select('IOL.*, IL.ITEM_NAME, IL.COMPANY_NUMBER, IM.NICK_NAME')
-                ->join('ITEM_LIST IL', 'IOL.ITEM_SEQ = IL.SEQ', 'left')
-                ->join('INF_MEMBER IM', 'IOL.INF_SEQ = IM.SEQ', 'left')
-                ->where('IOL.DEL_YN', 'N')
-                ->where('(IOL.DELI_COMP IS NULL OR IOL.DELI_COMP = "")')
-                ->where('(IOL.DELI_NUMB IS NULL OR IOL.DELI_NUMB = "")');
-            
-            $testQuery = $testBuilder->getCompiledSelect(false);
-            log_message('info', '테스트 SQL 쿼리: ' . $testQuery);
-            
-            $testResult = $testBuilder->get()->getResultArray();
-            log_message('info', '테스트 조회 결과 개수: ' . count($testResult));
-            if (count($testResult) > 0) {
-                log_message('info', '테스트 첫 번째 데이터: ' . json_encode($testResult[0]));
-            }
-        }
-        
-        // 인플루언서: 본인 주문만
-        if ($memberType === 'INFLUENCER') {
-            if (empty($infSeq)) {
-                log_message('error', 'INFLUENCER 타입인데 INF_SEQ가 없음');
-                return $this->respond([], 200);
-            }
-            $builder->where('IOL.INF_SEQ', $infSeq);
-            log_message('info', 'INFLUENCER 필터 적용: INF_SEQ = ' . $infSeq);
-        }
-        
-        $builder->orderBy('IOL.REG_DATE', 'DESC');
-        
-        // 쿼리 확인
-        $compiledQuery = $builder->getCompiledSelect(false);
-        log_message('info', 'SQL 쿼리: ' . $compiledQuery);
-        
-        $lists = $builder->get()->getResultArray();
-        
-        log_message('info', '조회된 데이터 개수: ' . count($lists));
-        if (count($lists) > 0) {
-            log_message('info', '첫 번째 데이터: ' . json_encode($lists[0]));
-        }
-        
-        return $this->respond($lists, 200);
-    }
 }

+ 34 - 58
pages/view/vendor/dashboard/index.vue

@@ -955,64 +955,50 @@
     }
   };
 
-  // 신규 주문 (대기중) 데이터 가져오기 - 새로운 API 사용
-  const fetchPendingOrders = async () => {
+  // 최근 주문 데이터 가져오기 (기존 API 사용)
+  const fetchRecentOrders = async () => {
     try {
       const userInfo = useAuthStore().getSnsTempData?.user || JSON.parse(localStorage.getItem('authStore') || '{}')?.auth;
-      
-      console.log('사용자 정보:', userInfo);
-      console.log('COMPANY_NUMBER:', userInfo?.COMPANY_NUMBER);
-      
       const requestData = {
+        TYPE: 'ITEM',
+        SHOW_YN: 'Y',
         MEMBER_TYPE: 'VENDOR',
         COMPANY_NUMBER: userInfo?.COMPANY_NUMBER
       };
       
-      console.log('API 요청 데이터:', requestData);
+      const response = await useAxios().post("/deli/itemlist", requestData);
+      const allOrderData = response.data || [];
       
-      const response = await useAxios().post("/deli/pendingOrders", requestData);
+      return allOrderData;
+    } catch (error) {
+      console.error('최근 주문 데이터 조회 실패:', error);
+      throw error;
+    }
+  };
+
+  // 신규 주문 (대기중) 데이터 가져오기 - 기존 데이터 필터링
+  const fetchPendingOrders = async () => {
+    try {
+      const allOrders = await fetchRecentOrders();
       
-      const pendingData = response.data || [];
-      console.log('신규 주문 원본 데이터 개수:', pendingData.length);
-      console.log('신규 주문 원본 데이터:', pendingData);
-
-      if (pendingData.length === 0) {
-        console.warn('신규 주문 데이터가 없습니다. API 필터링 확인 필요');
-        pendingOrders.value = [];
-        pendingPageObj.value.totalCnt = 0;
-        pendingPageObj.value.totalPage = 0;
-        if (pendingGridApi.value) {
-          pendingGridApi.value.setGridOption('rowData', []);
-        }
-        return;
-      }
+      // 대기중 상태의 주문만 필터링 (배송업체나 송장번호가 없는 것)
+      const pendingData = allOrders.filter(item => 
+        (!item.DELI_COMP || item.DELI_COMP === '') && 
+        (!item.DELI_NUMB || item.DELI_NUMB === '')
+      );
 
       // 테이블 형식으로 변환
-      const formattedPendingOrders = pendingData.map((item, index) => {
-        console.log(`주문 ${index + 1} 변환:`, {
-          SEQ: item.SEQ,
-          ITEM_SEQ: item.ITEM_SEQ,
-          ITEM_NAME: item.ITEM_NAME,
-          NICK_NAME: item.NICK_NAME,
-          QTY: item.QTY,
-          TOTAL: item.TOTAL,
-          REG_DATE: item.REG_DATE
-        });
-        
-        return {
-          orderNo: `ORD-${item.SEQ || (Date.now() + index)}`,
-          itemSeq: item.ITEM_SEQ,
-          productName: item.ITEM_NAME || '상품명 없음',
-          influencer: item.NICK_NAME || '알 수 없음',
-          totalQty: item.QTY || 0,
-          totalAmount: item.TOTAL || 0,
-          latestOrderDate: $dayjs(item.REG_DATE).format('YYYY-MM-DD'),
-          status: 'pending',
-          originalData: item
-        };
-      });
-
-      console.log('변환된 신규 주문 데이터:', formattedPendingOrders);
+      const formattedPendingOrders = pendingData.map((item, index) => ({
+        orderNo: `ORD-${item.SEQ || (Date.now() + index)}`,
+        itemSeq: item.SEQ,
+        productName: item.NAME || '상품명 없음',
+        influencer: '대기중',
+        totalQty: item.sum_qty || 0,
+        totalAmount: item.sum_total || 0,
+        latestOrderDate: $dayjs(item.latest_reg_date).format('YYYY-MM-DD'),
+        status: 'pending',
+        originalData: item
+      }));
 
       pendingOrders.value = formattedPendingOrders;
       
@@ -1020,21 +1006,11 @@
       pendingPageObj.value.totalCnt = formattedPendingOrders.length;
       pendingPageObj.value.totalPage = Math.ceil(formattedPendingOrders.length / pendingPageObj.value.pageSize);
       
-      console.log('페이징 정보:', {
-        totalCnt: pendingPageObj.value.totalCnt,
-        totalPage: pendingPageObj.value.totalPage,
-        pageSize: pendingPageObj.value.pageSize
-      });
-      
       // ag-grid 데이터 갱신 (첫 페이지만)
       const firstPageData = formattedPendingOrders.slice(0, pendingPageObj.value.pageSize);
-      console.log('그리드에 설정할 첫 페이지 데이터:', firstPageData);
       
       if (pendingGridApi.value) {
         pendingGridApi.value.setGridOption('rowData', firstPageData);
-        console.log('그리드 데이터 설정 완료');
-      } else {
-        console.warn('pendingGridApi가 없습니다');
       }
 
     } catch (error) {
@@ -1043,7 +1019,7 @@
     }
   };
 
-  // 배송중 데이터 가져오기
+  // 배송중 데이터 가져오기 - 기존 배송중 API 사용
   const fetchShippingOrders = async () => {
     try {
       const userInfo = useAuthStore().getSnsTempData?.user || JSON.parse(localStorage.getItem('authStore') || '{}')?.auth;