From 1262d18072d79ab48f4f6202686547b825aa0ec2 Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Tue, 4 Jun 2024 16:08:18 +0900 Subject: [PATCH] =?UTF-8?q?=E5=8F=97=E4=BB=98=E3=83=A1=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Codes/Email.php | 3 +- .../Members/EntryApprovePayToBankCheck.php | 111 ++++++++++++++++++ ...Approve.php => EntryApprovePayToYucho.php} | 4 +- .../Web/Email/EmailSendController.php | 21 +++- .../Models/SeasonTicketContractEntry.php | 18 --- .../entry_approve_pay_to_bank_check.blade.php | 77 ++++++++++++ ...p => entry_approve_pay_to_yucho.blade.php} | 0 7 files changed, 211 insertions(+), 23 deletions(-) create mode 100644 app/Email/Members/EntryApprovePayToBankCheck.php rename app/Email/Members/{EntryApprove.php => EntryApprovePayToYucho.php} (97%) create mode 100644 resources/views/emails/members/entry_approve_pay_to_bank_check.blade.php rename resources/views/emails/members/{entry_approve.blade.php => entry_approve_pay_to_yucho.blade.php} (100%) diff --git a/app/Codes/Email.php b/app/Codes/Email.php index 6c2ef9a..9bf6895 100644 --- a/app/Codes/Email.php +++ b/app/Codes/Email.php @@ -7,7 +7,8 @@ enum Email: string case TERMINATE_ORDER_APPROVE = '解約承認'; case VEHICLE_INFO_UPDATE_ORDER_APPROVE = '車両番号・防犯登録番号変更完了'; case USER_INFO_UPDATE_ORDER_APPROVE = '利用者情報変更完了'; - case ENTRY_APPROVE = '申込受付'; + case ENTRY_APPROVE_BANK_CHECK = '申込受付_バンクチェック'; + case ENTRY_APPROVE_YUCHO = '申込受付_ゆうちょ'; case ENTRY_PAYMENT_COMPLETE = '申込承認'; case CHANGE_PLAN_ORDER_APPROVE = 'プラン変更完了'; case COULD_NOT_PEY_NOTICE = '口座振替・未納者通知'; diff --git a/app/Email/Members/EntryApprovePayToBankCheck.php b/app/Email/Members/EntryApprovePayToBankCheck.php new file mode 100644 index 0000000..977a1b0 --- /dev/null +++ b/app/Email/Members/EntryApprovePayToBankCheck.php @@ -0,0 +1,111 @@ +setEmail($entry->email); + parent::__construct(null); + } + + public function getTemplateName(): string + { + return 'emails.members.entry_approve_pay_to_bank_check'; + } + + public function getSubject(): string + { + return "【利用確認事項】申込受付 月極定期駐車場ナビ"; + } + + /** + * 初月分の入金予定をセット + * + * @param PaymentPlan $plan + * @return void + */ + public function setFirstMonthPaymentPlan(PaymentPlan $plan) + { + $this->firstMonthPaymentPlan = $plan; + } + /** + * 日割り分の入金予定をセット + * + * @param PaymentPlan $plan + * @return void + */ + public function setPartitialPaymentPlan(PaymentPlan $plan) + { + $this->partitialPaymentPlan = $plan; + } + /** + * 保証金の入金予定をセット + * + * @param PaymentPlan $plan + * @return void + */ + public function setDepositPaymentPlan(PaymentPlan $plan) + { + $this->depositPaymentPlan = $plan; + } + + public function getMemberParams(): array + { + $entry = $this->entry; + + return [ + 'customer_name' => $entry->customerName ?? "-", + 'customer_name_kana' => $entry->customerNameKana ?? "-", + 'parking_name' => $entry->parkingName ?? "-", + 'type_name' => $this->plan->vehicleType, + 'season_ticket_select' => null, //##TODO + 'plan_name' => $entry->planName ?? "-", + 'vehicle_no' => $entry->vehicleNo ?? "-", + 'use_start_date' => $entry->useStartDate ? $entry->useStartDate->format('Y/m/d') : "-", + 'payment_method' => $entry->paymentMethod ?? "-", + 'amount' => number_format($entry->amount ?? 0), + 'payment_explain' => EntryMessageBuilder::getPaymentExplainStr( + $this->firstMonthPaymentPlan, + $this->partitialPaymentPlan, + $this->depositPaymentPlan, + ), + 'tax_explain' => EntryMessageBuilder::getTaxExplain($this->plan), + 'can_terminate_15' => in_array(Parking::ELEMENT_CAN_TERMINATE_DATE_15, $this->parking->canTerminateDate ?? []), + 'can_terminate_end_of_month' => in_array(Parking::ELEMENT_CAN_TERMINATE_DATE_END_OF_MONTH, $this->parking->canTerminateDate ?? []), + 'deposit_explain' => EntryMessageBuilder::getDepositExplain( + $this->depositPaymentPlan + ), + 'total_payment_amount' => number_format($this->totalPaymentAmount()), + ]; + } + + private function totalPaymentAmount() + { + $total = 0; + if ($this->firstMonthPaymentPlan) { + $total += $this->firstMonthPaymentPlan->paymentPlanAmount; + } + if ($this->partitialPaymentPlan) { + $total += $this->partitialPaymentPlan->paymentPlanAmount; + } + if ($this->depositPaymentPlan) { + $total += $this->depositPaymentPlan->paymentPlanAmount; + } + return $total; + } +} diff --git a/app/Email/Members/EntryApprove.php b/app/Email/Members/EntryApprovePayToYucho.php similarity index 97% rename from app/Email/Members/EntryApprove.php rename to app/Email/Members/EntryApprovePayToYucho.php index 645b020..f690856 100644 --- a/app/Email/Members/EntryApprove.php +++ b/app/Email/Members/EntryApprovePayToYucho.php @@ -7,7 +7,7 @@ use App\Kintone\Models\PaymentPlan; use App\Kintone\Models\SeasonTicketContractEntry; use App\Kintone\Models\SeasonTicketContractPlan; -class EntryApprove extends Members +class EntryApprovePayToYucho extends Members { private ?PaymentPlan $firstMonthPaymentPlan = null; @@ -25,7 +25,7 @@ class EntryApprove extends Members public function getTemplateName(): string { - return 'emails.members.entry_approve'; + return 'emails.members.entry_approve_pay_to_yucho'; } public function getSubject(): string diff --git a/app/Http/Controllers/Web/Email/EmailSendController.php b/app/Http/Controllers/Web/Email/EmailSendController.php index 7693f95..360d9be 100644 --- a/app/Http/Controllers/Web/Email/EmailSendController.php +++ b/app/Http/Controllers/Web/Email/EmailSendController.php @@ -7,6 +7,8 @@ use App\Email\BaseEmailer; use App\Email\Members\ChangePlanOrderApprove; use App\Email\Members\CouldNotPayNotice; use App\Email\Members\EntryApprove; +use App\Email\Members\EntryApprovePayToBankCheck; +use App\Email\Members\EntryApprovePayToYucho; use App\Email\Members\EntryPaymentComplete; use App\Email\Members\RegisterCreditcard; use App\Email\Members\TerminateOrderApprove; @@ -95,11 +97,26 @@ class EmailSendController extends FromKintoneController $this->setEmail(new UserInfoUpdateOrderApprove($application)); return; } - if ($emailId === Email::ENTRY_APPROVE) { + if ($emailId === Email::ENTRY_APPROVE_YUCHO) { $entry = SeasonTicketContractEntry::find($this->param->seasonTicketContractEntryRecordNo); $parking = $entry->getParking(); $plan = $entry->getPlan(); - $email = new EntryApprove($parking, $entry, $plan); + $email = new EntryApprovePayToYucho($parking, $entry, $plan); + $email->setFirstMonthPaymentPlan(PaymentPlan::find($entry->firstMonthPaymentPlanRecordNo)); + if ($entry->partitialPaymentPlanRecordNo) { + $email->setPartitialPaymentPlan(PaymentPlan::find($entry->partitialPaymentPlanRecordNo)); + } + if ($entry->depositPaymentPlanRecordNo) { + $email->setDepositPaymentPlan(PaymentPlan::find($entry->depositPaymentPlanRecordNo)); + } + $this->setEmail($email); + return; + } + if ($emailId === Email::ENTRY_APPROVE_BANK_CHECK) { + $entry = SeasonTicketContractEntry::find($this->param->seasonTicketContractEntryRecordNo); + $parking = $entry->getParking(); + $plan = $entry->getPlan(); + $email = new EntryApprovePayToBankCheck($parking, $entry, $plan); $email->setFirstMonthPaymentPlan(PaymentPlan::find($entry->firstMonthPaymentPlanRecordNo)); if ($entry->partitialPaymentPlanRecordNo) { $email->setPartitialPaymentPlan(PaymentPlan::find($entry->partitialPaymentPlanRecordNo)); diff --git a/app/Kintone/Models/SeasonTicketContractEntry.php b/app/Kintone/Models/SeasonTicketContractEntry.php index 8c040d9..8439155 100644 --- a/app/Kintone/Models/SeasonTicketContractEntry.php +++ b/app/Kintone/Models/SeasonTicketContractEntry.php @@ -21,12 +21,6 @@ use Illuminate\Support\Carbon; * @property string planName * @property ?string seasonTicketPlanName * @property ?int amount - * @property ?int firstAmount - * @property ?int hiwariMonth - * @property ?int hiwariAmount - * @property ?int targetMonth - * @property ?int targetAmount - * @property ?Carbon paymentLimitDate * @property ?int firstMonthPaymentPlanRecordNo * @property ?int partitialPaymentPlanRecordNo * @property ?int depositPaymentPlanRecordNo @@ -52,12 +46,6 @@ class SeasonTicketContractEntry extends KintoneModel const FIELD_PLAN_NAME = "ParkingNaviプラン"; const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン"; const FIELD_AMOUNT = "定期駐車料金"; - const FIELD_HIWARI_MONTH = "日割り分_月"; - const FIELD_HIWARI_AMOUNT = "日割り分_金額"; - const FIELD_TARGET_MONTH = "請求対象分_月"; - const FIELD_TARGET_AMOUNT = "請求対象分_金額"; - const FIELD_FIRST_AMOUNT = "初回振り込み合計額"; - const FIELD_PAYMENT_LIMIT_DATE = "振込期日"; const FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO = "初回入金予定_初月分入金予定"; const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定"; const FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO = "初回入金予定_保証金入金予定"; @@ -80,12 +68,6 @@ class SeasonTicketContractEntry extends KintoneModel self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, self::FIELD_AMOUNT => FieldType::NUMBER, - self::FIELD_HIWARI_MONTH => FieldType::NUMBER, - self::FIELD_HIWARI_AMOUNT => FieldType::NUMBER, - self::FIELD_TARGET_MONTH => FieldType::NUMBER, - self::FIELD_TARGET_AMOUNT => FieldType::NUMBER, - self::FIELD_FIRST_AMOUNT => FieldType::NUMBER, - self::FIELD_PAYMENT_LIMIT_DATE => FieldType::DATE, self::FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, self::FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, diff --git a/resources/views/emails/members/entry_approve_pay_to_bank_check.blade.php b/resources/views/emails/members/entry_approve_pay_to_bank_check.blade.php new file mode 100644 index 0000000..372517e --- /dev/null +++ b/resources/views/emails/members/entry_approve_pay_to_bank_check.blade.php @@ -0,0 +1,77 @@ +@extends('emails.layouts.member') + +@section('contents') +定期利用取扱事項を同意のうえ、定期利用申込みを頂き誠にありがとうございます。 +定期利用について、以下の内容にてお手続きいたしますのでご確認下さい。 + +------------------------------------------------------------------------------------- +■申込内容■ + +◆定期利用者 +お名前:{{ $customer_name }} +フリガナ:{{ $customer_name_kana }} + +◆駐車場 +{{ $parking_name }} + +◆種別 +{{ $type_name }} + +◆プラン +{{ $plan_name }} + +@if($season_ticket_select) +◆定期券の選択 +{{ $season_ticket_select }} + +@endif +@if($vehicle_no) +◆利用車両番号 +{{ $vehicle_no }} + +@endif +◆利用開始日(希望) +{{ $use_start_date }} + +◆◆お支払方法及び定期駐車料金 +お支払方法:{{ $payment_method }} +駐車料金(月額){{ $amount }}円 {{ $tax_explain }} +@if($payment_explain) +{{ $payment_explain }} +@endif +@if($deposit_explain) +{{ $deposit_explain }} +@endif + +お支払い合計金額 {{ $total_payment_amount }}円 + +銀行:ロボットペイメント +店名:四四八(ヨンヨンハチ) +店番:448 預金種目:普通預金 口座番号:4498331 +一般財団法人 京都市都市整備公社 +ザイ)キヨウトシトシセイビコウシヤ + +*ゆうちょ銀行の口座をお持ちの方はこちら +記号:14420 番号:44983311 + +■申込者名でお振込ください。(申込者名以外でお振込の場合は事前にご連絡ください。) +■郵送物がある場合、お振込確認後に普通郵便で発送いたします。(休日除き約5営業日の日数を要します。) +■次回以降のお支払いは【口座振替(自動引落)】となります。 +お振込確認後、ご登録の携帯番号あてにショートメッセージ(口座登録案内)を送りますので、お早めに振替口座のご登録をお願いします。 + +◆◆備考 +指定期日までに入金確認ができない場合、キャンセルとさせていただきます。(定期更新機お支払い以外) +万が一入金が遅れる又は期日間際の入金、入金後5営業日までに定期利用承認メール・ショートメッセージ(口座振替の場合登録案内)が届かない、 +その他、キャンセル含む利用内容変更やご不明な点等がございましたら、下記のお問い合わせフォームまたは連絡先までご連絡ください。 +(振込ご入金は順番での確認対応となりますため、お早めのご入金をお願いいたします。) + +◆◆解約の申し出◆◆ +解約の場合は、必ず解約月の10日までに、下記URL(解約申請フォーム)よりご申請ください。 +https://docs.google.com/forms/d/e/1FAIpQLSeFIuzmrhGGj2GjmkK9k7qpsCB46y7dRB0lYeWe09oBkmDepg/viewform +【URLが2行に分かれて表示されている場合は、URL全てをブラウザのアドレスバーに貼付けてお進み下さい。】 +※解約日は末日のみとなります。 +※解約申請が10日を過ぎると、翌月末でのご解約となります。 +※金融機関での振替締日の状況により、口座振替が実施される場合がございます。 +(一部駐輪場では取扱いが異なります。詳しくは解約申請フォームをご確認ください。) + +@endsection \ No newline at end of file diff --git a/resources/views/emails/members/entry_approve.blade.php b/resources/views/emails/members/entry_approve_pay_to_yucho.blade.php similarity index 100% rename from resources/views/emails/members/entry_approve.blade.php rename to resources/views/emails/members/entry_approve_pay_to_yucho.blade.php