65 lines
2.2 KiB
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()]);
|
|
}
|
|
?>
|