156 lines
6.0 KiB
PHP
156 lines
6.0 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 Carbon\Carbon;
|
|
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');
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|