Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Http/Controllers/TransaksiController.php

<?php

namespace App\Http\Controllers;

use App\Exports\kwitansiExport;
use App\Exports\transaksiExport;
use App\Helpers\helpers;
use App\Imports\transaksiImport;
use App\Models\Anggaran;
use App\Models\Ekuitas;
use App\Models\HistoryTransaksi;
use App\Models\Kas;
use App\Models\KodeRekening;
use App\Models\Rekening;
use App\Models\Role;
use App\Models\SubKegiatan;
use App\Models\TahunRekening;
use App\Models\Transaksi;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Maatwebsite\Excel\Facades\Excel;

class TransaksiController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index(Request $request)
    {
        if(!helpers::hakAkses('Transaksi','view')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        if(Request('type')) {
            return Excel::download(new transaksiExport, 'Transaksi_'.date("d-m-Y").'.xlsx');
        }

        $data['grup_user'] = Role::get();

        $post = new Transaksi;
        $tableName = $post->getTable();
        $column = Schema::getColumnListing($tableName);
        //dd($column);
        if($request->get('cari')) {
            $cari = $request->get('cari');
            if(Auth::user()->role_id == 2) {
                $data['transaksi'] = Transaksi::where('staf_id', Auth::user()->id)->orderBy('created_at','DESC');
            } else {
                $data['transaksi'] = Transaksi::orderBy('created_at','DESC');
            }
            // $data['KodeRekening'] = KodeRekening::orderBy('created_at','ASC');
            foreach($column as $a => $value) {
                // echo $value;
                if($a == 0) {
                    $data['transaksi'] = $data['transaksi']->where($value,'like',"%".$request->get('cari')."%");
                } else if($a == 1) {
                    $data['transaksi'] = $data['transaksi']->orWhereHas('kode_rekening', function($kode) use($cari) {
                        $kode->Where('kode','like',"%".$cari."%");
                    });
                } else if($a == 5) {
                    $data['transaksi'] = $data['transaksi']->orWhereHas('tahun_rekening', function($tahun) use($cari) {
                        $tahun->Where('tahun','like',"%".$cari."%");
                    });
                }else {
                    $data['transaksi'] = $data['transaksi']->orWhere($value,'like',"%".$request->get('cari')."%");
                }
            }
            $data['transaksi'] = $data['transaksi']->paginate();
        } else {
            if(Auth::user()->role_id == 2) {
                $data['transaksi'] = Transaksi::where('staf_id', Auth::user()->id)->orderBy('created_at','DESC');
            } else {
                $data['transaksi'] = Transaksi::orderBy('created_at','DESC');
            }
            $data['transaksi'] = $data['transaksi']->paginate();
        }
        $data['title'] = "Data Transaksi";
        return view('transaksi.index', $data);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        if(!helpers::hakAkses('Transaksi','create')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        if(Request('type')) {
            $data['title'] = "Import Transaksi";
            return view('transaksi.import', $data);
        } else {
        // dd(date('m'));
        $statement = DB::select("SHOW TABLE STATUS LIKE 'transaksis'");
        // $data['nextId'] = $statement[0]->Auto_increment;
        $data['nextId'] = Transaksi::count();
        $data['bulan'] = helpers::getBulanRomawi(date('m'));
        $data['rekening'] = Rekening::all();
        $data['kas'] = Kas::orderBy('aktiva', 'ASC')->get();
        $data['ekuitas'] = Ekuitas::orderBy('type', 'ASC')->get();
        $data['tahun'] = TahunRekening::orderBy('tahun', 'DESC')->get();
        $data['title'] = "Tambah Transaksi";
        return view('transaksi.tambah', $data);
        }
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        //
        // $rules = [
        //     // 'username' => 'required|unique:users|unique:korcams|unique:korlabs|unique:kortps',
        //     'kode' => 'required',
        //     'tanggal' => 'required',
        //     'rekening' => 'required',
        //     'uraian' => 'required',
        //     'no_bku' => 'required',
        //     'type' => 'required',
        // ];

        // $validate = $request->validate($rules, [
        //     'kode.required' => 'Nama Wajib Di Isi.',
        //     'tanggal.required' => 'Nama Wajib Di Isi.',
        //     'rekening.required' => 'Nama Wajib Di Isi.',
        //     'uraian.required' => 'Nama Wajib Di Isi.',
        //     'no_bku.required' => 'Nama Wajib Di Isi.',
        //     'type.required' => 'Nama Wajib Di Isi.',

        // ]);
        // Excel::import(new transaksiImport, $request->file('import'));
            try {
                if(!helpers::hakAkses('Transaksi','create')){
                    return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
                }
                if(Request('types')) {
                    $transaksi = new transaksiImport;
                    Excel::import($transaksi, $request->file('import'));
                    if($transaksi->getStatusData() == false) {
                        return redirect('/transaksi/create?type=import')->with('error', "Mohon maaf terjadi kesalahan karena beberapa data dibagian colom kode, kegiatan, dan sub kegiatan datanya tidak tersedia!");
                    }
                } else {
                    $data = Transaksi::create([
                        'rekening_id' => $request->kode,
                        'sub_kegiatan_id' => $request->sub,
                        'tanggal' => $request->tanggal,
                        'rekening' => $request->rekening,
                        'uraian' => $request->uraian,
                        'no_bku' => $request->no_bku,
                        // 'tahun_rekening_id' => $request->tahun,
                        'type' => $request->type,
                        'ka_id' => $request->uang_muka,
                        'nominal_uang_muka' => $request->nominal_uang_muka,
                        'ekuitas_id' => $request->ekuitas,
                        'staf_id' => Auth::user()->id,
                    ]);

                    $id = $data->id;

                    $grandTotal = 0;

                    foreach($request->item as $index => $value) {
                        $anggaran = Anggaran::create([
                            'transaksi_id' => $id,
                            'item' => $request->item[$index],
                            'value_volume_1' => $request->kali[$index],
                            'nama_volume_1' => $request->nama_volume_1[$index],
                            // 'value_volume_2' => $request->unit[$index],
                            // 'nama_volume_2' => $request->nama_volume_2[$index],
                            'harga_satuan' => str_replace(',','',$request->harga_satuan[$index]) ,
                            'sub_total' =>  str_replace(',','',$request->sub_total[$index]) ,
                            'sisa_anggaran' => str_replace(',','',$request->sub_total[$index]),
                            'type' => $request->anggaran[$index]
                        ]);

                        $grandTotal = $grandTotal + str_replace(',','',$request->sub_total[$index]);
                    }

                    // if(!$request->uang_muka) {
                    //     $sub_kegiatan = SubKegiatan::find($request->sub);
                    //     if($request->type == 1) {
                    //         $sub_kegiatan->sisa = $sub_kegiatan->sisa - $grandTotal;
                    //     } else {
                    //         $sub_kegiatan->jumlah = $sub_kegiatan->jumlah + $grandTotal;
                    //         $sub_kegiatan->sisa = $sub_kegiatan->sisa + $grandTotal;
                    //     }
                    //     $sub_kegiatan->save();

                    //     $jumlah = SubKegiatan::where('rekening_id', $request->kode)->sum('jumlah');
                    //     $sisa = SubKegiatan::where('rekening_id', $request->kode)->sum('sisa');
                    //     $rek = Rekening::find($request->kode);
                    //     $rek->jumlah = $jumlah;
                    //     $rek->sisa = $sisa;
                    //     $rek->save();
                    // }
                }

                return redirect('/transaksi')->with('success', "Berhasil menambah Data Transaksi ");
            } catch (\Throwable $th) {
                return redirect()->back()->with('error', 'Terjadi kesalahan!');
            }
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id, Request $request)
    {
        if(!helpers::hakAkses('Transaksi','realisasi')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $data['transaksi'] = Transaksi::find($id);
        $data['title'] = "Realisasi Transaksi";
        if($request->get('realisasi')) {
            $item = Anggaran::find($request->get('realisasi'));
            return response()->json([
                'item' => $item,
            ]);
        } else {
            return view('transaksi.realisasi', $data);
        }
    }

    public function approve(string $id, Request $request)
    {
        if(!helpers::hakAkses('Transaksi','approve')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        $data['transaksi'] = Transaksi::find($id);
        $data['title'] = "Persetujuan Transaksi";
        $data['grup_user'] = Role::get();
        // dd($data['grup_user'][2]->limit_nominal);
        return view('transaksi.approve', $data);
    }

    public function setuju(Request $request, $id) {
        try {
            if(!helpers::hakAkses('Transaksi','approve')){
                return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
            }
            $grup_user = Role::get();
            $data = Transaksi::find($id);
            if(Request('muka')) {
                $data->uang_muka = 'false';
                $grandTotal = 0;

                foreach($data->anggaran as $index) {
                    $grandTotal = $grandTotal + $index->sub_total;
                }

                $rekening = SubKegiatan::find($data->sub_kegiatan_id);

                if($data->type == 1) {
                    $rekening->sisa = $rekening->sisa - $grandTotal;
                } else {
                    // $rekening->jumlah = $rekening->jumlah + $grandTotal;
                    $rekening->sisa = $rekening->sisa + $grandTotal;
                }
                $rekening->save();

                $jumlah = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('jumlah');
                $sisa = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('sisa');
                $rek = Rekening::find($data->rekening_id);
                $rek->jumlah = $jumlah;
                $rek->sisa = $sisa;
                $rek->save();

                $data->save();

                $history = HistoryTransaksi::where('transaksi_id', $data->id)->update([
                    'tanggal' => $data->tanggal,
                    'saldo_sisa' => $rekening->sisa,
                    'status' => $data->uang_muka,
                ]);
                return redirect()->back()->with('success', "Uang Muka telah Lunas! ");
                // return view('transaksi.approve', $data)->with('success', "Uang Muka sudah lunas!");
            } else {

                if($request->get('staf')) {
                    $data->staf_id = $request->get('staf');
                }

                if($request->get('bendahara')) {
                    $data->bendahara_id = $request->get('bendahara');
                    $data->tanggal_bendahara = date("Y-m-d H:i:s");
                    $data->setuju_bendahara = $request->get('approve') == 'true' ? 1 : 0;

                    if($request->get('approve') == 'true') {

                        if($data->rekening <= $grup_user[2]->limit_nominal) {
                            $grandTotal = 0;

                            $data->tanggal_bayar = date('Y-m-d');

                            foreach($data->anggaran as $index) {
                                $grandTotal = $grandTotal + $index->sub_total;
                            }

                            $rekening = SubKegiatan::find($data->sub_kegiatan_id);

                            if($data->type == 1) {
                                $rekening->sisa = $rekening->sisa - $grandTotal;
                            } else {
                                // $rekening->jumlah = $rekening->jumlah + $grandTotal;
                                $rekening->sisa = $rekening->sisa + $grandTotal;
                            }
                            $rekening->save();

                            $jumlah = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('jumlah');
                            $sisa = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('sisa');
                            $rek = Rekening::find($data->rekening_id);
                            $rek->jumlah = $jumlah;
                            $rek->sisa = $sisa;
                            $rek->save();

                            $history = HistoryTransaksi::create([
                                'rekening_id' => $rekening->rekening_id,
                                'sub_kegiatan_id' => $data->sub_kegiatan_id,
                                'transaksi_id' => $data->id,
                                'tanggal' => $data->tanggal,
                                'saldo_sisa' => $rekening->sisa,
                                'status' => $data->uang_muka,
                            ]);

                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 1) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_january' => $a->sub_total,
                                    ]);
                                }
                            }

                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 2) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_february' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 3) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_march' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 4) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_april' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 5) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_may' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 6) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_june' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 7) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_july' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 8) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_august' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 9) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_september' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 10) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_october' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 11) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_november' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 12) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_december' => $a->sub_total,
                                    ]);
                                }
                            }

                        }
                    }
                }

                if($request->get('kepala')) {
                    $data->kepala_id = $request->get('kepala');
                    $data->tanggal_kepala = date("Y-m-d H:i:s");
                    // dd($request->get('approve'));
                    $data->setuju_kepala = $request->get('approve') == 'true' ? 1 : 0;

                    if($request->get('approve') == 'true') {
                        if($data->rekening > $grup_user[2]->limit_nominal) {
                            $grandTotal = 0;

                            $data->tanggal_bayar = date('Y-m-d');

                            foreach($data->anggaran as $index) {
                                $grandTotal = $grandTotal + $index->sub_total;
                            }

                            $rekening = SubKegiatan::find($data->sub_kegiatan_id);
                            // if($data->uang_muka == "false") {


                            // }
                            if($data->type == 1) {
                                $rekening->sisa = $rekening->sisa - $grandTotal;
                            } else {
                                // $rekening->jumlah = $rekening->jumlah + $grandTotal;
                                $rekening->sisa = $rekening->sisa + $grandTotal;
                            }
                            $rekening->save();

                            $jumlah = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('jumlah');
                            $sisa = SubKegiatan::where('rekening_id', $data->rekening_id)->sum('sisa');
                            $rek = Rekening::find($data->rekening_id);
                            $rek->jumlah = $jumlah;
                            $rek->sisa = $sisa;
                            $rek->save();

                            $history = HistoryTransaksi::create([
                                'rekening_id' => $rekening->rekening_id,
                                'sub_kegiatan_id' => $data->sub_kegiatan_id,
                                'transaksi_id' => $data->id,
                                'tanggal' => $data->tanggal,
                                'saldo_sisa' => $rekening->sisa,
                                'status' => $data->uang_muka,
                            ]);

                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 1) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_january' => $a->sub_total,
                                    ]);
                                }
                            }

                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 2) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_february' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 3) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_march' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 4) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_april' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 5) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_may' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 6) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_june' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 7) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_july' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 8) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_august' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 9) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_september' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 10) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_october' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 11) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_november' => $a->sub_total,
                                    ]);
                                }
                            }
                            if(date('m', strtotime(date("Y-m-d H:i:s"))) == 12) {
                                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                                foreach($anggaran as $a) {
                                    $as = Anggaran::where('id', $a->id)->update([
                                        'realisasi_december' => $a->sub_total,
                                    ]);
                                }
                            }

                        }
                    }
                }
                $data->save();

                return redirect('/transaksi')->with('success', "Data telah berhasil disetujui! ");
            }
        } catch (\Throwable $th) {
            return redirect()->back()->with('error', 'Terjadi kesalahan!');
        }
    }

    public function realisasi($id, Request $request) {
        try {
            if(!helpers::hakAkses('Transaksi','realisasi')){
                return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
            }
            $realisasiMonth = ["realisasi_january", "realisasi_february", "realisasi_march", "realisasi_april", "realisasi_may", "realisasi_june", "realisasi_july", "realisasi_august", "realisasi_september", "realisasi_october", "realisasi_november", "realisasi_december"];
            for($i = 0; $i < count($realisasiMonth); $i++) {
                if($request->input($realisasiMonth[$i])) {
                    $data = Anggaran::where('id', $id)->update([
                        $realisasiMonth[$i] => $request->input($realisasiMonth[$i]),
                    ]);
                }
            }

            $datas = Anggaran::find($id);
            $sum = 0;
            for($i = 0; $i < count($realisasiMonth); $i++) {
                $sum = $sum + $datas->{$realisasiMonth[$i]};
            }

            $updateSISA = Anggaran::where('id', $id)->update([
                'sisa_anggaran' => $datas->sub_total - $sum,
            ]);

            $datas = Anggaran::find($id);
            return response()->json([
                'item' => $datas,
                'message' => 'berhasil mengisi realisasi!',
            ]);
        } catch (\Throwable $th) {
            return response()->json([
                'message' => 'Terjadi Kesalahan!',
            ]);
        }
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        if(!helpers::hakAkses('Transaksi','update')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $data['rekening'] = Rekening::all();
        $data['tahun'] = TahunRekening::orderBy('tahun', 'DESC')->get();
        $data['transaksi'] = Transaksi::find($id);
        $data['sub'] = SubKegiatan::where('rekening_id', $data['transaksi']->rekening_id)->get();
        $data['kas'] = Kas::orderBy('aktiva', 'ASC')->get();
        $data['ekuitas'] = Ekuitas::orderBy('type', 'ASC')->get();
        $data['title'] = "Edit Transaksi";
        return view('transaksi.edit', $data);
    }

    public function kwitansi(string $id) {

        if(!helpers::hakAkses('Transaksi','view')){
            return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        // return Excel::download(new kwitansiExport($id), 'Kwitansi_Transaksi_'.date("d-m-Y").'.xlsx');
        $data['transaksi'] = Transaksi::find($id);
        $data['title'] = "Kwitansi";
        $data['grup_user'] = Role::get();
        $pdf = Pdf::loadview('transaksi.kwitansi', $data)->setPaper('A4', 'potrait');
    	// return $pdf->download('laporan-pegawai.pdf');
        return $pdf->stream("dompdf_out.pdf", array("Attachment" => false));
    }

    /**
     * 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',
        //     'tanggal' => 'required',
        //     'rekening' => 'required',
        //     'uraian' => 'required',
        //     'no_bku' => 'required',
        //     'type' => 'required',
        // ];

        // $validate = $request->validate($rules, [
        //     'kode.required' => 'Nama Wajib Di Isi.',
        //     'tanggal.required' => 'Nama Wajib Di Isi.',
        //     'rekening.required' => 'Nama Wajib Di Isi.',
        //     'uraian.required' => 'Nama Wajib Di Isi.',
        //     'no_bku.required' => 'Nama Wajib Di Isi.',
        //     'type.required' => 'Nama Wajib Di Isi.',

        // ]);


            if(!helpers::hakAkses('Transaksi','update')){
                return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
            }

            $check = Transaksi::find($id);
            if($check->sub_kegiatan_id == $request->sub) {

                $anggaran = Anggaran::where('transaksi_id', $id)->get();
                // $rekening = SubKegiatan::find($request->sub);
                // $subtotal = 0;
                // foreach($anggaran as $a) {
                //     $subtotal = $subtotal + $a->sub_total;
                // }

                // if($check->type == 0) {
                //     $rekening->jumlah = $rekening->jumlah - $subtotal;
                //     $rekening->sisa = $rekening->sisa - $subtotal;
                // } else {
                //     $rekening->sisa = $rekening->sisa + $subtotal;
                // }

                // if($request->uang_muka == null) {

                // } else {
                //     if($check->type == 1) {
                //         $rekening->sisa = $rekening->sisa + $subtotal;
                //     } else {
                //         $rekening->jumlah = $rekening->jumlah - $subtotal;
                //         $rekening->sisa = $rekening->sisa - $subtotal;
                //     }
                // }

                // $rekening->save();
                // dd($rekening);
            }

            $data = Transaksi::where('id', $id)->update([
                'rekening_id' => $request->kode,
                'sub_kegiatan_id' => $request->sub,
                'tanggal' => $request->tanggal,
                'rekening' => $request->rekening,
                'uraian' => $request->uraian,
                'no_bku' => $request->no_bku,
                // 'tahun_rekening_id' => $request->tahun,
                'type' => $request->type,
                'ka_id' => $request->uang_muka,
                'ekuitas_id' => $request->ekuitas,
                'nominal_uang_muka' => $request->nominal_uang_muka,
            ]);

            //dd($anggaran);
            $dataAvailable = [];
            $grandTotal = 0;
            if(isset($request->ids)) {
                foreach($request->ids as $index => $value) {
                    $dataAvailable[] = $request->ids[$index];
                }

                $anggaran = Anggaran::where('transaksi_id', $id)->whereNotIn('id', $dataAvailable)->get();

                foreach($anggaran as $a) {
                    $a->delete();
                }

                foreach($request->ids as $index => $value) {
                    $anggaran = Anggaran::where('id', $request->ids[$index])->update([
                        'item' => $request->items[$index],
                        'value_volume_1' => $request->kalis[$index],
                        'nama_volume_1' => $request->nama_volume_1s[$index],
                        // 'value_volume_2' => $request->units[$index],
                        // 'nama_volume_2' => $request->nama_volume_2s[$index],
                        'harga_satuan' =>  str_replace(',','',$request->harga_satuans[$index]),
                        'sub_total' => str_replace(',','',$request->sub_totals[$index]),
                        'sisa_anggaran' => str_replace(',','',$request->sub_totals[$index]),
                        'type' => $request->anggaran[$index],
                    ]);

                    $grandTotal = $grandTotal + str_replace(',','',$request->sub_totals[$index]);
                }
            }

            if(isset($request->item)) {
                foreach($request->item as $index => $value) {
                    $anggaran = Anggaran::create([
                        'transaksi_id' => $id,
                        'item' => $request->item[$index],
                        'value_volume_1' => $request->kali[$index],
                        'nama_volume_1' => $request->nama_volume_1[$index],
                        // 'value_volume_2' => $request->unit[$index],
                        // 'nama_volume_2' => $request->nama_volume_2[$index],
                        'harga_satuan' => str_replace(',','',$request->harga_satuan[$index]),
                        'sub_total' => str_replace(',','',$request->sub_total[$index]),
                        'sisa_anggaran' => str_replace(',','',$request->sub_total[$index]),
                        'type' => $request->anggaran[$index],
                    ]);

                    $grandTotal = $grandTotal + str_replace(',','',$request->sub_total[$index]);
                }
            }

            // if($request->uang_muka == null) {
            //     $sub_kegiatan = SubKegiatan::find($request->sub);
            //     if($request->type == 1) {
            //         $sub_kegiatan->sisa = $sub_kegiatan->sisa - $grandTotal;
            //     } else {
            //         $sub_kegiatan->jumlah = $sub_kegiatan->jumlah + $grandTotal;
            //         $sub_kegiatan->sisa = $sub_kegiatan->sisa + $grandTotal;
            //     }
            //     $sub_kegiatan->save();
            // }


            // $jumlah = SubKegiatan::where('rekening_id', $request->kode)->sum('jumlah');
            // $sisa = SubKegiatan::where('rekening_id', $request->kode)->sum('sisa');
            // $rek = Rekening::find($request->kode);
            // $rek->jumlah = $jumlah;
            // $rek->sisa = $sisa;
            // $rek->save();

            return redirect('/transaksi')->with('success', "Berhasil merubah Data Transaksi ");
            try {
        } 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('Transaksi','delete')){
                return redirect()->back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
            }
            $data = Transaksi::find($id);
            // $rekening = Rekening::find($data->rekening_id);

            // if($data->uang_muka == "false") {
            //     if($data->type == 1) {
            //         $rekening->sisa = $rekening->sisa + $data->rekening;
            //     } else {
            //         $rekening->jumlah = $rekening->jumlah - $data->rekening;
            //         $rekening->sisa = $rekening->sisa - $data->rekening;
            //     }
            // }

            // $rekening->save();


            $data->delete();
            return redirect('/transaksi')->with('success', "Berhasil menghapus Data Transaksi ");
        } catch (\Throwable $th) {
            return redirect()->back()->with('error', 'Terjadi kesalahan!');
        }
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]