resto-dhepot/app/Http/Controllers/Admins/Pengeluaran/PengeluaranController.php

121 lines
4.5 KiB
PHP

<?php
namespace App\Http\Controllers\Admins\Pengeluaran;
use App\Http\Controllers\Controller;
use App\Models\BukuBesar;
use App\Models\Pengeluaran;
use App\Models\RekeningCoa;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class PengeluaranController extends Controller
{
/**
* Display a listing of the resource.
*/
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){
try {
DB::beginTransaction();
$user = request()->user();
Pengeluaran::create([
'faktur' => "PG-".date('YmdHis'),
'tanggal' => $request->tanggal,
'jenis_transaksi' => $request->jenis_transaksi,
'nominal' => $request->nominal,
'keterangan' => $request->keterangan,
'user_id' => $user->id
]);
if ($request->jenis_transaksi == "1") {
BukuBesar::create([
'faktur' => "PG-".date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => "2",
'kode_rekening_coa' => "1.100.01",
'keterangan_coa' => "Kas Kasir",
'keterangan' => $request->keterangan,
'debet' => 0,
'kredit' => $request->nominal
]);
BukuBesar::create([
'faktur' => "PG-".date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => $request->id_rekening_coa,
'kode_rekening_coa' => $request->kode_coa,
'keterangan_coa' => $request->keterangan_coa,
'keterangan' => $request->keterangan,
'debet' => $request->nominal,
'kredit' => 0,
]);
}else{
BukuBesar::create([
'faktur' => "PG-".date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => $request->id_rekening_coa_transfer,
'kode_rekening_coa' => $request->kode_coa_transfer,
'keterangan_coa' => $request->keterangan_coa_transfer,
'keterangan' => $request->keterangan,
'debet' => 0,
'kredit' => $request->nominal
]);
BukuBesar::create([
'faktur' => "PG-".date('YmdHis'),
'tanggal' => $request->tanggal,
'rekening_coa_id' => $request->id_rekening_coa,
'kode_rekening_coa' => $request->kode_coa,
'keterangan_coa' => $request->keterangan_coa,
'keterangan' => $request->keterangan,
'debet' => $request->nominal,
'kredit' => 0,
]);
}
DB::commit();
return response()->json(['status' => true, 'message' => 'Data berhasil tersimpan']);
} catch (\Throwable $th) {
DB::rollBack();
dd($th->getMessage());
return response()->json(['status' => false, 'message' => 'Kesalahan menyimpan data']);
}
}
public function laporan(Request $request){
$mpdf = new \Mpdf\Mpdf([
'mode' => 'utf-8',
'format' => 'A4',
'orientation' => 'portrait',
'margin_left' => 15,
'margin_right' => 15,
'margin_top' => 10,
'margin_bottom' => 10,
'default_font_size' => 9,
'default_font' => 'arial',
]);
$mpdf->AddPage();
$mpdf->setFooter('{PAGENO}');
$data = Pengeluaran::with('user')->whereDate('tanggal', '>=', $request->filter_tanggal_1)
->whereDate('tanggal', '<=', $request->filter_tanggal_2)
->get();
$html = view('pages.admin.pengeluaran.laporan', [
'data' => $data,
'filter_tanggal_1' => $request->filter_tanggal_1,
'filter_tanggal_2' => $request->filter_tanggal_2,
]);
$mpdf->writeHTML($html);
$mpdf->Output('Laporan_Pengeluaran.pdf', 'I');
return response()->header('Content-Type', 'application/pdf');
}
}