Compare commits
9 Commits
f1185cbd0d
...
747c9cf771
Author | SHA1 | Date |
---|---|---|
|
747c9cf771 | |
|
a84a4ca90b | |
|
2d93f24c87 | |
|
8796b38a25 | |
|
636dd62ea6 | |
|
e4e7ea2dcb | |
|
2ce374ecb6 | |
|
88b6355c4c | |
|
a67f86aec0 |
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admins\Dashboard;
|
||||||
|
|
||||||
|
use App\Helpers\ResponseFormatter;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\KelompokKategori;
|
||||||
|
use App\Models\KelompokKategoriPivot;
|
||||||
|
use App\Models\MenuTerlarisView;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class DounatController extends Controller
|
||||||
|
{
|
||||||
|
public function getChartDounat()
|
||||||
|
{
|
||||||
|
$menuPaket = $this->menuPaket();
|
||||||
|
$menuIrit = $this->menuIrit();
|
||||||
|
|
||||||
|
return ResponseFormatter::success(['menuPaket' => $menuPaket, 'menuIrit' => $menuIrit]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function menuPaket()
|
||||||
|
{
|
||||||
|
// get menu terlaris where kelompok kategori id = 1
|
||||||
|
$data = MenuTerlarisView::whereHas('kelompokKategoriPivot', function ($query) {
|
||||||
|
$query->where('kelompok_kategori_id', 1);
|
||||||
|
})->where([
|
||||||
|
['nama_produk', 'not like', '%paket irit%'],
|
||||||
|
['kode_produk', 'not regexp', '^[a-zA-Z0-9]{2}$'],
|
||||||
|
['kode_produk', 'not regexp', '^[a-zA-Z0-9]{4}$']
|
||||||
|
])->orderBy('jumlah_produk_terjual', 'desc')->limit(6)->get();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => $data->pluck('nama_produk'),
|
||||||
|
'data' => $data->pluck('jumlah_produk_terjual')
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function menuIrit()
|
||||||
|
{
|
||||||
|
// get menu terlaris where kelompok kategori id = 1
|
||||||
|
$data = MenuTerlarisView::whereHas('kelompokKategoriPivot', function ($query) {
|
||||||
|
$query->where([['kelompok_kategori_id', 2]]);
|
||||||
|
})->where([
|
||||||
|
['nama_produk', 'like', '%paket irit%'],
|
||||||
|
['kode_produk', 'not regexp', '^[a-zA-Z0-9]{2}$']
|
||||||
|
])->orderBy('jumlah_produk_terjual', 'desc')->limit(6)->get();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => $data->pluck('nama_produk'),
|
||||||
|
'data' => $data->pluck('jumlah_produk_terjual')
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admins\Dashboard;
|
||||||
|
|
||||||
|
use App\Helpers\ResponseFormatter;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\MenuTerlarisView;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class DounatSatuanController extends Controller
|
||||||
|
{
|
||||||
|
public function getChartDounatSatuan()
|
||||||
|
{
|
||||||
|
$nasi = $this->nasi();
|
||||||
|
$sambal = $this->sambal();
|
||||||
|
$lauk = $this->lauk();
|
||||||
|
|
||||||
|
return ResponseFormatter::success(['menuNasi' => $nasi, 'menuSambal' => $sambal, 'menuLauk' => $lauk]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function nasi()
|
||||||
|
{
|
||||||
|
// get menu terlaris where kelompok kategori id = 1
|
||||||
|
$nasiPutih = MenuTerlarisView::where('nama_produk', 'like', '%nasi putih%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$nasiJeruk = MenuTerlarisView::where('nama_produk', 'like', '%nasi jeruk%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$nasiPecel = MenuTerlarisView::where('nama_produk', 'like', '%nasi pecel%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => ['Nasi Putih', 'Nasi Jeruk', 'Nasi Pecel'],
|
||||||
|
'data' => [$nasiPutih->sum('jumlah_produk_terjual'), $nasiJeruk->sum('jumlah_produk_terjual'), $nasiPecel->sum('jumlah_produk_terjual')]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sambal()
|
||||||
|
{
|
||||||
|
// get menu terlaris where kelompok kategori id = 1
|
||||||
|
$sambalMatah = MenuTerlarisView::where('nama_produk', 'like', '%sambal matah%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$sambalIjo = MenuTerlarisView::where('nama_produk', 'like', '%sambal ijo%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$sambalBawang = MenuTerlarisView::where('nama_produk', 'like', '%sambal bawang%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => ['Sambal Matah', 'Sambal Ijo', 'Sambal Bawang'],
|
||||||
|
'data' => [$sambalMatah->sum('jumlah_produk_terjual'), $sambalIjo->sum('jumlah_produk_terjual'), $sambalBawang->sum('jumlah_produk_terjual')]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lauk()
|
||||||
|
{
|
||||||
|
// get menu terlaris where kelompok kategori id = 1
|
||||||
|
$cakalan = MenuTerlarisView::where('nama_produk', 'like', '%cakalan%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$usus = MenuTerlarisView::where('nama_produk', 'like', '%usus%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$rempelo = MenuTerlarisView::where('nama_produk', 'like', '%rempelo%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$kulit = MenuTerlarisView::where('nama_produk', 'like', '%kulit%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$suwir = MenuTerlarisView::where('nama_produk', 'like', '%suwir%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$paru = MenuTerlarisView::where('nama_produk', 'like', '%paru%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$babat = MenuTerlarisView::where('nama_produk', 'like', '%babat%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$udang = MenuTerlarisView::where('nama_produk', 'like', '%udang%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$cumi = MenuTerlarisView::where('nama_produk', 'like', '%cumi%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
$sapi = MenuTerlarisView::where('nama_produk', 'like', '%sapi%')
|
||||||
|
->whereNull('tgl_start_promo')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'labels' => ['Cakalan', 'Usus', 'Rempelo', 'Kulit', 'Suwir', 'Paru', 'Babat', 'Udang', 'Cumi', 'Sapi'],
|
||||||
|
'data' => [$cakalan->sum('jumlah_produk_terjual'), $usus->sum('jumlah_produk_terjual'), $rempelo->sum('jumlah_produk_terjual'), $kulit->sum('jumlah_produk_terjual'), $suwir->sum('jumlah_produk_terjual'), $paru->sum('jumlah_produk_terjual'), $babat->sum('jumlah_produk_terjual'), $udang->sum('jumlah_produk_terjual'), $cumi->sum('jumlah_produk_terjual'), $sapi->sum('jumlah_produk_terjual')]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ use App\Models\DetailPesanan;
|
||||||
use App\Models\Pesanan;
|
use App\Models\Pesanan;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
class PenjualanController extends Controller
|
class PenjualanController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -56,8 +57,8 @@ class PenjualanController extends Controller
|
||||||
})
|
})
|
||||||
->addColumn('ubah', function ($data) {
|
->addColumn('ubah', function ($data) {
|
||||||
return '<div class="btn-group">
|
return '<div class="btn-group">
|
||||||
<a href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><span class="btn btn-xs btn-warning mr-1"><i class="fas fa-eye"></i></span></a>
|
<a class="btn btn-xs btn-warning mr-1" href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><i class="fas fa-eye"></i></a>
|
||||||
<a href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><span class="btn btn-xs btn-success"><i class="fas fa-print"></i></span></a></div>';
|
<a class="btn btn-xs btn-success" href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><i class="fas fa-print"></i></a></div>';
|
||||||
})
|
})
|
||||||
->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
|
->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
|
||||||
->make(true);
|
->make(true);
|
||||||
|
@ -72,9 +73,9 @@ class PenjualanController extends Controller
|
||||||
|
|
||||||
public function getDataDetailPenjualan(Request $request)
|
public function getDataDetailPenjualan(Request $request)
|
||||||
{
|
{
|
||||||
$data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get();
|
$data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->withTrashed()->get();
|
||||||
|
$pesanan = Pesanan::find($request->id_pesanan);
|
||||||
return response()->json(['status' => true, 'data' => $data]);
|
return response()->json(['status' => true, 'data' => $data, 'pesanan' => $pesanan]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function laporan(Request $request)
|
public function laporan(Request $request)
|
||||||
|
@ -106,4 +107,91 @@ class PenjualanController extends Controller
|
||||||
$mpdf->Output('Laporan_Penjualan.pdf', 'I');
|
$mpdf->Output('Laporan_Penjualan.pdf', 'I');
|
||||||
return response()->header('Content-Type', 'application/pdf');
|
return response()->header('Content-Type', 'application/pdf');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function cancel(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
|
||||||
|
DB::beginTransaction();
|
||||||
|
$pesanan = Pesanan::find($request->id);
|
||||||
|
$pesanan->status_pesanan = 3;
|
||||||
|
// delete detail pesanan
|
||||||
|
$pesanan->detailPesanan()->delete();
|
||||||
|
$pesanan->delete();
|
||||||
|
$pesanan->save();
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
return response()->json(['status' => true, 'message' => 'Pesanan berhasil di cancel']);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
DB::rollBack();
|
||||||
|
return response()->json(['status' => false, 'message' => 'Pesanan gagal di cancel']);
|
||||||
|
//throw $th;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function cancelDetail(Request $request)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
|
||||||
|
DB::beginTransaction();
|
||||||
|
$detailPesanan = DetailPesanan::find($request->id);
|
||||||
|
|
||||||
|
$pesanan = Pesanan::find($detailPesanan->pesanan_id);
|
||||||
|
$pesanan->total_bayar = $pesanan->total_bayar - $detailPesanan->total_harga_produk;
|
||||||
|
// check the diskon in pesanan
|
||||||
|
$pesanan->grand_total = $pesanan->total_bayar - $pesanan->diskon_rupiah;
|
||||||
|
$pesanan->total_pesanan = $pesanan->total_pesanan - $detailPesanan->jumlah_produk;
|
||||||
|
$pesanan->save();
|
||||||
|
|
||||||
|
$detailPesanan->status_pesanan = '3';
|
||||||
|
$detailPesanan->delete();
|
||||||
|
$detailPesanan->save();
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
|
return response()->json(['status' => true, 'message' => 'Pesanan berhasil di cancel']);
|
||||||
|
} catch (\Throwable $th) {
|
||||||
|
DB::rollBack();
|
||||||
|
return response()->json(['status' => false, 'message' => 'Pesanan gagal di cancel']);
|
||||||
|
//throw $th;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dibatalkan()
|
||||||
|
{
|
||||||
|
if (request()->ajax()) {
|
||||||
|
$data = Pesanan::with(['detailPesanan', 'user'])
|
||||||
|
->where('status_pesanan', 3)
|
||||||
|
->orderBy('tanggal_pesanan', 'desc')
|
||||||
|
->withTrashed()
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return datatables()
|
||||||
|
->of($data)
|
||||||
|
->addIndexColumn()
|
||||||
|
->addColumn('nama_pemesan', function ($data) {
|
||||||
|
$nomor = $data->nomor_pemesan != null ? '(' . $data->nomor_pemesan . ')' : '';
|
||||||
|
return $data->nama_pemesan . ' ' . $nomor;
|
||||||
|
})
|
||||||
|
->addColumn('nomor_meja', function ($data) {
|
||||||
|
return $data->nomor_meja != null ? $data->nomor_meja : '-';
|
||||||
|
})
|
||||||
|
->addColumn('created_at', function ($data) {
|
||||||
|
return \Carbon\Carbon::parse($data->created_at)->format('d F Y H:i:s');
|
||||||
|
})
|
||||||
|
->addColumn('total_bayar_rp', function ($data) {
|
||||||
|
return 'Rp ' . number_format($data->total_bayar, 0, ',', '.');
|
||||||
|
})
|
||||||
|
->addColumn('grand_total_rp', function ($data) {
|
||||||
|
return 'Rp ' . number_format($data->grand_total, 0, ',', '.');
|
||||||
|
})
|
||||||
|
->addColumn('ubah', function ($data) {
|
||||||
|
return '<div class="btn-group">
|
||||||
|
<a href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><span class="btn btn-xs btn-warning mr-1"><i class="fas fa-eye"></i></span></a>
|
||||||
|
<a href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><span class="btn btn-xs btn-success"><i class="fas fa-print"></i></span></a></div>';
|
||||||
|
})
|
||||||
|
->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
|
||||||
|
->make(true);
|
||||||
|
}
|
||||||
|
return view('pages.admin.penjualan.dibatalkan');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ class History extends Controller
|
||||||
|
|
||||||
public function getDataDetailHistory(Request $request)
|
public function getDataDetailHistory(Request $request)
|
||||||
{
|
{
|
||||||
$data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get();
|
$data = Pesanan::with('detailPesanan')->find($request->id_pesanan);
|
||||||
|
|
||||||
return response()->json(['status' => true, 'data' => $data]);
|
return response()->json(['status' => true, 'data' => $data]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,9 @@ class Transaksi extends Controller
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$orderCode = "ORD-" . strtoupper(random_str(6, random_str()));
|
// count pesanan by date now and add 1 for next count pesanan today
|
||||||
|
$lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1;
|
||||||
|
$orderCode = "ORD-" . date('ym') . strtoupper(random_str(3, random_str())) . date('d') . '-' . $lastCountPesanan;
|
||||||
$KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get();
|
$KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get();
|
||||||
$aba = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get();
|
$aba = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get();
|
||||||
|
|
||||||
|
@ -105,7 +107,6 @@ class Transaksi extends Controller
|
||||||
|
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'orderCode' => 'required',
|
'orderCode' => 'required',
|
||||||
'namaPemesan' => 'required',
|
'namaPemesan' => 'required',
|
||||||
|
@ -134,9 +135,16 @@ class Transaksi extends Controller
|
||||||
// calculate nomor antrian
|
// calculate nomor antrian
|
||||||
$nomorAntrian = $lastCountPesanan;
|
$nomorAntrian = $lastCountPesanan;
|
||||||
|
|
||||||
if($request->jenis_pembayaran == "1"){
|
$kodenya = substr($request->orderCode, 0, -3); // Menghapus tiga karakter terakhir,
|
||||||
|
|
||||||
|
// check antrian pesanan jika sudah ada di database maka tambahkan 1 untuk nomor antrian selanjutnya
|
||||||
|
$lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1;
|
||||||
|
|
||||||
|
$kodenya = $kodenya . $lastCountPesanan;
|
||||||
|
|
||||||
|
if ($request->jenis_pembayaran == "1") {
|
||||||
$pesananDatas = [
|
$pesananDatas = [
|
||||||
'kode_pesanan' => $request->orderCode,
|
'kode_pesanan' => $kodenya,
|
||||||
'nama_pemesan' => $request->namaPemesan,
|
'nama_pemesan' => $request->namaPemesan,
|
||||||
'nomor_pemesan' => $request->nomorPemesan,
|
'nomor_pemesan' => $request->nomorPemesan,
|
||||||
'nomor_meja' => $request->nomorMeja,
|
'nomor_meja' => $request->nomorMeja,
|
||||||
|
@ -155,9 +163,9 @@ class Transaksi extends Controller
|
||||||
'jenis_pembayaran' => $request->jenis_pembayaran,
|
'jenis_pembayaran' => $request->jenis_pembayaran,
|
||||||
];
|
];
|
||||||
$pesananModels = \App\Models\Pesanan::create($pesananDatas);
|
$pesananModels = \App\Models\Pesanan::create($pesananDatas);
|
||||||
}else{
|
} else {
|
||||||
$pesananDatas = [
|
$pesananDatas = [
|
||||||
'kode_pesanan' => $request->orderCode,
|
'kode_pesanan' => $kodenya,
|
||||||
'nama_pemesan' => $request->namaPemesan,
|
'nama_pemesan' => $request->namaPemesan,
|
||||||
'nomor_pemesan' => $request->nomorPemesan,
|
'nomor_pemesan' => $request->nomorPemesan,
|
||||||
'nomor_meja' => $request->nomorMeja,
|
'nomor_meja' => $request->nomorMeja,
|
||||||
|
@ -200,56 +208,57 @@ class Transaksi extends Controller
|
||||||
'total_harga_produk' => $value['total'],
|
'total_harga_produk' => $value['total'],
|
||||||
'diskon_persen' => $value['diskonSatuan'] ?? null,
|
'diskon_persen' => $value['diskonSatuan'] ?? null,
|
||||||
'keterangan_produk' => $value['keterangan'] ?? null,
|
'keterangan_produk' => $value['keterangan'] ?? null,
|
||||||
|
'status_pesanan' => $value['status_pesanan_dinein'] ?? null,
|
||||||
];
|
];
|
||||||
$detailPesananModels = \App\Models\DetailPesanan::create($oderDatas);
|
$detailPesananModels = \App\Models\DetailPesanan::create($oderDatas);
|
||||||
}
|
}
|
||||||
|
|
||||||
// keuangan
|
// keuangan
|
||||||
// jika pembayaran non tunai
|
// jika pembayaran non tunai
|
||||||
if($request->jenis_pembayaran == "2"){
|
if ($request->jenis_pembayaran == "2") {
|
||||||
BukuBesar::create([
|
BukuBesar::create([
|
||||||
'faktur' => 'PJ-'.date('YmdHis'),
|
'faktur' => 'PJ-' . date('YmdHis'),
|
||||||
'tanggal' => date('Y-m-d'),
|
'tanggal' => date('Y-m-d'),
|
||||||
'rekening_coa_id' => $request->id_rekening_coa,
|
'rekening_coa_id' => $request->id_rekening_coa,
|
||||||
'pesanans_id' => $pesananModels->id,
|
'pesanans_id' => $pesananModels->id,
|
||||||
'kode_rekening_coa' => $request->kode_coa,
|
'kode_rekening_coa' => $request->kode_coa,
|
||||||
'keterangan_coa' => $request->keterangan_coa,
|
'keterangan_coa' => $request->keterangan_coa,
|
||||||
'keterangan' => 'Penjualan Non Tunai['.$request->orderCode.']',
|
'keterangan' => 'Penjualan Non Tunai[' . $request->orderCode . ']',
|
||||||
'debet' => $request->totalDiskon,
|
'debet' => $request->totalDiskon,
|
||||||
'kredit' => 0
|
'kredit' => 0
|
||||||
]);
|
]);
|
||||||
BukuBesar::create([
|
BukuBesar::create([
|
||||||
'faktur' => 'PJ-'.date('YmdHis'),
|
'faktur' => 'PJ-' . date('YmdHis'),
|
||||||
'tanggal' => date('Y-m-d'),
|
'tanggal' => date('Y-m-d'),
|
||||||
'rekening_coa_id' => "35",
|
'rekening_coa_id' => "35",
|
||||||
'pesanans_id' => $pesananModels->id,
|
'pesanans_id' => $pesananModels->id,
|
||||||
'kode_rekening_coa' => "4.100.01",
|
'kode_rekening_coa' => "4.100.01",
|
||||||
'keterangan_coa' => "Pendapatan Penjualan",
|
'keterangan_coa' => "Pendapatan Penjualan",
|
||||||
'keterangan' => 'Penjualan Non Tunai['.$request->orderCode.']',
|
'keterangan' => 'Penjualan Non Tunai[' . $request->orderCode . ']',
|
||||||
'debet' => 0,
|
'debet' => 0,
|
||||||
'kredit' => $request->totalDiskon
|
'kredit' => $request->totalDiskon
|
||||||
]);
|
]);
|
||||||
// jika pembayaran tunai
|
// jika pembayaran tunai
|
||||||
}else{
|
} else {
|
||||||
BukuBesar::create([
|
BukuBesar::create([
|
||||||
'faktur' => 'PJ-'.date('YmdHis'),
|
'faktur' => 'PJ-' . date('YmdHis'),
|
||||||
'tanggal' => date('Y-m-d'),
|
'tanggal' => date('Y-m-d'),
|
||||||
'rekening_coa_id' => "2",
|
'rekening_coa_id' => "2",
|
||||||
'pesanans_id' => $pesananModels->id,
|
'pesanans_id' => $pesananModels->id,
|
||||||
'kode_rekening_coa' => "1.100.01",
|
'kode_rekening_coa' => "1.100.01",
|
||||||
'keterangan_coa' => "Kas Kasir",
|
'keterangan_coa' => "Kas Kasir",
|
||||||
'keterangan' => 'Penjualan Tunai['.$request->orderCode.']',
|
'keterangan' => 'Penjualan Tunai[' . $request->orderCode . ']',
|
||||||
'debet' => $request->totalDiskon,
|
'debet' => $request->totalDiskon,
|
||||||
'kredit' => 0
|
'kredit' => 0
|
||||||
]);
|
]);
|
||||||
BukuBesar::create([
|
BukuBesar::create([
|
||||||
'faktur' => 'PJ-'.date('YmdHis'),
|
'faktur' => 'PJ-' . date('YmdHis'),
|
||||||
'tanggal' => date('Y-m-d'),
|
'tanggal' => date('Y-m-d'),
|
||||||
'rekening_coa_id' => "35",
|
'rekening_coa_id' => "35",
|
||||||
'pesanans_id' => $pesananModels->id,
|
'pesanans_id' => $pesananModels->id,
|
||||||
'kode_rekening_coa' => "4.100.01",
|
'kode_rekening_coa' => "4.100.01",
|
||||||
'keterangan_coa' => "Pendapatan Penjualan",
|
'keterangan_coa' => "Pendapatan Penjualan",
|
||||||
'keterangan' => 'Penjualan Tunai['.$request->orderCode.']',
|
'keterangan' => 'Penjualan Tunai[' . $request->orderCode . ']',
|
||||||
'debet' => 0,
|
'debet' => 0,
|
||||||
'kredit' => $request->totalDiskon
|
'kredit' => $request->totalDiskon
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -19,6 +19,7 @@ class DetailPesanan extends Model
|
||||||
'nama_produk',
|
'nama_produk',
|
||||||
'harga_produk',
|
'harga_produk',
|
||||||
'jumlah_produk',
|
'jumlah_produk',
|
||||||
|
'status_pesanan', // 0=takeaway,1=default,2=dinein,3=cancel
|
||||||
'total_harga_produk',
|
'total_harga_produk',
|
||||||
'keterangan_produk',
|
'keterangan_produk',
|
||||||
'diskon_id',
|
'diskon_id',
|
||||||
|
|
|
@ -29,4 +29,10 @@ class KelompokKategori extends Model
|
||||||
{
|
{
|
||||||
return $this->hasMany(KelompokKategoriPivot::class, 'kelompok_kategori_id');
|
return $this->hasMany(KelompokKategoriPivot::class, 'kelompok_kategori_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// menu terlaris
|
||||||
|
public function menuTerlaris()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany(MenuTerlarisView::class, 'kelompok_kategori_pivots', 'kelompok_kategori_id', 'produk_id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,4 +31,9 @@ class MenuTerlarisView extends Model
|
||||||
{
|
{
|
||||||
return $this->belongsToMany(KelompokKategori::class, KelompokKategoriPivot::class, 'produk_id', 'kelompok_kategori_id');
|
return $this->belongsToMany(KelompokKategori::class, KelompokKategoriPivot::class, 'produk_id', 'kelompok_kategori_id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function kelompokKategoriPivot()
|
||||||
|
{
|
||||||
|
return $this->hasMany(KelompokKategoriPivot::class, 'produk_id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('pesanans', function (Blueprint $table) {
|
||||||
|
$table->enum('status_pesanan', [0, 1, 2, 3])->default(1)->comment('0=takeaway,1=default,2=dinein,3=cancel')->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('pesanans', function (Blueprint $table) {
|
||||||
|
$table->enum('status_pesanan', [0, 1, 2])->default(1)->comment('0=takeaway,1=default,2=dinein')->change();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('detail_pesanans', function (Blueprint $table) {
|
||||||
|
$table->enum('status_pesanan', [0, 1, 2, 3])->default(1)->comment('0=takeaway,1=default,2=dinein,3=cancel')->after('jumlah_produk');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('detail_pesanans', function (Blueprint $table) {
|
||||||
|
$table->dropColumn('status_pesanan');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
|
@ -50,6 +50,7 @@
|
||||||
<th>Kode Pesanan</th>
|
<th>Kode Pesanan</th>
|
||||||
<th>Pemesan</th>
|
<th>Pemesan</th>
|
||||||
<th>Nomor Meja</th>
|
<th>Nomor Meja</th>
|
||||||
|
<th>Urutan Pesanan</th>
|
||||||
<th>Tanggal & Jam</th>
|
<th>Tanggal & Jam</th>
|
||||||
<th>Total Pesanan</th>
|
<th>Total Pesanan</th>
|
||||||
<th>Sub Total</th>
|
<th>Sub Total</th>
|
||||||
|
@ -62,6 +63,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-right" colspan="5">Total</th>
|
<th class="text-right" colspan="5">Total</th>
|
||||||
<th></th>
|
<th></th>
|
||||||
|
<th></th>
|
||||||
<th class="text-right"></th>
|
<th class="text-right"></th>
|
||||||
<th></th>
|
<th></th>
|
||||||
<th class="text-right"></th>
|
<th class="text-right"></th>
|
||||||
|
|
|
@ -34,6 +34,10 @@
|
||||||
data: 'nomor_meja',
|
data: 'nomor_meja',
|
||||||
name: 'nomor_meja'
|
name: 'nomor_meja'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
data: 'nomor_antrian',
|
||||||
|
name: 'nomor_antrian'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
data: 'created_at',
|
data: 'created_at',
|
||||||
name: 'created_at'
|
name: 'created_at'
|
||||||
|
@ -88,7 +92,7 @@
|
||||||
|
|
||||||
// GrandTotal over all pages
|
// GrandTotal over all pages
|
||||||
totalAll = api
|
totalAll = api
|
||||||
.column(8)
|
.column(9)
|
||||||
.data()
|
.data()
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
@ -97,7 +101,7 @@
|
||||||
|
|
||||||
// Total over this page
|
// Total over this page
|
||||||
pageTotal = api
|
pageTotal = api
|
||||||
.column(6, {
|
.column(7, {
|
||||||
page: 'current'
|
page: 'current'
|
||||||
})
|
})
|
||||||
.data()
|
.data()
|
||||||
|
@ -105,15 +109,15 @@
|
||||||
|
|
||||||
// total pesanan
|
// total pesanan
|
||||||
totalPesanan = api
|
totalPesanan = api
|
||||||
.column(5)
|
.column(6)
|
||||||
.data()
|
.data()
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
// Update footer
|
// Update footer
|
||||||
api.column(5).footer().innerHTML = totalPesanan + ' Item';
|
api.column(6).footer().innerHTML = totalPesanan + ' Item';
|
||||||
api.column(6).footer().innerHTML =
|
api.column(7).footer().innerHTML =
|
||||||
'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
api.column(8).footer().innerHTML =
|
api.column(9).footer().innerHTML =
|
||||||
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -147,13 +151,23 @@
|
||||||
success: function(result) {
|
success: function(result) {
|
||||||
$('#view_history_detail').empty()
|
$('#view_history_detail').empty()
|
||||||
if (result.status) {
|
if (result.status) {
|
||||||
const data = result.data
|
const data = result.data.detail_pesanan
|
||||||
let nomor = 1
|
let nomor = 1
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
data.forEach(x => {
|
data.forEach(x => {
|
||||||
|
if (x.status_pesanan == 0) {
|
||||||
|
statusnya = '<span class="badge badge-warning">TAKEAWAY</span>';
|
||||||
|
} else if (x.status_pesanan == 1) {
|
||||||
|
statusnya = '<span class="badge badge-info">DINEIN</span>';
|
||||||
|
} else if (x.status_pesanan == 2) {
|
||||||
|
statusnya = '<span class="badge badge-info">DINEIN</span>';
|
||||||
|
} else if (x.status_pesanan == 3) {
|
||||||
|
statusnya = '<span class="badge badge-danger">CANCEL</span>';
|
||||||
|
}
|
||||||
let tr = $('<tr></tr>')
|
let tr = $('<tr></tr>')
|
||||||
tr.append('<td class="text-center">' + nomor + '</td>')
|
tr.append('<td class="text-center">' + nomor + '</td>')
|
||||||
tr.append('<td>' + x.nama_produk + '</td>')
|
tr.append('<td>' + x.nama_produk +
|
||||||
|
statusnya + '</td>')
|
||||||
tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>')
|
tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>')
|
||||||
tr.append('<td class="text-center">' + x.jumlah_produk + '</td>')
|
tr.append('<td class="text-center">' + x.jumlah_produk + '</td>')
|
||||||
tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>')
|
tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>')
|
||||||
|
@ -163,11 +177,34 @@
|
||||||
$('#view_history_detail').append(tr)
|
$('#view_history_detail').append(tr)
|
||||||
nomor++
|
nomor++
|
||||||
})
|
})
|
||||||
|
$('#kode_pesanan').val(result.data.kode_pesanan)
|
||||||
|
$('#nama_pemesan').val(result.data.nama_pemesan)
|
||||||
|
$('#tanggal_jam').val(tanggal_jam(result.data.created_at))
|
||||||
|
$('#nomor_meja').val(result.data.nomor_meja)
|
||||||
|
$('#nomor_antrian').val(result.data.nomor_antrian)
|
||||||
|
$('#total_pesanan').val(result.data.total_pesanan + ' Item')
|
||||||
|
$('#sub_total').val(formatRupiah(result.data.total_bayar))
|
||||||
|
if (result.data.diskon_persen == null) {
|
||||||
|
result.data.diskon_persen = 0
|
||||||
|
}
|
||||||
|
$('#diskon_persen').val(result.data.diskon_persen + '%')
|
||||||
|
$('#grand_total').val(formatRupiah(result.data.grand_total))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
$('#modal_detail_history').modal('show')
|
$('#modal_detail_history').modal('show')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function tanggal_jam(tanggal) {
|
||||||
|
let date = new Date(tanggal)
|
||||||
|
let tahun = date.getFullYear()
|
||||||
|
let bulan = date.getMonth() + 1
|
||||||
|
let tanggalnya = date.getDate()
|
||||||
|
let jam = date.getHours()
|
||||||
|
let menit = date.getMinutes()
|
||||||
|
let detik = date.getSeconds()
|
||||||
|
return `${tanggalnya}-${bulan}-${tahun} ${jam}:${menit}:${detik}`
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
{{-- <script>
|
{{-- <script>
|
||||||
$(document).ready( function () {
|
$(document).ready( function () {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="modal fade" id="modal_detail_history" aria-labelledby="exampleModalLabel" >
|
<div class="modal fade" id="modal_detail_history" aria-labelledby="exampleModalLabel">
|
||||||
<div class="modal-dialog modal-lg">
|
<div class="modal-dialog modal-lg">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
|
@ -8,6 +8,61 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<div class="col-md-12" id="data-pesanan">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-md-4 col-form-label">Kode Pesanan</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="kode_pesanan"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Pemesan</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="nama_pemesan"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Tanggal & Jam</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="tanggal_jam"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Nomor Meja</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="nomor_meja" readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Urutan Pesanan</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="nomor_antrian"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="form-group row">
|
||||||
|
<label class="col-md-4 col-form-label">Total Pesanan</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="total_pesanan"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Sub Total</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="sub_total" readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Diskon(%)</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="diskon_persen"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
<label class="col-md-4 col-form-label">Grand Total</label>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<input type="text" class="form-control form-control-sm" id="grand_total"
|
||||||
|
readonly>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="table-responsive mt-3">
|
<div class="table-responsive mt-3">
|
||||||
<table id="tabelku" class="table table-hover display" style="width: 100%; font-size: 14px;">
|
<table id="tabelku" class="table table-hover display" style="width: 100%; font-size: 14px;">
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
@ -16,6 +16,8 @@
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||||
|
|
||||||
|
<!-- Action for a table -->
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('#tabelku').DataTable({
|
$('#tabelku').DataTable({
|
||||||
|
@ -67,6 +69,8 @@
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- Action Print -->
|
||||||
<script>
|
<script>
|
||||||
function printDapurTigaKali(id) {
|
function printDapurTigaKali(id) {
|
||||||
var url = "{{ route('transaksi.printDapurTigaKali', '') }}/" + id + '?print=true'
|
var url = "{{ route('transaksi.printDapurTigaKali', '') }}/" + id + '?print=true'
|
||||||
|
@ -89,6 +93,7 @@
|
||||||
location.reload(true);
|
location.reload(true);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// set interval waktu pesanan
|
// set interval waktu pesanan
|
||||||
function showTime() {
|
function showTime() {
|
||||||
|
@ -154,7 +159,8 @@
|
||||||
index = i;
|
index = i;
|
||||||
} else {
|
} else {
|
||||||
if (id == menuId) {
|
if (id == menuId) {
|
||||||
isExist = true;
|
// isExist = true;
|
||||||
|
// isExist = false;
|
||||||
index = i;
|
index = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,7 +208,7 @@
|
||||||
<br>
|
<br>
|
||||||
${(diskonSatuan > 0) ? '<small class="text-primary"><s>Rp. ' + (harga * qty) + '</s></small> | <small class="text-danger">Rp. ' + total + '</small>' : '<small class="text-primary">Rp. ' + totalLama + '</small>'}
|
${(diskonSatuan > 0) ? '<small class="text-primary"><s>Rp. ' + (harga * qty) + '</s></small> | <small class="text-danger">Rp. ' + total + '</small>' : '<small class="text-primary">Rp. ' + totalLama + '</small>'}
|
||||||
<div class="input-group input-group-sm mt-1">
|
<div class="input-group input-group-sm mt-1">
|
||||||
<input type="text" name="keterangan_satuan" data-keterangan="" class="form-control rounded-3" placeholder="Keterangane..">
|
<input type="text" name="keterangan_satuan" data-keterangan="" class="form-control rounded-3" placeholder="Keterangan..">
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
`;
|
`;
|
||||||
|
@ -219,6 +225,10 @@
|
||||||
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${row_id}, '${params.nama_produk}')">+</button>
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${row_id}, '${params.nama_produk}')">+</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" selected>Dine In</option>
|
||||||
|
<option value="0">Take Away</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
`;
|
`;
|
||||||
table.rows[index].cells[2].innerHTML = `
|
table.rows[index].cells[2].innerHTML = `
|
||||||
|
@ -266,6 +276,10 @@
|
||||||
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${globalId}, '${params.nama_produk}')">+</button>
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${globalId}, '${params.nama_produk}')">+</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" selected>Dine In</option>
|
||||||
|
<option value="0">Take Away</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
|
@ -300,6 +314,10 @@
|
||||||
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${globalId}, '${params.nama_produk}')">+</button>
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${globalId}, '${params.nama_produk}')">+</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" selected>Dine In</option>
|
||||||
|
<option value="0">Take Away</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
|
@ -383,7 +401,14 @@
|
||||||
var diskonSatuan = table.rows[index].getAttribute('data-diskon-satuan');
|
var diskonSatuan = table.rows[index].getAttribute('data-diskon-satuan');
|
||||||
var total = table.rows[index].getAttribute('data-total');
|
var total = table.rows[index].getAttribute('data-total');
|
||||||
var harga = table.rows[index].getAttribute('data-harga');
|
var harga = table.rows[index].getAttribute('data-harga');
|
||||||
var valueKeterangan = table.rows[index].cells[0].getElementsByTagName('input')[0].getAttribute('data-keterangan');
|
var valueKeterangan = table.rows[index].cells[0].getElementsByTagName('input')[0].getAttribute(
|
||||||
|
'data-keterangan');
|
||||||
|
var realValueKeterangan = table.rows[index].cells[0].getElementsByTagName('input')[0].value;
|
||||||
|
if (valueKeterangan != realValueKeterangan) {
|
||||||
|
valueKeterangan = realValueKeterangan;
|
||||||
|
}
|
||||||
|
|
||||||
|
var selectNya = table.rows[index].cells[1].getElementsByTagName('select')[0].value;
|
||||||
|
|
||||||
qty = parseInt(qty) + 1;
|
qty = parseInt(qty) + 1;
|
||||||
var totalLama = parseInt(total) + parseInt(harga);
|
var totalLama = parseInt(total) + parseInt(harga);
|
||||||
|
@ -416,6 +441,10 @@
|
||||||
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" ${selectNya == 2 ? 'selected' : ''}>Dine In</option>
|
||||||
|
<option value="0" ${selectNya == 0 ? 'selected' : ''}>Take Away</option>
|
||||||
|
</select>
|
||||||
</td>`;
|
</td>`;
|
||||||
|
|
||||||
calculateTotal();
|
calculateTotal();
|
||||||
|
@ -441,6 +470,8 @@
|
||||||
var valueKeterangan = table.rows[index].cells[0].getElementsByTagName('input')[0].getAttribute(
|
var valueKeterangan = table.rows[index].cells[0].getElementsByTagName('input')[0].getAttribute(
|
||||||
'data-keterangan');
|
'data-keterangan');
|
||||||
|
|
||||||
|
var selectNya = table.rows[index].cells[1].getElementsByTagName('select')[0].value;
|
||||||
|
|
||||||
if (qty > 1) {
|
if (qty > 1) {
|
||||||
qty = parseInt(qty) - 1;
|
qty = parseInt(qty) - 1;
|
||||||
var totalLama = parseInt(total) - parseInt(harga);
|
var totalLama = parseInt(total) - parseInt(harga);
|
||||||
|
@ -473,6 +504,10 @@
|
||||||
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" ${selectNya == 2 ? 'selected' : ''}>Dine In</option>
|
||||||
|
<option value="0" ${selectNya == 0 ? 'selected' : ''}>Take Away</option>
|
||||||
|
</select>
|
||||||
</td>
|
</td>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
@ -646,7 +681,10 @@
|
||||||
diskonSatuan: diskonSatuan,
|
diskonSatuan: diskonSatuan,
|
||||||
harga: harga,
|
harga: harga,
|
||||||
total: total,
|
total: total,
|
||||||
keterangan: document.getElementsByName('keterangan_satuan')[i - 1].value
|
keterangan: document.getElementsByName('keterangan_satuan')[i - 1]
|
||||||
|
.value,
|
||||||
|
status_pesanan_dinein: document.getElementsByName(
|
||||||
|
'status_pesanan_dinein')[i - 1].value,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1080,3 +1118,110 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- Action save to storage -->
|
||||||
|
<script>
|
||||||
|
function OrderStorage() {
|
||||||
|
var table = document.getElementById("order-menus");
|
||||||
|
var orderMenus = [];
|
||||||
|
|
||||||
|
for (var i = 1, row; row = table.rows[i]; i++) {
|
||||||
|
var id = row.getAttribute('data-id');
|
||||||
|
var nama = row.getAttribute('data-nama');
|
||||||
|
var qty = row.getAttribute('data-qty');
|
||||||
|
var diskonSatuan = row.getAttribute('data-diskon-satuan');
|
||||||
|
var harga = row.getAttribute('data-harga');
|
||||||
|
var total = row.getAttribute('data-total');
|
||||||
|
if (diskonSatuan != 0 && diskonSatuan != null && diskonSatuan != undefined) {
|
||||||
|
total = total - (total * (diskonSatuan / 100));
|
||||||
|
} else {
|
||||||
|
total = total
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id != null || qty != null || total != null) {
|
||||||
|
orderMenus.push({
|
||||||
|
id: id,
|
||||||
|
nama: nama,
|
||||||
|
qty: qty,
|
||||||
|
diskonSatuan: diskonSatuan,
|
||||||
|
harga: harga,
|
||||||
|
total: total,
|
||||||
|
keterangan: document.getElementsByName('keterangan_satuan')[i - 1].value,
|
||||||
|
status_pesanan_dinein: document.getElementsByName('status_pesanan_dinein')[i - 1].value
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let json = JSON.stringify({
|
||||||
|
name: 'Data Pesanan',
|
||||||
|
nama_pemesan: document.getElementsByName('nama-pemesan')[0].value,
|
||||||
|
nomor_pemesan: document.getElementsByName('nomor-pemesan')[0].value,
|
||||||
|
nomor_meja: document.getElementsByName('nomor-meja')[0].value,
|
||||||
|
keterangan_pesanan: document.getElementsByName('keterangan-pesanan')[0].value,
|
||||||
|
orderMenus
|
||||||
|
});
|
||||||
|
|
||||||
|
localStorage.setItem('OrderStorage', json);
|
||||||
|
}
|
||||||
|
|
||||||
|
function showOrderStorage(){
|
||||||
|
let data = JSON.parse(localStorage.OrderStorage);
|
||||||
|
|
||||||
|
document.getElementsByName('nama-pemesan')[0].value = data.nama_pemesan,
|
||||||
|
document.getElementsByName('nomor-pemesan')[0].value = data.nomor_pemesan,
|
||||||
|
document.getElementsByName('nomor-meja')[0].value = data.nomor_meja,
|
||||||
|
document.getElementsByName('keterangan-pesanan')[0].value = data.keterangan_pesanan,
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
data.orderMenus.forEach((i, key) => {
|
||||||
|
globalId++;
|
||||||
|
|
||||||
|
$('#tbody-order-menus').append(`
|
||||||
|
<tr id="row-${i.id}" data-id="${i.id}" data-row-id="${globalId}" data-nama="${i.nama}" data-harga="${i.harga}" data-qty="${i.qty}" data-diskon-satuan="${i.diskonSatuan}" data-total="${i.harga * i.qty}">
|
||||||
|
<td>
|
||||||
|
${i.nama}
|
||||||
|
<br>
|
||||||
|
${(parseInt(i.diskonSatuan) > 0) ? '<small class="text-primary"><s>Rp. ' + (i.harga * i.qty) + '</s></small> | <small class="text-danger">Rp. ' + ((i.harga * i.qty) - ((i.harga * i.qty) * (i.diskonSatuan / 100))) + '</small>' : '<small class="text-primary">Rp. ' + (i.harga * i.qty) + '</small>'}
|
||||||
|
<div class="input-group input-group-sm mt-1">
|
||||||
|
<input type="text" name="keterangan_satuan" class="form-control rounded-3" data-keterangan="${i.keterangan}" placeholder="Keterangan.." value="${i.keterangan}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<span class="input-group-append">
|
||||||
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${globalId}, '${i.nama}')"><b>-</b></button>
|
||||||
|
</span>
|
||||||
|
<input type="text" name="bayar" class="form-control rounded-3" readonly value="${i.qty}">
|
||||||
|
<span class="input-group-append">
|
||||||
|
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${globalId}, '${i.nama}')">+</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<select name="status_pesanan_dinein" id="status_pesanan_dinein" class="custom-select-mystyle form-control-border">
|
||||||
|
<option value="2" ${(i.status_pesanan_dinein == 2) ? 'selected' : ''}>Dine In</option>
|
||||||
|
<option value="0" ${(i.status_pesanan_dinein == 0) ? 'selected' : ''}>Take Away</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<input type="number" name="diskon_satuan" oninput="inputNum(this)" class="form-control rounded-3" value="${i.diskonSatuan}" onkeyup="diskonSatuanMenu(${globalId}, '${i.nama}', this.value)">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<button class="btn btn-danger btn-sm" onclick="deleteMenu(${globalId})">
|
||||||
|
<i class="fas fa-trash"></i>
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
`);
|
||||||
|
});
|
||||||
|
|
||||||
|
calculateTotal();
|
||||||
|
}
|
||||||
|
|
||||||
|
showOrderStorage();
|
||||||
|
|
||||||
|
// show time every second
|
||||||
|
setInterval(OrderStorage, 1000);
|
||||||
|
</script>
|
||||||
|
@endpush
|
|
@ -77,23 +77,24 @@
|
||||||
|
|
||||||
<body style="width: 58mm;">
|
<body style="width: 58mm;">
|
||||||
<!-- Button Print -->
|
<!-- Button Print -->
|
||||||
{{-- <div class="">
|
<div class="">
|
||||||
<div class="col-6 mb">
|
<div class="col-6 mb">
|
||||||
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
||||||
</div>
|
</div>
|
||||||
</div> --}}
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<h2 style="text-align: center">Sepiring Telur Keriting</h2>
|
<h2 style="text-align: center">Sepiring Telur Keriting</h2>
|
||||||
<p style="text-align: center">Jln. Jawa No. 28A, Jember</p>
|
<p style="text-align: center">Jln. Jawa No. 28A, Jember</p>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -120,7 +121,9 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach ($pesanan->detailPesanan as $item)
|
@foreach ($pesanan->detailPesanan as $item)
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 100px;" colspan="5">{{ $item->nama_produk }}</td>
|
<td style="width: 100px;" colspan="5">{{ $item->nama_produk }}
|
||||||
|
{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -170,14 +173,15 @@
|
||||||
<hr class="dashed-line" style="margin-top: 15px;">
|
<hr class="dashed-line" style="margin-top: 15px;">
|
||||||
<p style="text-align: center;font-size: 7pt">untuk dapur</p>
|
<p style="text-align: center;font-size: 7pt">untuk dapur</p>
|
||||||
<hr class="dashed-line" style="margin-top: 10px;">
|
<hr class="dashed-line" style="margin-top: 10px;">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -209,6 +213,7 @@
|
||||||
<h4>
|
<h4>
|
||||||
({{ $item->jumlah_produk }} X)
|
({{ $item->jumlah_produk }} X)
|
||||||
{{ $item->nama_produk }}
|
{{ $item->nama_produk }}
|
||||||
|
{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
</h4>
|
</h4>
|
||||||
@if ($item->keterangan_produk != '')
|
@if ($item->keterangan_produk != '')
|
||||||
<p>
|
<p>
|
||||||
|
@ -232,6 +237,8 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</body>
|
</body>
|
||||||
<style>
|
<style>
|
||||||
/* Untuk menyembunyikan tombol print */
|
/* Untuk menyembunyikan tombol print */
|
||||||
|
@ -307,7 +314,7 @@
|
||||||
// window.close();
|
// window.close();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
window.print();
|
// window.print();
|
||||||
|
|
||||||
const $btnPrint = document.querySelector("#print-dapur");
|
const $btnPrint = document.querySelector("#print-dapur");
|
||||||
$btnPrint.addEventListener("click", () => {
|
$btnPrint.addEventListener("click", () => {
|
||||||
|
|
|
@ -77,7 +77,7 @@
|
||||||
|
|
||||||
<body style="width: 56mm;">
|
<body style="width: 56mm;">
|
||||||
<!-- Button Print -->
|
<!-- Button Print -->
|
||||||
{{-- <div class="">
|
<div class="">
|
||||||
<div class="col-6 mb">
|
<div class="col-6 mb">
|
||||||
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -87,19 +87,20 @@
|
||||||
<div class="col-6 mb">
|
<div class="col-6 mb">
|
||||||
<button class="btn btn-danger btn-block hidden-print" id="close">Tutup</button>
|
<button class="btn btn-danger btn-block hidden-print" id="close">Tutup</button>
|
||||||
</div>
|
</div>
|
||||||
</div> --}}
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<h2 style="text-align: center">Sepiring Telur Keriting</h2>
|
<h2 style="text-align: center">Sepiring Telur Keriting</h2>
|
||||||
<p style="text-align: center">Jln. Jawa No. 28A, Jember</p>
|
<p style="text-align: center">Jln. Jawa No. 28A, Jember</p>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -126,7 +127,9 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach ($pesanan->detailPesanan as $item)
|
@foreach ($pesanan->detailPesanan as $item)
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 100px;" colspan="5">{{ $item->nama_produk }}</td>
|
<td style="width: 100px;" colspan="5">
|
||||||
|
{{ $item->nama_produk }}{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -176,14 +179,15 @@
|
||||||
<hr class="dashed-line" style="margin-top: 15px;">
|
<hr class="dashed-line" style="margin-top: 15px;">
|
||||||
<p style="text-align: center;font-size: 7pt">untuk dapur</p>
|
<p style="text-align: center;font-size: 7pt">untuk dapur</p>
|
||||||
<hr class="dashed-line" style="margin-top: 10px;">
|
<hr class="dashed-line" style="margin-top: 10px;">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -214,7 +218,7 @@
|
||||||
<td style="width: 80px;" colspan="3">
|
<td style="width: 80px;" colspan="3">
|
||||||
<h4>
|
<h4>
|
||||||
({{ $item->jumlah_produk }} X)
|
({{ $item->jumlah_produk }} X)
|
||||||
{{ $item->nama_produk }}
|
{{ $item->nama_produk }}{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
</h4>
|
</h4>
|
||||||
@if ($item->keterangan_produk != '')
|
@if ($item->keterangan_produk != '')
|
||||||
<p>
|
<p>
|
||||||
|
@ -238,6 +242,8 @@
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</body>
|
</body>
|
||||||
<style>
|
<style>
|
||||||
/* Untuk menyembunyikan tombol print */
|
/* Untuk menyembunyikan tombol print */
|
||||||
|
@ -320,7 +326,7 @@
|
||||||
// window.close();
|
// window.close();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
window.print();
|
// window.print();
|
||||||
|
|
||||||
const $btnPrint = document.querySelector("#print-dapur");
|
const $btnPrint = document.querySelector("#print-dapur");
|
||||||
$btnPrint.addEventListener("click", () => {
|
$btnPrint.addEventListener("click", () => {
|
||||||
|
|
|
@ -77,25 +77,26 @@
|
||||||
|
|
||||||
<body style="width: 58mm;">
|
<body style="width: 58mm;">
|
||||||
<!-- Button Print -->
|
<!-- Button Print -->
|
||||||
{{-- <div class="">
|
<div class="">
|
||||||
<div class="col-6 mb">
|
<div class="col-6 mb">
|
||||||
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
||||||
</div>
|
</div>
|
||||||
</div> --}}
|
</div>
|
||||||
<br>
|
<br>
|
||||||
@for ($i = 0; $i < 2; $i++)
|
@for ($i = 0; $i < 2; $i++)
|
||||||
<hr class="dashed-line" style="margin-top: 15px;">
|
<hr class="dashed-line" style="margin-top: 15px;">
|
||||||
<p style="text-align: center;font-size: 7pt">Print Dapur</p>
|
<p style="text-align: center;font-size: 7pt">Print Dapur</p>
|
||||||
<hr class="dashed-line" style="margin-top: 10px;">
|
<hr class="dashed-line" style="margin-top: 10px;">
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -125,7 +126,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td style="width: 80px;" colspan="3">
|
<td style="width: 80px;" colspan="3">
|
||||||
({{ $item->jumlah_produk }} X)
|
({{ $item->jumlah_produk }} X)
|
||||||
{{ $item->nama_produk }}
|
{{ $item->nama_produk }}{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
@if ($item->keterangan_produk != '')
|
@if ($item->keterangan_produk != '')
|
||||||
<p>
|
<p>
|
||||||
ket: {{ $item->keterangan_produk }}
|
ket: {{ $item->keterangan_produk }}
|
||||||
|
@ -149,6 +150,8 @@
|
||||||
</table>
|
</table>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
@endfor
|
@endfor
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</body>
|
</body>
|
||||||
<style>
|
<style>
|
||||||
/* Untuk menyembunyikan tombol print */
|
/* Untuk menyembunyikan tombol print */
|
||||||
|
@ -224,7 +227,7 @@
|
||||||
// window.close();
|
// window.close();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
window.print();
|
// window.print();
|
||||||
|
|
||||||
const $btnPrint = document.querySelector("#print-dapur");
|
const $btnPrint = document.querySelector("#print-dapur");
|
||||||
$btnPrint.addEventListener("click", () => {
|
$btnPrint.addEventListener("click", () => {
|
||||||
|
|
|
@ -77,25 +77,26 @@
|
||||||
|
|
||||||
<body style="width: 58mm;">
|
<body style="width: 58mm;">
|
||||||
<!-- Button Print -->
|
<!-- Button Print -->
|
||||||
{{-- <div class="">
|
<div class="">
|
||||||
<div class="col-6 mb">
|
<div class="col-6 mb">
|
||||||
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
<button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button>
|
||||||
</div>
|
</div>
|
||||||
</div> --}}
|
</div>
|
||||||
<br>
|
<br>
|
||||||
@for ($i = 0; $i < 3; $i++)
|
@for ($i = 0; $i < 3; $i++)
|
||||||
<hr class="dashed-line" style="margin-top: 15px;">
|
<hr class="dashed-line" style="margin-top: 15px;">
|
||||||
<p style="text-align: center;font-size: 7pt">Print Dapur</p>
|
<p style="text-align: center;font-size: 7pt">Print Dapur</p>
|
||||||
<hr class="dashed-line" style="margin-top: 10px;">
|
<hr class="dashed-line" style="margin-top: 10px;">
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
<h4 style="text-align: center">{{ $pesanan->kode_pesanan }}</h4>
|
||||||
<span style="display: flex; justify-content: space-between">
|
<span style="display: flex; justify-content: space-between">
|
||||||
<span>
|
<span>
|
||||||
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
|
||||||
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
|
||||||
</span>
|
</span>
|
||||||
<span style="text-align: right">
|
<span style="text-align: right">
|
||||||
<p>{{ $pesanan->kode_pesanan }}</p>
|
<p>Kasir:</p>
|
||||||
<p>Kasir: {{ $pesanan->user->name }}</p>
|
<p>{{ $pesanan->user->name }}</p>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
|
@ -126,7 +127,7 @@
|
||||||
<td style="width: 80px;" colspan="3">
|
<td style="width: 80px;" colspan="3">
|
||||||
<h4>
|
<h4>
|
||||||
({{ $item->jumlah_produk }} X)
|
({{ $item->jumlah_produk }} X)
|
||||||
{{ $item->nama_produk }}
|
{{ $item->nama_produk }}{{ $item->status_pesanan == 0 ? '(TAKEAWAY)' : ($item->status_pesanan == 3 ? '(CANCEL)' : '(DINEIN)') }}
|
||||||
</h4>
|
</h4>
|
||||||
@if ($item->keterangan_produk != '')
|
@if ($item->keterangan_produk != '')
|
||||||
<p>
|
<p>
|
||||||
|
@ -152,6 +153,8 @@
|
||||||
</table>
|
</table>
|
||||||
<hr class="style2">
|
<hr class="style2">
|
||||||
@endfor
|
@endfor
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
</body>
|
</body>
|
||||||
<style>
|
<style>
|
||||||
/* Untuk menyembunyikan tombol print */
|
/* Untuk menyembunyikan tombol print */
|
||||||
|
@ -227,7 +230,7 @@
|
||||||
// window.close();
|
// window.close();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
window.print();
|
// window.print();
|
||||||
|
|
||||||
const $btnPrint = document.querySelector("#print-dapur");
|
const $btnPrint = document.querySelector("#print-dapur");
|
||||||
$btnPrint.addEventListener("click", () => {
|
$btnPrint.addEventListener("click", () => {
|
||||||
|
|
|
@ -260,7 +260,7 @@
|
||||||
$kelompokKategoriPivot->produk->tgl_start_promo <= \Carbon\Carbon::now() &&
|
$kelompokKategoriPivot->produk->tgl_start_promo <= \Carbon\Carbon::now() &&
|
||||||
$kelompokKategoriPivot->produk->tgl_end_promo >= \Carbon\Carbon::now())
|
$kelompokKategoriPivot->produk->tgl_end_promo >= \Carbon\Carbon::now())
|
||||||
@if ($kelompokKategoriPivot->produk->stok_promo === 0)
|
@if ($kelompokKategoriPivot->produk->stok_promo === 0)
|
||||||
{{-- untuk promo aktif dan stok tersedia --}}
|
{{-- untuk promo aktif namun stok tidak tersedia --}}
|
||||||
<div class="col-xl-4 col-lg-6 col-md-6 col-sm-12">
|
<div class="col-xl-4 col-lg-6 col-md-6 col-sm-12">
|
||||||
<div class="card card-warning card-outline btn disabled">
|
<div class="card card-warning card-outline btn disabled">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
|
@ -298,7 +298,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@else
|
@else
|
||||||
{{-- untuk promo dengan stok kosong --}}
|
{{-- untuk promo tersedia --}}
|
||||||
<div class="col-xl-4 col-lg-6 col-md-6 col-sm-12">
|
<div class="col-xl-4 col-lg-6 col-md-6 col-sm-12">
|
||||||
<div class="card card-warning card-outline btn"
|
<div class="card card-warning card-outline btn"
|
||||||
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
|
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
|
||||||
|
@ -337,17 +337,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
@else
|
|
||||||
{{-- untuk promo tidak aktif --}}
|
|
||||||
@if ($loop->last)
|
|
||||||
Tidak ada promo
|
|
||||||
@endif
|
|
||||||
@endif
|
@endif
|
||||||
@else
|
@else
|
||||||
@if ($kelompokKategoriPivot->kelompok_kategori_id == 2)
|
@if ($kelompokKategoriPivot->kelompok_kategori_id == 2)
|
||||||
<div class="col-xl-3 col-lg-6 col-md-6 col-sm-12">
|
<div class="col-xl-3 col-lg-6 col-md-6 col-sm-12">
|
||||||
<div class="card card-warning card-outline btn"
|
<div class="card card-warning card-outline btn"
|
||||||
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
|
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }})">
|
||||||
<div class="card-header px-0">
|
<div class="card-header px-0">
|
||||||
<h6 class="m-0 text-sm text-bold">
|
<h6 class="m-0 text-sm text-bold">
|
||||||
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
|
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
|
||||||
|
@ -427,8 +422,8 @@
|
||||||
<thead style="background-color: rgb(230, 230, 230)">
|
<thead style="background-color: rgb(230, 230, 230)">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">Menu</th>
|
<th class="text-center">Menu</th>
|
||||||
<th class="text-center" width="110px">Qty</th>
|
<th class="text-center" width="115px">Qty</th>
|
||||||
<th class="text-center" width="65px">(%)</th>
|
<th class="text-center" width="70px">(%)</th>
|
||||||
<th class="text-center" width="30px">
|
<th class="text-center" width="30px">
|
||||||
<i class="fas fa-cog"></i>
|
<i class="fas fa-cog"></i>
|
||||||
</th>
|
</th>
|
||||||
|
@ -567,8 +562,29 @@
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }}">
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.custom-select-mystyle {
|
||||||
|
display: inline-block;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(2.25rem + 2px);
|
||||||
|
padding: .375rem .375rem .375rem .375em;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
color: #495057;
|
||||||
|
vertical-align: middle;
|
||||||
|
background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .175rem center/8px 10px no-repeat;
|
||||||
|
border: 1px solid #ced4da;
|
||||||
|
border-radius: .25rem;
|
||||||
|
box-shadow: inset 0 1px 2px rgba(0, 0, 0, .075);
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
background-color: white;
|
||||||
|
margin-top: 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@endpush
|
@endpush
|
||||||
|
|
||||||
@include('pages.Kasir.js')
|
@include('pages.Kasir.js')
|
||||||
|
|
||||||
@endpush
|
|
||||||
|
|
|
@ -0,0 +1,204 @@
|
||||||
|
<div class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Paket Spesial Terlaris</h3>
|
||||||
|
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="remove">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-header -->
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="chart-responsive">
|
||||||
|
<canvas id="pieChartPaket" height="150"></canvas>
|
||||||
|
</div>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<ul class="chart-legend clearfix" id="menuPaketLegend">
|
||||||
|
</ul>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-3 -->
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Paket Irit Terlaris</h3>
|
||||||
|
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="remove">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-header -->
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<div class="chart-responsive">
|
||||||
|
<canvas id="pieChartIrit" height="150"></canvas>
|
||||||
|
</div>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<ul class="chart-legend clearfix" id="menuIritLegend">
|
||||||
|
</ul>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-3 -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
</div>
|
||||||
|
<!-- /.content -->
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Nasi Terlaris</h3>
|
||||||
|
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="remove">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-header -->
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="chart-responsive">
|
||||||
|
<canvas id="pieChartNasi" height="150"></canvas>
|
||||||
|
</div>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<br>
|
||||||
|
<ul class="chart-legend clearfix" id="menuNasiLegend">
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-3 -->
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Sambal Terlaris</h3>
|
||||||
|
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="remove">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-header -->
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="chart-responsive">
|
||||||
|
<canvas id="pieChartSambal" height="150"></canvas>
|
||||||
|
</div>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<br>
|
||||||
|
<ul class="chart-legend clearfix" id="menuSambalLegend">
|
||||||
|
</ul>
|
||||||
|
<br>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-3 -->
|
||||||
|
<div class="col-lg-4">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Lauk Terlaris</h3>
|
||||||
|
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="collapse">
|
||||||
|
<i class="fas fa-minus"></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-tool" data-card-widget="remove">
|
||||||
|
<i class="fas fa-times"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-header -->
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="chart-responsive">
|
||||||
|
<canvas id="pieChartLauk" height="150"></canvas>
|
||||||
|
</div>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<ul class="chart-legend clearfix" id="menuLaukLegend1">
|
||||||
|
</ul>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<ul class="chart-legend clearfix" id="menuLaukLegend2">
|
||||||
|
</ul>
|
||||||
|
<!-- ./chart-responsive -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.col-lg-3 -->
|
||||||
|
</div>
|
||||||
|
<!-- /.row -->
|
||||||
|
</div>
|
||||||
|
<!-- /.container-fluid -->
|
||||||
|
</div>
|
||||||
|
<!-- /.content -->
|
|
@ -0,0 +1,271 @@
|
||||||
|
@push('scripts')
|
||||||
|
<script src="{{ asset('assets/plugins/chart.js/Chart.min.js') }}"></script>
|
||||||
|
<!-- ChartJS -->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('dashboard.getChartDounat') }}",
|
||||||
|
type: "GET",
|
||||||
|
cache: false,
|
||||||
|
async: false,
|
||||||
|
success: function(response) {
|
||||||
|
var data = response.data;
|
||||||
|
chartPaket(data.menuPaket);
|
||||||
|
chartIrit(data.menuIrit);
|
||||||
|
},
|
||||||
|
error: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
function chartPaket(params) {
|
||||||
|
//-------------
|
||||||
|
// - PIE CHART -
|
||||||
|
//-------------
|
||||||
|
// Get context with jQuery - using jQuery's .get() method.
|
||||||
|
var pieChartCanvas = $('#pieChartPaket').get(0).getContext('2d')
|
||||||
|
var data = params;
|
||||||
|
|
||||||
|
var color = ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
'#3c8dbc', '#d2d6de'
|
||||||
|
]
|
||||||
|
var menuPaketLegend = $('#menuPaketLegend');
|
||||||
|
$.each(data.labels, function(index, value) {
|
||||||
|
menuPaketLegend.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
});
|
||||||
|
var pieData = {
|
||||||
|
labels: data.labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data.data,
|
||||||
|
backgroundColor: color
|
||||||
|
// backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
// '#3c8dbc', '#d2d6de', '#605ca8', '#ff851b', '#00a65a',
|
||||||
|
// '#f39c12'
|
||||||
|
// ]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
var pieOptions = {
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Create pie or douhnut chart
|
||||||
|
// You can switch between pie and douhnut using the method below.
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var pieChart = new Chart(pieChartCanvas, {
|
||||||
|
type: 'pie',
|
||||||
|
data: pieData,
|
||||||
|
options: pieOptions
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function chartIrit(params) {
|
||||||
|
//-------------
|
||||||
|
// - PIE CHART -
|
||||||
|
//-------------
|
||||||
|
// Get context with jQuery - using jQuery's .get() method.
|
||||||
|
var pieChartCanvas = $('#pieChartIrit').get(0).getContext('2d')
|
||||||
|
var data = params;
|
||||||
|
|
||||||
|
var color = ['#605ca8', '#ff851b', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc'];
|
||||||
|
var menuIritLegend = $('#menuIritLegend');
|
||||||
|
$.each(data.labels, function(index, value) {
|
||||||
|
menuIritLegend.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
});
|
||||||
|
var pieData = {
|
||||||
|
labels: data.labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data.data,
|
||||||
|
backgroundColor: color
|
||||||
|
// backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
// '#3c8dbc', '#d2d6de', '#605ca8', '#ff851b', '#00a65a',
|
||||||
|
// '#f39c12'
|
||||||
|
// ]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
var pieOptions = {
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Create pie or douhnut chart
|
||||||
|
// You can switch between pie and douhnut using the method below.
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var pieChart = new Chart(pieChartCanvas, {
|
||||||
|
type: 'pie',
|
||||||
|
data: pieData,
|
||||||
|
options: pieOptions
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(function() {
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('dashboard.getChartDounatSatuan') }}",
|
||||||
|
type: "GET",
|
||||||
|
cache: false,
|
||||||
|
async: false,
|
||||||
|
success: function(response) {
|
||||||
|
var data = response.data;
|
||||||
|
chartNasi(data.menuNasi);
|
||||||
|
chartSambal(data.menuSambal);
|
||||||
|
chartLauk(data.menuLauk);
|
||||||
|
},
|
||||||
|
error: function(response) {
|
||||||
|
console.log(response);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
function chartNasi(params) {
|
||||||
|
//-------------
|
||||||
|
// - PIE CHART -
|
||||||
|
//-------------
|
||||||
|
// Get context with jQuery - using jQuery's .get() method.
|
||||||
|
var pieChartCanvas = $('#pieChartNasi').get(0).getContext('2d')
|
||||||
|
var data = params;
|
||||||
|
|
||||||
|
var color = ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
'#3c8dbc', '#d2d6de'
|
||||||
|
]
|
||||||
|
var menuNasiLegend = $('#menuNasiLegend');
|
||||||
|
$.each(data.labels, function(index, value) {
|
||||||
|
menuNasiLegend.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
});
|
||||||
|
var pieData = {
|
||||||
|
labels: data.labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data.data,
|
||||||
|
backgroundColor: color
|
||||||
|
// backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
// '#3c8dbc', '#d2d6de', '#605ca8', '#ff851b', '#00a65a',
|
||||||
|
// '#f39c12'
|
||||||
|
// ]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
var pieOptions = {
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Create pie or douhnut chart
|
||||||
|
// You can switch between pie and douhnut using the method below.
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var pieChart = new Chart(pieChartCanvas, {
|
||||||
|
type: 'doughnut',
|
||||||
|
data: pieData,
|
||||||
|
options: pieOptions
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function chartSambal(params) {
|
||||||
|
//-------------
|
||||||
|
// - PIE CHART -
|
||||||
|
//-------------
|
||||||
|
// Get context with jQuery - using jQuery's .get() method.
|
||||||
|
var pieChartCanvas = $('#pieChartSambal').get(0).getContext('2d')
|
||||||
|
var data = params;
|
||||||
|
|
||||||
|
var color = ['#605ca8', '#ff851b', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc'];
|
||||||
|
var menuSambalLegend = $('#menuSambalLegend');
|
||||||
|
$.each(data.labels, function(index, value) {
|
||||||
|
menuSambalLegend.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
});
|
||||||
|
var pieData = {
|
||||||
|
labels: data.labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data.data,
|
||||||
|
backgroundColor: color
|
||||||
|
// backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
// '#3c8dbc', '#d2d6de', '#605ca8', '#ff851b', '#00a65a',
|
||||||
|
// '#f39c12'
|
||||||
|
// ]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
var pieOptions = {
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Create pie or douhnut chart
|
||||||
|
// You can switch between pie and douhnut using the method below.
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var pieChart = new Chart(pieChartCanvas, {
|
||||||
|
type: 'doughnut',
|
||||||
|
data: pieData,
|
||||||
|
options: pieOptions
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function chartLauk(params) {
|
||||||
|
//-------------
|
||||||
|
// - PIE CHART -
|
||||||
|
//-------------
|
||||||
|
// Get context with jQuery - using jQuery's .get() method.
|
||||||
|
var pieChartCanvas = $('#pieChartLauk').get(0).getContext('2d')
|
||||||
|
var data = params;
|
||||||
|
|
||||||
|
var color = ['#605ca8', '#ff851b', '#00a65a', '#f39c12', '#00c0ef', '#3c8dbc', '#d2d6de', '#f56954', '#4b0082',
|
||||||
|
'#ff0000'
|
||||||
|
];
|
||||||
|
var menuLaukLegend1 = $('#menuLaukLegend1');
|
||||||
|
var menuLaukLegend2 = $('#menuLaukLegend2');
|
||||||
|
$.each(data.labels, function(index, value) {
|
||||||
|
if (index > 4) {
|
||||||
|
menuLaukLegend2.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
} else {
|
||||||
|
menuLaukLegend1.append('<li><i class="far fa-circle" style="color:' +
|
||||||
|
color[index] + '"></i> ' + value + ' : ' + data.data[
|
||||||
|
index] + '</li>');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var pieData = {
|
||||||
|
labels: data.labels,
|
||||||
|
datasets: [{
|
||||||
|
data: data.data,
|
||||||
|
backgroundColor: color
|
||||||
|
// backgroundColor: ['#f56954', '#00a65a', '#f39c12', '#00c0ef',
|
||||||
|
// '#3c8dbc', '#d2d6de', '#605ca8', '#ff851b', '#00a65a',
|
||||||
|
// '#f39c12'
|
||||||
|
// ]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
var pieOptions = {
|
||||||
|
legend: {
|
||||||
|
display: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Create pie or douhnut chart
|
||||||
|
// You can switch between pie and douhnut using the method below.
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
var pieChart = new Chart(pieChartCanvas, {
|
||||||
|
type: 'doughnut',
|
||||||
|
data: pieData,
|
||||||
|
options: pieOptions
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@endpush
|
|
@ -208,6 +208,8 @@
|
||||||
<!-- /.container-fluid -->
|
<!-- /.container-fluid -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@include('pages.admin.dashboard.chart')
|
||||||
|
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
@ -280,5 +282,6 @@
|
||||||
@push('styles')
|
@push('styles')
|
||||||
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }} ">
|
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }} ">
|
||||||
@endpush
|
@endpush
|
||||||
|
@include('pages.admin.dashboard.chartjs')
|
||||||
|
|
||||||
@include('pages.admin.dashboard.js')
|
@include('pages.admin.dashboard.js')
|
||||||
|
|
|
@ -330,7 +330,7 @@
|
||||||
async: false,
|
async: false,
|
||||||
success: function(response) {
|
success: function(response) {
|
||||||
var data = response.data;
|
var data = response.data;
|
||||||
console.log(data);
|
// console.log(data);
|
||||||
changeDataFromCalculate('penjualanBulan', data.pendapatanBulan
|
changeDataFromCalculate('penjualanBulan', data.pendapatanBulan
|
||||||
.penjualanSatuBulan, data.pendapatanBulan.percentageOfSalesGrowth,
|
.penjualanSatuBulan, data.pendapatanBulan.percentageOfSalesGrowth,
|
||||||
data.pendapatanBulan.statusCalculation)
|
data.pendapatanBulan.statusCalculation)
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
@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"> Penjualan Dibatalkan</h1>
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<ol class="breadcrumb float-sm-right">
|
||||||
|
<li class="breadcrumb-item">Home</li>
|
||||||
|
<li class="breadcrumb-item">Transaksi</li>
|
||||||
|
<li class="breadcrumb-item active">Dibatalkan</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-info" style="min-height:5px; border-radius:1px;"></div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<label>Filter Pencarian:</label>
|
||||||
|
<form action="{{ route('penjualan.laporan') }}" method="POST">
|
||||||
|
@csrf
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_1"
|
||||||
|
name="filter_tanggal_1" value="{{ date('Y-m-d') }}">
|
||||||
|
</div>
|
||||||
|
<p>s/d</p>
|
||||||
|
<div class="col-md-3">
|
||||||
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_2"
|
||||||
|
name="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<a href="javascript:void(0)" class="btn btn-sm btn-primary" id="btn_filter"><i
|
||||||
|
class="fas fa-search mr-1"></i>Filter data</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div class="table-responsive mt-3">
|
||||||
|
<table id="tabeldibatalkan" class="table table-hover display" style="width: 100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">No</th>
|
||||||
|
<th>Kode Pesanan</th>
|
||||||
|
<th>Pemesan</th>
|
||||||
|
<th>Nomor Meja</th>
|
||||||
|
<th>Tanggal & Jam</th>
|
||||||
|
<th>Total Pesanan</th>
|
||||||
|
<th>Sub Total</th>
|
||||||
|
<th>Diskon(%)</th>
|
||||||
|
<th>Grand Total</th>
|
||||||
|
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th class="text-right" colspan="5">Total</th>
|
||||||
|
<th></th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
<th></th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@include('pages.admin.penjualan.style')
|
||||||
|
@include('pages.admin.penjualan.js_dibatalkan')
|
|
@ -25,29 +25,36 @@
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="col-md-12">
|
<div class="row">
|
||||||
|
<div class="col-md-10">
|
||||||
<label>Filter Pencarian:</label>
|
<label>Filter Pencarian:</label>
|
||||||
<form action="{{ route('penjualan.laporan') }}" method="POST">
|
<form action="{{ route('penjualan.laporan') }}" method="POST">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-2">
|
<div class="col-md-3">
|
||||||
<input type="date" class="form-control form-control-sm" id="filter_tanggal_1"
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_1"
|
||||||
name="filter_tanggal_1" value="{{ date('Y-m-d') }}">
|
name="filter_tanggal_1" value="{{ date('Y-m-d') }}">
|
||||||
</div>
|
</div>
|
||||||
<p>s/d</p>
|
<p>s/d</p>
|
||||||
<div class="col-md-2">
|
<div class="col-md-3">
|
||||||
<input type="date" class="form-control form-control-sm" id="filter_tanggal_2"
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_2"
|
||||||
name="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
name="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-2">
|
<div class="col-md-4">
|
||||||
<a href="javascript:void(0)" class="btn btn-sm btn-primary" id="btn_filter"><i
|
<a href="javascript:void(0)" class="btn btn-sm btn-primary" id="btn_filter"><i
|
||||||
class="fas fa-search mr-1"></i>Filter data</a>
|
class="fas fa-search mr-1"></i>Filter data</a>
|
||||||
<button class="btn btn-sm btn-warning" id="cetak_laporan" type="submit"><i
|
<button class="btn btn-sm btn-warning" id="cetak_laporan" type="submit"><i
|
||||||
class="fas fa-print mr-1"></i>Cetak</button>
|
class="fas fa-print mr-1"></i>Cetak Laporan Penjualan</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-2" style="text-align: right">
|
||||||
|
{{-- <a class="btn btn-sm btn-info mt-4" id="penjualan_cancel"
|
||||||
|
href="{{ route('penjualan.dibatalkan') }}"><i class="fas fa-table mr-1"></i>Penjualan
|
||||||
|
Dibatalkan</a> --}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="table-responsive mt-3">
|
<div class="table-responsive mt-3">
|
||||||
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/plugins/sweetalert2/sweetalert2.min.js') }}"></script>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
let dataTable = $('#tabelku').DataTable({
|
let dataTable = $('#tabelku').DataTable({
|
||||||
|
@ -154,15 +155,57 @@
|
||||||
let tr = $('<tr></tr>')
|
let tr = $('<tr></tr>')
|
||||||
tr.append('<td class="text-center">' + nomor + '</td>')
|
tr.append('<td class="text-center">' + nomor + '</td>')
|
||||||
tr.append('<td>' + x.nama_produk + '</td>')
|
tr.append('<td>' + x.nama_produk + '</td>')
|
||||||
tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>')
|
|
||||||
tr.append('<td class="text-center">' + x.jumlah_produk + '</td>')
|
|
||||||
tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>')
|
|
||||||
tr.append('<td class="text-center">' + x.diskon_persen + '%</td>')
|
|
||||||
tr.append('<td class="text-center">' + (x.keterangan_produk ?? '-') +
|
tr.append('<td class="text-center">' + (x.keterangan_produk ?? '-') +
|
||||||
'</td>')
|
'</td>')
|
||||||
|
tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>')
|
||||||
|
tr.append('<td class="text-center">' + x.jumlah_produk + '</td>')
|
||||||
|
tr.append('<td class="text-center">' + x.diskon_persen + '%</td>')
|
||||||
|
tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>')
|
||||||
|
if (x.status_pesanan != 3) {
|
||||||
|
tr.append(
|
||||||
|
'<td class="text-center"><button class="btn btn-danger btn-sm cancelOrderDetailBtn" data-id="' +
|
||||||
|
x.id + '" data-produk="' + x.nama_produk +
|
||||||
|
'">cancel</button></td>')
|
||||||
|
} else {
|
||||||
|
tr.append(
|
||||||
|
'<td class="text-center"><button class="btn btn-warning btn-sm disabled" data-id="' +
|
||||||
|
x.id + '" data-produk="' + x.nama_produk +
|
||||||
|
'">tercancel</button></td>')
|
||||||
|
}
|
||||||
|
// cetakStruk
|
||||||
|
$('#cetakStruk').attr('onclick', 'print(' + result.pesanan.id + ')')
|
||||||
$('#view_penjualan_detail').append(tr)
|
$('#view_penjualan_detail').append(tr)
|
||||||
nomor++
|
nomor++
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// add footer
|
||||||
|
let tfoot = $('<tr></tr>')
|
||||||
|
tfoot.append('<td colspan="6" class="text-right font-weight-bold">Total</td>')
|
||||||
|
tfoot.append('<td>' + formatRupiah(result.pesanan.grand_total) + '</td>')
|
||||||
|
tfoot.append('<td colspan="2"></td>')
|
||||||
|
$('#view_penjualan_detail_tfoot').empty().append(tfoot)
|
||||||
|
// set attribute to label
|
||||||
|
$('#kode_pesanan').text('Kode Pesanan: ' + result.pesanan.kode_pesanan)
|
||||||
|
$('#nama_pemesan').text('Nama Pemesan: ' + result.pesanan.nama_pemesan)
|
||||||
|
$('#nomor_meja').text('Nomor Meja: ' + result.pesanan.nomor_meja)
|
||||||
|
$('#urutan_pesanan').text('Urutan Pesanan: ' + result.pesanan.nomor_antrian)
|
||||||
|
$('#tanggal_pesan').text('Tanggal Pesan: ' + result.pesanan.tanggal_pesanan)
|
||||||
|
$('#total_pesanan').text('Total Pesanan: ' + result.pesanan.total_pesanan + ' Item')
|
||||||
|
$('#sub_total_pesanan').text('Sub Total: ' + formatRupiah(result.pesanan.total_bayar))
|
||||||
|
if (result.pesanan.diskon_persen == null) {
|
||||||
|
result.pesanan.diskon_persen = 0
|
||||||
|
}
|
||||||
|
$('#diskon_persen_pesanan').text('Diskon(%): ' + result.pesanan.diskon_persen + '%')
|
||||||
|
$('#grand_total_pesanan').text('Grand Total: ' + formatRupiah(result.pesanan
|
||||||
|
.grand_total))
|
||||||
|
|
||||||
|
// attach attribute to button
|
||||||
|
$('#cancelPesanan').attr('data-id', result.pesanan.id)
|
||||||
|
$('#cancelPesanan').attr('data-kode', result.pesanan.kode_pesanan)
|
||||||
|
$('#cancelPesanan').attr('data-nama', result.pesanan.nama_pemesan)
|
||||||
|
// attach a function to button
|
||||||
|
$('#cancelPesanan').attr('onclick', 'cancelPesanan(' + result.pesanan.id + ', "' +
|
||||||
|
result.pesanan.kode_pesanan + '", "' + result.pesanan.nama_pemesan + '")')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -191,6 +234,148 @@
|
||||||
return rupiah;
|
return rupiah;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(document).on('click', '.cancelOrderBtn', function() {
|
||||||
|
// get arttibute data-kode_pesanan from button
|
||||||
|
let id = $(this).attr('data-id');
|
||||||
|
let kode_pesanan = $(this).attr('data-kode_pesanan');
|
||||||
|
let nama_pemesanan = $(this).attr('data-nama_pemesan');
|
||||||
|
|
||||||
|
var text = "Membatalkan pesanan dengan data <br> Kode Pesanan: " + kode_pesanan +
|
||||||
|
" <br> Nama Pemesan: " +
|
||||||
|
nama_pemesanan +
|
||||||
|
" ?";
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Apakah anda yakin?',
|
||||||
|
html: text,
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Ya, Hapus!',
|
||||||
|
cancelButtonText: 'Batal'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: "{{ route('penjualan.cancel') }}",
|
||||||
|
data: {
|
||||||
|
_token: "{{ csrf_token() }}",
|
||||||
|
id: id
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
console.log(result);
|
||||||
|
if (result.status) {
|
||||||
|
Swal.fire(
|
||||||
|
'Berhasil!',
|
||||||
|
result.message,
|
||||||
|
'success'
|
||||||
|
)
|
||||||
|
$('#tabelku').DataTable().ajax.reload();
|
||||||
|
} else {
|
||||||
|
Swal.fire(
|
||||||
|
'Gagal!',
|
||||||
|
result.message,
|
||||||
|
'error'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('click', '.cancelOrderDetailBtn', function() {
|
||||||
|
// get arttibute data-kode_pesanan from button
|
||||||
|
let id = $(this).attr('data-id');
|
||||||
|
let produk = $(this).attr('data-produk');
|
||||||
|
|
||||||
|
var text = "Membatalkan pesanan dengan data <br> Menu Pesanan: " + produk +
|
||||||
|
" ?";
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Apakah anda yakin?',
|
||||||
|
html: text,
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Ya, Hapus!',
|
||||||
|
cancelButtonText: 'Batal'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: "{{ route('penjualan.cancelDetail') }}",
|
||||||
|
data: {
|
||||||
|
_token: "{{ csrf_token() }}",
|
||||||
|
id: id
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
console.log(result);
|
||||||
|
if (result.status) {
|
||||||
|
Swal.fire(
|
||||||
|
'Berhasil!',
|
||||||
|
result.message,
|
||||||
|
'success'
|
||||||
|
)
|
||||||
|
$('#tabelku').DataTable().ajax.reload();
|
||||||
|
} else {
|
||||||
|
Swal.fire(
|
||||||
|
'Gagal!',
|
||||||
|
result.message,
|
||||||
|
'error'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
function cancelPesanan(id, kode, nama) {
|
||||||
|
var text = "Membatalkan pesanan dengan data Kode Pesanan: " + kode +
|
||||||
|
" Nama Pemesan: " +
|
||||||
|
nama +
|
||||||
|
" ?";
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Apakah anda yakin?',
|
||||||
|
text: text,
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonColor: '#3085d6',
|
||||||
|
cancelButtonColor: '#d33',
|
||||||
|
confirmButtonText: 'Ya, Hapus!',
|
||||||
|
cancelButtonText: 'Batal'
|
||||||
|
}).then((result) => {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
$.ajax({
|
||||||
|
type: "DELETE",
|
||||||
|
url: "{{ route('penjualan.cancel') }}",
|
||||||
|
data: {
|
||||||
|
_token: "{{ csrf_token() }}",
|
||||||
|
id: id
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
if (result.status) {
|
||||||
|
Swal.fire(
|
||||||
|
'Berhasil!',
|
||||||
|
result.message,
|
||||||
|
'success'
|
||||||
|
)
|
||||||
|
$('#modal_detail_penjualan').modal('hide');
|
||||||
|
$('#tabelku').DataTable().ajax.reload();
|
||||||
|
} else {
|
||||||
|
Swal.fire(
|
||||||
|
'Gagal!',
|
||||||
|
result.message,
|
||||||
|
'error'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// // cetak_laporan
|
// // cetak_laporan
|
||||||
// $('#cetak_laporan').on('click', function() {
|
// $('#cetak_laporan').on('click', function() {
|
||||||
// let filter_tanggal_1 = $("#filter_tanggal_1").val()
|
// let filter_tanggal_1 = $("#filter_tanggal_1").val()
|
||||||
|
|
|
@ -0,0 +1,196 @@
|
||||||
|
@push('scripts')
|
||||||
|
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||||
|
<script src="{{ asset('assets/plugins/sweetalert2/sweetalert2.min.js') }}"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
let dataTable = $('#tabeldibatalkan').DataTable({
|
||||||
|
aLengthMenu: [
|
||||||
|
[25, 50, 100, 200, -1],
|
||||||
|
[25, 50, 100, 200, "All"]
|
||||||
|
],
|
||||||
|
processing: true,
|
||||||
|
serverSide: true,
|
||||||
|
ajax: {
|
||||||
|
url: '{{ route('penjualan.dibatalkan') }}',
|
||||||
|
data: function(d) {
|
||||||
|
d.filter_tanggal_1 = $("#filter_tanggal_1").val();
|
||||||
|
d.filter_tanggal_2 = $("#filter_tanggal_2").val();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
columns: [{
|
||||||
|
data: 'DT_RowIndex',
|
||||||
|
name: 'DT_RowIndex',
|
||||||
|
orderable: false,
|
||||||
|
searchable: false,
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'kode_pesanan',
|
||||||
|
name: 'kode_pesanan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'nama_pemesan',
|
||||||
|
name: 'nama_pemesan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'nomor_meja',
|
||||||
|
name: 'nomor_meja'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'created_at',
|
||||||
|
name: 'created_at'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'total_pesanan',
|
||||||
|
name: 'total_pesanan',
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'total_bayar',
|
||||||
|
name: 'total_bayar',
|
||||||
|
className: 'text-right',
|
||||||
|
render: function(data) {
|
||||||
|
// change to IDR
|
||||||
|
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'diskon_persen',
|
||||||
|
name: 'diskon_persen',
|
||||||
|
className: 'text-center',
|
||||||
|
render: function(data) {
|
||||||
|
return data ?? 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'grand_total',
|
||||||
|
name: 'grand_total',
|
||||||
|
className: 'text-right',
|
||||||
|
render: function(data) {
|
||||||
|
// change to IDR
|
||||||
|
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'ubah',
|
||||||
|
name: 'ubah',
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
footerCallback: function(row, data, start, end, display) {
|
||||||
|
let api = this.api();
|
||||||
|
// Remove the formatting to get integer data for summation
|
||||||
|
let intVal = function(i) {
|
||||||
|
return typeof i === 'string' ?
|
||||||
|
i.replace(/[\$,]/g, '') * 1 :
|
||||||
|
typeof i === 'number' ?
|
||||||
|
i :
|
||||||
|
0;
|
||||||
|
};
|
||||||
|
|
||||||
|
// GrandTotal over all pages
|
||||||
|
totalAll = api
|
||||||
|
.column(8)
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// GrandTotal over all pages
|
||||||
|
|
||||||
|
|
||||||
|
// Total over this page
|
||||||
|
pageTotal = api
|
||||||
|
.column(6, {
|
||||||
|
page: 'current'
|
||||||
|
})
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// total pesanan
|
||||||
|
totalPesanan = api
|
||||||
|
.column(5)
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// Update footer
|
||||||
|
api.column(5).footer().innerHTML = totalPesanan + ' Item';
|
||||||
|
api.column(6).footer().innerHTML =
|
||||||
|
'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
api.column(8).footer().innerHTML =
|
||||||
|
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#btn_filter').on('click', function() {
|
||||||
|
if ($("#filter_tanggal_1").val() == "" || $("#filter_tanggal_2").val() == "") {
|
||||||
|
alert("Input pencarian tidak boleh kosong")
|
||||||
|
} else {
|
||||||
|
dataTable.ajax.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function print(id) {
|
||||||
|
var url = "{{ route('penjualan.print', '') }}/" + id + '?print=true'
|
||||||
|
// window.open(url, '_blank');
|
||||||
|
window.open(url, '_blank', "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=900,height=600");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function detail(id_pesanan) {
|
||||||
|
$.ajax({
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||||
|
},
|
||||||
|
type: "POST",
|
||||||
|
url: "{{ route('penjualan.getDataDetailPenjualan') }}",
|
||||||
|
data: {
|
||||||
|
id_pesanan: id_pesanan,
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
$('#view_penjualan_detail').empty()
|
||||||
|
if (result.status) {
|
||||||
|
const data = result.data
|
||||||
|
let nomor = 1
|
||||||
|
// console.log(data);
|
||||||
|
data.forEach(x => {
|
||||||
|
let tr = $('<tr></tr>')
|
||||||
|
tr.append('<td class="text-center">' + nomor + '</td>')
|
||||||
|
tr.append('<td>' + x.nama_produk + '</td>')
|
||||||
|
tr.append('<td>' + formatRupiah(x.harga_produk) + '</td>')
|
||||||
|
tr.append('<td class="text-center">' + x.jumlah_produk + '</td>')
|
||||||
|
tr.append('<td>' + formatRupiah(x.total_harga_produk) + '</td>')
|
||||||
|
tr.append('<td class="text-center">' + x.diskon_persen + '%</td>')
|
||||||
|
tr.append('<td class="text-center">' + (x.keterangan_produk ?? '-') +
|
||||||
|
'</td>')
|
||||||
|
$('#view_penjualan_detail').append(tr)
|
||||||
|
nomor++
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#modal_detail_penjualan').modal('show')
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function formatRupiah(angka) {
|
||||||
|
var bilangan = parseInt(angka);
|
||||||
|
|
||||||
|
// Cek apakah bilangan negatif atau positif
|
||||||
|
var minus = "";
|
||||||
|
if (bilangan < 0) {
|
||||||
|
minus = "-";
|
||||||
|
bilangan = Math.abs(bilangan);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Konversi angka menjadi format ribuan dengan menambahkan titik
|
||||||
|
var reverse = bilangan.toString().split("").reverse().join("");
|
||||||
|
var ribuan = reverse.match(/\d{1,3}/g);
|
||||||
|
var hasil = ribuan.join(".").split("").reverse().join("");
|
||||||
|
|
||||||
|
// Gabungkan hasil dengan simbol rupiah
|
||||||
|
var rupiah = "Rp " + minus + hasil;
|
||||||
|
|
||||||
|
return rupiah;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@endpush
|
|
@ -8,23 +8,51 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="kode_pesanan" id="kode_pesanan"></label><br>
|
||||||
|
<label for="nama_pemesan" id="nama_pemesan"></label><br>
|
||||||
|
<label for="nomor_meja" id="nomor_meja"></label><br>
|
||||||
|
<label for="urutan_pesanan" id="urutan_pesanan"></label><br>
|
||||||
|
<label for="tanggal_pesan" id="tanggal_pesan"></label><br>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="total_pesanan" id="total_pesanan"></label><br>
|
||||||
|
<label for="sub_total" id="sub_total_pesanan"></label><br>
|
||||||
|
<label for="diskon_persen" id="diskon_persen_pesanan"></label><br>
|
||||||
|
<label for="grand_total" id="grand_total_pesanan"></label><br>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="table-responsive mt-3">
|
<div class="table-responsive mt-3">
|
||||||
<table id="tabelku" class="table table-hover display" style="width: 100%; font-size: 14px;">
|
<table id="tabelku" class="table table-hover display" style="width: 100%; font-size: 14px;">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">No</th>
|
<th class="text-center">No</th>
|
||||||
<th>Nama Produk</th>
|
<th>Nama Produk</th>
|
||||||
|
<th>Keterangan</th>
|
||||||
<th>Harga</th>
|
<th>Harga</th>
|
||||||
<th class="text-center">Jumlah Terjual</th>
|
<th class="text-center">Jumlah Terjual</th>
|
||||||
<th>Total Harga</th>
|
|
||||||
<th class="text-center">Diskon(%)</th>
|
<th class="text-center">Diskon(%)</th>
|
||||||
<th>Keterangan</th>
|
<th>Total Harga</th>
|
||||||
|
<th class="text-center">
|
||||||
|
<i class="fas fa-cog"></i>
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="view_penjualan_detail"></tbody>
|
<tbody id="view_penjualan_detail"></tbody>
|
||||||
|
<tfoot id="view_penjualan_detail_tfoot"></tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="modal-footer justify-content-between">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||||
|
|
||||||
|
<div class="btn-group">
|
||||||
|
<button href="javascript:void(0)" class="btn btn-danger mr-1" id="cancelPesanan">Cancel Seluruh
|
||||||
|
Pesanan</button>
|
||||||
|
<button href="javascript:void(0)" class="btn btn-primary" id="cetakStruk">Cetak Struk</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -15,4 +15,5 @@
|
||||||
</style>
|
</style>
|
||||||
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
|
||||||
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }}">
|
<link rel="stylesheet" href="{{ asset('assets/datatables/datatables.min.css') }}">
|
||||||
|
<link rel="stylesheet" href="{{ asset('assets/plugins/sweetalert2/sweetalert2.min.css') }}">
|
||||||
@endpush
|
@endpush
|
|
@ -4,6 +4,8 @@ use App\Http\Controllers\Admins\Dashboard\CalculationController;
|
||||||
use App\Http\Controllers\Admins\Dashboard\ChartPengeluaranController;
|
use App\Http\Controllers\Admins\Dashboard\ChartPengeluaranController;
|
||||||
use App\Http\Controllers\Admins\Dashboard\ChartPenjualanController;
|
use App\Http\Controllers\Admins\Dashboard\ChartPenjualanController;
|
||||||
use App\Http\Controllers\Admins\Dashboard\DashboardController;
|
use App\Http\Controllers\Admins\Dashboard\DashboardController;
|
||||||
|
use App\Http\Controllers\Admins\Dashboard\DounatController;
|
||||||
|
use App\Http\Controllers\Admins\Dashboard\DounatSatuanController;
|
||||||
use App\Http\Controllers\Admins\JenisMenu\JenisMenuController;
|
use App\Http\Controllers\Admins\JenisMenu\JenisMenuController;
|
||||||
use App\Http\Controllers\Admins\Pengeluaran\PengeluaranController;
|
use App\Http\Controllers\Admins\Pengeluaran\PengeluaranController;
|
||||||
use App\Http\Controllers\Admins\Penjualan\PenjualanController;
|
use App\Http\Controllers\Admins\Penjualan\PenjualanController;
|
||||||
|
@ -85,6 +87,8 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
|
||||||
Route::get('/getChartMonth', [ChartPenjualanController::class, 'getChartMonth'])->name('dashboard.getChartMonth')->comment("Ambil data Total Penjualan per Bulan");
|
Route::get('/getChartMonth', [ChartPenjualanController::class, 'getChartMonth'])->name('dashboard.getChartMonth')->comment("Ambil data Total Penjualan per Bulan");
|
||||||
Route::get('/getChartYear', [ChartPenjualanController::class, 'getChartYear'])->name('dashboard.getChartYear')->comment("Ambil data Total Penjualan per Tahun");
|
Route::get('/getChartYear', [ChartPenjualanController::class, 'getChartYear'])->name('dashboard.getChartYear')->comment("Ambil data Total Penjualan per Tahun");
|
||||||
Route::get('/getChartPengeluaran', [ChartPengeluaranController::class, 'getChartPengeluaran'])->name('dashboard.getChartPengeluaran')->comment("Ambil data Total Pengeluaran");
|
Route::get('/getChartPengeluaran', [ChartPengeluaranController::class, 'getChartPengeluaran'])->name('dashboard.getChartPengeluaran')->comment("Ambil data Total Pengeluaran");
|
||||||
|
Route::get('/getChartDounat', [DounatController::class, 'getChartDounat'])->name('dashboard.getChartDounat')->comment("Ambil data Total Paket Terjual");
|
||||||
|
Route::get('/getChartDounatSatuan', [DounatSatuanController::class, 'getChartDounatSatuan'])->name('dashboard.getChartDounatSatuan')->comment("Ambil data Total Produk Satuan Terjual");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,6 +132,9 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
|
||||||
Route::get('/print/{id}', [PenjualanController::class, 'print'])->name('penjualan.print')->comment("Print Riwayat Transaksi Penjualan");
|
Route::get('/print/{id}', [PenjualanController::class, 'print'])->name('penjualan.print')->comment("Print Riwayat Transaksi Penjualan");
|
||||||
Route::post('/laporan', [PenjualanController::class, 'laporan'])->name('penjualan.laporan')->comment('Halaman Laporan Penjualan');
|
Route::post('/laporan', [PenjualanController::class, 'laporan'])->name('penjualan.laporan')->comment('Halaman Laporan Penjualan');
|
||||||
Route::post('/getDataDetailPenjualan', [PenjualanController::class, 'getDataDetailPenjualan'])->name('penjualan.getDataDetailPenjualan')->comment("Ambil data Detail Riwayat Transaksi Penjualan");
|
Route::post('/getDataDetailPenjualan', [PenjualanController::class, 'getDataDetailPenjualan'])->name('penjualan.getDataDetailPenjualan')->comment("Ambil data Detail Riwayat Transaksi Penjualan");
|
||||||
|
Route::delete('/cancel', [PenjualanController::class, 'cancel'])->name('penjualan.cancel')->comment("Cancel order transaksi penjualan");
|
||||||
|
Route::delete('/cancelDetail', [PenjualanController::class, 'cancelDetail'])->name('penjualan.cancelDetail')->comment("Cancel Detail order transaksi penjualan");
|
||||||
|
Route::get('/dibatalkan', [PenjualanController::class, 'dibatalkan'])->name('penjualan.dibatalkan')->comment("Halaman Transaksi Dibatalkan");
|
||||||
});
|
});
|
||||||
|
|
||||||
// Rekening Coa
|
// Rekening Coa
|
||||||
|
|
Loading…
Reference in New Issue