filter penjualan

main-gitea-setelahakun
Zelda Ababil 2024-02-19 21:40:36 +07:00
parent a84a4ca90b
commit 19db37d2cf
9 changed files with 170 additions and 45 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admins\Penjualan;
use App\Http\Controllers\Controller;
use App\Models\DetailPesanan;
use App\Models\Pesanan;
use App\Models\RekeningCoa;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
@ -13,7 +14,9 @@ class PenjualanController extends Controller
{
public function index()
{
return view('pages.admin.penjualan.index');
$aba = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get();
return view('pages.admin.penjualan.index', compact('aba'));
}
public function getDataPenjualan(Request $request)
@ -21,18 +24,35 @@ class PenjualanController extends Controller
$nomor = 1;
$filter_tanggal_1 = $request->filter_tanggal_1;
$filter_tanggal_2 = $request->filter_tanggal_2;
$data = Pesanan::with(['detailPesanan', 'user'])
->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1);
})
->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2);
})
->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
return $query->whereDate('tanggal_pesanan', Carbon::today());
})
->orderBy('tanggal_pesanan', 'desc')
->get();
$akun_coa = $request->akun_coa;
if ($request->akun_coa == null) {
$data = Pesanan::with(['detailPesanan', 'user', 'rekening_coa'])
->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1);
})
->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2);
})
->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
return $query->whereDate('tanggal_pesanan', Carbon::today());
})
->orderBy('tanggal_pesanan', 'desc')
->get();
} else {
$data = Pesanan::with(['detailPesanan', 'user', 'rekening_coa'])
->where('rekening_coa_id', $akun_coa)
->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1);
})
->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2);
})
->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
return $query->whereDate('tanggal_pesanan', Carbon::today());
})
->orderBy('tanggal_pesanan', 'desc')
->get();
}
return datatables()
->of($data)
@ -55,6 +75,9 @@ class PenjualanController extends Controller
->addColumn('grand_total_rp', function ($data) {
return 'Rp ' . number_format($data->grand_total, 0, ',', '.');
})
->addColumn('jenis_pembayarannya', function ($data) {
return $data->jenis_pembayaran == 1 ? 'Tunai' : 'Non-Tunai' . ' (' . $data->rekening_coa->keterangan_coa . ')';
})
->addColumn('ubah', function ($data) {
return '<div class="btn-group">
<a class="btn btn-xs btn-warning mr-1" href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><i class="fas fa-eye"></i></a>
@ -94,13 +117,25 @@ class PenjualanController extends Controller
$mpdf->AddPage();
$mpdf->setFooter('{PAGENO}');
$data = Pesanan::with(['user', 'bukuBesar'])->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1)
->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2)
->get();
$filter_tanggal_1 = $request->filter_tanggal_1;
$filter_tanggal_2 = $request->filter_tanggal_2;
if ($request->jenis_coa == null) {
$keterangan_coa = 'Semua';
$data = Pesanan::with(['user', 'bukuBesar', 'rekening_coa'])->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1)
->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2)
->get();
} else {
$keterangan_coa = RekeningCoa::find($request->jenis_coa)->keterangan_coa;
$data = Pesanan::with(['user', 'bukuBesar', 'rekening_coa'])->where('rekening_coa_id', $request->jenis_coa)->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1)
->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2)
->get();
}
$html = view('pages.admin.penjualan.laporan', [
'data' => $data,
'filter_tanggal_1' => $request->filter_tanggal_1,
'filter_tanggal_2' => $request->filter_tanggal_2,
'filter_tanggal_1' => $filter_tanggal_1,
'filter_tanggal_2' => $filter_tanggal_2,
'keterangan_coa' => $keterangan_coa
]);
$mpdf->writeHTML($html);

View File

@ -182,6 +182,7 @@ class Transaksi extends Controller
'status_bayar' => '1',
'user_id' => $user->id,
'jenis_pembayaran' => $request->jenis_pembayaran,
'rekening_coa_id' => $request->id_rekening_coa,
];
$pesananModels = \App\Models\Pesanan::create($pesananDatas);
}

View File

@ -34,7 +34,7 @@ class Pesanan extends Model
'diskon_rupiah',
'user_id',
'jenis_pembayaran',
'coa_kas',
'rekening_coa_id',
];
public function detailPesanan()
@ -62,4 +62,9 @@ class Pesanan extends Model
{
return $this->hasMany(BukuBesar::class, 'pesanans_id');
}
public function rekening_coa()
{
return $this->belongsTo(RekeningCoa::class, 'rekening_coa_id');
}
}

View File

