Compare commits
2
Commits
62f0f1bdbc
...
090153e53a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
090153e53a | ||
|
|
a79a93d291 |
@@ -27,14 +27,14 @@ class KomoditasController extends Controller
|
|||||||
|
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
// dd($request->all());
|
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama'],
|
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama'],
|
||||||
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode'],
|
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode'],
|
||||||
|
'is_utama' => ['nullable', 'boolean'],
|
||||||
], [
|
], [
|
||||||
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
||||||
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
||||||
'kode.max' => 'Kode komoditas maksimal 2 Digit.'
|
'kode.max' => 'Kode komoditas maksimal 2 Digit.'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if ($validator->fails()) {
|
if ($validator->fails()) {
|
||||||
@@ -43,7 +43,8 @@ class KomoditasController extends Controller
|
|||||||
|
|
||||||
Komoditas::create([
|
Komoditas::create([
|
||||||
'nama' => $request->nama,
|
'nama' => $request->nama,
|
||||||
'kode' => $request->kode,
|
'kode' => $request->kode,
|
||||||
|
'is_utama' => $request->is_utama,
|
||||||
'created_by' => auth()->id(),
|
'created_by' => auth()->id(),
|
||||||
'updated_by' => auth()->id(),
|
'updated_by' => auth()->id(),
|
||||||
]);
|
]);
|
||||||
@@ -60,8 +61,9 @@ class KomoditasController extends Controller
|
|||||||
public function update(Request $request, $id)
|
public function update(Request $request, $id)
|
||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama,' . $id],
|
'nama' => ['required', 'string', 'max:255', 'unique:master_komoditas,nama,' . $id],
|
||||||
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode'],
|
'kode' => ['required', 'string', 'max:2', 'unique:master_komoditas,kode,' . $id],
|
||||||
|
'is_utama' => ['nullable', 'boolean'],
|
||||||
], [
|
], [
|
||||||
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
'nama.unique' => 'Nama komoditas ini sudah ada di database.',
|
||||||
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
'kode.unique' => 'Kode komoditas ini sudah ada di database.',
|
||||||
@@ -76,6 +78,7 @@ class KomoditasController extends Controller
|
|||||||
$komoditas->update([
|
$komoditas->update([
|
||||||
'nama' => $request->nama,
|
'nama' => $request->nama,
|
||||||
'kode' => $request->kode,
|
'kode' => $request->kode,
|
||||||
|
'is_utama' => $request->is_utama,
|
||||||
'updated_by' => auth()->id(),
|
'updated_by' => auth()->id(),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ class Komoditas extends Model
|
|||||||
|
|
||||||
protected $table = 'master_komoditas';
|
protected $table = 'master_komoditas';
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'is_utama' => 'boolean',
|
||||||
|
];
|
||||||
|
|
||||||
protected $fillable = [
|
protected $fillable = [
|
||||||
'nama',
|
'nama',
|
||||||
'kode',
|
'kode',
|
||||||
|
|||||||
@@ -14,6 +14,33 @@
|
|||||||
<label class="form-label" for="add-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
<label class="form-label" for="add-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
||||||
<input type="text" class="form-control" id="add-kode" name="kode" placeholder="Cth: KP" />
|
<input type="text" class="form-control" id="add-kode" name="kode" placeholder="Cth: KP" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label d-block">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
|
<input type="hidden" name="is_utama" value="0">
|
||||||
|
|
||||||
|
<label class="switch switch-lg"><input type="checkbox" class="switch-input" id="add-is-utama" name="is_utama" value="1" @checked(old('is_utama', false))>
|
||||||
|
|
||||||
|
<span class="switch-toggle-slider">
|
||||||
|
<span class="switch-on">
|
||||||
|
<i class="icon-base ti tabler-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-off">
|
||||||
|
<i class="icon-base ti tabler-x"></i>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-label" id="add-is-utama-label">
|
||||||
|
{{ old('is_utama', false) ? 'Komoditas Utama' : 'Tidak Termasuk' }}
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
|
||||||
|
@error('is_utama')
|
||||||
|
<div class="invalid-feedback d-block">
|
||||||
|
{{ $message }}
|
||||||
|
</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Simpan</button>
|
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Simpan</button>
|
||||||
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
|
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
|
||||||
<form id="editKomoditasForm" class="pt-0" method="POST">
|
<form id="editKomoditasForm" class="pt-0" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
|
@method('PUT')
|
||||||
<input type="hidden" name="_method" value="PUT">
|
<input type="hidden" name="_method" value="PUT">
|
||||||
<input type="hidden" id="edit-id" name="id">
|
<input type="hidden" id="edit-id" name="id">
|
||||||
|
|
||||||
@@ -17,6 +18,35 @@
|
|||||||
<label class="form-label" for="edit-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
<label class="form-label" for="edit-kode">Kode Komoditas<span class="text-danger">*</span></label>
|
||||||
<input type="text" class="form-control" id="edit-kode" name="kode" />
|
<input type="text" class="form-control" id="edit-kode" name="kode" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-4 form-control-validation">
|
||||||
|
<label class="form-label d-block" for="edit-is-utama">Komoditas Utama <span class="text-danger">*</span></label>
|
||||||
|
|
||||||
|
<input type="hidden" name="is_utama" value="0">
|
||||||
|
|
||||||
|
<label class="switch switch-lg">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
class="switch-input"
|
||||||
|
id="edit-is-utama"
|
||||||
|
name="is_utama"
|
||||||
|
value="1"
|
||||||
|
>
|
||||||
|
|
||||||
|
<span class="switch-toggle-slider">
|
||||||
|
<span class="switch-on">
|
||||||
|
<i class="icon-base ti tabler-check"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-off">
|
||||||
|
<i class="icon-base ti tabler-x"></i>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<span class="switch-label" id="edit-is-utama-label">
|
||||||
|
Tidak Termasuk
|
||||||
|
</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Update</button>
|
<button type="submit" class="btn btn-primary me-sm-3 me-1 data-submit">Update</button>
|
||||||
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
<button type="reset" class="btn btn-label-secondary" data-bs-dismiss="offcanvas">Batal</button>
|
||||||
|
|||||||
@@ -147,6 +147,18 @@
|
|||||||
$('#edit-id').val(res.data.id);
|
$('#edit-id').val(res.data.id);
|
||||||
$('#edit-nama').val(res.data.nama);
|
$('#edit-nama').val(res.data.nama);
|
||||||
$('#edit-kode').val(res.data.kode);
|
$('#edit-kode').val(res.data.kode);
|
||||||
|
|
||||||
|
const isUtama =
|
||||||
|
res.data.is_utama === true ||
|
||||||
|
res.data.is_utama === 1 ||
|
||||||
|
res.data.is_utama === '1';
|
||||||
|
|
||||||
|
$('#edit-is-utama').prop('checked', isUtama);
|
||||||
|
|
||||||
|
$('#edit-is-utama-label').text(
|
||||||
|
isUtama ? 'Komoditas Utama' : 'Tidak Termasuk'
|
||||||
|
);
|
||||||
|
|
||||||
if (typeof fvEdit !== 'undefined') fvEdit.resetForm();
|
if (typeof fvEdit !== 'undefined') fvEdit.resetForm();
|
||||||
offcanvasEdit.show();
|
offcanvasEdit.show();
|
||||||
}
|
}
|
||||||
@@ -170,6 +182,14 @@
|
|||||||
if (res.status === 'success') {
|
if (res.status === 'success') {
|
||||||
$('#view-nama').val(res.data.nama);
|
$('#view-nama').val(res.data.nama);
|
||||||
$('#view-kode').val(res.data.kode);
|
$('#view-kode').val(res.data.kode);
|
||||||
|
const isUtama =
|
||||||
|
res.data.is_utama === true ||
|
||||||
|
res.data.is_utama === 1 ||
|
||||||
|
res.data.is_utama === '1';
|
||||||
|
|
||||||
|
$('#view-is-utama').val(
|
||||||
|
isUtama ? 'Komoditas Utama' : 'Tidak Termasuk'
|
||||||
|
);
|
||||||
offcanvasView.show();
|
offcanvasView.show();
|
||||||
}
|
}
|
||||||
}).fail((xhr) => {
|
}).fail((xhr) => {
|
||||||
@@ -181,7 +201,9 @@
|
|||||||
|
|
||||||
const editForm = document.getElementById('editKomoditasForm');
|
const editForm = document.getElementById('editKomoditasForm');
|
||||||
let fvEdit = FormValidation.formValidation(editForm, {
|
let fvEdit = FormValidation.formValidation(editForm, {
|
||||||
fields: { nama: { validators: { notEmpty: { message: 'Nama komoditas wajib diisi' } } } },
|
fields: { nama: { validators: { notEmpty: { message: 'Nama komoditas wajib diisi' } } } ,
|
||||||
|
kode: {validators: { notEmpty: { message: 'Kode komoditas wajib diisi' } } }
|
||||||
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
trigger: new FormValidation.plugins.Trigger(),
|
trigger: new FormValidation.plugins.Trigger(),
|
||||||
bootstrap5: new FormValidation.plugins.Bootstrap5({ eleValidClass: '', rowSelector: '.form-control-validation' }),
|
bootstrap5: new FormValidation.plugins.Bootstrap5({ eleValidClass: '', rowSelector: '.form-control-validation' }),
|
||||||
@@ -249,5 +271,20 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
const switchInput = document.getElementById('add-is-utama');
|
||||||
|
const switchLabel = document.getElementById('add-is-utama-label');
|
||||||
|
|
||||||
|
function updateKomoditasLabel() {
|
||||||
|
switchLabel.textContent = switchInput.checked
|
||||||
|
? 'Komoditas Utama'
|
||||||
|
: 'Tidak Termasuk';
|
||||||
|
}
|
||||||
|
|
||||||
|
switchInput.addEventListener('change', updateKomoditasLabel);
|
||||||
|
|
||||||
|
updateKomoditasLabel();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
@endpush
|
@endpush
|
||||||
@@ -13,6 +13,10 @@
|
|||||||
<label class="form-label" for="view-kode">Kode Komoditas</label>
|
<label class="form-label" for="view-kode">Kode Komoditas</label>
|
||||||
<input type="text" class="form-control bg-lighter" id="view-kode" readonly />
|
<input type="text" class="form-control bg-lighter" id="view-kode" readonly />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="mb-4">
|
||||||
|
<label class="form-label" for="view-is-utama">Komoditas Utama</label>
|
||||||
|
<input type="text" class="form-control bg-lighter" id="view-is-utama" readonly>
|
||||||
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<button type="button" class="btn btn-label-secondary d-grid w-100" data-bs-dismiss="offcanvas">Tutup</button>
|
<button type="button" class="btn btn-label-secondary d-grid w-100" data-bs-dismiss="offcanvas">Tutup</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user