- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
<?php
|
|
include $_SERVER['DOCUMENT_ROOT'] . "/session.php";
|
|
|
|
// JSON 응답 헤더 설정
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
// POST 데이터 확인
|
|
$input = json_decode(file_get_contents('php://input'), true);
|
|
|
|
if (!$input) {
|
|
echo json_encode(['success' => false, 'message' => '데이터를 받지 못했습니다.']);
|
|
exit;
|
|
}
|
|
|
|
// 데이터베이스 연결 (PDO 사용)
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
|
$pdo = db_connect();
|
|
|
|
try {
|
|
// 필수 필드 검증
|
|
if (empty($input['handover_num'])) {
|
|
throw new Exception('인수인계 번호가 필요합니다.');
|
|
}
|
|
|
|
$handover_num = $input['handover_num'];
|
|
|
|
// 권한 확인 (작성자 또는 관리자만 삭제 가능)
|
|
$sql = "SELECT regist_user FROM work_handover WHERE num = ? AND is_deleted = 'N'";
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->bindValue(1, $handover_num, PDO::PARAM_INT);
|
|
$stmh->execute();
|
|
|
|
if ($stmh->rowCount() === 0) {
|
|
throw new Exception('해당 인수인계 보고서를 찾을 수 없습니다.');
|
|
}
|
|
|
|
$handover_data = $stmh->fetch(PDO::FETCH_ASSOC);
|
|
|
|
// 권한 확인 (작성자 또는 QC 관리자만 삭제 가능)
|
|
$QCadmin = false;
|
|
if($user_name=='이세희' || $user_name=='개발자' || $user_name=='함신옥') {
|
|
$QCadmin = true;
|
|
}
|
|
|
|
if ($handover_data['regist_user'] !== $user_name && !$QCadmin) {
|
|
throw new Exception('삭제 권한이 없습니다.');
|
|
}
|
|
|
|
// Soft Delete 실행 (실제 삭제하지 않고 is_deleted 플래그만 변경)
|
|
$sql = "UPDATE work_handover SET is_deleted = 'Y', update_day = ?, update_user = ? WHERE num = ?";
|
|
$stmh = $pdo->prepare($sql);
|
|
$today = date('Y-m-d');
|
|
$stmh->bindValue(1, $today, PDO::PARAM_STR);
|
|
$stmh->bindValue(2, $user_name, PDO::PARAM_STR);
|
|
$stmh->bindValue(3, $handover_num, PDO::PARAM_INT);
|
|
|
|
if ($stmh->execute()) {
|
|
echo json_encode([
|
|
'success' => true,
|
|
'message' => '인수인계 보고서가 삭제되었습니다.'
|
|
]);
|
|
} else {
|
|
throw new Exception('삭제 중 오류가 발생했습니다.');
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
echo json_encode([
|
|
'success' => false,
|
|
'message' => $e->getMessage()
|
|
]);
|
|
}
|
|
|
|
$pdo = null; // PDO 연결 종료
|
|
?>
|