80 lines
3.5 KiB
PHP
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\"]')");
|
|
}
|
|
?>
|