update daftar pengguna

This commit is contained in:
2026-06-15 12:05:03 +07:00
parent 9d3b64a54d
commit d7e2cd7692
9 changed files with 471 additions and 272 deletions
@@ -4,43 +4,47 @@
@method('PUT')
@endif
@php
$detailPanen = isset($produksi) ? $produksi->panenTanaman->first() : null;
@endphp
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Petani <span class="text-danger">*</span></label>
<select name="profile_id" id="profile_id" class="form-select @error('profile_id') is-invalid @enderror" required>
<select name="farmer_id" id="profile_id" class="form-select @error('farmer_id') is-invalid @enderror" required>
<option value="">Pilih Petani</option>
@foreach($profiles as $profile)
<option value="{{ $profile->id }}" {{ old('profile_id', $produksi->profile_id ?? '') == $profile->id ? 'selected' : '' }}>{{ $profile->nama }}</option>
<option value="{{ $profile->id }}" {{ old('farmer_id', $produksi->farmer_id ?? '') == $profile->id ? 'selected' : '' }}>{{ $profile->nama }}</option>
@endforeach
</select>
@error('profile_id')<div class="invalid-feedback">{{ $message }}</div>@enderror
@error('farmer_id')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Lahan <span class="text-danger">*</span></label>
<select name="lahan_id" id="lahan_id" class="form-select @error('lahan_id') is-invalid @enderror" required disabled>
<select name="land_id" id="lahan_id" class="form-select @error('land_id') is-invalid @enderror" required disabled>
<option value="">Pilih Petani terlebih dahulu</option>
</select>
@error('lahan_id')<div class="invalid-feedback">{{ $message }}</div>@enderror
@error('land_id')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Komoditas Hasil Panen <span class="text-danger">*</span></label>
<select name="komoditas_id" class="form-select @error('komoditas_id') is-invalid @enderror" required>
<select name="commodity_name" class="form-select @error('commodity_name') is-invalid @enderror" required>
<option value="">Pilih Komoditas</option>
@foreach($komoditas as $item)
<option value="{{ $item->id }}" {{ old('komoditas_id', $produksi->komoditas_id ?? '') == $item->id ? 'selected' : '' }}>{{ $item->nama }}</option>
<option value="{{ $item->nama }}" {{ old('commodity_name', $detailPanen->commodity_name ?? '') == $item->nama ? 'selected' : '' }}>{{ $item->nama }}</option>
@endforeach
</select>
@error('komoditas_id')<div class="invalid-feedback">{{ $message }}</div>@enderror
@error('commodity_name')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Tanggal Panen <span class="text-danger">*</span></label>
<input type="date" name="tanggal_panen" class="form-control @error('tanggal_panen') is-invalid @enderror" value="{{ old('tanggal_panen', isset($produksi) && $produksi->tanggal_panen ? $produksi->tanggal_panen->format('Y-m-d') : '') }}" required>
@error('tanggal_panen')<div class="invalid-feedback">{{ $message }}</div>@enderror
<input type="date" name="harvest_date" class="form-control @error('harvest_date') is-invalid @enderror" value="{{ old('harvest_date', isset($produksi) && $produksi->harvest_date ? $produksi->harvest_date->format('Y-m-d') : '') }}" required>
@error('harvest_date')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Jumlah Hasil Panen <span class="text-danger">*</span></label>
<input type="number" step="0.01" name="jumlah_panen" class="form-control @error('jumlah_panen') is-invalid @enderror" value="{{ old('jumlah_panen', $produksi->jumlah_panen ?? '') }}" required>
@error('jumlah_panen')<div class="invalid-feedback">{{ $message }}</div>@enderror
<input type="number" step="0.01" name="weight_kg" class="form-control @error('weight_kg') is-invalid @enderror" value="{{ old('weight_kg', $detailPanen->weight_kg ?? '') }}" required>
@error('weight_kg')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Satuan Panen <span class="text-danger">*</span></label>
@@ -52,33 +56,19 @@
@error('satuan')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Luas Tanam (ha)</label>
<input type="number" step="0.01" name="luas_tanam" class="form-control @error('luas_tanam') is-invalid @enderror" value="{{ old('luas_tanam', $produksi->luas_tanam ?? '') }}">
@error('luas_tanam')<div class="invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label">Judul Panen</label>
<input type="text" name="title" class="form-control @error('title') is-invalid @enderror" value="{{ old('title', $produksi->title ?? '') }}" placeholder="Contoh: Panen Padi Juni 2026">
@error('title')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Luas Panen (ha)</label>
<input type="number" step="0.01" name="luas_panen" class="form-control @error('luas_panen') is-invalid @enderror" value="{{ old('luas_panen', $produksi->luas_panen ?? '') }}">
@error('luas_panen')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Status Panen <span class="text-danger">*</span></label>
<select name="status_panen" class="form-select @error('status_panen') is-invalid @enderror" required>
@foreach(['selesai' => 'Selesai', 'panen_sebagian' => 'Panen Sebagian'] as $value => $label)
<option value="{{ $value }}" {{ old('status_panen', $produksi->status_panen ?? 'selesai') == $value ? 'selected' : '' }}>{{ $label }}</option>
@endforeach
</select>
@error('status_panen')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Periode Panen</label>
<input type="text" name="periode" class="form-control @error('periode') is-invalid @enderror" value="{{ old('periode', $produksi->periode ?? '') }}" placeholder="Contoh: Musim Tanam I 2026">
@error('periode')<div class="invalid-feedback">{{ $message }}</div>@enderror
<label class="form-label">Kondisi Lahan Saat Panen</label>
<input type="text" name="land_description" class="form-control @error('land_description') is-invalid @enderror" value="{{ old('land_description', $produksi->land_description ?? '') }}">
@error('land_description')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
<div class="col-12 mb-3">
<label class="form-label">Catatan</label>
<textarea name="catatan" class="form-control @error('catatan') is-invalid @enderror" rows="4" placeholder="Catatan kendala atau informasi tambahan">{{ old('catatan', $produksi->catatan ?? '') }}</textarea>
@error('catatan')<div class="invalid-feedback">{{ $message }}</div>@enderror
<textarea name="notes" class="form-control @error('notes') is-invalid @enderror" rows="4" placeholder="Catatan kendala atau informasi tambahan">{{ old('notes', $produksi->notes ?? '') }}</textarea>
@error('notes')<div class="invalid-feedback">{{ $message }}</div>@enderror
</div>
</div>
@@ -101,7 +91,7 @@
document.addEventListener('DOMContentLoaded', function () {
const profileSelect = document.getElementById('profile_id');
const lahanSelect = document.getElementById('lahan_id');
const selectedLahanId = "{{ old('lahan_id', $produksi->lahan_id ?? '') }}";
const selectedLahanId = "{{ old('land_id', $produksi->land_id ?? '') }}";
const lahanOptions = @json($lahanOptions);
function renderLahanOptions() {
@@ -26,17 +26,12 @@
<label class="ms-2 text-nowrap">entries</label>
</div>
<div class="col-md-auto d-flex gap-2">
<select name="komoditas_id" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
<select name="komoditas" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
<option value="">Semua Komoditas</option>
@foreach($komoditas as $item)
<option value="{{ $item->id }}" {{ request('komoditas_id') == $item->id ? 'selected' : '' }}>{{ $item->nama }}</option>
<option value="{{ $item->nama }}" {{ request('komoditas') == $item->nama ? 'selected' : '' }}>{{ $item->nama }}</option>
@endforeach
</select>
<select name="status_panen" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
<option value="">Semua Status</option>
<option value="panen_sebagian" {{ request('status_panen') == 'panen_sebagian' ? 'selected' : '' }}>Panen Sebagian</option>
<option value="selesai" {{ request('status_panen') == 'selesai' ? 'selected' : '' }}>Selesai</option>
</select>
<div class="input-group input-group-sm w-auto">
<input type="text" name="search" class="form-control" placeholder="Cari hasil panen..." value="{{ request('search') }}">
<button type="submit" class="btn btn-outline-primary"><i class="ti tabler-search"></i></button>
@@ -55,35 +50,31 @@
<th>Lahan</th>
<th>Tanggal Panen</th>
<th>Hasil Panen</th>
<th>Produktivitas</th>
<th>Status</th>
<th>Judul</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@forelse($produksi as $index => $item)
@php($detailPanen = $item->panenTanaman->first())
<tr>
<td>{{ $produksi->firstItem() + $index }}</td>
<td>{{ $item->komoditas->nama ?? '-' }}</td>
<td>{{ $item->profile->nama ?? '-' }}</td>
<td>{{ $detailPanen->commodity_name ?? '-' }}</td>
<td>{{ $item->petani->nama ?? '-' }}</td>
<td>{{ $item->lahan->nama ?? '-' }}</td>
<td>{{ $item->tanggal_panen ? $item->tanggal_panen->format('d-m-Y') : '-' }}</td>
<td>{{ $item->jumlah_panen ?? '-' }} {{ $item->jumlah_panen ? $item->satuan : '' }}</td>
<td>{{ $item->produktivitas ? $item->produktivitas . ' ' . $item->satuan . '/ha' : '-' }}</td>
<td>
@php($statusClass = ['panen_sebagian' => 'warning', 'selesai' => 'success'][$item->status_panen] ?? 'secondary')
<span class="badge bg-label-{{ $statusClass }}">{{ ucwords(str_replace('_', ' ', $item->status_panen)) }}</span>
</td>
<td>{{ $item->harvest_date ? $item->harvest_date->format('d-m-Y') : '-' }}</td>
<td>{{ $detailPanen ? $detailPanen->weight_kg . ' kg' : '-' }}</td>
<td>{{ $item->title ?? '-' }}</td>
<td>
<div class="d-flex align-items-center">
<a href="{{ route('produksi.edit', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill"><i class="ti tabler-edit ti-md"></i></a>
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill delete-record" data-id="{{ $item->id }}" data-nama="{{ $item->komoditas->nama ?? 'Hasil Panen' }}"><i class="ti tabler-trash ti-md"></i></a>
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill delete-record" data-id="{{ $item->id }}" data-nama="{{ $detailPanen->commodity_name ?? 'Hasil Panen' }}"><i class="ti tabler-trash ti-md"></i></a>
<a href="{{ route('produksi.show', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill"><i class="ti tabler-eye ti-md"></i></a>
</div>
</td>
</tr>
@empty
<tr><td colspan="9" class="text-center py-4">Tidak ada data hasil panen ditemukan.</td></tr>
<tr><td colspan="8" class="text-center py-4">Tidak ada data hasil panen ditemukan.</td></tr>
@endforelse
</tbody>
</table>
@@ -9,18 +9,16 @@
</div>
<div class="card-body pt-4">
<div class="row g-3">
@php($detailPanen = $produksi->panenTanaman->first())
@foreach([
'Komoditas' => $produksi->komoditas->nama ?? '-',
'Petani' => $produksi->profile->nama ?? '-',
'Judul Panen' => $produksi->title,
'Komoditas' => $detailPanen->commodity_name ?? '-',
'Petani' => $produksi->petani->nama ?? '-',
'Lahan' => $produksi->lahan->nama ?? '-',
'Tanggal Panen' => $produksi->tanggal_panen ? $produksi->tanggal_panen->format('d-m-Y') : '-',
'Jumlah Hasil Panen' => $produksi->jumlah_panen ? $produksi->jumlah_panen . ' ' . $produksi->satuan : '-',
'Satuan Panen' => $produksi->satuan,
'Luas Tanam' => $produksi->luas_tanam ? $produksi->luas_tanam . ' ha' : '-',
'Luas Panen' => $produksi->luas_panen ? $produksi->luas_panen . ' ha' : '-',
'Produktivitas' => $produksi->produktivitas ? $produksi->produktivitas . ' ' . $produksi->satuan . '/ha' : '-',
'Status Panen' => ucwords(str_replace('_', ' ', $produksi->status_panen)),
'Periode Panen' => $produksi->periode,
'Tanggal Panen' => $produksi->harvest_date ? $produksi->harvest_date->format('d-m-Y') : '-',
'Jumlah Hasil Panen' => $detailPanen ? $detailPanen->weight_kg . ' kg' : '-',
'Kondisi Lahan Saat Panen' => $produksi->land_description,
'Status Sinkronisasi' => $produksi->sync_status,
] as $label => $value)
<div class="col-md-4">
<label class="form-label text-muted">{{ $label }}</label>
@@ -29,7 +27,7 @@
@endforeach
<div class="col-12">
<label class="form-label text-muted">Catatan</label>
<div>{{ $produksi->catatan ?? '-' }}</div>
<div>{{ $produksi->notes ?? '-' }}</div>
</div>
</div>
</div>