You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
5.1KB

  1. <?php
  2. namespace App\Kintone\Models;
  3. use Illuminate\Support\Carbon;
  4. /**
  5. * アプリ名 定期申込・予約
  6. * @property string parkingName
  7. * @property string status
  8. * @property string customerName
  9. * @property string customerNameKana
  10. * @property string phoneNo
  11. * @property string address
  12. * @property string email
  13. * @property ?Carbon useStartDate
  14. * @property string vehicleNo
  15. * @property int carAmount
  16. * @property string paymentMethod
  17. * @property Carbon entryDatetime
  18. * @property string planName
  19. * @property ?string seasonTicketPlanName
  20. * @property ?int amount
  21. * @property ?int firstAmount
  22. * @property ?int hiwariMonth
  23. * @property ?int hiwariAmount
  24. * @property ?int targetMonth
  25. * @property ?int targetAmount
  26. * @property ?Carbon paymentLimitDate
  27. * @property ?int firstMonthPaymentPlanRecordNo
  28. * @property ?int partitialPaymentPlanRecordNo
  29. * @property ?int depositPaymentPlanRecordNo
  30. * @property ?string[] firstPaymentDone
  31. * @property ?int seasonTicketContractRecordNo
  32. */
  33. class SeasonTicketContractEntry extends KintoneModel
  34. {
  35. const CONFIG_KEY = "KINTONE_APP_SEASON_TICEKT_CONTRACT_ENTRY";
  36. const FIELD_PARKING_NAME = "駐車場";
  37. const FIELD_STATUS = "status";
  38. const FIELD_CUSTOMER_NAME = "氏名";
  39. const FIELD_CUSTOMER_NAME_KANA = "フリガナ";
  40. const FIELD_PHONE_NO = "電話番号";
  41. const FIELD_ADDRESS = "住所";
  42. const FIELD_EMAIL = "メールアドレス";
  43. const FIELD_USE_START_DATE = "利用開始希望日";
  44. const FIELD_VEHICLE_NO = "車両番号";
  45. const FIELD_CAR_AMOUNT = "台数";
  46. const FIELD_PAYMENT_METHOD = "支払方法";
  47. const FIELD_ENTRY_DATETIME = "受付日時";
  48. const FIELD_PLAN_NAME = "ParkingNaviプラン";
  49. const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン";
  50. const FIELD_AMOUNT = "定期駐車料金";
  51. const FIELD_HIWARI_MONTH = "日割り分_月";
  52. const FIELD_HIWARI_AMOUNT = "日割り分_金額";
  53. const FIELD_TARGET_MONTH = "請求対象分_月";
  54. const FIELD_TARGET_AMOUNT = "請求対象分_金額";
  55. const FIELD_FIRST_AMOUNT = "初回振り込み合計額";
  56. const FIELD_PAYMENT_LIMIT_DATE = "振込期日";
  57. const FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO = "初回入金予定_初月分入金予定";
  58. const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定";
  59. const FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO = "初回入金予定_保証金入金予定";
  60. const FIELD_FIRST_PAYMENT_DONE = "初回入金予定_初回入金充当状態";
  61. const FIELD_SEASON_TICKET_CONTRACT_RECORD_NO = "自動承認契約情報";
  62. protected const FIELDS = [
  63. ...parent::FIELDS,
  64. self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
  65. self::FIELD_STATUS => FieldType::DROP_DOWN,
  66. self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  67. self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
  68. self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT,
  69. self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT,
  70. self::FIELD_EMAIL => FieldType::SINGLE_LINE_TEXT,
  71. self::FIELD_USE_START_DATE => FieldType::DATE,
  72. self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT,
  73. self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN,
  74. self::FIELD_ENTRY_DATETIME => FieldType::DATETIME,
  75. self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  76. self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  77. self::FIELD_AMOUNT => FieldType::NUMBER,
  78. self::FIELD_HIWARI_MONTH => FieldType::NUMBER,
  79. self::FIELD_HIWARI_AMOUNT => FieldType::NUMBER,
  80. self::FIELD_TARGET_MONTH => FieldType::NUMBER,
  81. self::FIELD_TARGET_AMOUNT => FieldType::NUMBER,
  82. self::FIELD_FIRST_AMOUNT => FieldType::NUMBER,
  83. self::FIELD_PAYMENT_LIMIT_DATE => FieldType::DATE,
  84. self::FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  85. self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  86. self::FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  87. self::FIELD_FIRST_PAYMENT_DONE => FieldType::CHECK_BOX,
  88. self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::NUMBER,
  89. ];
  90. protected const FIELD_NAMES = [
  91. ...parent::FIELD_NAMES,
  92. self::FIELD_PARKING_NAME => 'parking_name',
  93. self::FIELD_CUSTOMER_NAME => 'customer_name',
  94. self::FIELD_PLAN_NAME => 'plan_name',
  95. self::FIELD_ENTRY_DATETIME => 'entry_datetime',
  96. self::FIELD_PHONE_NO => 'phone_no',
  97. self::FIELD_ADDRESS => 'address',
  98. self::FIELD_CAR_AMOUNT => 'car_amount',
  99. ];
  100. public function getParking(): Parking
  101. {
  102. return Parking::findByParkingName($this->parkingName);
  103. }
  104. public function getPlan(): ?SeasonTicketContractPlan
  105. {
  106. if (!$this->planName) {
  107. return null;
  108. }
  109. return SeasonTicketContractPlan::findByName($this->seasonTicketPlanName);
  110. }
  111. public function getSeasonTicketContract(): ?SeasonTicketContract
  112. {
  113. if (!$this->seasonTicketContractRecordNo) {
  114. return null;
  115. }
  116. return SeasonTicketContract::find($this->seasonTicketContractRecordNo);
  117. }
  118. }