| @@ -2,13 +2,14 @@ | |||||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | namespace App\Http\Controllers\Web\SeasonTicketContract; | ||||
| use App\Email\Members\ParkingCertificateOrderNotice; | |||||
| use App\Http\Controllers\Web\WebController; | use App\Http\Controllers\Web\WebController; | ||||
| use App\Kintone\Models\GeneralApplication; | |||||
| use App\Logic\EmailManager; | |||||
| use App\Kintone\Models\Customer; | |||||
| use App\Kintone\Models\Parking; | |||||
| use App\Kintone\Models\ParkingCertificateApplication; | |||||
| use App\Kintone\Models\SeasonTicketContract; | |||||
| use App\Logic\GeneralApplicationManager; | |||||
| use Illuminate\Http\JsonResponse; | use Illuminate\Http\JsonResponse; | ||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
| use Illuminate\Support\Facades\Auth; | |||||
| class ParkingCertificateOrderController extends WebController | class ParkingCertificateOrderController extends WebController | ||||
| { | { | ||||
| @@ -32,12 +33,35 @@ class ParkingCertificateOrderController extends WebController | |||||
| protected function run(Request $request): JsonResponse | protected function run(Request $request): JsonResponse | ||||
| { | { | ||||
| $user = Auth::user(); | |||||
| $param = $this->param; | |||||
| $mailer = (new ParkingCertificateOrderNotice()) | |||||
| ->setUser($user); | |||||
| (new EmailManager($mailer))->confirm(); | |||||
| $parking = Parking::findByParkingName($param->parkingName); | |||||
| $customer = Customer::getSelf(); | |||||
| $seasonTicketContract = SeasonTicketContract::find($param->seasonTicketContractRecordNo); | |||||
| $application = new ParkingCertificateApplication(); | |||||
| $manager = new GeneralApplicationManager($application); | |||||
| $manager | |||||
| ->setCustomer($customer) | |||||
| ->setSeasonTicketContract($seasonTicketContract) | |||||
| ->setParking($parking) | |||||
| ->makeApplication(); | |||||
| $p = $param->toArray(); | |||||
| $application->paymentMethod = $param->payingMethod; | |||||
| $application->name = $param->name; | |||||
| $application->zipCode = $param->zipCode; | |||||
| $application->address = $param->address; | |||||
| $application->phoneNo = $param->phoneNo; | |||||
| $application->vehicleNo = $param->vehicleNo; | |||||
| $application->chassisNo = $param->chassisNo; | |||||
| $application->mailName = $param->mailName; | |||||
| $application->mailZipCode = $param->mailZipCode; | |||||
| $application->mailAddress = $param->mailAddress; | |||||
| $application->memo = $param->memo; | |||||
| $application->save(); | |||||
| return $this->successResponse(); | return $this->successResponse(); | ||||
| } | } | ||||
| @@ -5,7 +5,19 @@ namespace App\Http\Controllers\Web\SeasonTicketContract; | |||||
| use App\Http\Controllers\Web\BaseParam; | use App\Http\Controllers\Web\BaseParam; | ||||
| /** | /** | ||||
| * @property string $seasonTicketContractRecordNo | |||||
| * @property string seasonTicketContractRecordNo | |||||
| * @property string parkingName | |||||
| * @property string zipCode | |||||
| * @property string name | |||||
| * @property string address | |||||
| * @property string phoneNo | |||||
| * @property string vehicleNo | |||||
| * @property ?string chassisNo | |||||
| * @property string payingMethod | |||||
| * @property string mailName | |||||
| * @property string mailZipCode | |||||
| * @property string mailAddress | |||||
| * @property ?string memo | |||||
| */ | */ | ||||
| class ParkingCertificateOrderParams extends BaseParam | class ParkingCertificateOrderParams extends BaseParam | ||||
| { | { | ||||
| @@ -13,6 +25,18 @@ class ParkingCertificateOrderParams extends BaseParam | |||||
| { | { | ||||
| return [ | return [ | ||||
| 'season_ticket_contract_record_no' => $this->str(), | 'season_ticket_contract_record_no' => $this->str(), | ||||
| 'parking_name' => $this->str(), | |||||
| 'name' => $this->str(), | |||||
| 'zip_code' => $this->str(), | |||||
| 'address' => $this->str(), | |||||
| 'phone_no' => $this->str(), | |||||
| 'vehicle_no' => $this->str(), | |||||
| 'chassis_no' => $this->str(true), | |||||
| 'paying_method' => $this->str(), | |||||
| 'mail_name' => $this->str(), | |||||
| 'mail_zip_code' => $this->str(), | |||||
| 'mail_address' => $this->str(), | |||||
| 'memo' => $this->str(true), | |||||
| ]; | ]; | ||||
| } | } | ||||
| } | } | ||||
| @@ -4,20 +4,39 @@ namespace App\Kintone\Models; | |||||
| /** | /** | ||||
| * アプリ名 各種申請 [駐車証明発行申請] | * アプリ名 各種申請 [駐車証明発行申請] | ||||
| * @property string paymentMethod | |||||
| * @property string name | |||||
| * @property string zipCode | |||||
| * @property string address | |||||
| * @property string phoneNo | |||||
| * @property string vehicleNo | |||||
| * @property string chassisNo | |||||
| * @property string mailName | |||||
| * @property string mailZipCode | |||||
| * @property string mailAddress | |||||
| * @property string memo | |||||
| */ | */ | ||||
| class ParkingCertificateApplication extends GeneralApplication | class ParkingCertificateApplication extends GeneralApplication | ||||
| { | { | ||||
| const FIELD_PAYMENT_METHOD = "車庫証明発行申請_支払方法"; | const FIELD_PAYMENT_METHOD = "車庫証明発行申請_支払方法"; | ||||
| const FIELD_NAME = "車庫証明発行申請_氏名"; | |||||
| const FIELD_ZIP_CODE = "車庫証明発行申請_郵便番号"; | |||||
| const FIELD_ADDRESS = "車庫証明発行申請_住所"; | |||||
| const FIELD_PHONE_NO = "車庫証明発行申請_電話番号"; | |||||
| const FIELD_VEHICLE_NO = "車庫証明発行申請_車両番号"; | const FIELD_VEHICLE_NO = "車庫証明発行申請_車両番号"; | ||||
| const FIELD_CHASSIS_NO = "車庫証明発行申請_車体番号"; | const FIELD_CHASSIS_NO = "車庫証明発行申請_車体番号"; | ||||
| const FIELD_MAIL_NAME = "車庫証明発行申請_宛名"; | |||||
| const FIELD_MAIL_ZIP_CODE = "車庫証明発行申請_郵便番号"; | |||||
| const FIELD_MAIL_ADDRESS = "車庫証明発行申請_住所"; | |||||
| const FIELD_MAIL_NAME = "車庫証明発行申請_郵送先_宛名"; | |||||
| const FIELD_MAIL_ZIP_CODE = "車庫証明発行申請_郵送先_郵便番号"; | |||||
| const FIELD_MAIL_ADDRESS = "車庫証明発行申請_郵送先_住所"; | |||||
| const FIELD_MEMO = "車庫証明発行申請_備考"; | const FIELD_MEMO = "車庫証明発行申請_備考"; | ||||
| protected const FIELDS = [ | protected const FIELDS = [ | ||||
| ...parent::FIELDS, | ...parent::FIELDS, | ||||
| self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN, | self::FIELD_PAYMENT_METHOD => FieldType::DROP_DOWN, | ||||
| self::FIELD_NAME => FieldType::SINGLE_LINE_TEXT, | |||||
| self::FIELD_ZIP_CODE => FieldType::SINGLE_LINE_TEXT, | |||||
| self::FIELD_ADDRESS => FieldType::SINGLE_LINE_TEXT, | |||||
| self::FIELD_PHONE_NO => FieldType::SINGLE_LINE_TEXT, | |||||
| self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT, | self::FIELD_VEHICLE_NO => FieldType::SINGLE_LINE_TEXT, | ||||
| self::FIELD_CHASSIS_NO => FieldType::SINGLE_LINE_TEXT, | self::FIELD_CHASSIS_NO => FieldType::SINGLE_LINE_TEXT, | ||||
| self::FIELD_MAIL_NAME => FieldType::SINGLE_LINE_TEXT, | self::FIELD_MAIL_NAME => FieldType::SINGLE_LINE_TEXT, | ||||