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);
?>