feat(payment): add Jalali date formatting for appointment confirmation SMS

This commit is contained in:
hamed
2026-06-25 16:34:54 +03:30
parent b1a43b7740
commit 71edc772c8
3 changed files with 18 additions and 2 deletions
+2 -1
View File
@@ -51,6 +51,7 @@ class PaymentController extends BaseController
private readonly ClinicRepository $clinicRepo,
private readonly SiteConfigRepository $configRepo,
private readonly \App\Settlement\Service\CommissionService $commissionService,
private readonly \App\Representation\Service\JalaliDateService $jalali,
private readonly string $appBaseUrl,
private readonly string $allowedFrontendHosts = '',
) {}
@@ -646,7 +647,7 @@ class PaymentController extends BaseController
$mobile = $appointment->getPatientMobile();
if ($mobile) {
$when = date('Y-m-d H:i', $appointment->getSlotStart());
$when = $this->jalali->formatDateTime($appointment->getSlotStart());
$message = $this->smsText->resolve(\App\Sms\Entity\SmsLog::TAG_PAYMENT, [
'doctor' => $appointment->getDoctor()->getName(),
'date' => $when,
@@ -43,6 +43,21 @@ class JalaliDateService
return [$jy, $jm, $jd];
}
/** تبدیل timestamp به رشته‌ی شمسی: «۱۴۰۵/۰۴/۰۲ ۰۹:۰۰» (پیش‌فرض با ساعت). */
public function formatDateTime(int $timestamp, bool $withTime = true): string
{
$pattern = $withTime ? 'yyyy/MM/dd HH:mm' : 'yyyy/MM/dd';
$f = new \IntlDateFormatter(
'fa_IR@calendar=persian',
\IntlDateFormatter::NONE,
\IntlDateFormatter::NONE,
'Asia/Tehran',
\IntlDateFormatter::TRADITIONAL,
$pattern,
);
return $f->format($timestamp);
}
public function jalaliYear(int $timestamp): int
{
return $this->gregorianToJalali(