Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/e-tepian.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/public_html/e-tepian.aplikasipos.info/app/Http/Controllers/DauController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Opd;
use App\Models\Kpa;
use App\Models\User;
use App\Models\SumberDana;
use App\Models\Program;
use App\Models\Kegiatan;
use App\Models\SubKegiatan;
use App\Models\Proker;
use App\Models\ProkerProgram;
use App\Models\ProkerKegiatan;
use App\Models\ProkerSubKegiatan;
use App\Models\RincianKegiatan;

use PDF;
use DB,Str,File,Auth;
use App\Helpers\HelperString;
use \Carbon\Carbon;
use Illuminate\Support\Facades\File as FacadesFile;
use setasign\Fpdi\Fpdi;

class DauController extends Controller
{
    public function __construct(){
        $this->middleware('role:admin|admin-opd|monev');
    }

    public function index(Request $request)
    {


        if ($request->has('printpdf')) {

            if(isset($_GET['generate']) && $_GET['generate'] == 'true') {
                if($_GET['page'] == '1') {
                    if(Auth::user()->hasRole('admin-opd') or Auth::user()->hasRole('admin-PPTK|monev') and Auth::user()->opd_id !== null){
                        $opd = Opd::where('id',Auth::user()->opd_id)->orderBy('kode', "ASC")->get();

                        $prokersTotal = Proker::select('id','opd_id','tahun')
                        ->where('opd_id',Auth::user()->opd_id)
                        ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                            $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                        })
                        ->whereHas('RincianKegiatan', function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        })
                        ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        }] ,'pagu')
                        ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                            $query->whereHas('RincianKegiatan', function($q){
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }],'nilai_kontrak')
                        ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'pagu')
                        ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'volume')
                        ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }] , 'realisasi')
                        ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->whereHas('opd')
                        ->with('opd')
                        ->with(['ProkerProgram' => function ($query) use($request) {
                            $query->select('id','program_id','proker_id')
                                ->whereHas('RincianKegiatan', function ($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                })
                                ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                }],'pagu')
                                ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                    $query->whereHas('RincianKegiatan', function($q){
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }],'nilai_kontrak')
                                ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'pagu')
                                ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'volume')
                                ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->with('program')
                                ->with(['ProkerKegiatan' => function ($query) use($request) {
                                    $query->select('id','proker_program_id','kegiatan_id')
                                        ->whereHas('RincianKegiatan', function ($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })
                                        ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }],'pagu')
                                        ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                            $query->whereHas('RincianKegiatan', function($q){
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }],'nilai_kontrak')
                                        ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'pagu')
                                        ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'volume')
                                        ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->with('kegiatan')
                                        ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                            $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                                ->whereHas('RincianKegiatan', function ($query){
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })
                                                ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                }],'pagu')
                                                ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                    $query->whereHas('RincianKegiatan', function($q){
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                                }],'nilai_kontrak')
                                                ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                                }], 'pagu')
                                                ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                }], 'volume')
                                                ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });

                                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                    }

                                                }], 'realisasi')
                                                ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });

                                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                    }

                                                }], 'realisasi')
                                                ->with('subKegiatan','Kpa','Pptk')
                                                ->with(['RincianKegiatan' => function ($query) use($request) {
                                                    $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                        ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                        ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                            $query->whereHas('RincianKegiatan', function($q) {
                                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                            });
                                                        }], 'realisasi')
                                                        ->with([
                                                            'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                                $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                    $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                                });
                                                            },
                                                            'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                                $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                    $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                                });
                                                            },
                                                            'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                                $q->select('permasalahan','tindaklanjut');
                                                            },
                                                        ]);
                                                }]);
                                        }]);
                                }]);
                        }])
                        ->get()
                        ->sortBy(function ($proker) {
                            return $proker->opd->kode;
                        });
                    }else{
                        $opd = Opd::orderBy('kode', "ASC")->get();

                        $prokersTotal = Proker::select('id','opd_id','tahun')
                        ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                            $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                        })
                        ->whereHas('RincianKegiatan', function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        })
                        ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        }] ,'pagu')
                        ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                            $query->whereHas('RincianKegiatan', function($q){
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }],'nilai_kontrak')
                        ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'pagu')
                        ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'volume')
                        ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }] , 'realisasi')
                        ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->whereHas('opd')
                        ->with('opd')
                        ->with(['ProkerProgram' => function ($query) use($request) {
                            $query->select('id','program_id','proker_id')
                                ->whereHas('RincianKegiatan', function ($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                })
                                ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                }],'pagu')
                                ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                    $query->whereHas('RincianKegiatan', function($q){
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }],'nilai_kontrak')
                                ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'pagu')
                                ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'volume')
                                ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }
                                }], 'realisasi')
                                ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->with('program')
                                ->with(['ProkerKegiatan' => function ($query) use($request) {
                                    $query->select('id','proker_program_id','kegiatan_id')
                                        ->whereHas('RincianKegiatan', function ($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })
                                        ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }],'pagu')
                                        ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                            $query->whereHas('RincianKegiatan', function($q){
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }],'nilai_kontrak')
                                        ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'pagu')
                                        ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'volume')
                                        ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->with('kegiatan')
                                        ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                            $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                                ->whereHas('RincianKegiatan', function ($query){
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })
                                                ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                }],'pagu')
                                                ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                    $query->whereHas('RincianKegiatan', function($q){
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                                }],'nilai_kontrak')
                                                ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                                }], 'pagu')
                                                ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                                }], 'volume')
                                                ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });

                                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                    }

                                                }], 'realisasi')
                                                ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });

                                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                    }

                                                }], 'realisasi')
                                                ->with('subKegiatan','Kpa','Pptk')
                                                ->with(['RincianKegiatan' => function ($query) use($request) {
                                                    $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                        ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                        ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                            $query->whereHas('RincianKegiatan', function($q) {
                                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                            });
                                                        }], 'realisasi')
                                                        ->with([
                                                            'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                                $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                    $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                                });
                                                            },
                                                            'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                                $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                    $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                                });
                                                            },
                                                            'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                                $q->select('permasalahan','tindaklanjut');
                                                            },
                                                        ]);
                                                }]);
                                        }]);
                                }]);
                        }])
                        ->get()
                        ->sortBy(function ($proker) {
                            return $proker->opd->kode;
                        });
                    }
                } else {
                    $prokersTotal = null;
                }

                if(Auth::user()->hasRole('admin-opd') or Auth::user()->hasRole('admin-PPTK|monev') and Auth::user()->opd_id !== null){
                    $opd = Opd::where('id',Auth::user()->opd_id)->orderBy('kode', "ASC")->get();

                    $prokers = Proker::select('id','opd_id','tahun')
                    ->where('opd_id',Auth::user()->opd_id)
                    ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                        $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                    })
                    ->whereHas('RincianKegiatan', function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    })
                    ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    }] ,'pagu')
                    ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                        $query->whereHas('RincianKegiatan', function($q){
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }],'nilai_kontrak')
                    ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'pagu')
                    ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'volume')
                    ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }] , 'realisasi')
                    ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }], 'realisasi')
                    ->whereHas('opd')
                    ->with('opd')
                    ->with(['ProkerProgram' => function ($query) use($request) {
                        $query->select('id','program_id','proker_id')
                            ->whereHas('RincianKegiatan', function ($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            })
                            ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            }],'pagu')
                            ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                $query->whereHas('RincianKegiatan', function($q){
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }],'nilai_kontrak')
                            ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'pagu')
                            ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'volume')
                            ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->with('program')
                            ->with(['ProkerKegiatan' => function ($query) use($request) {
                                $query->select('id','proker_program_id','kegiatan_id')
                                    ->whereHas('RincianKegiatan', function ($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    }],'pagu')
                                    ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                        $query->whereHas('RincianKegiatan', function($q){
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }],'nilai_kontrak')
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'pagu')
                                    ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'volume')
                                    ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->with('kegiatan')
                                    ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                        $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                            ->whereHas('RincianKegiatan', function ($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }],'pagu')
                                            ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                $query->whereHas('RincianKegiatan', function($q){
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }],'nilai_kontrak')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }], 'pagu')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }], 'volume')
                                            ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->with('subKegiatan','Kpa','Pptk')
                                            ->with(['RincianKegiatan' => function ($query) use($request) {
                                                $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                    ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                    ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                        $query->whereHas('RincianKegiatan', function($q) {
                                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                        });
                                                    }], 'realisasi')
                                                    ->with([
                                                        'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                            $q->select('permasalahan','tindaklanjut');
                                                        },
                                                    ]);
                                            }]);
                                    }]);
                            }]);
                    }])
                    ->paginate(1)
                    ->sortBy(function ($proker) {
                        return $proker->opd->kode;
                    });
                }else{
                    $opd = Opd::orderBy('kode', "ASC")->get();

                    $prokers = Proker::select('id','opd_id','tahun')
                    ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                        $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                    })
                    ->whereHas('RincianKegiatan', function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    })
                    ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    }] ,'pagu')
                    ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                        $query->whereHas('RincianKegiatan', function($q){
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }],'nilai_kontrak')
                    ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'pagu')
                    ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'volume')
                    ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }] , 'realisasi')
                    ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }], 'realisasi')
                    ->whereHas('opd')
                    ->with('opd')
                    ->with(['ProkerProgram' => function ($query) use($request) {
                        $query->select('id','program_id','proker_id')
                            ->whereHas('RincianKegiatan', function ($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            })
                            ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            }],'pagu')
                            ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                $query->whereHas('RincianKegiatan', function($q){
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }],'nilai_kontrak')
                            ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'pagu')
                            ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'volume')
                            ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->with('program')
                            ->with(['ProkerKegiatan' => function ($query) use($request) {
                                $query->select('id','proker_program_id','kegiatan_id')
                                    ->whereHas('RincianKegiatan', function ($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    }],'pagu')
                                    ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                        $query->whereHas('RincianKegiatan', function($q){
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }],'nilai_kontrak')
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'pagu')
                                    ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'volume')
                                    ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->with('kegiatan')
                                    ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                        $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                            ->whereHas('RincianKegiatan', function ($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }],'pagu')
                                            ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                $query->whereHas('RincianKegiatan', function($q){
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }],'nilai_kontrak')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }], 'pagu')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }], 'volume')
                                            ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->with('subKegiatan','Kpa','Pptk')
                                            ->with(['RincianKegiatan' => function ($query) use($request) {
                                                $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                    ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                    ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                        $query->whereHas('RincianKegiatan', function($q) {
                                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                        });
                                                    }], 'realisasi')
                                                    ->with([
                                                        'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                            $q->select('permasalahan','tindaklanjut');
                                                        },
                                                    ]);
                                            }]);
                                    }]);
                            }]);
                    }])
                    ->paginate(1)
                    ->sortBy(function ($proker) {
                        return $proker->opd->kode;
                    });
                }

                $file_name = Str::replace(' ','_',Str::replace(':','_',"resume_dau_pengunduhan_".$request->waktufile."#".$request->page.".pdf"));

                $no = 1*$request->page*5-5+1;


                $pdf = PDF::loadview('resume.template_laporan_resume_dau_pdf', compact('prokers', 'request','prokersTotal'))->setOptions(['defaultfont' => 'sans-serif']);

                $pdf->setPaper('A4', 'landscape');

                // $pdf = PDF::loadView('admin.tagihan.pdf', compact('bills','today'));

                $content = $pdf->download()->getOriginalContent();
                // Storage::put('public/bills/bubla.pdf',$content);
                file_put_contents(public_path().'/grafik/'.$file_name, $content);

                return response()->json([
                    'file_name' => $file_name,
                    'base_name' => Str::replace(' ','_',Str::replace(':','_',"resume_dau_pengunduhan_".$request->waktufile)),
                ]);

            } else if(isset($_GET['generate']) && $_GET['generate'] == 'merge') {
                // dd("LOL");
                $baseName = $request->base_name;
                $fileExtension = '.pdf';
                $separator = '#'; // Separator used in the file names
                $maxFiles = $request->total_data_perpage; // Adjust this if you have more files

                $pdf = new Fpdi();

                $a4Width = 297;
                $a4Height = 210;

                $processedFiles = [];
                // Loop through the files and add them to the PDF
                for ($i = 0; $i < $maxFiles; $i++) {
                    $fileName = public_path().'/grafik/'.$baseName . $separator . intval($i + 1) . $fileExtension;

                    // echo $fileName."<br>";
                    if (file_exists($fileName)) {
                        // Add each page of the PDF file to the new PDF
                        $pageCount = $pdf->setSourceFile($fileName);
                        for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
                            $pdf->AddPage('L', [$a4Width, $a4Height]);
                            $tplId = $pdf->importPage($pageNo);
                            $pdf->useTemplate($tplId);

                            $processedFiles[] = $fileName;
                        }
                    } else {
                        // If file does not exist, break the loop
                        break;
                    }
                }

                $outputPath = public_path().'/grafik/'.$baseName.'.pdf';
                $pdf->Output('F', $outputPath);

                foreach ($processedFiles as $file) {
                    FacadesFile::delete($file);
                }

                return response()->json([
                    'file_name' => $baseName.'.pdf',
                    'status' => "File siap diunduh! : ",
                ]);
            } else {
                if(Auth::user()->hasRole('admin-opd') or Auth::user()->hasRole('admin-PPTK|monev') and Auth::user()->opd_id !== null){
                    $opd = Opd::where('id',Auth::user()->opd_id)->orderBy('kode', "ASC")->get();

                    $prokers = Proker::select('id','opd_id','tahun')
                    ->where('opd_id',Auth::user()->opd_id)
                    ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                        $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                    })
                    ->whereHas('RincianKegiatan', function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    })
                    ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    }] ,'pagu')
                    ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                        $query->whereHas('RincianKegiatan', function($q){
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }],'nilai_kontrak')
                    ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'pagu')
                    ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'volume')
                    ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }] , 'realisasi')
                    ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }], 'realisasi')
                    ->whereHas('opd')
                    ->with('opd')
                    ->with(['ProkerProgram' => function ($query) use($request) {
                        $query->select('id','program_id','proker_id')
                            ->whereHas('RincianKegiatan', function ($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            })
                            ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            }],'pagu')
                            ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                $query->whereHas('RincianKegiatan', function($q){
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }],'nilai_kontrak')
                            ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'pagu')
                            ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'volume')
                            ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->with('program')
                            ->with(['ProkerKegiatan' => function ($query) use($request) {
                                $query->select('id','proker_program_id','kegiatan_id')
                                    ->whereHas('RincianKegiatan', function ($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    }],'pagu')
                                    ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                        $query->whereHas('RincianKegiatan', function($q){
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }],'nilai_kontrak')
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'pagu')
                                    ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'volume')
                                    ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->with('kegiatan')
                                    ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                        $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                            ->whereHas('RincianKegiatan', function ($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }],'pagu')
                                            ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                $query->whereHas('RincianKegiatan', function($q){
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }],'nilai_kontrak')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }], 'pagu')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }], 'volume')
                                            ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->with('subKegiatan','Kpa','Pptk')
                                            ->with(['RincianKegiatan' => function ($query) use($request) {
                                                $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                    ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                    ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                        $query->whereHas('RincianKegiatan', function($q) {
                                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                        });
                                                    }], 'realisasi')
                                                    ->with([
                                                        'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                            $q->select('permasalahan','tindaklanjut');
                                                        },
                                                    ]);
                                            }]);
                                    }]);
                            }]);
                    }])
                    ->get()
                    ->sortBy(function ($proker) {
                        return $proker->opd->kode;
                    });
                }else{
                    $opd = Opd::orderBy('kode', "ASC")->get();

                    $prokers = Proker::select('id','opd_id','tahun')
                    ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                        $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                    })
                    ->whereHas('RincianKegiatan', function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    })
                    ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                    }] ,'pagu')
                    ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                        $query->whereHas('RincianKegiatan', function($q){
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }],'nilai_kontrak')
                    ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'pagu')
                    ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                    }], 'volume')
                    ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }] , 'realisasi')
                    ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                        $query->whereHas('RincianKegiatan', function($q) {
                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                        });

                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                        }

                    }], 'realisasi')
                    ->whereHas('opd')
                    ->with('opd')
                    ->with(['ProkerProgram' => function ($query) use($request) {
                        $query->select('id','program_id','proker_id')
                            ->whereHas('RincianKegiatan', function ($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            })
                            ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                            }],'pagu')
                            ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                                $query->whereHas('RincianKegiatan', function($q){
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }],'nilai_kontrak')
                            ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'pagu')
                            ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                            }], 'volume')
                            ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                                $query->whereHas('RincianKegiatan', function($q) {
                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                });

                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                }

                            }], 'realisasi')
                            ->with('program')
                            ->with(['ProkerKegiatan' => function ($query) use($request) {
                                $query->select('id','proker_program_id','kegiatan_id')
                                    ->whereHas('RincianKegiatan', function ($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                    }],'pagu')
                                    ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                        $query->whereHas('RincianKegiatan', function($q){
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }],'nilai_kontrak')
                                    ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'pagu')
                                    ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                        $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                    }], 'volume')
                                    ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                        $query->whereHas('RincianKegiatan', function($q) {
                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                        });

                                        if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                            $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                        }

                                    }], 'realisasi')
                                    ->with('kegiatan')
                                    ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                        $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                            ->whereHas('RincianKegiatan', function ($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }],'pagu')
                                            ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                                $query->whereHas('RincianKegiatan', function($q){
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }],'nilai_kontrak')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                            }], 'pagu')
                                            ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                                $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                            }], 'volume')
                                            ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                                $query->whereHas('RincianKegiatan', function($q) {
                                                    $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                });

                                                if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                    $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                }

                                            }], 'realisasi')
                                            ->with('subKegiatan','Kpa','Pptk')
                                            ->with(['RincianKegiatan' => function ($query) use($request) {
                                                $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                    ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                    ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                        $query->whereHas('RincianKegiatan', function($q) {
                                                            $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                        });
                                                    }], 'realisasi')
                                                    ->with([
                                                        'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                            $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                                $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                            });
                                                        },
                                                        'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                            $q->select('permasalahan','tindaklanjut');
                                                        },
                                                    ]);
                                            }]);
                                    }]);
                            }]);
                    }])
                    ->get()
                    ->sortBy(function ($proker) {
                        return $proker->opd->kode;
                    });
                }

                $limit = 0;
                $totalDataDanIsinya = [];
                foreach($prokers as $a) {
                    $limit += 1;
                    $totalDataDanIsinya[] = [$limit];
                }
                return view('resume.template_laporan_resume_dau_pdf', compact('prokers', 'request', 'totalDataDanIsinya'));
            }

            // $file_name = Str::replace(' ','_',Str::replace(':','_',"resume_dau_pengunduhan_".Carbon::now()->format('Y-m-d H:i:s').".pdf"));

            // $pdf = PDF::loadview('resume.template_laporan_resume_dau_pdf', compact('prokers', 'request'))
            //                     ->setOptions(['defaultfont' => 'sans-serif']);

            // $pdf->setPaper('A4', 'landscape');

            // return $pdf->download($file_name);

        } else {


            if(Auth::user()->hasRole('admin-opd') or Auth::user()->hasRole('admin-PPTK|monev') and Auth::user()->opd_id !== null){
                $opd = Opd::where('id',Auth::user()->opd_id)->orderBy('kode', "ASC")->get();

                $prokers = Proker::select('id','opd_id','tahun')
                ->where('opd_id',Auth::user()->opd_id)
                ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                    $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                })
                ->whereHas('RincianKegiatan', function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                })
                ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                }] ,'pagu')
                ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                    $query->whereHas('RincianKegiatan', function($q){
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }],'nilai_kontrak')
                ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }], 'pagu')
                ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }], 'volume')
                ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                    $query->whereHas('RincianKegiatan', function($q) {
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    });

                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                    }

                }] , 'realisasi')
                ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                    $query->whereHas('RincianKegiatan', function($q) {
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    });

                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                    }

                }], 'realisasi')
                ->whereHas('opd')
                ->with('opd')
                ->with(['ProkerProgram' => function ($query) use($request) {
                    $query->select('id','program_id','proker_id')
                        ->whereHas('RincianKegiatan', function ($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        })
                        ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        }],'pagu')
                        ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                            $query->whereHas('RincianKegiatan', function($q){
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }],'nilai_kontrak')
                        ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'pagu')
                        ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'volume')
                        ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->with('program')
                        ->with(['ProkerKegiatan' => function ($query) use($request) {
                            $query->select('id','proker_program_id','kegiatan_id')
                                ->whereHas('RincianKegiatan', function ($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                })
                                ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                }],'pagu')
                                ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                    $query->whereHas('RincianKegiatan', function($q){
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }],'nilai_kontrak')
                                ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'pagu')
                                ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'volume')
                                ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->with('kegiatan')
                                ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                    $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                        ->whereHas('RincianKegiatan', function ($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })
                                        ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }],'pagu')
                                        ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                            $query->whereHas('RincianKegiatan', function($q){
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }],'nilai_kontrak')
                                        ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'pagu')
                                        ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }], 'volume')
                                        ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->with('subKegiatan','Kpa','Pptk')
                                        ->with(['RincianKegiatan' => function ($query) use($request) {
                                            $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });
                                                }], 'realisasi')
                                                ->with([
                                                    'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                        $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                            $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                        });
                                                    },
                                                    'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                        $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                            $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                        });
                                                    },
                                                    'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                        $q->select('permasalahan','tindaklanjut');
                                                    },
                                                ]);
                                        }]);
                                }]);
                        }]);
                }])
                ->get()
                ->sortBy(function ($proker) {
                    return $proker->opd->kode;
                });
            }else{
                $opd = Opd::orderBy('kode', "ASC")->get();

                $prokers = Proker::select('id','opd_id','tahun')
                ->when($request->has('pd') and $request->pd != "" and $request->pd != null, function ($query) use ($request) {
                    $query->whereHas('Opd', fn($q) => $q->where('opd_id', $request->pd));
                })
                ->whereHas('RincianKegiatan', function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                })
                ->withSum(['RincianKegiatan as pagu_sum' => function($query){
                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                }] ,'pagu')
                ->withSum(['RealisasiRincianKegiatan as nilai_kontrak_sum' => function ($query) {
                    $query->whereHas('RincianKegiatan', function($q){
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }],'nilai_kontrak')
                ->withSum(['RincianKegiatan as pagu_berjalan_sum' => function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }], 'pagu')
                ->withSum(['RincianKegiatan as volume_sum' => function ($query) {
                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                }], 'volume')
                ->withSum(['RealisasiFisik as realisasi_fisik_sum' => function($query) use($request) {
                    $query->whereHas('RincianKegiatan', function($q) {
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    });

                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                    }

                }] , 'realisasi')
                ->withSum(['RealisasiKeuangan as realisasi_keuangan_sum' => function($query) use($request) {
                    $query->whereHas('RincianKegiatan', function($q) {
                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                    });

                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                    }

                }], 'realisasi')
                ->whereHas('opd')
                ->with('opd')
                ->with(['ProkerProgram' => function ($query) use($request) {
                    $query->select('id','program_id','proker_id')
                        ->whereHas('RincianKegiatan', function ($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        })
                        ->withSum(['RincianKegiatan as program_pagu_sum' => function($query){
                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                        }],'pagu')
                        ->withSum(['RealisasiRincianKegiatan as program_nilai_kontrak_sum' => function ($query) {
                            $query->whereHas('RincianKegiatan', function($q){
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }],'nilai_kontrak')
                        ->withSum(['RincianKegiatan as program_pagu_berjalan_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'pagu')
                        ->withSum(['RincianKegiatan as program_volume_sum' => function ($query) {
                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                        }], 'volume')
                        ->withSum(['RealisasiFisik as program_realisasi_fisik_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->withSum(['RealisasiKeuangan as program_realisasi_keuangan_sum' => function($query) use($request) {
                            $query->whereHas('RincianKegiatan', function($q) {
                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                            });

                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                            }

                        }], 'realisasi')
                        ->with('program')
                        ->with(['ProkerKegiatan' => function ($query) use($request) {
                            $query->select('id','proker_program_id','kegiatan_id')
                                ->whereHas('RincianKegiatan', function ($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                })
                                ->withSum(['RincianKegiatan as kegiatan_pagu_sum' => function($query){
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                }],'pagu')
                                ->withSum(['RealisasiRincianKegiatan as kegiatan_nilai_kontrak_sum' => function ($query) {
                                    $query->whereHas('RincianKegiatan', function($q){
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }],'nilai_kontrak')
                                ->withSum(['RincianKegiatan as kegiatan_pagu_berjalan_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'pagu')
                                ->withSum(['RincianKegiatan as kegiatan_volume_sum' => function ($query) {
                                    $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                }], 'volume')
                                ->withSum(['RealisasiFisik as kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->withSum(['RealisasiKeuangan as kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                    $query->whereHas('RincianKegiatan', function($q) {
                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                    });

                                    if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                        $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                    }

                                }], 'realisasi')
                                ->with('kegiatan')
                                ->with(['ProkerSubKegiatan' => function ($query) use($request) {
                                    $query->select('id','proker_kegiatan_id','sub_kegiatan_id','kpa_id','user_id')
                                        ->whereHas('RincianKegiatan', function ($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        })
                                        ->withSum(['RincianKegiatan as sub_kegiatan_pagu_sum' => function($query){
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }],'pagu')
                                        ->withSum(['RealisasiRincianKegiatan as sub_kegiatan_nilai_kontrak_sum' => function ($query) {
                                            $query->whereHas('RincianKegiatan', function($q){
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            })->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }],'nilai_kontrak')
                                        ->withSum(['RincianKegiatan as sub_kegiatan_pagu_berjalan_sum' => function ($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8)->whereHas('RealisasiKeuangan')->orWhereHas('RealisasiFisik');
                                        }], 'pagu')
                                        ->withSum(['RincianKegiatan as sub_kegiatan_volume_sum' => function($query) {
                                            $query->where('rincian_kegiatans.sumber_dana_id', 8);
                                        }], 'volume')
                                        ->withSum(['RealisasiFisik as sub_kegiatan_realisasi_fisik_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->withSum(['RealisasiKeuangan as sub_kegiatan_realisasi_keuangan_sum' => function($query) use($request) {
                                            $query->whereHas('RincianKegiatan', function($q) {
                                                $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                            });

                                            if ($request->has('tanggal_awal') && $request->has('tanggal_akhir') && $_GET['tanggal_awal'] != '' && $_GET['tanggal_akhir'] != '') {
                                                $query->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                            }

                                        }], 'realisasi')
                                        ->with('subKegiatan','Kpa','Pptk')
                                        ->with(['RincianKegiatan' => function ($query) use($request) {
                                            $query->select('id','proker_sub_kegiatan_id','volume','pagu', 'uraian', 'kode_rekening')
                                                ->where('rincian_kegiatans.sumber_dana_id', 8)
                                                ->withSum(['RealisasiFisik as rincian_kegiatan_realisasi_fisik_sum' => function($query) {
                                                    $query->whereHas('RincianKegiatan', function($q) {
                                                        $q->where('rincian_kegiatans.sumber_dana_id', 8);
                                                    });
                                                }], 'realisasi')
                                                ->with([
                                                    'RealisasiRincianKegiatan.realisasiFisik' => function ($query) use ($request) {
                                                        $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                            $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                        });
                                                    },
                                                    'RealisasiRincianKegiatan.realisasiKeuangan' => function ($query) use ($request) {
                                                        $query->when($request->filled(['tanggal_awal', 'tanggal_akhir']), function ($qq) use ($request) {
                                                            $qq->whereBetween('tanggal_realisasi', [$request->tanggal_awal, $request->tanggal_akhir]);
                                                        });
                                                    },
                                                    'RealisasiRincianKegiatan.permasalahanTindakLanjut' => function ($q) {
                                                        $q->select('permasalahan','tindaklanjut');
                                                    },
                                                ]);
                                        }]);
                                }]);
                        }]);
                }])
                ->get()
                ->sortBy(function ($proker) {
                    return $proker->opd->kode;
                });
            }

            // dd($prokers);

            // $getOpd = $request->get('pd', null);
            // $getTahun = $request->get('tahun', '2022');
            // $getBulan = $request->get('month');
            $sumberDana = 8;

            $helper = new HelperString;
            $list_year = (object) collect($helper->listYear())->reverse();
            $list_month = (object) collect($helper->listMonth());


            return view("resume.dau", compact('prokers','opd','list_year','list_month', 'request'));
        }


    }
}

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