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.

82 satır
2.8KB

  1. <?php
  2. namespace App\Kintone\Models;
  3. use Illuminate\Support\Facades\Auth;
  4. /**
  5. * アプリ名 顧客マスタ
  6. * @property int customerCode
  7. * @property string customerName
  8. * @property string customerNameKana
  9. * @property string email
  10. * @property string phoneNumber
  11. * @property string zipCode
  12. * @property string address
  13. * @property string bankBranchId
  14. * @property ?Carbon bankAccountRegisterRemaindDatetime
  15. * @property ?int icSeasonTicektUserId
  16. */
  17. class Customer extends KintoneModel
  18. {
  19. const CONFIG_KEY = "KINTONE_APP_CUSTOMER";
  20. const FIELD_CUSTOMER_CODE = "CustomerCode";
  21. const FIELD_CUSTOMER_NAME = "CustomerName";
  22. const FIELD_CUSTOMER_NAME_KANA = "顧客名カナ";
  23. const FIELD_EMAIL = "メールアドレス";
  24. const FIELD_PHONE_NUMBER = "電話番号";
  25. const FIELD_ZIP_CODE = "契約者_郵便番号";
  26. const FIELD_ADDRESS = "住所";
  27. const FIELD_BANK_BRANCH_ID = "ChargedBankBranchCode";
  28. const FIELD_BANK_ACCOUNT_REGISTER_REMAIND_DATETIME = "口座登録催促予定日時";
  29. const FIELD_IC_SEASON_TICEKT_USER_ID = "IC定期関連情報_ユーザーID";
  30. protected const FIELDS = [
  31. ...parent::FIELDS,
  32. self::FIELD_CUSTOMER_CODE => FieldType::NUMBER,
  33. self::FIELD_CUSTOMER_NAME => FieldType::SINGLE_LINE_TEXT,
  34. self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT,
  35. self::FIELD_EMAIL => FieldType::LINK,
  36. self::FIELD_PHONE_NUMBER => FieldType::LINK,
  37. self::FIELD_ZIP_CODE => FieldType::SINGLE_LINE_TEXT,
  38. self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT,
  39. self::FIELD_BANK_BRANCH_ID => FieldType::SINGLE_LINE_TEXT,
  40. self::FIELD_BANK_ACCOUNT_REGISTER_REMAIND_DATETIME => FieldType::DATETIME,
  41. self::FIELD_IC_SEASON_TICEKT_USER_ID => FieldType::NUMBER,
  42. ];
  43. protected const FIELD_NAMES = [
  44. ...parent::FIELD_NAMES,
  45. self::FIELD_CUSTOMER_CODE => 'customer_code',
  46. self::FIELD_CUSTOMER_NAME => 'customer_name',
  47. self::FIELD_CUSTOMER_NAME_KANA => 'customer_name_kana',
  48. self::FIELD_EMAIL => 'email',
  49. self::FIELD_ZIP_CODE => 'zip_code',
  50. self::FIELD_ADDRESS => 'address',
  51. self::FIELD_PHONE_NUMBER => 'phone_no',
  52. ];
  53. public static function getSelf(): static
  54. {
  55. return static::getAccess()->find(Auth::user()->kintone_id);
  56. }
  57. public static function findByCustomerCode(string $customerCode)
  58. {
  59. return static::getAccess()->first(static::getQuery()->where(self::FIELD_CUSTOMER_CODE, $customerCode));
  60. }
  61. protected function toArrayCustom(): array
  62. {
  63. return [
  64. 'customer_name_kana_hankaku' => mb_convert_kana($this->customerNameKana, "sk"),
  65. ];
  66. }
  67. public function isHTICWebUser(): bool
  68. {
  69. return !!$this->icSeasonTicektUserId;
  70. }
  71. }