- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
44 lines
1.6 KiB
PHP
44 lines
1.6 KiB
PHP
<?php
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
|
$pdo = db_connect();
|
|
|
|
// 날짜 기본값 설정 (최근 1개월)
|
|
// 현재 날짜를 기준으로 말일과 월초를 구함
|
|
$currentDate = date("Y-m-t"); // 말일 기준
|
|
$defaultFromDate = date("Y-m-01");
|
|
$fromdate = isset($_REQUEST['fromdate']) && $_REQUEST['fromdate'] ? $_REQUEST['fromdate'] : $defaultFromDate;
|
|
$todate = isset($_REQUEST['todate']) && $_REQUEST['todate'] ? $_REQUEST['todate'] : $currentDate;
|
|
|
|
$tablename = 'estimate';
|
|
|
|
try {
|
|
// estimate 테이블에서 접수일(indate) 기준, 업체별(발주처: secondord)로 견적금액(estimateTotal)의 합계를 구하고,
|
|
// 합계가 0인 업체는 제외(HAVING 절 사용)
|
|
$sql = "SELECT secondord AS supplier, SUM(estimateTotal) AS total_amount
|
|
FROM {$DB}.{$tablename}
|
|
WHERE indate BETWEEN :fromdate AND :todate
|
|
AND is_deleted IS NULL
|
|
GROUP BY secondord
|
|
HAVING SUM(estimateTotal) > 0
|
|
ORDER BY total_amount DESC";
|
|
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->bindValue(':fromdate', $fromdate);
|
|
$stmh->bindValue(':todate', $todate);
|
|
$stmh->execute();
|
|
$rows = $stmh->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
// 차트 데이터 생성 (Highcharts용)
|
|
$chartData = [];
|
|
foreach ($rows as $row) {
|
|
$chartData[] = [
|
|
"name" => $row['supplier'],
|
|
"y" => (float)$row['total_amount']
|
|
];
|
|
}
|
|
$jsonChartData = json_encode($chartData, JSON_UNESCAPED_UNICODE);
|
|
} catch (PDOException $Exception) {
|
|
die("오류: " . $Exception->getMessage());
|
|
}
|
|
?>
|