/
home
/
sjslayjy
/
public_html
/
ccbfsoution
/
app
/
Http
/
Controllers
/
Admin
/
Upload File
HOME
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Auth; class LandPreparationController extends Controller { // public function index(Request $request) // { // $user = Auth::user(); // $siteId = $user->site_name; // $role = $user->role; // // Determine selected site (Admin vs Non-admin) // $selectedSiteId = $role == 1 ? $request->get('site_id') : $siteId; // // Get distinct blocks // $blocksQuery = DB::table('land_prepration'); // if ($role != 1) { // $blocksQuery->where('site_id', $siteId); // } // $blocks = $blocksQuery->select('block_name')->distinct()->pluck('block_name'); // // Main query // $query = DB::table('land_prepration as l') // ->leftJoin('master_soil_condition as sc', 'l.soil_condition_id', '=', 'sc.id') // ->leftJoin('users as u', 'l.user_id', '=', 'u.id') // ->select( // 'l.*', // 'sc.soil_condition', // 'u.name as user_name' // ); // // Apply site filter // if ($role != 1 || $selectedSiteId) { // $query->where('l.site_id', $selectedSiteId); // } // // Apply block filter // if ($request->filled('block_name')) { // $query->where('l.block_name', $request->block_name); // } // // Apply search filter // if ($request->filled('search')) { // $search = $request->search; // $query->where(function ($q) use ($search) { // $q->where('l.plot_name', 'like', "%$search%") // ->orWhere('l.area', 'like', "%$search%") // ->orWhere('u.name', 'like', "%$search%"); // }); // } // // Session filter // // Get paginated result // $data = $query->orderBy('l.id', 'desc') // ->paginate(10) // ->appends($request->all()); // if ($request->filled('session')) { // $session = $request->session; // switch ($session) { // case 'kharif': // $query->whereMonth('pre.date', '>=', 6) // ->whereMonth('pre.date', '<=', 10); // break; // case 'rabi': // $query->where(function($q) { // $q->whereMonth('pre.date', '>=', 11) // ->orWhereMonth('pre.date', '<=', 3); // }); // break; // case 'zaid': // $query->whereMonth('pre.date', '>=', 4) // ->whereMonth('pre.date', '<=', 6); // break; // } // } // // Machine and Tractor Names // foreach ($data as $item) { // $machineIds = array_filter(explode(',', $item->machine_id)); // $machines = DB::table('master_machine') // ->whereIn('id', $machineIds) // ->pluck('machine_name') // ->toArray(); // $item->machine_names = implode(', ', $machines); // $tractorIds = array_filter(explode(',', $item->tractor_id)); // $tractors = DB::table('master_tractors') // ->whereIn('id', $tractorIds) // ->pluck('tractor_name') // ->toArray(); // $item->tractor_names = implode(', ', $tractors); // } // // Load all sites for dropdown (admin only) // $sites = $role == 1 ? DB::table('master_sites')->pluck('site_name', 'id') : []; // return view('land_preparation.index', compact('data', 'blocks', 'sites', 'selectedSiteId', 'role')); // } public function index(Request $request) { $user = Auth::user(); $siteId = $user->site_name; $role = $user->role; // Determine selected site (Admin vs Non-admin) $selectedSiteId = $role == 1 ? $request->get('site_id') : $siteId; // Load all sites for dropdown (admin only) - MOVED UP TO ENSURE DATA IS AVAILABLE $sites = $role == 1 ? DB::table('master_sites')->pluck('site_name', 'id') : DB::table('master_sites')->pluck('site_name', 'id'); // Get distinct blocks $blocksQuery = DB::table('land_prepration'); if ($role != 1) { $blocksQuery->where('site_id', $siteId); } $blocks = $blocksQuery->select('block_name')->distinct()->pluck('block_name'); // Main query $query = DB::table('land_prepration as l') ->leftJoin('master_soil_condition as sc', 'l.soil_condition_id', '=', 'sc.id') ->leftJoin('users as u', 'l.user_id', '=', 'u.id') ->select( 'l.*', 'sc.soil_condition', 'u.name as user_name' ); // Apply site filter if ($role != 1 || $selectedSiteId) { $query->where('l.site_id', $selectedSiteId); } // Apply block filter if ($request->filled('block_name')) { $query->where('l.block_name', $request->block_name); } // Apply search filter if ($request->filled('search')) { $search = $request->search; $query->where(function ($q) use ($search) { $q->where('l.plot_name', 'like', "%$search%") ->orWhere('l.area', 'like', "%$search%") ->orWhere('u.name', 'like', "%$search%"); }); } // Session filter if ($request->filled('session')) { $session = $request->session; switch ($session) { case 'kharif': $query->whereMonth('l.date', '>=', 6) ->whereMonth('l.date', '<=', 10); break; case 'rabi': $query->where(function($q) { $q->whereMonth('l.date', '>=', 11) ->orWhereMonth('l.date', '<=', 3); }); break; case 'zaid': $query->whereMonth('l.date', '>=', 4) ->whereMonth('l.date', '<=', 5); break; } } // Get paginated result $data = $query->orderBy('l.id', 'desc') ->paginate(10) ->appends($request->all()); // Machine and Tractor Names foreach ($data as $item) { $machineIds = array_filter(explode(',', $item->machine_id)); $machines = DB::table('master_machine') ->whereIn('id', $machineIds) ->pluck('machine_name') ->toArray(); $item->machine_names = implode(', ', $machines); $tractorIds = array_filter(explode(',', $item->tractor_id)); $tractors = DB::table('master_tractors') ->whereIn('id', $tractorIds) ->pluck('tractor_name') ->toArray(); $item->tractor_names = implode(', ', $tractors); } return view('land_preparation.index', compact('data', 'blocks', 'sites', 'selectedSiteId', 'role')); } }