query($sql); $itemNames = $stmh->fetchAll(PDO::FETCH_COLUMN, 0); // item_name 컬럼의 값을 배열로 저장 // 공백 및 엔터, 탭 제거 $cleanedItemNames = array_map(function($name) { // 모든 공백, 탭, 줄 바꿈 제거 return preg_replace('/\s+/', '', $name); }, $itemNames); // 중복 제거 $uniqueItemNames = array_unique($cleanedItemNames); // 공백으로만 구성된 요소 제거 $uniqueItemNames = array_filter($uniqueItemNames, function($name) { return trim($name) !== ''; }); $uniqueItemNames = array_filter($uniqueItemNames, function($name) { return trim($name) !== ' '; // 전각문자 일반 공백: ' ' 전각 공백: ' ' (유니코드 U+3000) 이 차이로 오류가 난것임 }); // 한글, 영문 오름차순 정렬 usort($uniqueItemNames, function($a, $b) { return strcoll($a, $b); // strcoll을 사용해 로케일에 따른 오름차순 정렬 }); // 결과 출력 (예: 배열 확인용) // print_r($uniqueItemNames); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } // `instock` 테이블에서 `supplier` 컬럼 값 가져오기 $sql = "SELECT supplier FROM {$DB}.{$tablename} WHERE is_deleted IS NULL"; try { $stmh = $pdo->query($sql); $supplierNames = $stmh->fetchAll(PDO::FETCH_COLUMN, 0); // supplier 컬럼의 값을 배열로 저장 // 공백 및 엔터, 탭 제거 $cleanedSupplierNames = array_map(function($name) { return preg_replace('/\s+/', '', $name); }, $supplierNames); // 중복 제거 $uniqueSupplierNames = array_unique($cleanedSupplierNames); // 공백으로만 구성된 요소 제거 $uniqueSupplierNames = array_filter($uniqueSupplierNames, function($name) { return trim($name) !== '' && trim($name) !== ' '; }); // 한글, 영문 오름차순 정렬 usort($uniqueSupplierNames, function($a, $b) { return strcoll($a, $b); // 로케일에 따른 오름차순 정렬 }); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } // `instock` 테이블에서 `manufacturer` 컬럼 값 가져오기 $sql = "SELECT manufacturer FROM {$DB}.{$tablename} WHERE is_deleted IS NULL"; try { $stmh = $pdo->query($sql); $manufacturerNames = $stmh->fetchAll(PDO::FETCH_COLUMN, 0); // manufacturer 컬럼의 값을 배열로 저장 // 공백 및 엔터, 탭 제거 $cleanedManufacturerNames = array_map(function($name) { return preg_replace('/\s+/', '', $name); // 공백 제거 }, $manufacturerNames); // 중복 제거 $uniqueManufacturerNames = array_unique($cleanedManufacturerNames); // 공백으로만 구성된 요소 제거 $uniqueManufacturerNames = array_filter($uniqueManufacturerNames, function($name) { return trim($name) !== '' && trim($name) !== ' '; // 전각 공백도 제거 }); // 한글, 영문 오름차순 정렬 usort($uniqueManufacturerNames, function($a, $b) { return strcoll($a, $b); // 로케일에 따른 정렬 }); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } // `instock` 테이블에서 `unit` 컬럼 값 가져오기 $sql = "SELECT unit FROM {$DB}.{$tablename} WHERE is_deleted IS NULL"; try { $stmh = $pdo->query($sql); $unitNames = $stmh->fetchAll(PDO::FETCH_COLUMN, 0); // unit 컬럼의 값을 배열로 저장 // 공백 및 엔터, 탭 제거 $cleanedUnitNames = array_map(function($name) { return preg_replace('/\s+/', '', $name); // 공백 제거 }, $unitNames); // 중복 제거 $uniqueUnitNames = array_unique($cleanedUnitNames); // 공백으로만 구성된 요소 제거 $uniqueUnitNames = array_filter($uniqueUnitNames, function($name) { return trim($name) !== '' && trim($name) !== ' '; // 전각 공백도 제거 }); // 한글, 영문 오름차순 정렬 usort($uniqueUnitNames, function($a, $b) { return strcoll($a, $b); // 로케일에 따른 정렬 }); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } if ($mode === 'update' && $num) { try { $sql = "SELECT * FROM ". $DB . "." . $tablename . " WHERE num=?"; $stmh = $pdo->prepare($sql); $stmh->bindValue(1, $num, PDO::PARAM_INT); $stmh->execute(); $row = $stmh->fetch(PDO::FETCH_ASSOC); include '_row.php'; } catch (PDOException $Exception) { echo "오류: ".$Exception->getMessage(); exit; } } else if ($mode === 'copy' && $num) { try { $sql = "SELECT * FROM ". $DB . "." . $tablename . " WHERE num=?"; $stmh = $pdo->prepare($sql); $stmh->bindValue(1, $num, PDO::PARAM_INT); $stmh->execute(); $row = $stmh->fetch(PDO::FETCH_ASSOC); include '_row.php'; $num = ''; //copy일때는 $num 초기화 } catch (PDOException $Exception) { echo "오류: ".$Exception->getMessage(); exit; } } else { include '_request.php'; $mode = 'insert'; $inspection_date = date('Y-m-d'); // $lot_no = date('ymd') . '-'; // 현재 날짜를 "년도(2자리)+월+일" 형식으로 생성 후 '-' 추가 $currentDate = date('ymd'); // 예: 240926 $filepath = $_SERVER['DOCUMENT_ROOT'] . '/instock/lotnum.txt'; // 파일이 존재하지 않으면 새로 생성 if (!file_exists($filepath)) { $lot_no = $currentDate . '-01'; } else { // 파일에서 이전 로트번호 읽기 $lastLotNumber = file_get_contents($filepath); list($date, $number) = explode('-', $lastLotNumber); // 날짜가 같으면 번호를 증가, 다르면 01로 초기화 if ($date === $currentDate) { $newNumber = str_pad((int)$number + 1, 2, '0', STR_PAD_LEFT); $lot_no = $currentDate . '-' . $newNumber; } else { $lot_no = $currentDate . '-01'; } } // 로트번호 갱신 서버저장은 저장버튼 클릭시 시작 // file_put_contents($filepath, $lot_no); } // `instock` 테이블에서 `specification` 컬럼 값 가져오기 $sql = "SELECT specification FROM {$DB}.{$tablename} WHERE item_name = ? AND is_deleted IS NULL"; try { $stmh = $pdo->prepare($sql); $stmh->execute([$item_name]); $specificationNames = $stmh->fetchAll(PDO::FETCH_COLUMN, 0); // specification 컬럼의 값을 배열로 저장 // 공백 및 엔터, 탭 제거 $cleanedspecificationNames = array_map(function($name) { return preg_replace('/\s+/', '', $name); // 공백 제거 }, $specificationNames); // $cleanedspecificationNames = array_map(function ($spec) { // return str_replace(["\r\n", "\r", "\n"], '', $spec); // }, $cleanedspecificationNames); // 중복 제거 $uniquespecificationNames = array_unique($cleanedspecificationNames); // 공백으로만 구성된 요소 제거 $uniquespecificationNames = array_filter($uniquespecificationNames, function($name) { return trim($name) !== '' && trim($name) !== ' '; // 전각 공백도 제거 }); // 한글, 영문 오름차순 정렬 usort($uniquespecificationNames, function($a, $b) { return strcoll($a, $b); // 로케일에 따른 정렬 }); } catch (PDOException $e) { echo "Error: " . $e->getMessage(); } $title_message = ($mode === 'update') ? '수입검사 수정' : '수입검사 신규 등록'; $specification_clean = preg_replace('/(\s+|
||
|\r\n|\r|\n)/', ' ', $specification); $remarks_clean = preg_replace('/(\s+|
||
|\r\n|\r|\n)/', ' ', $remarks); $item_name_clean = preg_replace('/(\s+|
||
|\r\n|\r|\n)/', ' ', $item_name); ?>
로트번호 검사일
납품업체 품명
규격 단위
품목코드
입고량 자재번호
제조사 소진여부
매입가(VAT 별도) 중량(kg)
비고