Compare commits
5 Commits
ccc423fb39
...
a67f86aec0
Author | SHA1 | Date |
---|---|---|
|
a67f86aec0 | |
|
0933678a21 | |
|
4fcd4d5303 | |
|
5a4762c5e0 | |
|
3b8fdc626c |
|
@ -0,0 +1,126 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admins\JenisMenu;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\KategoriProduk;
|
||||
use App\Models\KelompokKategori;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class JenisMenuController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$kategori_produks = KategoriProduk::get();
|
||||
|
||||
return view('pages.admin.jenis_menu.index', compact('kategori_produks'));
|
||||
}
|
||||
|
||||
public function getDataMenu()
|
||||
{
|
||||
$data = KelompokKategori::with(['kategoriProduk'])->get();
|
||||
$nomor = 1;
|
||||
|
||||
return $datatables = datatables()
|
||||
->of($data)
|
||||
->addColumn('nomor', function ($data) use (&$nomor) {
|
||||
return $nomor++;
|
||||
})
|
||||
->addColumn('kategori_produk', function ($data) {
|
||||
return $data->kategoriProduk->nama_kategori_produk;
|
||||
})
|
||||
->addColumn('ubah', function ($data) {
|
||||
return '<div class="btn-group">
|
||||
<a href="javascript:void(0)" onclick="editJenisMenu(\'' . $data->id . '\')">
|
||||
<span class="btn btn-md btn-warning"><i class="fas fa-edit"></i> Edit</span>
|
||||
</a>
|
||||
</div>';
|
||||
})
|
||||
->rawColumns(['nomor', 'kode_kelompok_kategori', 'nama_kelompok_kategori', 'ubah'])
|
||||
->make(true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
// validation
|
||||
$rules = array(
|
||||
'kategori_produk' => 'required',
|
||||
'kode_kelompok_kategori' => 'required',
|
||||
'nama_kelompok_kategori' => 'required',
|
||||
);
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
// check validation
|
||||
if ($validator->fails()) {
|
||||
// If validation fails, return with errors
|
||||
return response()->json(['errors' => $validator->errors()], 422);
|
||||
} else {
|
||||
// create product
|
||||
$kemlompokKategori = KelompokKategori::create([
|
||||
'kategori_produk_id' => $request->kategori_produk,
|
||||
'kode_kelompok_kategori' => $request->kode_kelompok_kategori,
|
||||
'nama_kelompok_kategori' => $request->nama_kelompok_kategori,
|
||||
'created_at' => Carbon::now()
|
||||
]);
|
||||
|
||||
// Return a success response
|
||||
return response()->json(['message' => 'Data created successfully']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the specified resource.
|
||||
*/
|
||||
public function show(string $id)
|
||||
{
|
||||
$data = KelompokKategori::with(['kategoriProduk'])->findOrFail($id);
|
||||
return response()->json($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*/
|
||||
public function update(Request $request, string $id)
|
||||
{
|
||||
// validation
|
||||
$rules = array(
|
||||
'kategori_produk' => 'required',
|
||||
'kode_kelompok_kategori' => 'required',
|
||||
'nama_kelompok_kategori' => 'required',
|
||||
);
|
||||
$validator = Validator::make($request->all(), $rules);
|
||||
|
||||
// check validation
|
||||
if ($validator->fails()) {
|
||||
// If validation fails, return with errors
|
||||
return response()->json(['errors' => $validator->errors()], 422);
|
||||
} else {
|
||||
$kelompokKategori = KelompokKategori::findOrFail($id);
|
||||
|
||||
// update produk
|
||||
$kelompokKategori->update([
|
||||
'kategori_produk_id' => $request->kategori_produk,
|
||||
'kode_kelompok_kategori' => $request->kode_kelompok_kategori,
|
||||
'nama_kelompok_kategori' => $request->nama_kelompok_kategori,
|
||||
'created_at' => Carbon::now()
|
||||
]);
|
||||
|
||||
// Return a success response
|
||||
return response()->json(['message' => 'Data updated successfully']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*/
|
||||
public function destroy(string $id)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -6,19 +6,15 @@ use App\Http\Controllers\Controller;
|
|||
use App\Models\KategoriProduk;
|
||||
use App\Models\KelompokKategori;
|
||||
use App\Models\KelompokKategoriPivot;
|
||||
use App\Models\Pesanan;
|
||||
use App\Models\Produk;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class Menu extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
// return $data = KelompokKategoriPivot::with(['kelompokKategori', 'produk'])->first();
|
||||
$kategori_produks = KategoriProduk::get();
|
||||
|
||||
return view('pages.Menu.index', compact('kategori_produks'));
|
||||
|
@ -27,9 +23,14 @@ class Menu extends Controller
|
|||
public function kelompokKategori($id) {
|
||||
$kelompok_kategoris = KelompokKategori::where('kategori_produk_id', $id)->get();
|
||||
|
||||
if (empty($kelompok_kategoris[0])) {
|
||||
return response()->json(['message' => 'Data Kosong']);
|
||||
} else {
|
||||
return $kelompok_kategoris;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function getDataMenu()
|
||||
{
|
||||
// $data = Produk::with(['kategori_produk'])->get();
|
||||
|
|
|
@ -21,7 +21,7 @@ class KelompokKategori extends Model
|
|||
|
||||
public function kategoriProduk()
|
||||
{
|
||||
return $this->hasMany(KategoriProduk::class, 'kategori_produk_id');
|
||||
return $this->hasOne(KategoriProduk::class, 'id', 'kategori_produk_id');
|
||||
}
|
||||
|
||||
// kelompok kategori pivot
|
||||
|
|
|
@ -38,7 +38,9 @@
|
|||
<a id="dropdownSubMenu1" href="#" data-toggle="dropdown" aria-haspopup="true"
|
||||
aria-expanded="false" class="nav-link dropdown-toggle">Master Data</a>
|
||||
<ul aria-labelledby="dropdownSubMenu1" class="dropdown-menu border-0 shadow">
|
||||
<li><a href="#" class="dropdown-item">Data Jenis Menu</a></li>
|
||||
@can('jenis-menu.index', auth()->user())
|
||||
<li><a href="{{ route('jenis-menu.index') }}" class="dropdown-item">Data Jenis Menu</a></li>
|
||||
@endcan
|
||||
@can('menu.index', auth()->user())
|
||||
<li><a href="{{ route('menu.index') }}" class="dropdown-item">Data Menu</a></li>
|
||||
@endcan
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
<div class="container" style="display: contents">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h3 class="m-0"> Master Data</h3>
|
||||
<h1 class="m-0"> Kasir <small>kasir 3.0</small></h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="#">Home</a></li>
|
||||
<li class="breadcrumb-item"><a href="#">Admin</a></li>
|
||||
<li class="breadcrumb-item active">Menus</li>
|
||||
<li class="breadcrumb-item"><a href="#">Kasir</a></li>
|
||||
<li class="breadcrumb-item active">History</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -29,7 +29,7 @@
|
|||
<h3>Daftar Menu</h3>
|
||||
<!-- Button trigger modal -->
|
||||
<div class="ml-auto">
|
||||
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-default">
|
||||
<button type="button" class="btn btn-primary" onclick="tambahMenu()">
|
||||
Tambah Menu
|
||||
</button>
|
||||
</div>
|
||||
|
@ -46,6 +46,7 @@
|
|||
<th>Nama Produk</th>
|
||||
<th>Harga Produk</th>
|
||||
<th>Kategori Produk</th>
|
||||
<th>Kelompok Kategori</th>
|
||||
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -57,92 +58,72 @@
|
|||
</div>
|
||||
|
||||
<!-- Modal Tambah Menu -->
|
||||
<div class="modal fade" id="modal-default">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal fade" id="modal-produk" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Default Modal</h4>
|
||||
<h4 class="modal-title" id="title-form-menu">Tambah Menu</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form>
|
||||
<div class="form-group">
|
||||
<label for="recipient-name" class="col-form-label">Recipient:</label>
|
||||
<input type="text" class="form-control" id="recipient-name">
|
||||
<form method="post" id="formMenu" data-url="" data-method="">
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="kategori_produk" class="col-form-label">Kategori Produk:</label>
|
||||
<input type="hidden" name="pivot_id" id="pivot_id">
|
||||
<select type="text" class="form-control select2" id="kategori_produk" name="kategori_produk" onchange="kelompokKategori(this.value)" required>
|
||||
<option value="0">Pilih Kategori</option>
|
||||
@foreach ($kategori_produks as $kategori)
|
||||
<option value="{{ $kategori->id }}">{{ $kategori->nama_kategori_produk }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="kelompok_produk" class="col-form-label">Kelompok Produk:</label>
|
||||
<select type="text" class="form-control select2" id="kelompok_produk" name="kelompok_produk" required>
|
||||
<option value="default" selected disabled>Pilih Kelompok Produk</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="kode_produk" class="col-form-label">Kode Produk:</label>
|
||||
<input type="text" class="form-control" id="kode_produk" name="kode_produk" value="" required>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="nama_produk" class="col-form-label">Nama Produk:</label>
|
||||
<input type="text" class="form-control" id="nama_produk" name="nama_produk" value="" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="harga_produk" class="col-form-label">Harga Produk:</label>
|
||||
<input type="number" class="form-control" id="harga_produk" name="harga_produk" value="" required>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="tersedia" class="col-form-label">Tersedia:</label>
|
||||
<select type="text" class="form-control select2" id="tersedia" name="tersedia" required>
|
||||
<option value="1">Iya</option>
|
||||
<option value="0">Tidak</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="message-text" class="col-form-label">Message:</label>
|
||||
<textarea class="form-control" id="message-text"></textarea>
|
||||
<label for="deskripsi_produk" class="col-form-label">Deskripsi Produk:</label>
|
||||
<textarea class="form-control" id="deskripsi_produk" name="deskripsi_produk"></textarea>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer justify-content-between">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Tutup</button>
|
||||
<button type="button" class="btn btn-primary" id="btn-simpan-menu" onclick="saveMenu()">Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('styles')
|
||||
<!-- Toastr -->
|
||||
<style>
|
||||
@media only screen and (max-width : 991px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 768px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 414px) {
|
||||
/* Styles */
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
||||
<link rel="stylesheet" href="{{asset('assets/datatables/datatables.min.css')}}">
|
||||
@endpush
|
||||
|
||||
@push('scripts')
|
||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tabelku').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ route('menu.getDataMenu') }}",
|
||||
columns: [{
|
||||
data: 'nomor',
|
||||
name: 'nomor',
|
||||
orderable: false,
|
||||
className: 'text-center'
|
||||
},
|
||||
{
|
||||
data: 'kode_produk',
|
||||
name: 'kode_produk'
|
||||
},
|
||||
{
|
||||
data: 'nama_produk',
|
||||
name: 'nama_produk'
|
||||
},
|
||||
{
|
||||
data: 'harga_produk',
|
||||
name: 'harga_produk'
|
||||
},
|
||||
{
|
||||
data: 'kategori_produk',
|
||||
name: 'kategori_produk'
|
||||
},
|
||||
{
|
||||
data: 'ubah',
|
||||
name: 'ubah',
|
||||
className: 'text-center'
|
||||
},
|
||||
]
|
||||
})
|
||||
})
|
||||
</script>
|
||||
@endpush
|
||||
@include('pages.Menu.js')
|
||||
@include('pages.Menu.style')
|
|
@ -0,0 +1,168 @@
|
|||
@push('scripts')
|
||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/select2/js/select2.full.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/toastr/toastr.min.js') }}"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tabelku').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ route('menu.getDataMenu') }}",
|
||||
columns: [{
|
||||
data: 'nomor',
|
||||
name: 'nomor',
|
||||
orderable: false,
|
||||
className: 'text-center'
|
||||
},
|
||||
{
|
||||
data: 'kode_produk',
|
||||
name: 'kode_produk'
|
||||
},
|
||||
{
|
||||
data: 'nama_produk',
|
||||
name: 'nama_produk'
|
||||
},
|
||||
{
|
||||
data: 'harga_produk',
|
||||
name: 'harga_produk'
|
||||
},
|
||||
{
|
||||
data: 'kategori_produk',
|
||||
name: 'kategori_produk'
|
||||
},
|
||||
{
|
||||
data: 'nama_kelompok_kategori',
|
||||
name: 'nama_kelompok_kategori'
|
||||
},
|
||||
{
|
||||
data: 'ubah',
|
||||
name: 'ubah',
|
||||
className: 'text-center'
|
||||
},
|
||||
]
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
$('.select2').select2();
|
||||
|
||||
function kelompokKategori(id) {
|
||||
$.ajax({
|
||||
url: "{{ route('menu.kelompok-kategori', '') }}/" + id,
|
||||
method: "GET",
|
||||
dataType: "json",
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
$('#kelompok_produk').empty();
|
||||
|
||||
if (response.message) {
|
||||
$('#kelompok_produk').append(`<option value="">Pilih Dulu Kategori Produk</option>`);
|
||||
} else {
|
||||
response?.forEach(function(item, index) {
|
||||
$('#kelompok_produk').append(
|
||||
`<option value="${item?.id}">${item?.nama_kelompok_kategori}</option>`)
|
||||
})
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
toastr.error(xhr.responseJSON.message, 'Error', {
|
||||
timeOut: 3000
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function saveMenu() {
|
||||
document.getElementById('btn-simpan-menu').disabled = true;
|
||||
document.getElementById('btn-simpan-menu').innerText = "Loading...";
|
||||
|
||||
var url = $('#formMenu').data('url');
|
||||
var method = $('#formMenu').data('method');
|
||||
var data = {
|
||||
_token: "{{ csrf_token() }}",
|
||||
kategori_produk: $('#kategori_produk').val(),
|
||||
kelompok_produk: $('#kelompok_produk').val(),
|
||||
kode_produk: $('#kode_produk').val(),
|
||||
nama_produk: $('#nama_produk').val(),
|
||||
harga_produk: $('#harga_produk').val(),
|
||||
tersedia: $('#tersedia').val(),
|
||||
deskripsi_produk: $('#deskripsi_produk').val(),
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: method,
|
||||
data: data,
|
||||
success: function(result) {
|
||||
if (result.errors) {
|
||||
toastr.error(result.errors, 'Gagal', {
|
||||
timeOut: 2000
|
||||
});
|
||||
document.getElementById('btn-simpan-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-menu').innerText = "Simpan";
|
||||
} else {
|
||||
toastr.success(result.message, 'Berhasil', {
|
||||
timeOut: 2000
|
||||
});
|
||||
|
||||
$('#modal-produk').modal('hide');
|
||||
$('#formMenu')[0].reset();
|
||||
document.getElementById('btn-simpan-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-menu').innerText = "Simpan";
|
||||
|
||||
// console.log(result);
|
||||
setTimeout(function() {
|
||||
window.location.reload(1);
|
||||
}, 1000);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
toastr.error(xhr.responseJSON.message, 'Error', {
|
||||
timeOut: 3000
|
||||
});
|
||||
document.getElementById('btn-simpan-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-menu').innerText = "Simpan";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function tambahMenu() {
|
||||
$('#formMenu')[0].reset();
|
||||
// $('#kategori_produk').val('').trigger('change');
|
||||
$('#modal-produk').modal('show');
|
||||
$('#title-form-menu').text("Tambah Menu");
|
||||
|
||||
let formMenu = document.getElementById('formMenu');
|
||||
formMenu.setAttribute('data-url', "{{ route('menu.store') }}");
|
||||
formMenu.setAttribute('data-method', "post");
|
||||
}
|
||||
function editMenu(id) {
|
||||
$('#modal-produk').modal('show');
|
||||
$('#title-form-menu').text("Ubah Menu");
|
||||
let formMenu = document.getElementById('formMenu');
|
||||
formMenu.setAttribute('data-url', "{{ route('menu.update', '') }}/" + id);
|
||||
formMenu.setAttribute('data-method', "put");
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('menu.show', '') }}/" + id,
|
||||
method: "GET",
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
|
||||
$('#kategori_produk').val(response.produk.kategori_produk_id).trigger('change');
|
||||
$('#kelompok_produk').val(response.kelompok_kategori_id);
|
||||
$('#kode_produk').val(response.produk.kode_produk);
|
||||
$('#nama_produk').val(response.produk.nama_produk);
|
||||
$('#harga_produk').val(response.produk.harga_produk);
|
||||
$('#tersedia').val(response.produk.tersedia);
|
||||
$('#deskripsi_produk').val(response.produk.deskripsi_produk);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
toastr.error(xhr.responseJSON.message, 'Error', {
|
||||
timeOut: 3000
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@endpush
|
|
@ -0,0 +1,23 @@
|
|||
@push('style2')
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/select2/css/select2.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css') }}">
|
||||
@endpush
|
||||
|
||||
@push('styles')
|
||||
<!-- Toastr -->
|
||||
<style>
|
||||
@media only screen and (max-width : 991px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 768px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 414px) {
|
||||
/* Styles */
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
||||
<link rel="stylesheet" href="{{asset('assets/datatables/datatables.min.css')}}">
|
||||
@endpush
|
|
@ -0,0 +1,104 @@
|
|||
@extends('layouts.base')
|
||||
|
||||
@section('content-header')
|
||||
<div class="col-12">
|
||||
<div class="container" style="display: contents">
|
||||
<div class="row mb-2">
|
||||
<div class="col-sm-6">
|
||||
<h1 class="m-0"> Kasir <small>kasir 3.0</small></h1>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<ol class="breadcrumb float-sm-right">
|
||||
<li class="breadcrumb-item"><a href="#">Home</a></li>
|
||||
<li class="breadcrumb-item"><a href="#">Kasir</a></li>
|
||||
<li class="breadcrumb-item active">History</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<div class="col-12 mt-2">
|
||||
<div class="container" style="display: contents">
|
||||
<div class="card">
|
||||
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
||||
<div class="card-header mt-0 pt-0">
|
||||
<div class="d-flex">
|
||||
<h3>Daftar Menu</h3>
|
||||
<!-- Button trigger modal -->
|
||||
<div class="ml-auto">
|
||||
<button type="button" class="btn btn-primary" onclick="tambahJenisMenu()">
|
||||
Tambah Menu
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{-- <h5 class="card-title">Form List Data</h5> --}}
|
||||
<div class="table-responsive mt-3">
|
||||
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">No</th>
|
||||
<th>Kode Kelompok Kategori</th>
|
||||
<th>Nama Kelompok Kategori</th>
|
||||
<th>Kategori Produk</th>
|
||||
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Tambah Menu -->
|
||||
<div class="modal fade" id="modal-produk" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="title-form-menu">Tambah Menu</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form method="post" id="formJenisMenu" data-url="" data-method="">
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="kategori_produk" class="col-form-label">Kategori Produk:</label>
|
||||
<input type="hidden" name="pivot_id" id="pivot_id">
|
||||
<select type="text" class="form-control select2" id="kategori_produk" name="kategori_produk" required>
|
||||
<option value="">Pilih Kategori</option>
|
||||
@foreach ($kategori_produks as $kategori)
|
||||
<option value="{{ $kategori->id }}">{{ $kategori->nama_kategori_produk }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-md-6">
|
||||
<label for="kode_kelompok_kategori" class="col-form-label">Kode Kelompok Kategori:</label>
|
||||
<input type="text" class="form-control" id="kode_kelompok_kategori" name="kode_kelompok_kategori" value="" required>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="nama_kelompok_kategori" class="col-form-label">Nama Kelompok Kategori:</label>
|
||||
<input type="text" class="form-control" id="nama_kelompok_kategori" name="nama_kelompok_kategori" value="" required>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Tutup</button>
|
||||
<button type="button" class="btn btn-primary" id="btn-simpan-jenis-menu" onclick="saveMenu()">Simpan</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@include('pages.admin.jenis_menu.js')
|
||||
@include('pages.admin.jenis_menu.style')
|
|
@ -0,0 +1,126 @@
|
|||
@push('scripts')
|
||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/select2/js/select2.full.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/toastr/toastr.min.js') }}"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#tabelku').DataTable({
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: "{{ route('jenis-menu.getDataMenu') }}",
|
||||
columns: [{
|
||||
data: 'nomor',
|
||||
name: 'nomor',
|
||||
orderable: true,
|
||||
className: 'text-center'
|
||||
},
|
||||
{
|
||||
data: 'kode_kelompok_kategori',
|
||||
name: 'kode_kelompok_kategori'
|
||||
},
|
||||
{
|
||||
data: 'nama_kelompok_kategori',
|
||||
name: 'nama_kelompok_kategori'
|
||||
},
|
||||
{
|
||||
data: 'kategori_produk',
|
||||
name: 'kategori_produk'
|
||||
},
|
||||
{
|
||||
data: 'ubah',
|
||||
name: 'ubah',
|
||||
className: 'text-center'
|
||||
},
|
||||
]
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script>
|
||||
$('.select2').select2();
|
||||
|
||||
function saveMenu() {
|
||||
document.getElementById('btn-simpan-jenis-menu').disabled = true;
|
||||
document.getElementById('btn-simpan-jenis-menu').innerText = "Loading...";
|
||||
|
||||
var url = $('#formJenisMenu').data('url');
|
||||
var method = $('#formJenisMenu').data('method');
|
||||
var data = {
|
||||
_token: "{{ csrf_token() }}",
|
||||
kategori_produk: $('#kategori_produk').val(),
|
||||
kode_kelompok_kategori: $('#kode_kelompok_kategori').val(),
|
||||
nama_kelompok_kategori: $('#nama_kelompok_kategori').val(),
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
method: method,
|
||||
data: data,
|
||||
success: function(result) {
|
||||
if (result.errors) {
|
||||
toastr.error(result.errors, 'Gagal', {
|
||||
timeOut: 2000
|
||||
});
|
||||
document.getElementById('btn-simpan-jenis-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-jenis-menu').innerText = "Simpan";
|
||||
} else {
|
||||
toastr.success(result.message, 'Berhasil', {
|
||||
timeOut: 2000
|
||||
});
|
||||
|
||||
$('#modal-produk').modal('hide');
|
||||
$('#formJenisMenu')[0].reset();
|
||||
document.getElementById('btn-simpan-jenis-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-jenis-menu').innerText = "Simpan";
|
||||
|
||||
// console.log(result);
|
||||
setTimeout(function() {
|
||||
window.location.reload(1);
|
||||
}, 1000);
|
||||
}
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
toastr.error(xhr.responseJSON.message, 'Error', {
|
||||
timeOut: 3000
|
||||
});
|
||||
document.getElementById('btn-simpan-jenis-menu').disabled = false;
|
||||
document.getElementById('btn-simpan-jenis-menu').innerText = "Simpan";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function tambahJenisMenu() {
|
||||
$('#formJenisMenu')[0].reset();
|
||||
$('#kategori_produk').val('').trigger('change');
|
||||
$('#modal-produk').modal('show');
|
||||
$('#title-form-menu').text("Tambah Jenis Menu");
|
||||
|
||||
let formJenisMenu = document.getElementById('formJenisMenu');
|
||||
formJenisMenu.setAttribute('data-url', "{{ route('jenis-menu.store') }}"); // Setting URL or Route
|
||||
formJenisMenu.setAttribute('data-method', "post");
|
||||
}
|
||||
function editJenisMenu(id) {
|
||||
$('#modal-produk').modal('show');
|
||||
$('#title-form-menu').text("Ubah Jenis Menu");
|
||||
let formJenisMenu = document.getElementById('formJenisMenu');
|
||||
formJenisMenu.setAttribute('data-url', "{{ route('jenis-menu.update', '') }}/" + id); // Setting URL or Route
|
||||
formJenisMenu.setAttribute('data-method', "put");
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('jenis-menu.show', '') }}/" + id,
|
||||
method: "GET",
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
|
||||
$('#kategori_produk').val(response.kategori_produk_id).trigger('change');
|
||||
$('#kode_kelompok_kategori').val(response.kode_kelompok_kategori);
|
||||
$('#nama_kelompok_kategori').val(response.nama_kelompok_kategori);
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
toastr.error(xhr.responseJSON.message, 'Error', {
|
||||
timeOut: 3000
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
@endpush
|
|
@ -0,0 +1,23 @@
|
|||
@push('style2')
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/select2/css/select2.min.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/select2-bootstrap4-theme/select2-bootstrap4.min.css') }}">
|
||||
@endpush
|
||||
|
||||
@push('styles')
|
||||
<!-- Toastr -->
|
||||
<style>
|
||||
@media only screen and (max-width : 991px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 768px) {
|
||||
/* Styles */
|
||||
}
|
||||
|
||||
@media only screen and (max-width : 414px) {
|
||||
/* Styles */
|
||||
}
|
||||
</style>
|
||||
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
||||
<link rel="stylesheet" href="{{asset('assets/datatables/datatables.min.css')}}">
|
||||
@endpush
|
|
@ -98,7 +98,7 @@
|
|||
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
||||
<div class="card-body">
|
||||
<div class="col-md-12">
|
||||
<form action="{{ route('pengeluaran.laporan') }}" method="POST">
|
||||
<form action="{{ route('pengeluaran.laporan') }}" method="POST" target="_blank">
|
||||
@csrf
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
@ -115,10 +115,10 @@
|
|||
id="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="margin mt-5">
|
||||
<a href="javascript:void(0)" class="btn btn-sm btn-primary" id="btn_filter"><i
|
||||
class="fas fa-search mr-1"></i>Filter
|
||||
<a href="javascript:void(0)" class="btn btn-md mr-1 btn-primary"
|
||||
id="btn_filter"><i class="fas fa-search mr-1"></i>Filter
|
||||
data</a>
|
||||
<button class="btn btn-sm btn-warning" type="submit" id="filter_laporan"><i
|
||||
<button class="btn btn-md btn-warning" type="submit" id="filter_laporan"><i
|
||||
class="fas fa-print mr-1"></i>Cetak</button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
url: '{{ route('pengeluaran.getDataPengeluaran') }}',
|
||||
url: "{{ route('pengeluaran.getDataPengeluaran') }}",
|
||||
data: function(d) {
|
||||
d.filter_tanggal_1 = $("#filter_tanggal_1").val();
|
||||
d.filter_tanggal_2 = $("#filter_tanggal_2").val();
|
||||
|
@ -114,6 +114,9 @@
|
|||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#simpan_pengeluaran').on('click', function() {
|
||||
document.getElementById('simpan_pengeluaran').disabled = true;
|
||||
document.getElementById('simpan_pengeluaran').innerText = "Proses...";
|
||||
|
||||
// Jika jenis transaksi tunai
|
||||
if ($("#jenis_transaksi").val() == "1") {
|
||||
let rekening_coa_kebutuhan = $("#rekening_coa_kebutuhan").val()
|
||||
|
@ -184,6 +187,9 @@
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
// document.getElementById('simpan_pengeluaran').disabled = false;
|
||||
// document.getElementById('simpan_pengeluaran').innerText = "Simpan Data";
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
|
|
@ -4,6 +4,7 @@ use App\Http\Controllers\Admins\Dashboard\CalculationController;
|
|||
use App\Http\Controllers\Admins\Dashboard\ChartPengeluaranController;
|
||||
use App\Http\Controllers\Admins\Dashboard\ChartPenjualanController;
|
||||
use App\Http\Controllers\Admins\Dashboard\DashboardController;
|
||||
use App\Http\Controllers\Admins\JenisMenu\JenisMenuController;
|
||||
use App\Http\Controllers\Admins\Pengeluaran\PengeluaranController;
|
||||
use App\Http\Controllers\Admins\Penjualan\PenjualanController;
|
||||
use App\Http\Controllers\Admins\RekeningCoa\RekeningCoaController;
|
||||
|
@ -67,6 +68,13 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
|
|||
Route::get('/getDataMenu', [Menu::class, 'getDataMenu'])->name('menu.getDataMenu')->comment("Ambil data Menu");
|
||||
});
|
||||
|
||||
Route::group(['prefix' => 'jenis-menu'], function () {
|
||||
// Route::get('/', [Menu::class, 'index'])->name('menu.index')->comment("Halaman Menu");
|
||||
// Route::get('/kelompok-kategori/{id}', [Menu::class, 'kelompokKategori'])->name('menu.kelompok-kategori')->comment("Ambil Data Kelompok Kategori");
|
||||
Route::get('/getDataMenu', [JenisMenuController::class, 'getDataMenu'])->name('jenis-menu.getDataMenu')->comment("Ambil data Jenis Menu");
|
||||
});
|
||||
Route::resource('jenis-menu', JenisMenuController::class);
|
||||
|
||||
// Dashboard
|
||||
Route::group(['prefix' => 'dashboard'], function () {
|
||||
Route::get('/', [DashboardController::class, 'index'])->name('dashboard.index')->comment('Halaman Dashboard');
|
||||
|
|
Loading…
Reference in New Issue