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.

111 lines
4.3KB

  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 firstMonthPaymentPlanRecordNo
  22. * @property ?int partitialPaymentPlanRecordNo
  23. * @property ?int depositPaymentPlanRecordNo
  24. * @property ?string[] firstPaymentDone
  25. * @property ?int seasonTicketContractRecordNo
  26. */
  27. class SeasonTicketContractEntry extends KintoneModel
  28. {
  29. const CONFIG_KEY = "KINTONE_APP_SEASON_TICEKT_CONTRACT_ENTRY";
  30. const FIELD_PARKING_NAME = "駐車場";
  31. const FIELD_STATUS = "status";
  32. const FIELD_CUSTOMER_NAME = "氏名";
  33. const FIELD_CUSTOMER_NAME_KANA = "フリガナ";
  34. const FIELD_PHONE_NO = "電話番号";
  35. const FIELD_ADDRESS = "住所";
  36. const FIELD_EMAIL = "メールアドレス";
  37. const FIELD_USE_START_DATE = "利用開始希望日";
  38. const FIELD_VEHICLE_NO = "車両番号";
  39. const FIELD_CAR_AMOUNT = "台数";
  40. const FIELD_PAYMENT_METHOD = "支払方法";
  41. const FIELD_ENTRY_DATETIME = "受付日時";
  42. const FIELD_PLAN_NAME = "ParkingNaviプラン";
  43. const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン";
  44. const FIELD_AMOUNT = "定期駐車料金";
  45. const FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO = "初回入金予定_初月分入金予定";
  46. const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定";
  47. const FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO = "初回入金予定_保証金入金予定";
  48. const FIELD_FIRST_PAYMENT_DONE = "初回入金予定_初回入金充当状態";
  49. const FIELD_SEASON_TICKET_CONTRACT_RECORD_NO = "自動承認契約情報";
  50. protected const FIELDS = [
  51. ...parent::FIELDS,
  52. self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
  53. self::FIELD_STATUS => FieldType::DROP_DOWN,
  54. self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  55. self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
  56. self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT,
  57. self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT,
  58. self::FIELD_EMAIL => FieldType::SINGLE_LINE_TEXT,
  59. self::FIELD_USE_START_DATE => FieldType::DATE,
  60. self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT,
  61. self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN,
  62. self::FIELD_ENTRY_DATETIME => FieldType::DATETIME,
  63. self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  64. self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  65. self::FIELD_AMOUNT => FieldType::NUMBER,
  66. self::FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  67. self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  68. self::FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  69. self::FIELD_FIRST_PAYMENT_DONE => FieldType::CHECK_BOX,
  70. self::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO => FieldType::NUMBER,
  71. ];
  72. protected const FIELD_NAMES = [
  73. ...parent::FIELD_NAMES,
  74. self::FIELD_PARKING_NAME => 'parking_name',
  75. self::FIELD_CUSTOMER_NAME => 'customer_name',
  76. self::FIELD_PLAN_NAME => 'plan_name',
  77. self::FIELD_ENTRY_DATETIME => 'entry_datetime',
  78. self::FIELD_PHONE_NO => 'phone_no',
  79. self::FIELD_ADDRESS => 'address',
  80. self::FIELD_CAR_AMOUNT => 'car_amount',
  81. ];
  82. public function getParking(): Parking
  83. {
  84. return Parking::findByParkingName($this->parkingName);
  85. }
  86. public function getPlan(): ?SeasonTicketContractPlan
  87. {
  88. if (!$this->planName) {
  89. return null;
  90. }
  91. return SeasonTicketContractPlan::findByName($this->seasonTicketPlanName);
  92. }
  93. public function getSeasonTicketContract(): ?SeasonTicketContract
  94. {
  95. if (!$this->seasonTicketContractRecordNo) {
  96. return null;
  97. }
  98. return SeasonTicketContract::find($this->seasonTicketContractRecordNo);
  99. }
  100. }