| @@ -7,7 +7,8 @@ enum Email: string | |||||
| case TERMINATE_ORDER_APPROVE = '解約承認'; | case TERMINATE_ORDER_APPROVE = '解約承認'; | ||||
| case VEHICLE_INFO_UPDATE_ORDER_APPROVE = '車両番号・防犯登録番号変更完了'; | case VEHICLE_INFO_UPDATE_ORDER_APPROVE = '車両番号・防犯登録番号変更完了'; | ||||
| case USER_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 ENTRY_PAYMENT_COMPLETE = '申込承認'; | ||||
| case CHANGE_PLAN_ORDER_APPROVE = 'プラン変更完了'; | case CHANGE_PLAN_ORDER_APPROVE = 'プラン変更完了'; | ||||
| case COULD_NOT_PEY_NOTICE = '口座振替・未納者通知'; | 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\SeasonTicketContractEntry; | ||||
| use App\Kintone\Models\SeasonTicketContractPlan; | use App\Kintone\Models\SeasonTicketContractPlan; | ||||
| class EntryApprove extends Members | |||||
| class EntryApprovePayToYucho extends Members | |||||
| { | { | ||||
| private ?PaymentPlan $firstMonthPaymentPlan = null; | private ?PaymentPlan $firstMonthPaymentPlan = null; | ||||
| @@ -25,7 +25,7 @@ class EntryApprove extends Members | |||||
| public function getTemplateName(): string | public function getTemplateName(): string | ||||
| { | { | ||||
| return 'emails.members.entry_approve'; | |||||
| return 'emails.members.entry_approve_pay_to_yucho'; | |||||
| } | } | ||||
| public function getSubject(): string | public function getSubject(): string | ||||
| @@ -7,6 +7,8 @@ use App\Email\BaseEmailer; | |||||
| use App\Email\Members\ChangePlanOrderApprove; | use App\Email\Members\ChangePlanOrderApprove; | ||||
| use App\Email\Members\CouldNotPayNotice; | use App\Email\Members\CouldNotPayNotice; | ||||
| use App\Email\Members\EntryApprove; | use App\Email\Members\EntryApprove; | ||||
| use App\Email\Members\EntryApprovePayToBankCheck; | |||||
| use App\Email\Members\EntryApprovePayToYucho; | |||||
| use App\Email\Members\EntryPaymentComplete; | use App\Email\Members\EntryPaymentComplete; | ||||
| use App\Email\Members\RegisterCreditcard; | use App\Email\Members\RegisterCreditcard; | ||||
| use App\Email\Members\TerminateOrderApprove; | use App\Email\Members\TerminateOrderApprove; | ||||
| @@ -95,11 +97,26 @@ class EmailSendController extends FromKintoneController | |||||
| $this->setEmail(new UserInfoUpdateOrderApprove($application)); | $this->setEmail(new UserInfoUpdateOrderApprove($application)); | ||||
| return; | return; | ||||
| } | } | ||||
| if ($emailId === Email::ENTRY_APPROVE) { | |||||
| if ($emailId === Email::ENTRY_APPROVE_YUCHO) { | |||||
| $entry = SeasonTicketContractEntry::find($this->param->seasonTicketContractEntryRecordNo); | $entry = SeasonTicketContractEntry::find($this->param->seasonTicketContractEntryRecordNo); | ||||
| $parking = $entry->getParking(); | $parking = $entry->getParking(); | ||||
| $plan = $entry->getPlan(); | $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)); | $email->setFirstMonthPaymentPlan(PaymentPlan::find($entry->firstMonthPaymentPlanRecordNo)); | ||||
| if ($entry->partitialPaymentPlanRecordNo) { | if ($entry->partitialPaymentPlanRecordNo) { | ||||
| $email->setPartitialPaymentPlan(PaymentPlan::find($entry->partitialPaymentPlanRecordNo)); | $email->setPartitialPaymentPlan(PaymentPlan::find($entry->partitialPaymentPlanRecordNo)); | ||||
| @@ -21,12 +21,6 @@ use Illuminate\Support\Carbon; | |||||
| * @property string planName | * @property string planName | ||||
| * @property ?string seasonTicketPlanName | * @property ?string seasonTicketPlanName | ||||
| * @property ?int amount | * @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 firstMonthPaymentPlanRecordNo | ||||
| * @property ?int partitialPaymentPlanRecordNo | * @property ?int partitialPaymentPlanRecordNo | ||||
| * @property ?int depositPaymentPlanRecordNo | * @property ?int depositPaymentPlanRecordNo | ||||
| @@ -52,12 +46,6 @@ class SeasonTicketContractEntry extends KintoneModel | |||||
| const FIELD_PLAN_NAME = "ParkingNaviプラン"; | const FIELD_PLAN_NAME = "ParkingNaviプラン"; | ||||
| const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン"; | const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン"; | ||||
| const FIELD_AMOUNT = "定期駐車料金"; | 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_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO = "初回入金予定_初月分入金予定"; | ||||
| const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定"; | const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定"; | ||||
| const FIELD_DEPOSIT_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_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, | ||||
| self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, | self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT, | ||||
| self::FIELD_AMOUNT => FieldType::NUMBER, | 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_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, | ||||
| self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, | self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER, | ||||
| self::FIELD_DEPOSIT_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 | |||||