| @@ -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 = '口座振替・未納者通知'; | |||
| @@ -0,0 +1,111 @@ | |||
| <?php | |||
| namespace App\Email\Members; | |||
| use App\Kintone\Models\Parking; | |||
| use App\Kintone\Models\PaymentPlan; | |||
| use App\Kintone\Models\SeasonTicketContractEntry; | |||
| use App\Kintone\Models\SeasonTicketContractPlan; | |||
| class EntryApprovePayToBankCheck extends Members | |||
| { | |||
| private ?PaymentPlan $firstMonthPaymentPlan = null; | |||
| private ?PaymentPlan $partitialPaymentPlan = null; | |||
| private ?PaymentPlan $depositPaymentPlan = null; | |||
| public function __construct( | |||
| private Parking $parking, | |||
| private SeasonTicketContractEntry $entry, | |||
| private SeasonTicketContractPlan $plan, | |||
| ) { | |||
| $this->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; | |||
| } | |||
| } | |||
| @@ -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 | |||
| @@ -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)); | |||
| @@ -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, | |||
| @@ -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 | |||