<?php
namespace App\Http\Controllers\admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use Illuminate\Http\Facades\DB;
use Auth;
use App\Models\Shipping;
use Validator;
use Datatables;
class ShippingSettingsController extends Controller
{
//call constructor
public function __construct(){
$this->middleware('auth:admin');
}
public function index(){
$data = array();
$data['shipping'] = Shipping::all();
return view('admin.shippings', $data);
}
//Get sliders data
public function shippingdata(){
$data = Shipping::all();
return Datatables::of($data)
->addIndexColumn()
->addColumn('method_name', function($row){
$method_name = mb_strlen(strip_tags($row->method_name),'utf-8') > 50 ? mb_substr(strip_tags($row->method_name),0,50,'utf-8').'...' : strip_tags($row->method_name);
return $method_name;
})
->addColumn('shipment_time', function($row){
return $row->shipment_time;
})
->addColumn('cost', function($row){
return $row->cost;
})
->addColumn('cost_based_on', function($row){
return $row->cost_based_on;
})
->addColumn('minimum_shipping', function($row){
return $row->minimum_shipping;
})
->addColumn('status', function($row){
$status = $row->status == 1 ? '<span class="kt-badge kt-badge--success kt-badge--inline kt-badge--pill">Active</span>' : '<span class="kt-badge kt-badge--danger kt-badge--inline kt-badge--pill">Inactive</span>';
return '<div class="action-list">'.$status.'</div>';
})
->addColumn('action', function($row){
return '<a class="btn btn-sm btn-warning" href="'.route('admin.edit_shipping', $row->id).'"><i class="la la-edit"></i> Edit</a> <a class="btn btn-sm btn-primary" onclick="confirm_del('.$row->id.');" href="javascript:void(0)" data-href="'.route('admin.delete_shipping', $row->id).'"> <i class="la la-trash"></i> Delete </a>';
})
->rawColumns(['index', 'method_name', 'shipment_time', 'cost', 'cost_based_on', 'minimum_shipping', 'status', 'action'])
->make(true);
}
public function addShipping(){
$data = array();
return view('admin.addshipping', $data);
}
public function saveShipping(Request $request){
//define rule
$rules = [
'method_name' => "required",
'shipment_time' => "required",
'cost' => "required",
];
//run validation
$validator = Validator::make($request->all(), $rules);
if($validator->fails()){
return response()->json(array(
"errors" => $validator->getMessageBag()->toArray(),
"status" => false,
"message" => "<div class='alert alert-danger'>There were error. Please try again</div>"
));
}
$data = new Shipping;
$data->method_name = $request->method_name;
$data->shipment_time = $request->shipment_time;
$data->cost = $request->cost;
$data->cost_based_on = $request->cost_based_on;
$data->minimum_shopping = $request->minimum_shopping;
$data->status = $request->status;
if($data->save()){
return response()->json(array(
"status" => true,
"redirect" => route("admin.shippings"),
"message" => "<div class='alert alert-success'>Shipping saved. Please wait...</div>"
));
}
/*--- if unsuccessful, then show error ---*/
return response()->json(array(
"errors" => $validator->getMessageBag()->toArray(),
"status" => false,
"message" => "<div class='alert alert-danger'>There were error. please try again</div>"
));
}
public function editShipping($id){
$data = array();
$data['shipping'] = Shipping::find($id);
return view('admin.editshipping', $data);
}
public function updateShipping(Request $request){
//define rule
$rules = [
'method_name' => "required",
'shipment_time' => "required",
'cost' => "required",
];
//run validation
$validator = Validator::make($request->all(), $rules);
if($validator->fails()){
return response()->json(array(
"errors" => $validator->getMessageBag()->toArray(),
"status" => false,
"message" => "<div class='alert alert-danger'>There were error. Please try again</div>"
));
}
$data = Shipping::find($request->id);
$data->method_name = $request->method_name;
$data->shipment_time = $request->shipment_time;
$data->cost = $request->cost;
$data->cost_based_on = $request->cost_based_on;
$data->minimum_shopping = $request->minimum_shopping;
$data->status = $request->status;
if($data->save()){
return response()->json(array(
"status" => true,
"redirect" => route("admin.shippings"),
"message" => "<div class='alert alert-success'>Shipping updated.</div>"
));
}
/*--- if unsuccessful, then show error ---*/
return response()->json(array(
"errors" => $validator->getMessageBag()->toArray(),
"status" => false,
"message" => "<div class='alert alert-danger'>There were error. please try again</div>"
));
}
public function deleteShipping($id){
$shipping = Shipping::find($id);
$shipping->delete();
return redirect()->route("admin.shippings")->with("success", "Shipping deleted successfully.");
}
}
|