| @@ -2,13 +2,14 @@ | |||
| namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| use App\Email\Members\ParkingCertificateOrderNotice; | |||
| 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\Request; | |||
| use Illuminate\Support\Facades\Auth; | |||
| class ParkingCertificateOrderController extends WebController | |||
| { | |||
| @@ -32,12 +33,35 @@ class ParkingCertificateOrderController extends WebController | |||
| 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(); | |||
| } | |||
| @@ -5,7 +5,19 @@ namespace App\Http\Controllers\Web\SeasonTicketContract; | |||
| 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 | |||
| { | |||
| @@ -13,6 +25,18 @@ class ParkingCertificateOrderParams extends BaseParam | |||
| { | |||
| return [ | |||
| '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 | |||
| { | |||
| const FIELD_PAYMENT_METHOD = "車庫証明発行申請_支払方法"; | |||
| const FIELD_NAME = "車庫証明発行申請_氏名"; | |||
| const FIELD_ZIP_CODE = "車庫証明発行申請_郵便番号"; | |||
| const FIELD_ADDRESS = "車庫証明発行申請_住所"; | |||
| const FIELD_PHONE_NO = "車庫証明発行申請_電話番号"; | |||
| const FIELD_VEHICLE_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 = "車庫証明発行申請_備考"; | |||
| protected const FIELDS = [ | |||
| ...parent::FIELDS, | |||
| 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_CHASSIS_NO => FieldType::SINGLE_LINE_TEXT, | |||
| self::FIELD_MAIL_NAME => FieldType::SINGLE_LINE_TEXT, | |||