| @@ -1,17 +0,0 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\Customer; | |||
| use App\Http\Controllers\Web\BaseParam; | |||
| use Illuminate\Http\UploadedFile; | |||
| /** | |||
| * @property UploadedFile[] $images | |||
| */ | |||
| class UploadOtherLicenseImagesParam extends BaseParam | |||
| { | |||
| public function rules(): array | |||
| { | |||
| return $this->images('images'); | |||
| } | |||
| } | |||
| @@ -1,17 +0,0 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\Customer; | |||
| use App\Http\Controllers\Web\BaseParam; | |||
| use Illuminate\Http\UploadedFile; | |||
| /** | |||
| * @property UploadedFile[] $images | |||
| */ | |||
| class UploadStudentLicenseImagesParam extends BaseParam | |||
| { | |||
| public function rules(): array | |||
| { | |||
| return $this->images('images'); | |||
| } | |||
| } | |||
| @@ -1,16 +1,15 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\Customer; | |||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| use App\Http\Controllers\Web\WebController; | |||
| use App\Kintone\Models\Customer; | |||
| use App\Kintone\Models\SeasonTicketContract; | |||
| use App\Util\DateUtil; | |||
| use Illuminate\Http\JsonResponse; | |||
| use Illuminate\Http\Request; | |||
| class UploadOtherLicenseImagesController extends WebController | |||
| { | |||
| public function name(): string | |||
| { | |||
| return "その他証明証画像アップロード"; | |||
| @@ -21,8 +20,7 @@ class UploadOtherLicenseImagesController extends WebController | |||
| return "その他証明証画像をアップロードする"; | |||
| } | |||
| public function __construct(protected UploadOtherLicenseImagesParam $param) | |||
| public function __construct(protected UploadStudentLicenseImagesParam $param) | |||
| { | |||
| parent::__construct(); | |||
| $this->middleware('auth:sanctum'); | |||
| @@ -32,10 +30,8 @@ class UploadOtherLicenseImagesController extends WebController | |||
| { | |||
| $param = $this->param; | |||
| $customer = Customer::getSelf(); | |||
| $access = Customer::getAccess(); | |||
| $access = SeasonTicketContract::getAccess(); | |||
| $seasonTicketContract = $access->find($param->seasonTicketContractRecordNo); | |||
| $data = []; | |||
| foreach ($param->images as $index => $file) { | |||
| @@ -46,10 +42,10 @@ class UploadOtherLicenseImagesController extends WebController | |||
| ]; | |||
| } | |||
| $customer->set(Customer::FIELD_OTHER_LICENSE_IMAGES, $data); | |||
| $customer->set(Customer::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME, DateUtil::now()); | |||
| $seasonTicketContract->set(SeasonTicketContract::FIELD_OTHER_LICENSE_IMAGES, $data); | |||
| $seasonTicketContract->set(SeasonTicketContract::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME, DateUtil::now()); | |||
| $access->update($customer); | |||
| $access->update($seasonTicketContract); | |||
| return $this->successResponse(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,21 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| use App\Http\Controllers\Web\BaseParam; | |||
| use Illuminate\Http\UploadedFile; | |||
| /** | |||
| * @property UploadedFile[] $images | |||
| * @property string $seasonTicketContractRecordNo | |||
| */ | |||
| class UploadOtherLicenseImagesParam extends BaseParam | |||
| { | |||
| public function rules(): array | |||
| { | |||
| return [ | |||
| 'season_ticket_contract_record_no' => $this->str(), | |||
| ...$this->images('images') | |||
| ]; | |||
| } | |||
| } | |||
| @@ -1,9 +1,9 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\Customer; | |||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| use App\Http\Controllers\Web\WebController; | |||
| use App\Kintone\Models\Customer; | |||
| use App\Kintone\Models\SeasonTicketContract; | |||
| use App\Util\DateUtil; | |||
| use Illuminate\Http\JsonResponse; | |||
| use Illuminate\Http\Request; | |||
| @@ -32,10 +32,8 @@ class UploadStudentLicenseImagesController extends WebController | |||
| { | |||
| $param = $this->param; | |||
| $customer = Customer::getSelf(); | |||
| $access = Customer::getAccess(); | |||
| $access = SeasonTicketContract::getAccess(); | |||
| $seasonTicketContract = $access->find($param->seasonTicketContractRecordNo); | |||
| $data = []; | |||
| foreach ($param->images as $index => $file) { | |||
| @@ -46,10 +44,10 @@ class UploadStudentLicenseImagesController extends WebController | |||
| ]; | |||
| } | |||
| $customer->set(Customer::FIELD_STUDENT_LICENSE_IMAGES, $data); | |||
| $customer->set(Customer::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME, DateUtil::now()); | |||
| $seasonTicketContract->set(SeasonTicketContract::FIELD_STUDENT_LICENSE_IMAGES, $data); | |||
| $seasonTicketContract->set(SeasonTicketContract::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME, DateUtil::now()); | |||
| $access->update($customer); | |||
| $access->update($seasonTicketContract); | |||
| return $this->successResponse(); | |||
| } | |||
| } | |||
| @@ -0,0 +1,21 @@ | |||
| <?php | |||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| use App\Http\Controllers\Web\BaseParam; | |||
| use Illuminate\Http\UploadedFile; | |||
| /** | |||
| * @property UploadedFile[] $images | |||
| * @property string $seasonTicketContractRecordNo | |||
| */ | |||
| class UploadStudentLicenseImagesParam extends BaseParam | |||
| { | |||
| public function rules(): array | |||
| { | |||
| return [ | |||
| 'season_ticket_contract_record_no' => $this->str(), | |||
| ...$this->images('images') | |||
| ]; | |||
| } | |||
| } | |||
| @@ -16,10 +16,6 @@ class Customer extends KintoneModel | |||
| const FIELD_CUSTOMER_NAME_KANA = "顧客名カナ"; | |||
| const FIELD_EMAIL = "メールアドレス"; | |||
| const FIELD_PHONE_NUMBER = "電話番号"; | |||
| const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像"; | |||
| const FIELD_OTHER_LICENSE_IMAGES = "その他証明証画像"; | |||
| const FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME = "学生証画像更新日時"; | |||
| const FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME = "その他証明証画像更新日時"; | |||
| protected const FIELDS = [ | |||
| ...parent::FIELDS, | |||
| @@ -28,18 +24,12 @@ class Customer extends KintoneModel | |||
| self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT, | |||
| self::FIELD_EMAIL => FieldType::LINK, | |||
| self::FIELD_PHONE_NUMBER => FieldType::LINK, | |||
| self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE, | |||
| self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE, | |||
| self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, | |||
| self::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, | |||
| ]; | |||
| protected const FIELD_NAMES = [ | |||
| ...parent::FIELD_NAMES, | |||
| self::FIELD_CUSTOMER_NAME => 'customer_name', | |||
| self::FIELD_EMAIL => 'email', | |||
| self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => 'student_license_images_upload_datetime', | |||
| self::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME => 'other_license_images_upload_datetime', | |||
| ]; | |||
| public static function getSelf(): static | |||
| @@ -2,6 +2,8 @@ | |||
| namespace App\Kintone\Models; | |||
| use LogicException; | |||
| /** | |||
| * アプリ名 車室情報管理 | |||
| */ | |||
| @@ -16,6 +18,11 @@ class SeasonTicketContract extends KintoneModel | |||
| const FIELD_CONTRACT_END_DATE = "解約日"; | |||
| const FIELD_CONTRACT_AMOUNT = "契約金額"; | |||
| const FIELD_STUDENT_LICENSE_IMAGES = "学生証画像"; | |||
| const FIELD_OTHER_LICENSE_IMAGES = "障がい者手帳画像"; | |||
| const FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME = "学生証画像更新日時"; | |||
| const FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME = "障がい者手帳画像更新日時"; | |||
| protected const FIELDS = [ | |||
| ...parent::FIELDS, | |||
| self::FIELD_CUSTOMER_CODE => FieldType::NUMBER, | |||
| @@ -24,6 +31,10 @@ class SeasonTicketContract extends KintoneModel | |||
| self::FIELD_CONTRACT_START_DATE => FieldType::DATE, | |||
| self::FIELD_CONTRACT_END_DATE => FieldType::DATE, | |||
| self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER, | |||
| self::FIELD_STUDENT_LICENSE_IMAGES => FieldType::FILE, | |||
| self::FIELD_OTHER_LICENSE_IMAGES => FieldType::FILE, | |||
| self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, | |||
| self::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME => FieldType::DATETIME, | |||
| ]; | |||
| protected const FIELD_NAMES = [ | |||
| @@ -33,5 +44,18 @@ class SeasonTicketContract extends KintoneModel | |||
| self::FIELD_CONTRACT_START_DATE => 'contract_start_date', | |||
| self::FIELD_CONTRACT_END_DATE => 'contract_end_date', | |||
| self::FIELD_CONTRACT_AMOUNT => 'contract_amount', | |||
| self::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME => 'student_license_images_upload_datetime', | |||
| self::FIELD_OTHER_LICENSE_IMAGES_UPLOAD_DATETIME => 'other_license_images_upload_datetime', | |||
| ]; | |||
| public function parkingRoom() | |||
| { | |||
| $key = $this->getStr(self::FIELD_SEASON_TICKET_SEQ_NO); | |||
| if (!$key) { | |||
| throw new LogicException("モデル初期化不正"); | |||
| } | |||
| return ParkingRoom::getAccess()->first( | |||
| ParkingRoom::getQuery()->where(ParkingRoom::FIELD_SEASON_TICKET_CONTRACT_RECORD_NO, $key) | |||
| ); | |||
| } | |||
| } | |||
| @@ -25,12 +25,12 @@ RouteHelper::post('/season-ticket-contract/parking-certificate-order', App\Http\ | |||
| RouteHelper::post('/season-ticket-contract/termination-order', App\Http\Controllers\Web\SeasonTicketContract\TerminationOrderController::class); | |||
| RouteHelper::get('/season-ticket-contract/termination-order/options', App\Http\Controllers\Web\SeasonTicketContract\TerminationOrderOptionsController::class); | |||
| RouteHelper::post('/season-ticket-contract/update-vehicle-info-order', App\Http\Controllers\Web\SeasonTicketContract\UpdateVehicleInfoOrderController::class); | |||
| RouteHelper::post('/upload/student-license-images', App\Http\Controllers\Web\SeasonTicketContract\UploadStudentLicenseImagesController::class); | |||
| RouteHelper::post('/upload/other-license-images', App\Http\Controllers\Web\SeasonTicketContract\UploadOtherLicenseImagesController::class); | |||
| RouteHelper::get('/faq', App\Http\Controllers\Web\FAQ\FAQsController::class); | |||
| RouteHelper::get('/faq/genres', App\Http\Controllers\Web\FAQ\FAQGenresController::class); | |||
| RouteHelper::post('/ask', App\Http\Controllers\Web\FAQ\AskController::class); | |||
| RouteHelper::post('/upload/student-license-images', App\Http\Controllers\Web\Customer\UploadStudentLicenseImagesController::class); | |||
| RouteHelper::post('/upload/other-license-images', App\Http\Controllers\Web\Customer\UploadOtherLicenseImagesController::class); | |||
| RouteHelper::post('/email/change/start', App\Http\Controllers\Web\Customer\ChangeEmailStartController::class); | |||
| RouteHelper::post('/email/change/verify', App\Http\Controllers\Web\Customer\ChangeEmailVerifyController::class); | |||