| @@ -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 | <?php | ||||
| namespace App\Http\Controllers\Web\Customer; | |||||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||||
| use App\Http\Controllers\Web\WebController; | use App\Http\Controllers\Web\WebController; | ||||
| use App\Kintone\Models\Customer; | |||||
| use App\Kintone\Models\SeasonTicketContract; | |||||
| use App\Util\DateUtil; | use App\Util\DateUtil; | ||||
| use Illuminate\Http\JsonResponse; | use Illuminate\Http\JsonResponse; | ||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
| class UploadOtherLicenseImagesController extends WebController | class UploadOtherLicenseImagesController extends WebController | ||||
| { | { | ||||
| public function name(): string | public function name(): string | ||||
| { | { | ||||
| return "その他証明証画像アップロード"; | return "その他証明証画像アップロード"; | ||||
| @@ -21,8 +20,7 @@ class UploadOtherLicenseImagesController extends WebController | |||||
| return "その他証明証画像をアップロードする"; | return "その他証明証画像をアップロードする"; | ||||
| } | } | ||||
| public function __construct(protected UploadOtherLicenseImagesParam $param) | |||||
| public function __construct(protected UploadStudentLicenseImagesParam $param) | |||||
| { | { | ||||
| parent::__construct(); | parent::__construct(); | ||||
| $this->middleware('auth:sanctum'); | $this->middleware('auth:sanctum'); | ||||
| @@ -32,10 +30,8 @@ class UploadOtherLicenseImagesController extends WebController | |||||
| { | { | ||||
| $param = $this->param; | $param = $this->param; | ||||
| $customer = Customer::getSelf(); | |||||
| $access = Customer::getAccess(); | |||||
| $access = SeasonTicketContract::getAccess(); | |||||
| $seasonTicketContract = $access->find($param->seasonTicketContractRecordNo); | |||||
| $data = []; | $data = []; | ||||
| foreach ($param->images as $index => $file) { | 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(); | 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 | <?php | ||||
| namespace App\Http\Controllers\Web\Customer; | |||||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||||
| use App\Http\Controllers\Web\WebController; | use App\Http\Controllers\Web\WebController; | ||||
| use App\Kintone\Models\Customer; | |||||
| use App\Kintone\Models\SeasonTicketContract; | |||||
| use App\Util\DateUtil; | use App\Util\DateUtil; | ||||
| use Illuminate\Http\JsonResponse; | use Illuminate\Http\JsonResponse; | ||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
| @@ -32,10 +32,8 @@ class UploadStudentLicenseImagesController extends WebController | |||||
| { | { | ||||
| $param = $this->param; | $param = $this->param; | ||||
| $customer = Customer::getSelf(); | |||||
| $access = Customer::getAccess(); | |||||
| $access = SeasonTicketContract::getAccess(); | |||||
| $seasonTicketContract = $access->find($param->seasonTicketContractRecordNo); | |||||
| $data = []; | $data = []; | ||||
| foreach ($param->images as $index => $file) { | 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(); | 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_CUSTOMER_NAME_KANA = "顧客名カナ"; | ||||
| const FIELD_EMAIL = "メールアドレス"; | const FIELD_EMAIL = "メールアドレス"; | ||||
| const FIELD_PHONE_NUMBER = "電話番号"; | 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 = [ | protected const FIELDS = [ | ||||
| ...parent::FIELDS, | ...parent::FIELDS, | ||||
| @@ -28,18 +24,12 @@ class Customer extends KintoneModel | |||||
| self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT, | self::FIELD_CUSTOMER_NAME_KANA => FieldType::SINGLE_LINE_TEXT, | ||||
| self::FIELD_EMAIL => FieldType::LINK, | self::FIELD_EMAIL => FieldType::LINK, | ||||
| self::FIELD_PHONE_NUMBER => 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 = [ | protected const FIELD_NAMES = [ | ||||
| ...parent::FIELD_NAMES, | ...parent::FIELD_NAMES, | ||||
| self::FIELD_CUSTOMER_NAME => 'customer_name', | self::FIELD_CUSTOMER_NAME => 'customer_name', | ||||
| self::FIELD_EMAIL => 'email', | 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 | public static function getSelf(): static | ||||
| @@ -2,6 +2,8 @@ | |||||
| namespace App\Kintone\Models; | namespace App\Kintone\Models; | ||||
| use LogicException; | |||||
| /** | /** | ||||
| * アプリ名 車室情報管理 | * アプリ名 車室情報管理 | ||||
| */ | */ | ||||
| @@ -16,6 +18,11 @@ class SeasonTicketContract extends KintoneModel | |||||
| const FIELD_CONTRACT_END_DATE = "解約日"; | const FIELD_CONTRACT_END_DATE = "解約日"; | ||||
| const FIELD_CONTRACT_AMOUNT = "契約金額"; | 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 = [ | protected const FIELDS = [ | ||||
| ...parent::FIELDS, | ...parent::FIELDS, | ||||
| self::FIELD_CUSTOMER_CODE => FieldType::NUMBER, | self::FIELD_CUSTOMER_CODE => FieldType::NUMBER, | ||||
| @@ -24,6 +31,10 @@ class SeasonTicketContract extends KintoneModel | |||||
| self::FIELD_CONTRACT_START_DATE => FieldType::DATE, | self::FIELD_CONTRACT_START_DATE => FieldType::DATE, | ||||
| self::FIELD_CONTRACT_END_DATE => FieldType::DATE, | self::FIELD_CONTRACT_END_DATE => FieldType::DATE, | ||||
| self::FIELD_CONTRACT_AMOUNT => FieldType::NUMBER, | 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 = [ | protected const FIELD_NAMES = [ | ||||
| @@ -33,5 +44,18 @@ class SeasonTicketContract extends KintoneModel | |||||
| self::FIELD_CONTRACT_START_DATE => 'contract_start_date', | self::FIELD_CONTRACT_START_DATE => 'contract_start_date', | ||||
| self::FIELD_CONTRACT_END_DATE => 'contract_end_date', | self::FIELD_CONTRACT_END_DATE => 'contract_end_date', | ||||
| self::FIELD_CONTRACT_AMOUNT => 'contract_amount', | 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::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::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('/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', App\Http\Controllers\Web\FAQ\FAQsController::class); | ||||
| RouteHelper::get('/faq/genres', App\Http\Controllers\Web\FAQ\FAQGenresController::class); | RouteHelper::get('/faq/genres', App\Http\Controllers\Web\FAQ\FAQGenresController::class); | ||||
| RouteHelper::post('/ask', App\Http\Controllers\Web\FAQ\AskController::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/start', App\Http\Controllers\Web\Customer\ChangeEmailStartController::class); | ||||
| RouteHelper::post('/email/change/verify', App\Http\Controllers\Web\Customer\ChangeEmailVerifyController::class); | RouteHelper::post('/email/change/verify', App\Http\Controllers\Web\Customer\ChangeEmailVerifyController::class); | ||||