Viewing file: ShopController.php (9.03 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Models\ShopSettings;
use App\Models\Categories;
use App\Models\ShopCategory;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use GuzzleHttp\Client;
use DateTime;
class ShopController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
// get Vendor
function index()
{
return response()->json(["message"=>"Not Allowed"],403);
}
//create new shop
public function create(Request $req)
{
try {
$validator = Validator::make($req->all(), [
'shop_name' => 'required|string|between:2,150',
'district' => 'required|integer|between:1,70',
'address' => 'required|string|between:2,200',
'page_name' => 'required|string|between:2,200',
"page_id" => 'required|string|between:10,64',
'pick_up' => 'required|integer|in:0,1',
"free_delivery" => 'required|integer|in:0,1',
'inside' => 'required|min:0|max:200',
'outside' => 'required|min:0|max:200',
'free_minimum' => 'nullable|integer|in:0,1',
'minimum_value' => 'nullable|min:0|max:1000000',
]);
if ($validator->fails()==true) {
return response()->json(['error'=>'true',"message"=>$validator->errors()->all()],402);
}
$vendor_id=auth()->user()->id;
$shop_name=ShopSettings::query()->where('shop_name',$req->input('shop_name'));
if ($shop_name->exists()) {
return response()->json(['error' => 'true', 'message' =>"Shop name is already taken."],400);
}
DB::beginTransaction();
$shop_settings = ShopSettings::create([
'shop_name' => $req->input('shop_name'),
'district' => $req->input('district'),
'address' => $req->input('address'),
'pick_up' => $req->input("pick_up"),
'free_delivery' => $req->input('free_delivery'),
'inside' => $req->input('inside'),
'outside' => $req->input('outside'),
'free_minimum' => $req->input('free_minimum'),
'minimum_value' => $req->input('minimum_value'),
'shop_types' => $req->input('shop_types'),
'page_id' => $req->input('page_id'),
'active' => 1,
'vendor_id' => $vendor_id,
"page_name" => $req->input('page_name')
]);
if ($shop_settings) {
DB::commit();
$d = new DateTime();
$t=$d->format("ymdHisv");
$data=["_id"=>$t,"shop_id"=>$shop_settings->id,"created_at"=> $shop_settings->created_at];
return response()->json(['message' => "Shop Added Successfully","data"=>$data]);
} else {
DB::rollback();
return response()->json(['error' => 'true','message' => "Shop not created"],500);
}
} catch (\Exception $exception) {
DB::rollback();
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
public function update(Request $req)
{
try{
$validator = Validator::make($req->all(), [
'shop_name' => 'required|string|between:2,150',
'district' => 'required|integer|between:1,70',
'address' => 'required|string|between:2,200',
]);
if ($validator->fails()==true) {
return response()->json(['error'=>'true',"message"=>$validator->errors()->all()],402);
}
$shop_name=ShopSettings::query()->where('shop_name',$req->input('shop_name'))->where('id','!=',$req->input('shop_id'));
if ($shop_name->exists()) {
return response()->json(['error' => 'true', 'message' =>"Shop name is already taken."],400);
}
$vendor_id=auth()->user()->id;
$vendor = ShopSettings::where('vendor_id',$vendor_id)->where('id',$req->input('shop_id'))->first();
if (empty($vendor)) {
return response()->json(['error' => 'true', 'message' =>"No shop found"],402);
}else{
$vendor->shop_name = $req->input('shop_name');
$vendor->district = $req->input('district');
$vendor->address = $req->input('address');
// $vendor->shop_types = $req->input('shop_types');
$ven=$vendor->save();
if ($ven) {
return response()->json(['message' => "Shop Information Successfully Updated."]);
}else {
return response()->json(['error' => 'true', 'message' => "Shop not updated"],500);
}
}
} catch (\Exception $exception) {
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
public function delivery(Request $req)
{
try{
$validator = Validator::make($req->all(), [
'pick_up' => 'required|integer|in:0,1',
"free_delivery" => 'required|integer|in:0,1',
'inside' => 'required|min:0|max:200',
'outside' => 'required|min:0|max:200',
'free_minimum' => 'nullable|integer|in:0,1',
'minimum_value' => 'nullable|min:0|max:1000000',
]);
if ($validator->fails()==true) {
return response()->json(['error'=>'true',"message"=>$validator->errors()->all()],402);
}
$vendor_id=auth()->user()->id;
$vendor = ShopSettings::where('vendor_id',$vendor_id)->where('id',$req->input('shop_id'))->first();
if (empty($vendor)) {
return response()->json(['error' => 'true', 'message' =>"No shop found"],402);
}else{
$vendor->pick_up = $req->input("pick_up");
$vendor->free_delivery = $req->input('free_delivery');
$vendor->inside = $req->input('inside');
$vendor->outside = $req->input('outside');
$vendor->free_minimum = $req->input('free_minimum');
$vendor->minimum_value = $req->input('minimum_value');
$ven=$vendor->save();
if ($ven==1) {
return response()->json(['message' => "Shop Delivery Settings Successfully Updated."]);
}else {
return response()->json(['error' => 'true', 'message' => "Shop delivery data not updated"],500);
}
}
} catch (\Exception $exception) {
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
public function activation(Request $req)
{
try {
$vendor_id=auth()->user()->id;
$page= ShopSettings::where('vendor_id',$vendor_id)->where('id',$req->input('shop_id'))
->update(['active' => $req->input('active')]);
return response()->json(['message' => "Shop Updated Successfully"]);
} catch (\Exception $exception) {
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
public function shopCatogories(Request $req)
{
try{
$vendor_id=auth()->user()->id;
$shop_id=$req->input('shop_id');
$store_type=$req->input('store_type');
return $this->insertCategoires($shop_id,$store_type,$vendor_id);
} catch (\Exception $exception) {
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
private function insertCategoires($shop_id,$store_type,$vendor_id)
{
try{
$data=ShopCategory::whereIn('store_type',$store_type)->get();
$data1=[];
for ($i=0; $i < count($data); $i++) {
$dt=['shop_id'=> $shop_id,'name'=> $data[$i]->val,'description'=> '','parent'=>0 ,'vendor_id'=> $vendor_id,'active'=> 1,'store_type'=>$data[$i]->store_type];
array_push($data1,$dt);
}
Categories::insert($data1);
$res=Categories::select("id as _id",'id','shop_id','name','description','parent','vendor_id','active','store_type')->whereIn('store_type',$store_type)->where('shop_id',$shop_id)->where("vendor_id",$vendor_id)->get();
return response()->json(["data"=>$res]);
} catch (\Exception $exception) {
return response()->json(['error' => 'true', 'message' =>$exception->getMessage()],500);
}
}
}
|