middleware('permission:vpk-device-setting'); } public function page() { // ['custodyunit' => $custodyunit, 'assetownership' => $assetownership] $custodyunit = CustodyUnit::all(); $assetownership = AssetOwnership::all(); return view('system.violationparking.equipment') ->with('custodyunit', $custodyunit) ->with('assetownership', $assetownership); } /** * Display a listing of the resource. */ public function index(Request $request) { #region DataTable 搜尋屬性 $draw = $request->get('draw'); $start = $request->get("start"); $rowperpage = $request->get("length"); // Rows display per page $columnIndex_arr = $request->get('order'); $columnName_arr = $request->get('columns'); $order_arr = $request->get('order'); $search_arr = $request->get('search'); $columnIndex = $columnIndex_arr[0]['column']; // Column index $columnName = $columnName_arr[$columnIndex]['data']; // Column name $columnSortOrder = $order_arr[0]['dir']; // asc or desc $searchValue = $search_arr['value']; // Search value #endregion // Role with permissions $records = ViolationParkingEquipment::query(); $totalRecords = $records->count(); if (isset($columnName)) $records->orderBy($columnName, $columnSortOrder); if (isset($searchValue)) { $records->where(function ($query) use ($searchValue) { // $query->where('outlet_id', 'like', '%' . $searchValue . '%') // ->orwhere('name', 'like', '%' . $searchValue . '%') // ->orwhere('serialnumber', 'like', '%' . $searchValue . '%') // ->orwhere('creator_id', 'like', '%' . $searchValue . '%'); }); } $totalRecordswithFilter = $records->count(); if (isset($start)) $records->skip($start); if (isset($rowperpage)) $records->take($rowperpage); $data_arr = $records->get(); $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordswithFilter, "aaData" => $data_arr ); return response()->json($response); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $device = new ViolationParkingEquipment(); DB::beginTransaction(); try { $device->serialnumber = $request->serialnumber; $device->brand = $request->brand; $device->model = $request->model; $device->custodyunit_id = $request->custodyunit_id; $device->assetownership_id = $request->assetownership_id; $device->buydate = $request->buydate; $device->activatedate = $request->activatedate; $device->locationid = $request->locationid; $device->location = $request->location; $device->comment = $request->comment; $device->precinct = $request->precinct; $device->station = $request->station; $device->save(); $logData = [ 'action' => 'create', 'action_detail' => '新增設備', 'ip' => request()->ip(), 'remark' => "新增設備:{$device->serialnumber}", ]; logWriter::writeLog($logData, 'api'); DB::commit(); return response()->json(['success' => true, 'message' => '新增成功']); } catch (\Throwable $th) { //throw $th; Log::error($th); DB::rollBack(); return response()->json(['success' => false, 'message' => '新增失敗']); } } /** * Display the specified resource. */ public function show(string $id) { $device = ViolationParkingEquipment::find($id); return response()->json(['success' => true, 'data' => $device]); } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { $device = ViolationParkingEquipment::find($id); DB::beginTransaction(); try { $device->serialnumber = $request->serialnumber; $device->brand = $request->brand; $device->model = $request->model; $device->custodyunit_id = $request->custodyunit_id ?? null; $device->assetownership_id = $request->assetownership_id ?? null; $device->buydate = $request->buydate; $device->activatedate = $request->activatedate; $device->locationid = $request->locationid; $device->location = $request->location; $device->comment = $request->comment; $device->precinct = $request->precinct; $device->station = $request->station; $device->save(); $logData = [ 'action' => 'update', 'action_detail' => '更新設備', 'ip' => request()->ip(), 'remark' => "更新設備:{$device->serialnumber}", ]; logWriter::writeLog($logData, 'api'); DB::commit(); return response()->json(['success' => true, 'message' => '更新成功']); } catch (\Throwable $th) { //throw $th; Log::error($th); DB::rollBack(); return response()->json(['success' => false, 'message' => '更新失敗']); } } /** * Remove the specified resource from storage. */ public function destroy(string $id) { $device = ViolationParkingEquipment::find($id); try { $device->delete(); return response()->json(['success' => true, 'message' => '刪除成功']); } catch (\Throwable $th) { //throw $th; Log::error($th); return response()->json(['success' => false, 'message' => '刪除失敗']); } } /** * 取得保管單位資料 */ public function indexUnit(Request $request) { if($request->type == "custodyunit"){ $unit = CustodyUnit::all(); return response()->json(['success' => true, 'data' => $unit]); }else if ($request->type == "assetownership"){ $unit = AssetOwnership::all(); return response()->json(['success' => true, 'data' => $unit]); } return response()->json(['success' => false, 'message' => '取得失敗']); } /** * 新增單位資料 */ public function storeUnit(Request $request) { // custodyunit_id //assetownership_id) DB::beginTransaction(); try { if($request->type == "custodyunit"){ $unit = new CustodyUnit(); $unit->name = $request->name; $unit->save(); $logData = [ 'action' => 'create', 'action_detail' => '新增保管單位', 'ip' => request()->ip(), 'remark' => "新增保管單位:{$request->name}", ]; LogWriter::writeLog($logData, 'api'); DB::commit(); return response()->json(['success' => true, 'message' => '保管單位-新增成功']); }else if ($request->type == "assetownership"){ $unit = new AssetOwnership(); $unit->name = $request->name; $unit->save(); $logData = [ 'action' => 'create', 'action_detail' => '新增財產所屬單位', 'ip' => request()->ip(), 'remark' => "新增財產所屬單位:{$request->name}", ]; LogWriter::writeLog($logData, 'api'); DB::commit(); return response()->json(['success' => true, 'message' => '財產所屬單位-新增成功']); } } catch (\Throwable $th) { //throw $th; Log::error($th); DB::rollBack(); } return response()->json(['success' => false, 'message' => '新增失敗']); } }