Files
kngil_home/kngil/bbs/adm_purch_popup.php

65 lines
2.2 KiB
PHP

<?php
// 1. DB 연결
require_once 'db_conn.php';
header('Content-Type: application/json');
try {
$p_member_id = isset($_POST['member_id']) ? trim($_POST['member_id']) : '';
$p_fbuy_dt = isset($_POST['fbuy_dt']) ? trim($_POST['fbuy_dt']) : '';
$p_tbuy_dt = isset($_POST['tbuy_dt']) ? trim($_POST['tbuy_dt']) : '';
if ($p_fbuy_dt === '') {
$p_fbuy_dt = '1999-01-01';
}
if ($p_tbuy_dt === '') {
$p_tbuy_dt = '2099-12-31';
}
$sql = "
SELECT
a.member_id::text, a.sq_no,
b.member_nm::text as user_nm, b.co_nm::text, b.bs_no::text,
a.buy_dt, a.itm_cd::text, c.itm_nm::text,
c.area::NUMERIC as area, a.itm_qty::NUMERIC,
a.itm_area::NUMERIC, a.add_area::NUMERIC, a.sum_area::NUMERIC,
a.itm_amt::NUMERIC, a.dis_rt::NUMERIC, a.buy_amt::NUMERIC,
a.vat_amt::NUMERIC, a.sum_amt::NUMERIC,
a.end_dt, a.ok_yn::text, a.rmks::text
FROM kngil.buy_item a
LEFT JOIN kngil.members b ON a.member_id = b.member_id
LEFT JOIN kngil.item c ON a.itm_cd = c.itm_cd
WHERE (:member_id = '' OR a.member_id = :member_id)
AND (:fbuy_dt = '' OR a.buy_dt >= :fbuy_dt::date)
AND (:tbuy_dt = '' OR a.buy_dt <= :tbuy_dt::date)
ORDER BY a.buy_dt DESC, a.member_id, a.sq_no DESC
";
$stmt = $pdo->prepare($sql);
// 파라미터 순서대로 배열에 담아 실행합니다.
$stmt->execute([
':member_id' => $p_member_id,
':fbuy_dt' => $p_fbuy_dt,
':tbuy_dt' => $p_tbuy_dt
]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 3. W2UI를 위해 각 행에 'recid' 필드 강제 주입
$records = [];
foreach ($rows as $row) {
// 복합키(member_id + sp_no)를 조합하여 유일한 recid 생성
$row['recid'] = $row['member_id'] . '_' . $row['sq_no'];
$records[] = $row;
}
// 4. 결과 출력
echo json_encode($records);
} catch (PDOException $e) {
// HTTP 상태 코드를 500으로 설정하여 클라이언트가 에러임을 인지하게 할 수 있습니다.
http_response_code(500);
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
}
?>