<?php
namespace App\Http\Controllers\Admin;
use App\Models\Job;
use App\Models\Blog;
use App\Models\Order;
use App\Models\Quote;
use App\Models\Gallery;
use App\Models\Product;
use App\Models\Bcategory;
use App\Models\Gcategory;
use App\Models\Jcategory;
use App\Models\Newsletter;
use Illuminate\Http\Request;
use App\Models\JobApplication;
use App\Models\ProductCategory;
use App\Http\Controllers\Controller;
class BulkDeleteController extends Controller
{
public function bulkDelete(Request $request)
{
$ids = array_filter($request->ids);
if(!$ids){
$notification = array(
'messege' => 'Please Select Item First',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
$ids = explode(',',$ids[0]);
if($request->table == 'product'){
foreach($ids as $id){
$id = (int)$id;
$product = Product::findOrFail($id);
foreach ($product->product_images as $key => $image) {
@unlink('assets/front/img/' . $image->image);
$image->delete();
}
@unlink('assets/front/img/' . $product->image);
$product->delete();
}
}
if($request->table == 'order'){
foreach($ids as $id){
$id = (int)$id;
$order = Order::findOrFail($id);
@unlink('assets/front/invoices/product/'.$order->invoice_number);
$order->delete();
}
}
if($request->table == 'product-category'){
foreach($ids as $id){
$id = (int)$id;
$category = ProductCategory::findOrFail($id);
$products = Product::where('category_id', $id)->get();
if($products->count() >= 1){
$notification = array(
'messege' => 'First Delete Products Under This Category !',
'alert' => 'warning'
);
return redirect()->back()->with('notification', $notification);
}
$category->delete();
}
}
if($request->table == 'quote'){
foreach($ids as $id){
$id = (int)$id;
$quote = Quote::findOrFail($id);
@unlink('assets/front/quote/'.$quote->file);
$quote->delete();
}
}
if($request->table == 'gallery'){
foreach($ids as $id){
$id = (int)$id;
$gallery = Gallery::find($id);
@unlink('assets/front/img/gallery/'. $gallery->image);
$gallery->delete();
}
}
if($request->table == 'gcategory'){
foreach($ids as $id){
$id = (int)$id;
$gcategory = Gcategory::find($id);
$gallery = Gallery::where('category_id', $id)->get();
if($gallery->count() >= 1){
$notification = array(
'messege' => 'First Delete Galleries Under This Category !',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
$gcategory->delete();
}
}
if($request->table == 'jcategory'){
foreach($ids as $id){
$id = (int)$id;
$jcategory = Jcategory::findOrFail($id);
if($jcategory->jobs->count() > 0){
foreach($jcategory->events as $data){
$data->delete();
}
}
$jcategory->delete();
}
}
if($request->table == 'job'){
foreach($ids as $id){
$id = (int)$id;
$job = Job::findOrFail($id);
$job->delete();
}
}
if($request->table == 'applicant'){
foreach($ids as $id){
$id = (int)$id;
$data = JobApplication::findOrFail($id);
@unlink('assets/front/application/'. $data->file);
$data->delete();
}
}
if($request->table == 'bcategory'){
foreach($ids as $id){
$id = (int)$id;
$bcategory = Bcategory::find($id);
$blogs = Blog::where('bcategory_id', $id)->get();
if($blogs->count() >= 1){
$notification = array(
'messege' => 'First Delete Blogs Under This Category !',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
$bcategory->delete();
}
}
if($request->table == 'blog'){
foreach($ids as $id){
$id = (int)$id;
$blog = Blog::find($id);
@unlink('assets/front/img/blog/'. $blog->main_image);
$blog->delete();
}
}
if($request->table == 'newsletter'){
foreach($ids as $id){
$id = (int)$id;
$newsletter = Newsletter::find($id);
$newsletter->delete();
}
}
$notification = array(
'messege' => 'Data Deleted Successfully.',
'alert' => 'success'
);
return redirect()->back()->with('notification', $notification);
}
}