Files
sam-kd/account/exclude_note.php

106 lines
3.7 KiB
PHP
Raw Normal View History

<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
if (!isset($_SESSION["level"]) || $_SESSION["level"] > 5) {
header("Content-Type: application/json");
echo json_encode(['success' => false, 'message' => '권한이 없습니다.']);
exit;
}
header("Content-Type: application/json");
$action = $_POST['action'] ?? '';
$excludedNotesFile = $_SERVER['DOCUMENT_ROOT'] . "/account/excluded_notes.json";
// JSON 파일이 없으면 생성
if (!file_exists($excludedNotesFile)) {
file_put_contents($excludedNotesFile, '[]');
}
// 기존 제외된 어음 목록 로드
$excludedNotes = json_decode(file_get_contents($excludedNotesFile), true) ?: [];
try {
switch ($action) {
case 'exclude':
$noteNum = intval($_POST['note_num']);
$contentDetail = $_POST['content_detail'] ?? '';
if (!$noteNum) {
throw new Exception('어음 번호가 필요합니다.');
}
// 이미 제외된 어음인지 확인
$alreadyExcluded = false;
foreach ($excludedNotes as $note) {
if ($note['note_num'] == $noteNum) {
$alreadyExcluded = true;
break;
}
}
if ($alreadyExcluded) {
throw new Exception('이미 제외된 어음입니다.');
}
// 제외된 어음 정보 추가
$excludedNote = [
'note_num' => $noteNum,
'content_detail' => $contentDetail,
'excluded_date' => date('Y-m-d H:i:s'),
'excluded_by' => $user_name ?? 'Unknown'
];
$excludedNotes[] = $excludedNote;
// JSON 파일에 저장
if (file_put_contents($excludedNotesFile, json_encode($excludedNotes, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)) === false) {
throw new Exception('제외 정보 저장에 실패했습니다.');
}
echo json_encode(['success' => true, 'message' => '어음이 제외되었습니다.']);
break;
case 'restore':
$noteNum = intval($_POST['note_num']);
if (!$noteNum) {
throw new Exception('어음 번호가 필요합니다.');
}
// 제외된 어음 목록에서 해당 어음 제거
$found = false;
$newExcludedNotes = [];
foreach ($excludedNotes as $note) {
if ($note['note_num'] != $noteNum) {
$newExcludedNotes[] = $note;
} else {
$found = true;
}
}
if (!$found) {
throw new Exception('제외된 어음 목록에서 해당 어음을 찾을 수 없습니다.');
}
// JSON 파일에 저장
if (file_put_contents($excludedNotesFile, json_encode($newExcludedNotes, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)) === false) {
throw new Exception('복원 정보 저장에 실패했습니다.');
}
echo json_encode(['success' => true, 'message' => '어음이 복원되었습니다.']);
break;
case 'get_excluded':
echo json_encode(['success' => true, 'data' => $excludedNotes]);
break;
default:
throw new Exception('잘못된 요청입니다.');
}
} catch (Exception $e) {
echo json_encode(['success' => false, 'message' => $e->getMessage()]);
}
?>