/
home
/
sjslayjy
/
public_html
/
ccbfsoution
/
resources
/
views
/
haymaking
/
Upload File
HOME
@extends('layouts.app') @section('content') <style> body { background-color: #f0f2f5; overflow-x: auto; } .table td { white-space: nowrap; } .container-block { background: white; padding: 30px; border-radius: 18px; box-shadow: 0 10px 25px rgba(0,0,0,0.08); margin-top: 20px; } .top-sticky-bar { position: sticky; top: 0; z-index: 1020; background-color: #fff; padding: 15px 30px; margin: -30px -30px 20px -30px; border-radius: 18px 18px 0 0; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } .form-inline-custom { width: 100%; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } .form-inline-custom .left-group, .form-inline-custom .right-group { display: flex; align-items: center; gap: 10px; } @media (max-width: 768px) { .form-inline-custom { flex-direction: column; align-items: flex-start; } .form-inline-custom .left-group, .form-inline-custom .right-group { width: 100%; margin-bottom: 10px; } } .form-select.custom-select { min-width: 161px; padding: 6px 15px; border-radius: 8px; background-color: #fff; color: #212529; border: 1px solid #ced4da; appearance: none; background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='gray' class='bi bi-caret-down-fill' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658A.5.5 0 0 1 2.825 5h10.35a.5.5 0 0 1 .374.84l-4.796 5.48a.5.5 0 0 1-.756 0z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 16px 16px; cursor: pointer; transition: all 0.2s ease-in-out; } .search-box input { width: 250px; padding: 10px 15px; border-radius: 50px; border: 1px solid #ced4da; } .badge { font-size: 0.85rem; font-weight: 500; padding: 5px 10px; border-radius: 20px; display: inline-flex; align-items: center; margin: 2px; } .bg-success-subtle { background-color: #e0f7e9; color: #2e7d32; border: 1px solid #81c784; } .bg-warning-subtle { background-color: #fff3cd; color: #856404; border: 1px solid #ffecb5; } .bg-info-subtle { background-color: #d1ecf1; color: #0c5460; border: 1px solid #b6d4ea; } .pagination { justify-content: center; margin-top: 20px; } .table-responsive { overflow-y: auto; max-height: calc(100vh - 250px); } .table thead th { position: sticky; top: 0; background-color: #f8f9fa; z-index: 10; box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.1); } .bg-kharif { background: linear-gradient(135deg, #27ae60, #2ecc71); color: white; } .bg-rabi { background: linear-gradient(135deg, #f39c12, #e67e22); color: white; } .bg-zaid { background: linear-gradient(135deg, #8e44ad, #9b59b6); color: white; } </style> <div class="container-block my-3"> <div class="top-sticky-bar"> <form method="GET" class="form-inline-custom"> <div class="d-flex flex-wrap align-items-end w-100 gap-3"> <div class="mb-2"> <label for="site_id" class="form-label">Location</label> @if ($role == 1) <select name="site_id" id="site_id" class="form-select custom-select" onchange="this.form.submit()"> <option value="">All Sites</option> @foreach ($sites as $id => $name) <option value="{{ $id }}" {{ $selectedSiteId == $id ? 'selected' : '' }}> {{ $name }} </option> @endforeach </select> @else <input type="text" class="form-select custom-select" value="{{ $sites[$selectedSiteId] ?? 'N/A' }}" readonly> @endif </div> <div class="mb-2"> <label for="block_name" class="form-label">Block</label> <select name="block_name" id="block_name" class="form-select custom-select" onchange="this.form.submit()"> <option value="">Select Block</option> @foreach ($blocks as $block) <option value="{{ $block }}" {{ request('block_name') == $block ? 'selected' : '' }}> Block {{ $block }} </option> @endforeach </select> </div> <div class="form-group-compact"> <label for="sessionSelect" class="form-label"> <i class="fas fa-calendar-alt"></i> Season </label> <select id="sessionSelect" name="session" class="form-select custom-select-enhanced" onchange="this.form.submit()" style="margin-bottom: 10px;"> <option value="">All Seasons</option> <option value="kharif" {{ request('session') == 'kharif' ? 'selected' : '' }}>🌾 Kharif</option> <option value="rabi" {{ request('session') == 'rabi' ? 'selected' : '' }}>🌾 Rabi </option> <option value="zaid" {{ request('session') == 'zaid' ? 'selected' : '' }}>🌾 Zaid</option> </select> </div> <div class="ms-auto mb-2"> <label for="liveSearch" class="form-label visually-hidden">Search</label> <div class="input-group search-box shadow-sm rounded-pill" style="width: 284px;"> <input type="text" id="liveSearch" name="search" value="{{ request('search') }}" class="form-control border-0 rounded-pill" placeholder="Search..." > </div> </div> </div> </form> </div> <div id="haymakingTable"> <div class="table-responsive"> <table class="table table-bordered"> <thead> <tr> <th>Sr. No.</th> <th>Block Name</th> <th>Plot No.</th> <th>Area (Acre)</th> <th>Area Covered (Acre)</th> <th>Date</th> <th>Seed Name</th> <th>Total Green Fodder Yield (MT)</th> <th>Fodder Used for Hay Making (MT)</th> <th>Processed Output Yield (MT)(80%)</th> <th>Unprocessed Fodder Remaining (MT)</th> <th>Machine Used</th> <th>Tractor Used</th> <th>HSD Consumption (Ltr)</th> <th>Time (Hrs)</th> <th>Manpower Type</th> <th>Unskilled</th> <th>Semi-Skilled 1</th> <th>Semi-Skilled 2</th> <th>Major Maintenance (Rs)</th> <th>Total Cost (Rs)</th> <th>Supervisor Name</th> </tr> </thead> <tbody> @forelse($haymakings as $i => $row) @php // Season detection logic $dateField = $row->date ?? $row->created_at ?? now(); $date = \Carbon\Carbon::parse($dateField); $month = $date->month; if ($month >= 6 && $month <= 10) { $season = 'kharif'; $seasonLabel = 'Kharif'; $seasonClass = 'bg-kharif'; } elseif ($month >= 11 || $month <= 3) { $season = 'rabi'; $seasonLabel = 'Rabi'; $seasonClass = 'bg-rabi'; } else { $season = 'zaid'; $seasonLabel = 'Zaid'; $seasonClass = 'bg-zaid'; } // Frontend filter $sessionFilter = request('session'); if ($sessionFilter && $sessionFilter !== $season) { continue; } @endphp <tr> <td>{{ $haymakings->firstItem() + $i }}</td> <td>{{ $row->block_name ?? 'N/A' }}</td> <td>{{ $row->plot_name }}</td> <td>{{ $row->area }}</td> <td>{{ $row->area_covered ?? 'N/A' }}</td> <td>{{ $row->harvest_date ? \Carbon\Carbon::parse($row->harvest_date)->format('d-m-Y') : '-' }}</td> <td>{{ $row->seed_name ?? 'N/A' }}</td> <td>{{ number_format($row->total_available_yield, 2) }}</td> <td>{{ number_format($row->required_yield_mt, 2) }}</td> <td>{{ number_format($row->adjusted_yield_mt, 2) }}</td> <td> {{ number_format(($row->total_available_yield ?? 0) - ($row->required_yield_mt ?? 0), 2) }} </td> <td> @if (!empty($row->machine_names_display) && $row->machine_names_display !== '-') <div class="d-flex flex-wrap justify-content-center gap-1"> @foreach (explode(',', $row->machine_names_display) as $name) <span class="badge bg-success-subtle"> <i class="fas fa-cogs me-1"></i> {{ trim($name) }} </span> @endforeach </div> @else - @endif </td> <td> @if (!empty($row->tractor_names_display) && $row->tractor_names_display !== '-') <div class="d-flex flex-wrap justify-content-center gap-1"> @foreach (explode(',', $row->tractor_names_display) as $name) <span class="badge bg-warning-subtle"> <i class="fas fa-tractor me-1"></i> {{ trim($name) }} </span> @endforeach </div> @else - @endif </td> <td>{{ $row->hsd_consumption ?? '-' }}</td> <td>{{ $row->hours_used ?? '-' }}</td> <td>{{ $row->manpower_type ?? '-' }}</td> <td>{{ $row->unskilled ?? 0 }}</td> <td>{{ $row->semi_skilled_1 ?? 0 }}</td> <td>{{ $row->semi_skilled_2 ?? 0 }}</td> <td> @if (!empty($row->parsed_major_maintenance)) @foreach ($row->parsed_major_maintenance as $maintenance) {{ $maintenance['spare_part'] ?? '-' }}: {{ number_format($maintenance['value'] ?? 0, 2) }}<br> @endforeach @else {{ $row->major_cost ? number_format($row->major_cost, 2) : '-' }} @endif </td> <td>{{ number_format($row->total_cost ?? 0, 2) }}</td> <td>{{ $row->user_name ?? '-' }}</td> </tr> @empty <tr> <td colspan="20" class="text-center py-4 text-muted">No silage processing records found.</td> </tr> @endforelse </tbody> </table> </div> <div class="card-footer d-flex justify-content-center"> {{ $haymakings->links('pagination::bootstrap-5') }} </div> </div> </div> <script> let debounceTimer; document.getElementById('liveSearch').addEventListener('keyup', function () { clearTimeout(debounceTimer); const query = this.value; debounceTimer = setTimeout(() => { const url = new URL(window.location.href); url.searchParams.set('search', query); fetch(url) .then(response => response.text()) .then(html => { const parser = new DOMParser(); const doc = parser.parseFromString(html, 'text/html'); const newTable = doc.querySelector('#haymakingTable'); document.querySelector('#haymakingTable').innerHTML = newTable.innerHTML; }); }, 300); }); </script> @endsection