| @@ -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; | |||
| use App\Http\Controllers\Web\WebController; | |||
| use App\Logics\QRService\ChargeLogic; | |||
| use App\Models\HtpmsCustomer\Mst\Shop; | |||
| use App\Models\HtpmsCustomer\QRService\AcquisitionAvailableSetting; | |||
| use App\Models\HtpmsCustomer\QRService\CertificationAvailableSetting; | |||
| use App\Repositories\CertificationAvailableSettingRepository; | |||
| use App\Repositories\PrintingAvailableSettingRepository; | |||
| use Illuminate\Http\JsonResponse; | |||
| 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(); | |||
| } | |||
| @@ -43,12 +45,18 @@ class ShopConfigDetailController extends WebController | |||
| $acquisition = AcquisitionAvailableSetting::whereShopId($param->shopId)->first(); | |||
| $printing = $this->printingRepository->get([ | |||
| ...$param->toArray(), | |||
| ]); | |||
| $shop->save(); | |||
| $res = [ | |||
| "shop_id" => $param->shopId, | |||
| "certification" => $certification, | |||
| "acquisition" => $acquisition, | |||
| "printing" => $printing, | |||
| ]; | |||
| 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/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/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/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); | |||