@ -0,0 +1,30 @@
<?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->dropForeign(['coa_kas']);
$table->dropColumn('coa_kas');
$table->foreignId('rekening_coa_id')->nullable()->after('jenis_pembayaran')->comment('relation in id coa kas')->references('id')->on('rekening_coa')->onUpdate('cascade')->onDelete('cascade');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('pesanans', function (Blueprint $table) {
$table->dropColumn('coa_kas');
});
}
};

View File

@ -776,6 +776,7 @@
// pembayaran non tunai
$('#pembayaran-nontunai').on('click', function() {
document.getElementById('pembayaran-nontunai').disabled = true;
let jenis_pembayaran = "2"
// return console.log(jenis_pembayaran);
var table = document.getElementById("order-menus");
@ -802,7 +803,10 @@
diskonSatuan: diskonSatuan,
harga: harga,
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,
});
}
}
@ -815,11 +819,11 @@
var namaPemesan = document.getElementsByName('nama-pemesan')[0].value;
var nomorPemesan = document.getElementsByName('nomor-pemesan')[0].value;
var nomorMeja = document.getElementsByName('nomor-meja')[0].value;
var rekening_coa_aba_penarikan = $("#rekening_coa_aba_penarikan").val()
var split_rekening_coa_aba_penarikan = rekening_coa_aba_penarikan.split("|")
var id_rekening_coa = split_rekening_coa_aba_penarikan[0]
var kode_coa = split_rekening_coa_aba_penarikan[1]
var keterangan_coa = split_rekening_coa_aba_penarikan[2]
var rekening_coa_aba_penarikan = $("#rekening_coa_aba_penarikan").val();
var split_rekening_coa_aba_penarikan = rekening_coa_aba_penarikan.split("|");
var id_rekening_coa = split_rekening_coa_aba_penarikan[0];
var kode_coa = split_rekening_coa_aba_penarikan[1];
var keterangan_coa = split_rekening_coa_aba_penarikan[2];
if (rekening_coa_aba_penarikan == '') {
alert('Pilih kas tujuan');
@ -828,7 +832,7 @@
if (orderMenus.length == 0) {
alert('Menu tidak boleh kosong');
document.getElementById('pesan-bayar-tunai').disabled = false;
document.getElementById('pembayaran-nontunai').disabled = false;
return false;
}
// if (totalDiskon != 0) {
@ -845,12 +849,12 @@
// }
if (namaPemesan == '' || namaPemesan == null || namaPemesan == undefined) {
alert('Nama pemesan tidak boleh kosong');
document.getElementById('pesan-bayar-tunai').disabled = false;
document.getElementById('pembayaran-nontunai').disabled = false;
return false;
}
if (nomorMeja == '' || nomorMeja == null || nomorMeja == undefined) {
alert('Nomor meja tidak boleh kosong');
document.getElementById('pesan-bayar-tunai').disabled = false;
document.getElementById('pembayaran-nontunai').disabled = false;
return false;
}
@ -877,7 +881,7 @@
method: "POST",
data: data,
success: function(result) {
document.getElementById('pesan-bayar-tunai').disabled = false;
document.getElementById('pembayaran-nontunai').disabled = false;
toastr.success(result.message, 'Success', {
timeOut: 2000
});
@ -889,7 +893,7 @@
}, 1000);
},
error: function(xhr, status, error) {
document.getElementById('pesan-bayar-tunai').disabled = false;
document.getElementById('pembayaran-nontunai').disabled = false;
toastr.error(xhr.responseJSON.message, 'Error', {
timeOut: 3000
});

View File

@ -32,14 +32,31 @@
@csrf
<div class="row">
<div class="col-md-3">
<input type="date" class="form-control form-control-sm" id="filter_tanggal_1"
<input type="date" class="form-control" 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"
<input type="date" class="form-control" id="filter_tanggal_2"
name="filter_tanggal_2" value="{{ date('Y-m-d') }}">
</div>
<div class="col-md-3">
<select type="text" class="form-control select2" id="jenis_coa"
style="width: 100%;" name="jenis_coa">
<option selected value="">--Pilih Rekening--</option>
@foreach ($aba as $coaAba)
@if ($coaAba->status == 0)
<optgroup label="{{ $coaAba->coa }} | {{ $coaAba->keterangan_coa }}">
@else
<option
value="{{ $coaAba->id }}|{{ $coaAba->coa }}|{{ $coaAba->keterangan_coa }}">
{{ $coaAba->coa }} | {{ $coaAba->keterangan_coa }}</option>
@endif
@endforeach
</optgroup>
<option value=""><b>Tampilkan Semua data</b></option>
</select>
</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>
@ -63,7 +80,7 @@
<th class="text-center">No</th>
<th>Kode Pesanan</th>
<th>Pemesan</th>
<th>Nomor Meja</th>
<th>Status Pembayaran</th>
<th>Tanggal & Jam</th>
<th>Total Pesanan</th>
<th>Sub Total</th>

View File

@ -1,7 +1,10 @@
@push('scripts')
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
<script src="{{ asset('assets/plugins/sweetalert2/sweetalert2.min.js') }}"></script>
<script src="{{ asset('assets/plugins/select2/js/select2.full.min.js') }}"></script>
<script>
// $('.select2').select2();
$(document).ready(function() {
let dataTable = $('#tabelku').DataTable({
aLengthMenu: [
@ -15,6 +18,7 @@
data: function(d) {
d.filter_tanggal_1 = $("#filter_tanggal_1").val();
d.filter_tanggal_2 = $("#filter_tanggal_2").val();
d.akun_coa = $("#jenis_coa").val();
}
},
columns: [{
@ -32,8 +36,8 @@
name: 'nama_pemesan'
},
{
data: 'nomor_meja',
name: 'nomor_meja'
data: 'jenis_pembayarannya',
name: 'jenis_pembayarannya'
},
{
data: 'created_at',

View File

@ -23,8 +23,18 @@
<td style="text-align: center; font-size: 20px; font-weight: bold;">Laporan Transaksi Penjualan</td>
</tr>
<tr>
<td style="text-align: center;">Pencarian:
{{ 'Antara Tanggal ' . toDmy($filter_tanggal_1) . ' s/d Tanggal ' . toDmy($filter_tanggal_2) . '' }}
<td>
<table style="width: 100%;">
<tr>
<td style="text-align: left;">
Pencarian:
{{ 'Antara Tanggal ' . toDmy($filter_tanggal_1) . ' s/d Tanggal ' . toDmy($filter_tanggal_2) . '' }}
</td>
<td style="text-align: right;">
Jenis Pembayaran: {{ $keterangan_coa }}
</td>
</tr>
</table>
</td>
</tr>
</table>
@ -36,7 +46,7 @@
<th style="border-collapse:collapse; border:1px solid black;">Kode Pesanan</th>
<th style="border-collapse:collapse; border:1px solid black;">Kasir</th>
<th style="border-collapse:collapse; border:1px solid black;">Nama Pemesan</th>
<th style="border-collapse:collapse; border:1px solid black;">Tanggal</th>
<th style="border-collapse:collapse; border:1px solid black;width: 24%">Tanggal</th>
<th style="border-collapse:collapse; border:1px solid black;">Jenis Pembayaran</th>
<th style="border-collapse:collapse; border:1px solid black;">Nominal</th>
{{-- <th style="border-collapse:collapse; border:1px solid black;">Keterangan</th> --}}
@ -59,13 +69,21 @@
@if ($val->jenis_pembayaran == 1 || $val->jenis_pembayaran == null)
Tunai
@else
Non Tunai
<br>
({{ $val->bukuBesar[0]->keterangan_coa }})
{{ $val->rekening_coa->keterangan_coa }}
@endif
</td>
<td style="text-align: left; border-collapse:collapse; border:1px solid black;">Rp
{{ format_uang($val->grand_total) }}</td>
<td style="text-align: left; border-collapse:collapse; border:1px solid black;">
<table style="width: 100%;">
<tr>
<td style="text-align:
left;">Rp
</td>
<td style="text-align: right;">
{{ format_uang($val->grand_total) }}
</td>
</tr>
</table>
</td>
{{-- <td style="border-collapse:collapse; border:1px solid black;">{{ $val->keterangan }}</td> --}}
</tr>
@endforeach
@ -79,9 +97,19 @@
<tfoot>
<tr>
<th colspan="6" style="text-align: right; border-collapse:collapse; border:1px solid black;">Total
&nbsp;&nbsp;&nbsp;
</th>
<th style="text-align: left; border-collapse:collapse; border:1px solid black;">
<table style="width: 100%;">
<tr>
<td style="text-align: left;">Rp
</td>
<td style="text-align: right;">
{{ format_uang($total) }}
</td>
</tr>
</table>
</th>
<th style="text-align: left; border-collapse:collapse; border:1px solid black;">Rp
{{ format_uang($total) }}</th>
</tr>
</tfoot>
</table>

View File

@ -16,4 +16,5 @@
<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/plugins/sweetalert2/sweetalert2.min.css') }}">
<link rel="stylesheet" href="{{ asset('assets/plugins/select2/css/select2.min.css') }}">
@endpush