| @@ -0,0 +1,47 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Web\Shop\Config\Printing; | |||||
| use App\Codes\Model\QRServiceUsage; | |||||
| use App\Http\Controllers\Web\WebController; | |||||
| use App\Models\HtpmsCustomer\Mst\ShopNoRelation; | |||||
| use Illuminate\Http\JsonResponse; | |||||
| use Illuminate\Http\Request; | |||||
| class DisableController extends WebController | |||||
| { | |||||
| public function name(): string | |||||
| { | |||||
| return "QRサービス券取得設定無効化"; | |||||
| } | |||||
| public function description(): string | |||||
| { | |||||
| return "QRサービス券取得設定を無効にする"; | |||||
| } | |||||
| public function __construct(protected DisableParam $param) | |||||
| { | |||||
| parent::__construct(); | |||||
| } | |||||
| protected function run(Request $request): JsonResponse | |||||
| { | |||||
| $param = $this->param; | |||||
| $setting = ShopNoRelation::byKey( | |||||
| $param->shopId, | |||||
| $param->parkingManagementCode, | |||||
| QRServiceUsage::印字方式 | |||||
| ) | |||||
| ->firstOrFail(); | |||||
| $setting->delete(); | |||||
| $setting->save(); | |||||
| return $this->successResponse(); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,22 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Web\Shop\Config\Printing; | |||||
| use App\Http\Controllers\Web\BaseParam; | |||||
| use App\Http\Controllers\Web\Rule; | |||||
| use App\Models\ColumnName; | |||||
| /** | |||||
| * @property string shopId | |||||
| * @property string parkingManagementCode | |||||
| */ | |||||
| class DisableParam extends BaseParam | |||||
| { | |||||
| public function rules(): array | |||||
| { | |||||
| return [ | |||||
| ColumnName::SHOP_ID => $this->str([...Rule::id()]), | |||||
| ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,52 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Web\Shop\Config\Printing; | |||||
| use App\Codes\Model\QRServiceUsage; | |||||
| use App\Http\Controllers\Web\WebController; | |||||
| use App\Models\HtpmsCustomer\Mst\ShopNoRelation; | |||||
| use Illuminate\Http\JsonResponse; | |||||
| use Illuminate\Http\Request; | |||||
| class EnableController extends WebController | |||||
| { | |||||
| public function name(): string | |||||
| { | |||||
| return "QRサービス券印字設定変更"; | |||||
| } | |||||
| public function description(): string | |||||
| { | |||||
| return "QRサービス券印字設定を変更する"; | |||||
| } | |||||
| public function __construct(protected EnableParam $param) | |||||
| { | |||||
| parent::__construct(); | |||||
| } | |||||
| protected function run(Request $request): JsonResponse | |||||
| { | |||||
| $param = $this->param; | |||||
| $setting = ShopNoRelation::byKey( | |||||
| $param->shopId, | |||||
| $param->parkingManagementCode, | |||||
| QRServiceUsage::印字方式 | |||||
| ) | |||||
| ->firstOrNew(); | |||||
| $setting->fill( | |||||
| [ | |||||
| ...$param->toArray(), | |||||
| ShopNoRelation::COL_NAME_QR_SERVICE_USEAGE => QRServiceUsage::印字方式, | |||||
| ] | |||||
| ); | |||||
| $setting->save(); | |||||
| return $this->successResponse(); | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,24 @@ | |||||
| <?php | |||||
| namespace App\Http\Controllers\Web\Shop\Config\Printing; | |||||
| use App\Http\Controllers\Web\BaseParam; | |||||
| use App\Http\Controllers\Web\Rule; | |||||
| use App\Models\ColumnName; | |||||
| /** | |||||
| * @property string shopId | |||||
| * @property string parkingManagementCode | |||||
| * @property int shopNo | |||||
| */ | |||||
| class EnableParam extends BaseParam | |||||
| { | |||||
| public function rules(): array | |||||
| { | |||||
| return [ | |||||
| ColumnName::SHOP_ID => $this->str([...Rule::id()]), | |||||
| ColumnName::PARKING_MANAGEMENT_CODE => $this->str([...Rule::parkingManagementCode()]), | |||||
| ColumnName::SHOP_NO => $this->numeric([...Rule::shopNo()]), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -3,11 +3,10 @@ | |||||
| namespace App\Http\Controllers\Web\Shop\Config; | namespace App\Http\Controllers\Web\Shop\Config; | ||||
| use App\Http\Controllers\Web\WebController; | use App\Http\Controllers\Web\WebController; | ||||
| use App\Logics\QRService\ChargeLogic; | |||||
| use App\Models\HtpmsCustomer\Mst\Shop; | use App\Models\HtpmsCustomer\Mst\Shop; | ||||
| use App\Models\HtpmsCustomer\QRService\AcquisitionAvailableSetting; | use App\Models\HtpmsCustomer\QRService\AcquisitionAvailableSetting; | ||||
| use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting; | |||||
| use App\Repositories\CertificationAvailableSettingRepository; | use App\Repositories\CertificationAvailableSettingRepository; | ||||
| use App\Repositories\PrintingAvailableSettingRepository; | |||||
| use Illuminate\Http\JsonResponse; | use Illuminate\Http\JsonResponse; | ||||
| use Illuminate\Http\Request; | use Illuminate\Http\Request; | ||||
| @@ -25,8 +24,11 @@ class ShopConfigDetailController extends WebController | |||||
| } | } | ||||
| public function __construct(protected ShopConfigDetailParam $param, private CertificationAvailableSettingRepository $certificationRepository) | |||||
| { | |||||
| public function __construct( | |||||
| protected ShopConfigDetailParam $param, | |||||
| private CertificationAvailableSettingRepository $certificationRepository, | |||||
| private PrintingAvailableSettingRepository $printingRepository, | |||||
| ) { | |||||
| parent::__construct(); | parent::__construct(); | ||||
| } | } | ||||
| @@ -43,12 +45,18 @@ class ShopConfigDetailController extends WebController | |||||
| $acquisition = AcquisitionAvailableSetting::whereShopId($param->shopId)->first(); | $acquisition = AcquisitionAvailableSetting::whereShopId($param->shopId)->first(); | ||||
| $printing = $this->printingRepository->get([ | |||||
| ...$param->toArray(), | |||||
| ]); | |||||
| $shop->save(); | $shop->save(); | ||||
| $res = [ | $res = [ | ||||
| "shop_id" => $param->shopId, | "shop_id" => $param->shopId, | ||||
| "certification" => $certification, | "certification" => $certification, | ||||
| "acquisition" => $acquisition, | "acquisition" => $acquisition, | ||||
| "printing" => $printing, | |||||
| ]; | ]; | ||||
| return $this->successResponse($res); | return $this->successResponse($res); | ||||
| @@ -0,0 +1,74 @@ | |||||
| <?php | |||||
| namespace App\Repositories; | |||||
| use App\Codes\Model\QRServiceUsage; | |||||
| use App\Models\ColumnName; | |||||
| use App\Models\HtpmsCustomer\Existing\Parking; | |||||
| use App\Models\HtpmsCustomer\Mst\ShopNoRelation; | |||||
| use App\Repositories\BaseRepository; | |||||
| use Illuminate\Database\Query\JoinClause; | |||||
| use Illuminate\Support\Collection; | |||||
| use Illuminate\Support\Facades\DB; | |||||
| class PrintingAvailableSettingRepository extends BaseRepository | |||||
| { | |||||
| const CONDITION_SHOP_ID = ColumnName::SHOP_ID; | |||||
| const TABLE_RELATION = "relation"; | |||||
| const TABLE_PARKING = "parking"; | |||||
| /** | |||||
| * コレクションを取得する | |||||
| * | |||||
| * @param array $condition | |||||
| * @return Collection<int, PrintingAvailableSettingRepositoryData> | |||||
| */ | |||||
| public function get(array $condition): Collection | |||||
| { | |||||
| $table = ShopNoRelation::getBuilder(static::TABLE_RELATION) | |||||
| ->where(ShopNoRelation::COL_NAME_QR_SERVICE_USEAGE, QRServiceUsage::印字方式->value); | |||||
| $table->leftJoinSub(Parking::getBuilder(), static::TABLE_PARKING, function (JoinClause $join) { | |||||
| $join->on( | |||||
| $this->makeColumnName([static::TABLE_RELATION, ShopNoRelation::COL_NAME_PARKING_MANAGEMENT_CODE]), | |||||
| $this->makeColumnName([static::TABLE_PARKING, Parking::COL_NAME_PARKING_MANAGEMENT_CODE]) | |||||
| ); | |||||
| }); | |||||
| // -----検索条件 | |||||
| // GROUP_ID | |||||
| $this->where($table, $condition, static::CONDITION_SHOP_ID, $this->makeColumnName([static::TABLE_RELATION, ShopNoRelation::COL_NAME_SHOP_ID])); | |||||
| $table->select($this->columns()); | |||||
| $table->orderBy($this->makeColumnName([self::TABLE_PARKING, Parking::COL_NAME_PARKING_MANAGEMENT_CODE])); | |||||
| $main = DB::connection("htpms_customer")->table($table, "main"); | |||||
| // ソート | |||||
| $this->sort($main, $condition); | |||||
| // リミット | |||||
| $this->limit($main, $condition); | |||||
| return CertificationAvailableSettingRepositoryData::makeList($main->get()); | |||||
| } | |||||
| private function columns() | |||||
| { | |||||
| $relation = static::TABLE_RELATION; | |||||
| $parking = static::TABLE_PARKING; | |||||
| $columns = [ | |||||
| $this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_SHOP_ID]), | |||||
| $this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_PARKING_MANAGEMENT_CODE]), | |||||
| $this->makeColumnNameForSelect([$relation, ShopNoRelation::COL_NAME_SHOP_NO]), | |||||
| $this->makeColumnNameForSelect([$parking, Parking::COL_NAME_PARKING_NAME], "parking_name"), | |||||
| ]; | |||||
| return $columns; | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,14 @@ | |||||
| <?php | |||||
| namespace App\Repositories; | |||||
| /** | |||||
| * @property string shop_id | |||||
| * @property string parking_management_code | |||||
| * @property string parking_name | |||||
| * @property string shop_no | |||||
| */ | |||||
| class PrintingAvailableSettingRepositoryData extends BaseRepositoryData | |||||
| { | |||||
| } | |||||
| @@ -52,6 +52,8 @@ Route::middleware('auth:sanctum')->group(function () { | |||||
| RouteHelper::post('/shop/config/certification/add', App\Http\Controllers\Web\Shop\Config\Certification\AddController::class); | RouteHelper::post('/shop/config/certification/add', App\Http\Controllers\Web\Shop\Config\Certification\AddController::class); | ||||
| RouteHelper::post('/shop/config/certification/remove', App\Http\Controllers\Web\Shop\Config\Certification\RemoveController::class); | RouteHelper::post('/shop/config/certification/remove', App\Http\Controllers\Web\Shop\Config\Certification\RemoveController::class); | ||||
| RouteHelper::post('/shop/config/certification/delete', App\Http\Controllers\Web\Shop\Config\Certification\DeleteController::class); | RouteHelper::post('/shop/config/certification/delete', App\Http\Controllers\Web\Shop\Config\Certification\DeleteController::class); | ||||
| RouteHelper::post('/shop/config/printing/enable', App\Http\Controllers\Web\Shop\Config\Printing\EnableController::class); | |||||
| RouteHelper::post('/shop/config/printing/disable', App\Http\Controllers\Web\Shop\Config\Printing\DisableController::class); | |||||
| RouteHelper::post('/shop/config/acquisition/enable', App\Http\Controllers\Web\Shop\Config\Acquisition\EnableController::class); | RouteHelper::post('/shop/config/acquisition/enable', App\Http\Controllers\Web\Shop\Config\Acquisition\EnableController::class); | ||||
| RouteHelper::post('/shop/config/acquisition/disable', App\Http\Controllers\Web\Shop\Config\Acquisition\DisableController::class); | RouteHelper::post('/shop/config/acquisition/disable', App\Http\Controllers\Web\Shop\Config\Acquisition\DisableController::class); | ||||
| RouteHelper::get('/qr-service/parking-group/list', App\Http\Controllers\Web\QRService\Group\QRServiceGroupListController::class); | RouteHelper::get('/qr-service/parking-group/list', App\Http\Controllers\Web\QRService\Group\QRServiceGroupListController::class); | ||||