pengeluaran
parent
78e6e30a60
commit
52a37b0bc6
|
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
|||
use App\Models\BukuBesar;
|
||||
use App\Models\Pengeluaran;
|
||||
use App\Models\RekeningCoa;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
@ -14,14 +15,16 @@ class PengeluaranController extends Controller
|
|||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function index(){
|
||||
public function index()
|
||||
{
|
||||
$coaBiaya = RekeningCoa::where('kode_coa', 5)->get();
|
||||
$rekeningCoaTf = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get();
|
||||
|
||||
return view('pages.admin.pengeluaran.index', compact('coaBiaya', 'rekeningCoaTf'));
|
||||
}
|
||||
|
||||
public function simpan(Request $request){
|
||||
public function simpan(Request $request)
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
|
||||
|
@ -90,7 +93,8 @@ class PengeluaranController extends Controller
|
|||
}
|
||||
}
|
||||
|
||||
public function laporan(Request $request){
|
||||
public function laporan(Request $request)
|
||||
{
|
||||
$mpdf = new \Mpdf\Mpdf([
|
||||
'mode' => 'utf-8',
|
||||
'format' => 'A4',
|
||||
|
@ -117,4 +121,35 @@ class PengeluaranController extends Controller
|
|||
$mpdf->Output('Laporan_Pengeluaran.pdf', 'I');
|
||||
return response()->header('Content-Type', 'application/pdf');
|
||||
}
|
||||
|
||||
public function getDatapengeluaran(Request $request)
|
||||
{
|
||||
$nomor = 1;
|
||||
$filter_tanggal_1 = $request->filter_tanggal_1;
|
||||
$filter_tanggal_2 = $request->filter_tanggal_2;
|
||||
$data = Pengeluaran::with('user')
|
||||
->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
|
||||
return $query->whereDate('tanggal', '>=', $filter_tanggal_1);
|
||||
})
|
||||
->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
|
||||
return $query->whereDate('tanggal', '<=', $filter_tanggal_2);
|
||||
})
|
||||
->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
|
||||
return $query->whereDate('tanggal', Carbon::today());
|
||||
})
|
||||
->orderBy('tanggal', 'desc')
|
||||
->get();
|
||||
return datatables()
|
||||
->of($data)
|
||||
->addColumn('nomor', function ($data) use (&$nomor) {
|
||||
return $nomor++;
|
||||
})
|
||||
->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(['ubah'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,8 +20,6 @@
|
|||
<ul aria-labelledby="dropdownSubMenu1" class="dropdown-menu border-0 shadow">
|
||||
<li><a href="#" class="dropdown-item">Order </a></li>
|
||||
<li><a href="{{ route('pengeluaran.index') }}" class="dropdown-item">Pengeluaran</a></li>
|
||||
<li class="dropdown-divider"></li>
|
||||
<li><a href="{{ route('laporan.index') }}" class="dropdown-item">Laporan</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@canany(['users.index', 'menu.index'], auth()->user())
|
||||
|
|
|
@ -36,7 +36,8 @@
|
|||
<input type="date" class="form-control form-control-sm" id="filter_tanggal_2">
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
|
@ -79,4 +80,3 @@
|
|||
|
||||
@include('pages.History.style')
|
||||
@include('pages.History.js')
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@
|
|||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label>Tanggal</label>
|
||||
<input type="date" class="form-control" id="tanggal" value="{{ date('Y-m-d') }}">
|
||||
<input type="date" class="form-control" id="tanggal"
|
||||
value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label>Jenis Transaksi</label>
|
||||
|
@ -61,7 +62,8 @@
|
|||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label>Nominal</label>
|
||||
<input type="number" min="0" class="form-control" id="nominal" placeholder="Nominal Pengeluaran">
|
||||
<input type="number" min="0" class="form-control" id="nominal"
|
||||
placeholder="Nominal Pengeluaran">
|
||||
</div>
|
||||
<div class="col-md-6 mt-3">
|
||||
<label>Keterangan</label>
|
||||
|
@ -75,7 +77,8 @@
|
|||
@if ($coaTf->status == 0)
|
||||
<optgroup label="{{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}">
|
||||
@else
|
||||
<option value="{{ $biaya->id }}|{{ $coaTf->coa }}|{{ $coaTf->keterangan_coa }}">
|
||||
<option
|
||||
value="{{ $biaya->id }}|{{ $coaTf->coa }}|{{ $coaTf->keterangan_coa }}">
|
||||
{{ $coaTf->coa }} | {{ $coaTf->keterangan_coa }}</option>
|
||||
@endif
|
||||
@endforeach
|
||||
|
@ -103,19 +106,55 @@
|
|||
</div>
|
||||
<div class="col-md-4 mt-3">
|
||||
<label>Dari Tanggal</label>
|
||||
<input type="date" class="form-control" name="filter_tanggal_1" value="{{ date('Y-m-d') }}">
|
||||
<input type="date" class="form-control" name="filter_tanggal_1"
|
||||
id="filter_tanggal_1" value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-md-4 mt-3">
|
||||
<label>Sampai Tanggal</label>
|
||||
<input type="date" class="form-control" name="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
||||
<input type="date" class="form-control" name="filter_tanggal_2"
|
||||
id="filter_tanggal_2" value="{{ date('Y-m-d') }}">
|
||||
</div>
|
||||
<div class="col-md-4 mt-5">
|
||||
<button type="submit" class="btn btn-warning" id="filter_laporan">Preview</button>
|
||||
<div class="row">
|
||||
<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>
|
||||
<button class="btn btn-sm btn-warning" type="submit" id="filter_laporan"><i
|
||||
class="fas fa-print mr-1"></i>Cetak</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="table-responsive mt-3">
|
||||
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">No</th>
|
||||
<th>Faktur</th>
|
||||
<th>Kebutuhan</th>
|
||||
<th>Jenis Transaksi</th>
|
||||
<th>Jenis Transaksi</th>
|
||||
<th>Tanggal Transaksi</th>
|
||||
<th>User</th>
|
||||
<th>Nominal</th>
|
||||
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th class="text-right"></th>
|
||||
<th class="text-right"></th>
|
||||
<th class="text-right" colspan="4">Total</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>
|
||||
|
|
|
@ -1,5 +1,104 @@
|
|||
@push('scripts')
|
||||
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||
<script src="{{ asset('assets/plugins/toastr/toastr.min.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
let dataTable = $('#tabelku').DataTable({
|
||||
aLengthMenu: [
|
||||
[25, 50, 100, 200, -1],
|
||||
[25, 50, 100, 200, "All"]
|
||||
],
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
|
||||
ajax: {
|
||||
url: '{{ route('pengeluaran.getDataPengeluaran') }}',
|
||||
data: function(d) {
|
||||
d.filter_tanggal_1 = $("#filter_tanggal_1").val();
|
||||
d.filter_tanggal_2 = $("#filter_tanggal_2").val();
|
||||
}
|
||||
},
|
||||
columns: [{
|
||||
data: 'nomor',
|
||||
name: 'nomor',
|
||||
orderable: false,
|
||||
className: 'text-center'
|
||||
},
|
||||
{
|
||||
data: 'faktur',
|
||||
name: 'faktur'
|
||||
},
|
||||
{
|
||||
data: 'keterangan',
|
||||
name: 'keterangan'
|
||||
},
|
||||
{
|
||||
data: 'jenis_trasaksi',
|
||||
name: 'jenis_trasaksi',
|
||||
className: 'text-center',
|
||||
render: function(data) {
|
||||
if (data == 1) {
|
||||
return "Tunai"
|
||||
} else {
|
||||
return "Transfer"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'tanggal',
|
||||
name: 'tanggal'
|
||||
},
|
||||
{
|
||||
data: 'user.name',
|
||||
name: 'user.name'
|
||||
},
|
||||
{
|
||||
data: 'nominal',
|
||||
name: 'nominal',
|
||||
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(6)
|
||||
.data()
|
||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||
|
||||
// Update footer
|
||||
api.column(6).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>
|
||||
$(document).ready(function() {
|
||||
$('#jenis_transaksi').on('change', function() {
|
||||
|
|
|
@ -95,21 +95,11 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
|
|||
Route::get('/refresh-routes', [RoleController::class, 'refreshRoutes'])->name('roles.refresh-routes')->comment('Refresh Permission Routes');
|
||||
});
|
||||
|
||||
// Roles
|
||||
Route::group(['prefix' => 'laporan'], function () {
|
||||
Route::get('/', [LaporanController::class, 'index'])->name('laporan.index')->comment('Halaman Laporan');
|
||||
Route::get('/create', [LaporanController::class, 'create'])->name('laporan.create')->comment('Halaman Tambah Laporan');
|
||||
Route::post('/', [LaporanController::class, 'store'])->name('laporan.store')->comment('Tambah Laporan');
|
||||
Route::get('/edit/{id}', [LaporanController::class, 'edit'])->name('laporan.edit')->comment('Halaman Edit Laporan');
|
||||
Route::put('/update/{id}', [LaporanController::class, 'update'])->name('laporan.update')->comment('Perbarui Laporan');
|
||||
Route::delete('/delete/{id}', [LaporanController::class, 'destroy'])->name('laporan.delete')->comment('Menghapus Laporan');
|
||||
Route::get('/refresh-routes', [LaporanController::class, 'refreshRoutes'])->name('laporan.refresh-routes')->comment('Refresh Permission Routes');
|
||||
});
|
||||
|
||||
// Pengeluaran
|
||||
Route::group(['prefix' => 'pengeluaran'], function () {
|
||||
Route::get('/', [PengeluaranController::class, 'index'])->name('pengeluaran.index')->comment('Halaman Pengeluaran');
|
||||
Route::post('/simpan', [PengeluaranController::class, 'simpan'])->name('pengeluaran.simpan')->comment('Halaman Simpan Pengeluaran');
|
||||
Route::post('/laporan', [PengeluaranController::class, 'laporan'])->name('pengeluaran.laporan')->comment('Halaman Laporan');
|
||||
Route::get('/getDatapengeluaran', [PengeluaranController::class, 'getDatapengeluaran'])->name('pengeluaran.getDataPengeluaran')->comment("Ambil data Riwayat Transaksi");
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue