/
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 SowingOperationController extends Controller { public function index(Request $request) { $user = Auth::user(); $role = $user->role; $defaultSiteId = $user->site_name; // Get sites if ($role == 1) { // Admins get all sites $sites = DB::table('master_sites')->pluck('site_name', 'id'); } else { // Non-admins get only their own site name $sites = DB::table('master_sites') ->where('id', $defaultSiteId) ->pluck('site_name', 'id'); } // Site selection $selectedSiteId = $request->get('site_id', $defaultSiteId); // Blocks dropdown $blocksQuery = DB::table('showing_oprations'); if ($role != 1) { $blocksQuery->where('site_id', $defaultSiteId); } elseif ($request->filled('site_id')) { $blocksQuery->where('site_id', $selectedSiteId); } $blocks = $blocksQuery->distinct()->pluck('block_name'); // Main query $query = DB::table('showing_oprations as so') ->select( 'so.*', 'ms.seed_name', 'ms.variety_of_seed', 'ms.sowing_method', 'ms.purpose', 'u.name as user_name' ) ->leftJoin('master_seed as ms', 'so.seed_id', '=', 'ms.id') ->leftJoin('users as u', 'so.user_id', '=', 'u.id'); if ($role != 1) { $query->where('so.site_id', $defaultSiteId); } elseif ($request->filled('site_id')) { $query->where('so.site_id', $selectedSiteId); } if ($request->filled('block_name')) { $query->where('so.block_name', $request->block_name); } if ($request->filled('search')) { $search = '%' . $request->search . '%'; $query->where(function ($q) use ($search) { $q->where('so.plot_name', 'like', $search) ->orWhere('so.variety', 'like', $search) ->orWhere('so.purpose_name', 'like', $search) ->orWhere('ms.seed_name', 'like', $search) ->orWhere('u.name', 'like', $search); }); } $operations = $query->orderBy('so.id', 'desc') ->paginate(10) ->appends($request->all()); // Session filter 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; } } $machineIds = []; $tractorIds = []; foreach ($operations as $op) { if (!empty($op->machine_id)) { $machineIds = array_merge($machineIds, array_map('trim', explode(',', $op->machine_id))); } if (!empty($op->tractor_id)) { $tractorIds = array_merge($tractorIds, array_map('trim', explode(',', $op->tractor_id))); } } $machines = DB::table('master_machine')->whereIn('id', array_unique($machineIds))->pluck('machine_name', 'id'); $tractors = DB::table('master_tractors')->whereIn('id', array_unique($tractorIds))->pluck('tractor_name', 'id'); $manpower = DB::table('master_manpower')->pluck('category', 'id'); return view('sowing.sowing_operations', compact( 'blocks', 'operations', 'manpower', 'machines', 'tractors', 'sites', 'selectedSiteId', 'role' )); } }