MIF_E31222756/resources/views/services/edit.blade.php

408 lines
25 KiB
PHP

@extends('Dashboard.layouts.main')
@section('title', 'Edit Layanan')
@section('content')
<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="page-title-box">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="{{ route('dashboard') }}">Dashboard</a></li>
<li class="breadcrumb-item"><a href="{{ route('services.index') }}">Layanan</a></li>
<li class="breadcrumb-item active">Edit</li>
</ol>
</div>
<h4 class="page-title">Edit Layanan</h4>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<form action="{{ route('services.update', $service->id) }}" method="POST" enctype="multipart/form-data">
@csrf
@method('PUT')
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="jenis_permintaan">Jenis Permintaan <span class="text-danger">*</span></label>
<select class="form-control @error('jenis_permintaan') is-invalid @enderror" id="jenis_permintaan" name="jenis_permintaan" required>
<option value="">Pilih Jenis Permintaan</option>
<option value="Pengambilan Contoh Uji" {{ old('jenis_permintaan', $service->jenis_permintaan) == 'Pengambilan Contoh Uji' ? 'selected' : '' }}>Pengambilan Contoh Uji</option>
<option value="Pengambilan dan Pengujian Contoh Uji" {{ old('jenis_permintaan', $service->jenis_permintaan) == 'Pengambilan dan Pengujian Contoh Uji' ? 'selected' : '' }}>Pengambilan dan Pengujian Contoh Uji</option>
</select>
@error('jenis_permintaan')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="tanggal_uji">Tanggal Uji <span class="text-danger">*</span></label>
<input type="date" class="form-control @error('tanggal_uji') is-invalid @enderror" id="tanggal_uji" name="tanggal_uji" value="{{ old('tanggal_uji', $service->tanggal_uji) }}" required>
@error('tanggal_uji')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="parameter">Parameter <span class="text-danger">*</span></label>
<select class="form-control @error('parameter') is-invalid @enderror" id="parameter" name="parameter" required>
<option value="">Pilih Parameter</option>
<option value="TDS" {{ old('parameter', $service->parameter) == 'TDS' ? 'selected' : '' }}>Jumlah Zat Padat Terlarut (TDS) - Rp. 22.000</option>
<option value="TSS" {{ old('parameter', $service->parameter) == 'TSS' ? 'selected' : '' }}>Total Suspended Solid (TSS) - Rp. 22.000</option>
<option value="Kekeruhan" {{ old('parameter', $service->parameter) == 'Kekeruhan' ? 'selected' : '' }}>Kekeruhan - Rp. 15.000</option>
<option value="Suhu" {{ old('parameter', $service->parameter) == 'Suhu' ? 'selected' : '' }}>Suhu - Rp. 3.500</option>
<option value="Daya Hantar Listrik" {{ old('parameter', $service->parameter) == 'Daya Hantar Listrik' ? 'selected' : '' }}>Daya Hantar Listrik - Rp. 12.500</option>
<option value="pH" {{ old('parameter', $service->parameter) == 'pH' ? 'selected' : '' }}>pH - Rp. 10.500</option>
<option value="Amonia" {{ old('parameter', $service->parameter) == 'Amonia' ? 'selected' : '' }}>Amonia - Rp. 37.000</option>
<option value="DO" {{ old('parameter', $service->parameter) == 'DO' ? 'selected' : '' }}>Oksigen Terlarut (DO) - Rp. 16.000</option>
<option value="Nitrat" {{ old('parameter', $service->parameter) == 'Nitrat' ? 'selected' : '' }}>Nitrat - Rp. 32.000</option>
<option value="Nitrit" {{ old('parameter', $service->parameter) == 'Nitrit' ? 'selected' : '' }}>Nitrit - Rp. 33.500</option>
<option value="BOD" {{ old('parameter', $service->parameter) == 'BOD' ? 'selected' : '' }}>BOD - Rp. 40.000</option>
<option value="COD" {{ old('parameter', $service->parameter) == 'COD' ? 'selected' : '' }}>COD - Rp. 58.000</option>
<option value="Tembaga" {{ old('parameter', $service->parameter) == 'Tembaga' ? 'selected' : '' }}>Tembaga - Rp. 50.000</option>
<option value="Besi" {{ old('parameter', $service->parameter) == 'Besi' ? 'selected' : '' }}>Besi - Rp. 51.000</option>
<option value="Mangan" {{ old('parameter', $service->parameter) == 'Mangan' ? 'selected' : '' }}>Mangan - Rp. 52.800</option>
</select>
<small class="form-text text-muted">Pilih parameter uji yang diinginkan.</small>
@error('parameter')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="pengujian_kualitas_air">Pengujian Kualitas Air <span class="text-danger">*</span></label>
<select class="form-control @error('pengujian_kualitas_air') is-invalid @enderror" id="pengujian_kualitas_air" name="pengujian_kualitas_air" required>
<option value="">Pilih Jenis Pengujian</option>
<option value="Air Limbah" {{ old('pengujian_kualitas_air', $service->pengujian_kualitas_air) == 'Air Limbah' ? 'selected' : '' }}>Air Limbah</option>
<option value="Air Bersih" {{ old('pengujian_kualitas_air', $service->pengujian_kualitas_air) == 'Air Bersih' ? 'selected' : '' }}>Air Bersih</option>
<option value="Air Badan Air" {{ old('pengujian_kualitas_air', $service->pengujian_kualitas_air) == 'Air Badan Air' ? 'selected' : '' }}>Air Badan Air</option>
</select>
@error('pengujian_kualitas_air')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="total_sampel">Total Sampel <span class="text-danger">*</span></label>
<input type="number" class="form-control @error('total_sampel') is-invalid @enderror" id="total_sampel" name="total_sampel" min="1" value="{{ old('total_sampel', $service->total_sampel) }}" required>
<small class="form-text text-muted">Jumlah sampel yang akan diambil/diuji</small>
@error('total_sampel')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="jarak_pengambilan_sampel">Jarak Pengambilan Sampel <span class="text-danger">*</span></label>
<select class="form-control @error('jarak_pengambilan_sampel') is-invalid @enderror" id="jarak_pengambilan_sampel" name="jarak_pengambilan_sampel" required>
<option value="">Pilih Jarak Pengambilan</option>
<option value="jarak < 100km" {{ old('jarak_pengambilan_sampel', $service->jarak_pengambilan_sampel) == 'jarak < 100km' ? 'selected' : '' }}>Jarak < 100 km (Rp. 273.000)</option>
<option value="jarak 100km - 150km" {{ old('jarak_pengambilan_sampel', $service->jarak_pengambilan_sampel) == 'jarak 100km - 150km' ? 'selected' : '' }}>Jarak 100 km - 150 km (Rp. 373.000)</option>
<option value="jarak > 150km" {{ old('jarak_pengambilan_sampel', $service->jarak_pengambilan_sampel) == 'jarak > 150km' ? 'selected' : '' }}>Jarak > 150 km (Rp. 473.000)</option>
</select>
@error('jarak_pengambilan_sampel')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
@if(Auth::user()->role === 'admin')
<hr>
<h5 class="text-primary">Informasi Admin</h5>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="status">Status Layanan <span class="text-danger">*</span></label>
<select class="form-control @error('status') is-invalid @enderror" id="status" name="status" required>
<option value="Menunggu" {{ old('status', $service->status) == 'Menunggu' ? 'selected' : '' }}>Menunggu</option>
<option value="Diterima" {{ old('status', $service->status) == 'Diterima' ? 'selected' : '' }}>Diterima</option>
<option value="Diproses" {{ old('status', $service->status) == 'Diproses' ? 'selected' : '' }}>Diproses</option>
<option value="Selesai" {{ old('status', $service->status) == 'Selesai' ? 'selected' : '' }}>Selesai</option>
<option value="Ditolak" {{ old('status', $service->status) == 'Ditolak' ? 'selected' : '' }}>Ditolak</option>
</select>
@error('status')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="tanggal_selesai_uji">Tanggal Selesai Uji</label>
<input type="date" class="form-control @error('tanggal_selesai_uji') is-invalid @enderror" id="tanggal_selesai_uji" name="tanggal_selesai_uji" value="{{ old('tanggal_selesai_uji', $service->tanggal_selesai_uji) }}">
@error('tanggal_selesai_uji')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="biaya_retribusi_parameter">Biaya Retribusi Parameter (Rp)</label>
<input type="number" class="form-control @error('biaya_retribusi_parameter') is-invalid @enderror" id="biaya_retribusi_parameter" name="biaya_retribusi_parameter" min="0" value="{{ old('biaya_retribusi_parameter', $service->biaya_retribusi_parameter) }}">
@error('biaya_retribusi_parameter')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group" id="keteranganContainer">
<label for="keterangan">Keterangan Status</label>
<textarea class="form-control @error('keterangan') is-invalid @enderror" id="keterangan" name="keterangan" rows="3" placeholder="Masukkan keterangan status layanan (wajib jika status Diterima atau Ditolak)">{{ old('keterangan', $service->keterangan) }}</textarea>
<small class="form-text text-muted">Tuliskan keterangan mengapa layanan diterima atau ditolak. Keterangan ini akan ditampilkan kepada pelanggan.</small>
@error('keterangan')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="biaya_retribusi_jarak">Biaya Retribusi Jarak (Rp)</label>
<input type="number" class="form-control @error('biaya_retribusi_jarak') is-invalid @enderror" id="biaya_retribusi_jarak" name="biaya_retribusi_jarak" min="0" value="{{ old('biaya_retribusi_jarak', $service->biaya_retribusi_jarak) }}">
@error('biaya_retribusi_jarak')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="biaya_retribusi">Total Biaya Retribusi (Rp)</label>
<input type="number" class="form-control @error('biaya_retribusi') is-invalid @enderror" id="biaya_retribusi" name="biaya_retribusi" min="0" value="{{ old('biaya_retribusi', $service->biaya_retribusi) }}">
<small class="form-text text-muted">Dihitung otomatis dari biaya parameter dan jarak</small>
@error('biaya_retribusi')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="form-group">
<label for="file_hasil_uji">File Hasil Uji</label>
<input type="file" class="form-control-file @error('file_hasil_uji') is-invalid @enderror" id="file_hasil_uji" name="file_hasil_uji">
<small class="form-text text-muted">Format yang diizinkan: PDF, DOC, DOCX (Maks. 10MB)</small>
@if($service->file_hasil_uji)
<p class="mt-2">
<a href="{{ asset('uploads/hasil_uji/'.$service->file_hasil_uji) }}" target="_blank" class="btn btn-sm btn-info">
<i class="fe-file-text"></i> Lihat File
</a>
</p>
@endif
@error('file_hasil_uji')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
@endif
<div class="mt-3 text-right">
<a href="{{ route('services.index') }}" class="btn btn-secondary mr-2">Batal</a>
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
document.addEventListener('DOMContentLoaded', function() {
// Fungsi untuk menampilkan/menyembunyikan kolom keterangan berdasarkan status
function toggleKeterangan() {
var status = document.getElementById('status').value;
var keteranganContainer = document.getElementById('keteranganContainer');
var keteranganLabel = keteranganContainer.querySelector('label');
var keteranganHelpText = keteranganContainer.querySelector('small');
if (status === 'Diterima' || status === 'Ditolak') {
keteranganContainer.style.display = 'block';
keteranganLabel.innerHTML = 'Keterangan Status <span class="text-danger">*</span>';
if (status === 'Diterima') {
keteranganHelpText.innerText = 'Tuliskan keterangan mengapa layanan diterima. Keterangan ini akan ditampilkan kepada pelanggan.';
} else {
keteranganHelpText.innerText = 'Tuliskan alasan mengapa layanan ditolak. Keterangan ini akan ditampilkan kepada pelanggan.';
}
} else {
keteranganContainer.style.display = 'none';
}
}
// Event listener untuk perubahan status
document.getElementById('status').addEventListener('change', toggleKeterangan);
// Jalankan fungsi saat halaman dimuat
toggleKeterangan();
// Fungsi untuk menghitung total biaya
function hitungTotalBiaya() {
var biayaParameter = parseInt(document.getElementById('biaya_retribusi_parameter').value) || 0;
var biayaJarak = parseInt(document.getElementById('biaya_retribusi_jarak').value) || 0;
var totalBiaya = biayaParameter + biayaJarak;
document.getElementById('biaya_retribusi').value = totalBiaya;
}
// Event listener untuk input biaya parameter
document.getElementById('biaya_retribusi_parameter').addEventListener('input', hitungTotalBiaya);
// Event listener untuk input biaya jarak
document.getElementById('biaya_retribusi_jarak').addEventListener('input', hitungTotalBiaya);
// Event listener untuk jarak pengambilan sampel
document.getElementById('jarak_pengambilan_sampel').addEventListener('change', function() {
var jarak = this.value;
var biayaJarak = 0;
if (jarak === 'jarak < 100km') {
biayaJarak = 273000;
} else if (jarak === 'jarak 100km - 150km') {
biayaJarak = 373000;
} else if (jarak === 'jarak > 150km') {
biayaJarak = 473000;
}
document.getElementById('biaya_retribusi_jarak').value = biayaJarak;
hitungTotalBiaya();
});
// Event listener untuk parameter
document.getElementById('parameter').addEventListener('change', function() {
var parameter = this.value;
var hargaParameter = 0;
switch(parameter) {
case 'TDS':
hargaParameter = 22000;
break;
case 'TSS':
hargaParameter = 22000;
break;
case 'Kekeruhan':
hargaParameter = 15000;
break;
case 'Suhu':
hargaParameter = 3500;
break;
case 'Daya Hantar Listrik':
hargaParameter = 12500;
break;
case 'pH':
hargaParameter = 10500;
break;
case 'Amonia':
hargaParameter = 37000;
break;
case 'DO':
hargaParameter = 16000;
break;
case 'Nitrat':
hargaParameter = 32000;
break;
case 'Nitrit':
hargaParameter = 33500;
break;
case 'BOD':
hargaParameter = 40000;
break;
case 'COD':
hargaParameter = 58000;
break;
case 'Tembaga':
hargaParameter = 50000;
break;
case 'Besi':
hargaParameter = 51000;
break;
case 'Mangan':
hargaParameter = 52800;
break;
default:
hargaParameter = 0;
}
var totalSampel = parseInt(document.getElementById('total_sampel').value) || 1;
document.getElementById('biaya_retribusi_parameter').value = hargaParameter * totalSampel;
hitungTotalBiaya();
});
// Event listener untuk total sampel
document.getElementById('total_sampel').addEventListener('input', function() {
var parameter = document.getElementById('parameter').value;
var hargaParameter = 0;
switch(parameter) {
case 'TDS':
hargaParameter = 22000;
break;
case 'TSS':
hargaParameter = 22000;
break;
case 'Kekeruhan':
hargaParameter = 15000;
break;
case 'Suhu':
hargaParameter = 3500;
break;
case 'Daya Hantar Listrik':
hargaParameter = 12500;
break;
case 'pH':
hargaParameter = 10500;
break;
case 'Amonia':
hargaParameter = 37000;
break;
case 'DO':
hargaParameter = 16000;
break;
case 'Nitrat':
hargaParameter = 32000;
break;
case 'Nitrit':
hargaParameter = 33500;
break;
case 'BOD':
hargaParameter = 40000;
break;
case 'COD':
hargaParameter = 58000;
break;
case 'Tembaga':
hargaParameter = 50000;
break;
case 'Besi':
hargaParameter = 51000;
break;
case 'Mangan':
hargaParameter = 52800;
break;
default:
hargaParameter = 0;
}
var totalSampel = parseInt(this.value) || 1;
document.getElementById('biaya_retribusi_parameter').value = hargaParameter * totalSampel;
hitungTotalBiaya();
});
// Hitung total saat halaman dimuat
hitungTotalBiaya();
});
</script>
@endsection