Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

115 lines
4.5KB

  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. */
  31. class SeasonTicketContractEntry extends KintoneModel
  32. {
  33. const CONFIG_KEY = "KINTONE_APP_SEASON_TICEKT_CONTRACT_ENTRY";
  34. const FIELD_PARKING_NAME = "駐車場";
  35. const FIELD_STATUS = "status";
  36. const FIELD_CUSTOMER_NAME = "氏名";
  37. const FIELD_CUSTOMER_NAME_KANA = "フリガナ";
  38. const FIELD_PHONE_NO = "電話番号";
  39. const FIELD_ADDRESS = "住所";
  40. const FIELD_EMAIL = "メールアドレス";
  41. const FIELD_USE_START_DATE = "利用開始希望日";
  42. const FIELD_VEHICLE_NO = "車両番号";
  43. const FIELD_CAR_AMOUNT = "台数";
  44. const FIELD_PAYMENT_METHOD = "支払方法";
  45. const FIELD_ENTRY_DATETIME = "受付日時";
  46. const FIELD_PLAN_NAME = "ParkingNaviプラン";
  47. const FIELD_SEASON_TICKET_PLAN_NAME = "定期駐車場プラン";
  48. const FIELD_AMOUNT = "定期駐車料金";
  49. const FIELD_HIWARI_MONTH = "日割り分_月";
  50. const FIELD_HIWARI_AMOUNT = "日割り分_金額";
  51. const FIELD_TARGET_MONTH = "請求対象分_月";
  52. const FIELD_TARGET_AMOUNT = "請求対象分_金額";
  53. const FIELD_FIRST_AMOUNT = "初回振り込み合計額";
  54. const FIELD_PAYMENT_LIMIT_DATE = "振込期日";
  55. const FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO = "初回入金予定_初月分入金予定";
  56. const FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO = "初回入金予定_日割り分入金予定";
  57. const FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO = "初回入金予定_保証金入金予定";
  58. protected const FIELDS = [
  59. ...parent::FIELDS,
  60. self::FIELD_PARKING_NAME => FieldType::SINGLE_LINE_TEXT,
  61. self::FIELD_STATUS => FieldType::DROP_DOWN,
  62. self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  63. self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
  64. self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT,
  65. self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT,
  66. self::FIELD_EMAIL => FieldType::SINGLE_LINE_TEXT,
  67. self::FIELD_USE_START_DATE => FieldType::DATE,
  68. self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT,
  69. self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN,
  70. self::FIELD_ENTRY_DATETIME => FieldType::DATETIME,
  71. self::FIELD_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  72. self::FIELD_SEASON_TICKET_PLAN_NAME => FieldType::SINGLE_LINE_TEXT,
  73. self::FIELD_AMOUNT => FieldType::NUMBER,
  74. self::FIELD_HIWARI_MONTH => FieldType::NUMBER,
  75. self::FIELD_HIWARI_AMOUNT => FieldType::NUMBER,
  76. self::FIELD_TARGET_MONTH => FieldType::NUMBER,
  77. self::FIELD_TARGET_AMOUNT => FieldType::NUMBER,
  78. self::FIELD_FIRST_AMOUNT => FieldType::NUMBER,
  79. self::FIELD_PAYMENT_LIMIT_DATE => FieldType::DATE,
  80. self::FIELD_FIRST_MONTH_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  81. self::FIELD_PARTITIAL_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  82. self::FIELD_DEPOSIT_PAYMENT_PLAN_RECORD_NO => FieldType::NUMBER,
  83. ];
  84. protected const FIELD_NAMES = [
  85. ...parent::FIELD_NAMES,
  86. self::FIELD_PARKING_NAME => 'parking_name',
  87. self::FIELD_CUSTOMER_NAME => 'customer_name',
  88. self::FIELD_PLAN_NAME => 'plan_name',
  89. self::FIELD_ENTRY_DATETIME => 'entry_datetime',
  90. self::FIELD_PHONE_NO => 'phone_no',
  91. self::FIELD_ADDRESS => 'address',
  92. self::FIELD_CAR_AMOUNT => 'car_amount',
  93. ];
  94. public function getParking(): Parking
  95. {
  96. return Parking::findByParkingName($this->parkingName);
  97. }
  98. public function getPlan(): ?SeasonTicketContractPlan
  99. {
  100. if (!$this->planName) {
  101. return null;
  102. }
  103. return SeasonTicketContractPlan::findByName($this->seasonTicketPlanName);
  104. }
  105. }