Files
dnssash/adm/order_manage/cron_interim_payment.php
2026-06-11 18:47:38 +09:00

80 lines
3.5 KiB
PHP

<?php
// 중도금 알림 크론 작업 스크립트
// 매일 실행하여 시공 2일 전 고객들에게 중도금 알림 발송
include_once('../../common.php');
include_once(G5_LIB_PATH . '/notification_helper.php');
// CLI에서만 실행 가능하도록 제한
if (php_sapi_name() !== 'cli' && !$is_admin) {
die('Access denied');
}
$today = date('Y-m-d');
// 오늘이 중도금 알림일인 견적들 조회
$sql = "SELECT e.*, w.wr_name, w.wr_subject, w.mb_hp,
(SELECT mb_name FROM g5_member WHERE mb_id = e.extra_4) as dealer_name
FROM estimate e
JOIN g5_write_order w ON e.wr_id = w.wr_id
WHERE e.extra_5 = '{$today}'
AND e.status = '입금확인'
AND e.is_deleted = 0";
$result = sql_query($sql);
$processed_count = 0;
$middle_payment_rate = (int) get_order_config('middle_payment_rate', '40');
while ($row = sql_fetch_array($result)) {
// 견적 총액 조회
$total_amount_result = sql_fetch("SELECT SUM(ei.amount) as total_amount
FROM estimate_item ei
WHERE ei.estimate_id = '{$row['id']}'
AND ei.dealer_id = '{$row['extra_4']}'");
$total_amount = $total_amount_result['total_amount'] ?? 0;
$interim_amount = ($total_amount * $middle_payment_rate) / 100;
// 중도금 알림 발송
$notification_result = notify_customer('customer_interim_payment', [
'customer_name' => $row['wr_name'],
'interim_amount' => number_format($interim_amount),
'construction_date' => $row['temp_4'],
'dealer_name' => $row['dealer_name']
]);
if ($notification_result) {
// 상태를 중도금입금예정으로 변경
sql_query("UPDATE estimate SET
status = '중도금입금예정',
updated_at = NOW()
WHERE id = '{$row['id']}'");
// 게시판 상태도 업데이트
sql_query("UPDATE g5_write_order SET wr_1 = '중도금입금예정' WHERE wr_id = '{$row['wr_id']}'");
$processed_count++;
// 로그 기록
error_log("[CRON] 중도금 알림 발송 완료 - wr_id: {$row['wr_id']}, 고객: {$row['wr_name']}, 금액: " . number_format($interim_amount));
}
}
echo "중도금 알림 처리 완료: {$processed_count}\n";
// 템플릿이 없는 경우를 위한 기본 템플릿 추가
$template_check = sql_fetch("SELECT COUNT(*) as cnt FROM order_mail_templates WHERE template_key = 'customer_interim_payment'");
if ($template_check['cnt'] == 0) {
// 중도금 알림 템플릿 추가
sql_query("INSERT INTO order_mail_templates (template_key, template_name, subject, content, variables) VALUES
('customer_interim_payment', '고객 - 중도금 입금 안내', '시공 준비를 위한 중도금 입금 안내',
'안녕하세요 {customer_name}님,<br><br>{construction_date} 시공 예정으로 중도금 입금을 안내드립니다.<br><br>중도금: {interim_amount}원<br>시공업체: {dealer_name}<br><br>입금 확인 후 시공이 진행됩니다.',
'[\"customer_name\", \"interim_amount\", \"construction_date\", \"dealer_name\"]')");
sql_query("INSERT INTO order_sms_templates (template_key, template_name, content, variables) VALUES
('customer_interim_payment', '고객 - 중도금 입금 안내',
'{customer_name}님, {construction_date} 시공 예정으로 중도금 {interim_amount}원 입금 안내드립니다.',
'[\"customer_name\", \"interim_amount\", \"construction_date\"]')");
}
?>