<?php
namespace App\Http\Controllers;
use App\Helpers\helpers;
use App\Imports\RekeningImport;
use App\Models\HistoryTransaksi;
use App\Models\KodeRekening;
use App\Models\Rekening;
use App\Models\SubKegiatan;
use App\Models\TahunRekening;
use App\Models\Transaksi;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Schema;
use Maatwebsite\Excel\Facades\Excel;
class RekeningController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request)
{
if(!helpers::hakAkses('Rekening','view')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
// $history = HistoryTransaksi::get();
// dd($history);
if($request->get('page') == "import") {
$data['title'] = "Import Data Rekening";
return view('data_dasar.rekening.import', $data);
} else {
$post = new Rekening;
$tableName = $post->getTable();
$column = Schema::getColumnListing($tableName);
//dd($column);
if($request->get('cari')) {
$cari = $request->get('cari');
$data['Rekening'] = Rekening::orderBy('created_at','DESC');
// $data['KodeRekening'] = KodeRekening::orderBy('created_at','ASC');
foreach($column as $a => $value) {
// echo $value;
if($a == 0) {
$data['Rekening'] = $data['Rekening']->where($value,'like',"%".$request->get('cari')."%");
} else {
$data['Rekening'] = $data['Rekening']->orWhere($value,'like',"%".$request->get('cari')."%");
}
// else if($a == 1) {
// $data['Rekening'] = $data['Rekening']->orWhereHas('kode_rekening', function($kode) use($cari) {
// $kode->Where('kode','like',"%".$cari."%");
// });
// }
}
$data['Rekening'] = $data['Rekening']->paginate();
} else {
$data['Rekening'] = Rekening::orderBy('created_at','DESC')->paginate();
}
// $data['Rekening'] = Rekening::paginate();
$data['title'] = "Data Rekening";
// $data['Sub'] = SubKegiatan::get();
// dd($data['Sub']);
return view('data_dasar.rekening.index', $data);
}
}
/**
* Show the form for creating a new resource.
*/
public function create(Request $request)
{
if(!helpers::hakAkses('Rekening','create')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$data['title'] = "Tambah Rekening";
$data['tahun'] = TahunRekening::orderBy('tahun', 'DESC')->get();
// $data['KodeRekening'] = KodeRekening::all();
if($request->get('rekening')) {
// $kode = Rekening::find($request->get('rekening'));
$sub_kegiatan = SubKegiatan::where('rekening_id',$request->get('rekening'))->get();
return response()->json([
'sub_kegiatan' => $sub_kegiatan,
]);
} else if($request->get('sub_kegiatan')) {
$sub_kegiatan = SubKegiatan::find($request->get('sub_kegiatan'));
return response()->json([
'sub' => $sub_kegiatan,
]);
} else {
return view('data_dasar.rekening.tambah', $data);
}
}
/**
* Store a newly created resource in storage.
*/
public function store(Request $request)
{
if(Request('page') == "import") {
$rekening = new RekeningImport;
Excel::import($rekening, $request->file('import'));
if($rekening->getStatusData() == false) {
return redirect('/rekening?page=import')->with('error', "Mohon maaf terjadi kesalahan karena beberapa data dibagian colom Tahun Rekening datanya tidak tersedia!");
} else {
return redirect('/rekening')->with('success', "Berhasil menambah data Rekening ");
}
//
} else {
$rules = [
// 'username' => 'required|unique:users|unique:korcams|unique:korlabs|unique:kortps',
'kode' => 'required',
'nama' => 'required',
'jumlah' => 'required',
'tahun' => 'required',
];
$validate = $request->validate($rules, [
'kode.required' => 'Kode Wajib Di Isi.',
'nama.required' => 'Nama Wajib Di Isi.',
'jumlah.required' => 'Jumlah Wajib Di Isi.',
'tahun.required' => 'Tahun Wajib Di Isi.',
]);
try {
if(!helpers::hakAkses('Rekening','create')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$data = Rekening::create([
// 'kode_rekening_id' => $request->kode,
'kode' => $request->kode,
'nama' => $request->nama,
// 'tahun' => $request->tahun,
'jumlah' => str_replace(',', '', $request->jumlah),
'sisa' => str_replace(',', '', $request->jumlah),
'tahun_rekening_id' => $request->tahun,
]);
if(isset($request->sub_kegiatan)) {
foreach($request->sub_kegiatan as $a => $value) {
SubKegiatan::create([
'nama' => $request->sub_kegiatan[$a],
'jumlah' => $request->jumlahB[$a],
'sisa' => $request->jumlahB[$a],
'rekening_id' => $data->id,
]);
}
}
return redirect('/rekening')->with('success', "Berhasil menambah data Rekening ");
} catch (\Throwable $th) {
return redirect()->back()->with('error', 'Terjadi kesalahan!');
}
}
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
if(!helpers::hakAkses('Rekening','view')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
// $data['KodeRekening'] = KodeRekening::all();
$data['Rekening'] = Rekening::find($id);
$data['tahun'] = TahunRekening::orderBy('tahun', 'DESC')->get();
$data['title'] = "Detail Data Rekening";
return view('data_dasar.rekening.show', $data);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(string $id)
{
if(!helpers::hakAkses('Rekening','update')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
// $data['KodeRekening'] = KodeRekening::all();
$data['Rekening'] = Rekening::find($id);
$data['tahun'] = TahunRekening::orderBy('tahun', 'DESC')->get();
$data['title'] = "Edit Rekening";
return view('data_dasar.rekening.edit', $data);
}
/**
* Update the specified resource in storage.
*/
public function update(Request $request, string $id)
{
//
$rules = [
// 'username' => 'required|unique:users|unique:korcams|unique:korlabs|unique:kortps',
'kode' => 'required',
'nama' => 'required',
'jumlah' => 'required',
'tahun' => 'required',
];
$validate = $request->validate($rules, [
'kode.required' => 'Kode Wajib Di Isi.',
'nama.required' => 'Nama Wajib Di Isi.',
'jumlah.required' => 'Jumlah Wajib Di Isi.',
'tahun.required' => 'Tahun Wajib Di Isi.',
]);
try {
if(!helpers::hakAkses('Rekening','update')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$rekenings = Transaksi::where('rekening_id', $id)->whereHas('sub_kegiatan', function($sub) use($id) {
$sub->where('rekening_id', $id);
})->get();
// $rekening = Rekening::find($request->kode);
$subtotal = 0;
foreach($rekenings as $a) {
$subtotal = $subtotal + $a->rekening;
}
// $sisa = $rekening->sisa ;
$data = Rekening::where('id', $id)->update([
// 'kode_rekening_id' => $request->kode,
'kode' => $request->kode,
'nama' => $request->nama,
//'tahun' => $request->tahun,
'jumlah' => str_replace(',', '', $request->jumlah),
'sisa' => str_replace(',', '', $request->jumlah),
'tahun_rekening_id' => $request->tahun,
]);
if(isset($request->sub_kegiatan)) {
$delete = SubKegiatan::where('rekening_id', $id)->delete();
foreach($request->sub_kegiatan as $a => $value) {
SubKegiatan::create([
'nama' => $request->sub_kegiatan[$a],
'jumlah' => $request->jumlahB[$a],
'sisa' => $request->jumlahB[$a],
'rekening_id' => $id,
]);
}
}
return redirect('/rekening')->with('success', "Berhasil merubah Data Rekening ");
} catch (\Throwable $th) {
return redirect()->back()->with('error', 'Terjadi kesalahan!');
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(string $id)
{
try {
if(!helpers::hakAkses('Rekening','delete')){
return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
}
$data = Rekening::find($id);
$data->delete();
return redirect('/rekening')->with('success', "Berhasil menghapus Data Rekening ");
} catch (\Throwable $th) {
return redirect()->back()->with('error', 'Terjadi kesalahan!');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]