|
- <?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;
- }
- }
|