prepare($sql); $stmh->bindValue(1, $num, PDO::PARAM_STR); $stmh->execute(); $count = $stmh->rowCount(); if ($count < 1) { print "검색결과가 없습니다.
"; } else { $row = $stmh->fetch(PDO::FETCH_ASSOC); include "_row.php"; // output_extra 테이블에서 데이터 불러오기 require_once $_SERVER['DOCUMENT_ROOT'] . '/output/load_output_extraTable.php'; } } catch (PDOException $Exception) { print "오류: " . $Exception->getMessage(); } // JSON 문자열을 PHP 배열로 디코딩합니다. //스크린발주서 읽기 $eList = json_decode($estimateList, true); // 행의 수는 배열의 크기와 동일하므로, count() 함수를 사용하여 구합니다. $surang = count($eList); // COD 출고증 certificate of delivery $COD = isset($COD) ? json_decode($COD, true) : []; // print_r($COD); // JSON 데이터를 JavaScript 변수로 변환 echo ""; // echo '
';
// print_r($eList);
// echo '
'; // 행의 수는 배열의 크기와 동일하므로, count() 함수를 사용하여 구합니다. $surang = count($eList); // 행의 수를 출력하거나 활용할 수 있습니다. // echo "행의 수: " . $surang . "
"; $THscreenSu = $surang + 2 ; // 디코딩된 데이터가 배열인지 확인합니다. if (!is_array($eList)) { echo "데이터가 정상적이지 않습니다. 확인바랍니다."; exit; } else { foreach ($eList as $item) { $prodcode = $item['col4']; $items1 = ['KSS01','KSS02','KSE01']; $items2 = ['KWE01']; // $prodcode가 $items1 배열에 있는 경우 if (in_array($prodcode, $items1)) { $prodname = '국민방화 스크린 셔터'; } // $prodcode가 $items2 배열에 있는 경우 elseif (in_array($prodcode, $items2)) { $prodname = '국민방화 스크린 플러스 셔터'; } else { $prodname = 'Unknown'; // $prodcode가 어느 배열에도 없는 경우 } } } $indateStr = date("m/d", strtotime($indate)); $todayStr = date("m/d"); $rowCounter = 1; // 아이템 행 카운터 초기값 0 ?>
 

경동기업
  출   고   증

전화 : 031-983-5130 | 팩스 : 02-6911-6315 | 이메일 : kd5130@naver.com
로트번호
결 재 작성 검토 승인
판매/ 출하 생산관리
상 품 명 제품명 인정번호
신 청 업 체 신 청 내 용 납 품 정 보
발주일 현 장 명
발주처 납기요청일 인수담당자
발주 담당자 출고일 인수자연락처
담당자 연락처 셔터총수량 (개소) 배 송 방 법
배송지 주소
* 별도 추가사항
['item_code' => '감기샤프트-114.3*2T,L:3,000', 'quantity' => intval(0)], '4인치_4500' => ['item_code' => '감기샤프트-114.3*2T,L:4,500', 'quantity' => intval(0)], '4인치_6000' => ['item_code' => '감기샤프트-114.3*2T,L:6,000', 'quantity' => intval(0)], '5인치_6000' => ['item_code' => '감기샤프트-139.8*2.9T,L:6,000', 'quantity' => intval(0)], '5인치_7000' => ['item_code' => '감기샤프트-139.8*2.9T,L:7,000', 'quantity' => intval(0)], '5인치_8200' => ['item_code' => '감기샤프트-139.8*2.9T,L:8,200', 'quantity' => intval(0)], ]; // 부속자재 데이터에 품목 번호와 수량을 함께 저장 $subs_data = [ '각파이프-3000' => ['item_code' => '각파이프-50*30*1.4T,L:3,000', 'quantity' => intval(0)], '각파이프-6000' => ['item_code' => '각파이프-50*30*1.4T,L:6,000', 'quantity' => intval(0)], '앵글-2500' => ['item_code' => '앵글-50*50*4T,L:2,500', 'quantity' => intval(0)], '마환봉-3000' => ['item_code' => '마환봉-6파이,L:3,000', 'quantity' => intval(0)], '받침용앵글-380' => ['item_code' => '받침용앵글-40*40*3T,L:380', 'quantity' => intval(0)], '무게평철-12T' => ['item_code' => '평철-50*12T,L:2,000', 'quantity' => intval(0)], ]; // 데이터를 누적하여 합산 foreach ($eList as $item) { // 2·3인치는 col59 조합 $inch = $item['col59_inch'] ?? '2인치'; $length = $item['col59_length'] ?? '300'; $qty = intval($item['col59'] ?? 0); if (in_array($inch, ['2인치', '3인치']) && $qty > 0) { $key = "{$inch}_{$length}"; if (!isset($shaft_data[$key])) { $display_length = number_format($length); $shaft_data[$key] = [ 'item_code' => "{$inch} 감기샤프트,L:{$display_length}", 'quantity' => 0 ]; } $shaft_data[$key]['quantity'] += $qty; } $shaft_data['4인치_3000']['quantity'] += intval($item['col60']); $shaft_data['4인치_4500']['quantity'] += intval($item['col61']); $shaft_data['4인치_6000']['quantity'] += intval($item['col62']); $shaft_data['5인치_6000']['quantity'] += intval($item['col63']); $shaft_data['5인치_7000']['quantity'] += intval($item['col64']); $shaft_data['5인치_8200']['quantity'] += intval($item['col65']); // 부속자재 누적 $subs_data['각파이프-3000']['quantity'] += intval($item['col68']); $subs_data['각파이프-6000']['quantity'] += intval($item['col69']); $subs_data['마환봉-3000']['quantity'] += intval($item['col70']); $subs_data['앵글-2500']['quantity'] += intval($item['col71']); $subs_data['받침용앵글-380']['quantity'] += (intval($item['col14']) * 4); // 받침용앵글은 *4 $subs_data['무게평철-12T']['quantity'] += intval($item['col57']); } // print_r($subs_data); // 받침용앵글 규격 $bracketAngle = $item['col22']; // HTML 구조 시작 echo '
'; // 감기샤프트 부분 echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // 감기샤프트 데이터 출력 전: 정렬 uksort($shaft_data, function($a, $b) { // 1. 인치 숫자 추출 (2인치 → 2, 4인치 → 4 등) preg_match('/(\d+)인치/', $a, $matchA); preg_match('/(\d+)인치/', $b, $matchB); $inchA = isset($matchA[1]) ? intval($matchA[1]) : 0; $inchB = isset($matchB[1]) ? intval($matchB[1]) : 0; if ($inchA !== $inchB) { return $inchA - $inchB; } // 2. 길이 숫자 추출 (ex: _3000 → 3000) preg_match('/_(\d+)/', $a, $lenA); preg_match('/_(\d+)/', $b, $lenB); $lengthA = isset($lenA[1]) ? intval($lenA[1]) : 0; $lengthB = isset($lenB[1]) ? intval($lenB[1]) : 0; return $lengthA - $lengthB; }); // 감기샤프트 데이터 출력 foreach ($shaft_data as $label => $data) { if ($data['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
감기샤프트
규격수량입고 LOT NO.
' . str_replace('_', ' ', $label) . '' . $data['quantity'] . '
'; echo '
'; // 감기샤프트 부분 끝 // 부속자재 부분 echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // 각파이프 데이터 출력 $pipe_rowspan = 0; if ($subs_data['각파이프-3000']['quantity'] > 0) { $pipe_rowspan++; } if ($subs_data['각파이프-6000']['quantity'] > 0) { $pipe_rowspan++; } if ($pipe_rowspan > 0) { echo ''; echo ''; if ($subs_data['각파이프-3000']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; } if ($subs_data['각파이프-6000']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; } } // 앵글 if ($subs_data['앵글-2500']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } // 마환봉 if ($subs_data['마환봉-3000']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } // 받침용앵글-380 if ($subs_data['받침용앵글-380']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } // 무게평철-12T if ($subs_data['무게평철-12T']['quantity'] > 0) { echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo ''; echo '
부속자재
규격길이수량입고 LOT NO.
각파이프3000' . $subs_data['각파이프-3000']['quantity'] . '
6000' . $subs_data['각파이프-6000']['quantity'] . '
앵글
(40*40*3T)
2500' . $subs_data['앵글-2500']['quantity'] . '
마환봉
(6mm)
3000' . $subs_data['마환봉-3000']['quantity'] . '
받침용앵글' . $bracketAngle . '' . $subs_data['받침용앵글-380']['quantity'] . '
하단무게평철12T' . $subs_data['무게평철-12T']['quantity'] . '
'; echo '
'; // 부속자재 부분 끝 echo '
'; // row 끝 } ?>
'; // 1) 모터 부분 echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // 1. 고유 조합별 집계 배열 생성 $productCounts = []; foreach ($eList as $row) { $motor_brand = $row['col18_brand'] ?? ''; // ① '없음' 포함된 브랜드는 제외 if (mb_strpos($motor_brand, '없음') !== false) { continue; } $volt = $row['col18'] ?? ''; $wireless = $row['col18_wireless'] ?? ''; $weight = $row['col19'] ?? ''; // 수량이 따로 있으면 col14, 없으면 1개로 간주 $quantity = isset($row['col14']) ? intval($row['col14']) : 1; // 필수값(용량·전압)이 없으면 스킵 if (!$weight || !$volt) { continue; } // 키는 조합 문자열로 생성 $key = "{$weight}|{$volt}|{$wireless}"; if (!isset($productCounts[$key])) { $productCounts[$key] = [ 'volt' => $volt, 'wireless' => $wireless, 'weight' => $weight, 'quantity' => 0, ]; } // ② 같은 조합일 경우 수량 누적 $productCounts[$key]['quantity'] += $quantity; } // 2. 집계 결과를 화면에 출력 $innercounter = 0; foreach ($productCounts as $item) { // 모터 코드 생성 (예: 전동개폐기-브랜드G전압(무/유선)) $code = '전동개폐기-'.$item['weight'].'G'.$item['volt'].'('.$item['wireless'].')'; echo ''; echo ' '; echo ' '; echo ' '; echo ' '; echo ' '; echo ''; $innercounter++; } echo ''; echo '
모터종류(KG)
용량전압유/무선수량 입고LOT
' . htmlspecialchars($item['weight']) . '' . htmlspecialchars($item['volt']) . '' . htmlspecialchars($item['wireless']) . '' . htmlspecialchars($item['quantity']) . ''; echo '
'; echo ' '; echo '
'; echo ' '; echo '
'; echo '
'; echo '
'; echo '
'; // 모터 부분 끝 // 2) 브라켓트 부분 echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; // 브라켓과 앵글 데이터를 배열에 저장 $bracketData = array_values($bracketSpec['bracketSizes']); // 키를 숫자 인덱스로 변환 $angleData = array_values($bracketAngleSpec['bracketAngleSizes']); // 키를 숫자 인덱스로 변환 // 두 배열의 최대 길이를 구함 $maxRows = max(count($bracketData), count($angleData)); // 브라켓 부분에서도 같은 인덱스를 사용하여 data-index 속성을 추가 $innercounter = 0; for ($i = 0; $i < $maxRows; $i++) { echo ''; if (isset($bracketData[$i])) { echo ''; echo ''; $size = $bracketData[$i]['size']; // '380*200' $sizeParts = explode('*', $size); // '380'과 '200'으로 분리 $code = '베어링부-' . $sizeParts[0] . 'B'; // '380B'로 변환 echo ''; $innercounter++ ; } else { echo ''; echo ''; echo ''; } echo ''; } echo ''; echo '
브라켓트
크기수량 입고 LOT
' . $bracketData[$i]['size'] . '' . $bracketData[$i]['quantity'] . '
---
'; echo '
'; // 브라켓트 부분 끝 // 3) 연동제어기 부분 echo '
'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; $control_labels = ['매립형', '노출형', '뒷박스']; for ($i = 0; $i < count($other_columns); $i++) { if (intval(trim($other_columns[$i])) !== 0 && $other_columns[$i] !== '0') { if ($control_labels[$i]=== '뒷박스') { // $code = '연동제어기-' . $control_labels[$i]; $code = 'EGI1.15T-1219*2438'; } else { $code = '연동제어기-' . $control_labels[$i] . '(' . $wireless . ')'; } echo ''; echo ''; echo ''; echo ''; echo ''; } } echo ''; echo '
연동제어기
품명수량 입고 LOT
' . $control_labels[$i] . '' . $other_columns[$i] . '
'; echo '
'; // 연동제어기 부분 끝 echo '
'; // row 끝 } $rowCounter++; } // end of motor 체크 ?>

4-2. 하단마감재
' ; ?>