
PK 
<?php
namespace App\Http\Controllers;
use App\Size;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
class SizeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth:admin');
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
if (view()->exists('backend.admin.sizes.size'))
{
$sizes = Size::orderBy('size_sortby', 'desc')->paginate(50);
$sizes->withPath('size');
return view('backend.admin.sizes.size', compact('sizes'));
}
return back()->with('message', 'Opps view not found');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
if (view()->exists('backend.admin.sizes.sizeCreate'))
{
return view('backend.admin.sizes.sizeCreate');
}
return back()->with('message', 'Opps view not found');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
if ($request->_token != Session::token()) {
return Redirect::back()->with('message', 'Invalid submission !');
}
$this->validate($request, [
'category_id' => 'required|numeric',
'size_name' => 'required|unique:sizes',
'size_code' => 'required',
'size_sortby' => 'required',
'isactive' => 'required',
]);
$sizeData = $request->all();
$sizeData['size_name'] = Str::title($request->size_name); // Replaced title_case()
$sizeData['size_code'] = $request->size_code;
$sizeData['slug'] = Str::slug(str_replace('&', 'and', $request->size_name)); // Replaced str_slug()
$destinationPath = 'images/author';
$image_path = $destinationPath . '/aut' . time() . ".jpg"; // Default image path
if ($request->hasFile('image')) {
$extension = $request->file('image')->getClientOriginalExtension();
$fileName = 'aut' . time() . '.' . $extension;
// Create directory if it doesn't exist
if (!File::exists(public_path($destinationPath))) {
File::makeDirectory(public_path($destinationPath), 0755, true);
}
$img = $request->file('image')->move(public_path($destinationPath), $fileName);
$image_path = $destinationPath . '/' . $fileName;
}
$sizeData['image'] = $image_path;
$sizeData['addedby'] = Auth::id();
$sizeData['created_at'] = Carbon::now();
$sizeData['visitor'] = $request->ip();
if (Size::create($sizeData)) {
return redirect()->route('size.index')->with('success', 'New Added Successfully !');
}
return back()->with('error', 'Something went wrong please try again !');
}
/**
* Display the specified resource.
*
* @param \App\Size $size
* @return \Illuminate\Http\Response
*/
public function show(Size $size)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Size $size
* @return \Illuminate\Http\Response
*/
public function edit(Size $size)
{
if (view()->exists('backend.admin.sizes.sizeEdit'))
{
return view('backend.admin.sizes.sizeEdit', compact('size'));
}
return back()->with('message', 'Opps view not found');
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Size $size
* @return \Illuminate\Http\Response
*/
public function update(Request $request, Size $size)
{
if ($request->_token != Session::token()) {
return Redirect::back()->with('message', 'Invalid submission !');
}
if ($size->size_name != $request->size_name) {
$this->validate($request, [
'category_id' => 'required|numeric',
'size_name' => 'required|unique:sizes',
'size_code' => 'required',
'size_sortby' => 'required',
'isactive' => 'required',
]);
}
$size->category_id = $request->category_id;
$size->size_name = Str::title($request->size_name); // Replaced title_case()
$size->size_code = $request->size_code;
$size->slug = Str::slug(str_replace('&', 'and', $request->size_name)); // Replaced str_slug()
// Image Upload
$destinationPath = 'images/author';
if ($request->hasFile('image')) {
$oldFileName = $size->image;
if ($oldFileName && File::exists(public_path($oldFileName))) {
File::delete(public_path($oldFileName));
}
$extension = $request->file('image')->getClientOriginalExtension();
$fileName = 'aut' . time() . '.' . $extension;
if ($request->file('image')->move(public_path($destinationPath), $fileName)) {
$size->image = $destinationPath . '/' . $fileName;
}
}
$size->size_sortby = $request->size_sortby;
$size->isactive = $request->isactive;
$size->addedby = Auth::id();
$size->updated_at = Carbon::now();
$size->visitor = $request->ip();
if ($size->save()) {
return redirect()->route('size.index')->with('success', 'Updated Successfully !');
}
return back()->with('error', 'Something went wrong please try again !');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Size $size
* @return \Illuminate\Http\Response
*/
public function destroy(Size $size)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Size $size
* @return \Illuminate\Http\Response
*/
public function delete(Request $request, $id)
{
if ($request->reqId > 0) {
$id = (int)$request->reqId;
$size = Size::withTrashed()->findOrFail($id);
$size->isdelete = 0;
$size->addedby = Auth::id();
$size->deleted_at = Carbon::now();
if ($size->save()) {
$size = ['id' => $size->id, 'status' => true, 'msg' => 'Successfully deleted!'];
return response()->json($size);
}
$size = ['status' => false, 'msg' => 'Failed to delete!'];
return response()->json($size);
}
}
public function restore($id = 0)
{
if ($id > 0) {
$size = Size::withTrashed()->find($id);
if ($size) {
$size->restore();
$size->isdelete = 1;
$size->save();
return back()->with('info', 'Restore successfully !');
}
} else {
Size::onlyTrashed()->restore();
Size::where('isdelete', 0)->update(['isdelete' => 1, 'addedby' => Auth::id()]);
return back()->with('info', 'Restore successfully !');
}
return $this->index();
}
public function changeStatus(Request $request)
{
$id = $request->id;
$size = Size::findOrFail($id);
$size->isactive = ($size->isactive == 0) ? 1 : 0;
$size->save();
return response()->json($size);
}
}


PK 99