Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/public/
Upload File :
Current File : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/public/pdfWorker.js

<script>
        $(document).ready(function() {
            $('#Loading').hide();

            // async function generatePdf(gurih) {
            //     const content = document.getElementById(gurih);
            //     const options = {
            //         margin: 1,
            //         filename: 'document.pdf',
            //         image: { type: 'jpeg', quality: 0.98 },
            //         html2canvas: { scale: 2 },
            //         jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
            //     };

            //     try {
            //         const pdf = await html2pdf().set(options).from(content).outputPdf();
            //         pdf.save('document.pdf');
            //     } catch (error) {
            //         console.error('Error generating PDF:', error);
            //     }
            // } pdfWorker.js

            async function generatePdf() {
                const content = document.getElementById('content-data');
                const options = {
                    margin: 1,
                    filename: 'document.pdf',
                    image: { type: 'jpeg', quality: 0.98 },
                    html2canvas: { scale: 2 },
                    jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
                };

                try {
                    const pdf = await html2pdf().set(options).from(content).save();
                } catch (error) {
                    console.error('Error generating PDF:', error);
                }
            }

            // const worker = new Worker("{{asset('pdfWorker.js')}}");

            // worker.onmessage = function(e) {
            //     if (e.data.status === 'done') {
            //         // Handle the generated PDF, e.g., download or display it
            //         const pdf = e.data.pdf;
            //         const link = document.createElement('a');
            //         link.href = pdf;
            //         link.download = 'document.pdf';
            //         link.click();
            //     } else if (e.data.status === 'error') {
            //         console.error('Error generating PDF:', e.data.error);
            //     }
            // };

            $('#GeneratePDF').click(function() {
                // let content = document.getElementById('content-data');

                // const options = {
                //     margin: 1,
                //     filename: 'document.pdf',
                //     image: { type: 'jpeg', quality: 0.98 },
                //     html2canvas: { scale: 2 },
                //     jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }
                // };

                // worker.postMessage({ content: content.innerHTML, options });

                generatePdf();
            });


            $('#Gdata').click(function() {
                // alert("MOOOO");
                $('#Gdata').hide();
                $('#Loading').show();

                var dataAvailable = parseInt("{{($ProkerSubKegiatanTotalData / 150) + 1}}");
                // console.log(dataAvailable);
                var pageList = [];

                for(var i = 0; i < dataAvailable; i++) {
                    pageList.push(i + 1);
                }

                var promises = [];

                pageList.forEach(function(id) {
                    promises.push(
                        $.ajax({
                            url: `{{url('umkm')}}?pd={{ $request->get('pd') }}&jenis_umk={{ $request->get('jenis_umk') }}&tanggal_awal={{ $request->get('tanggal_awal') }}&tanggal_akhir={{ $request->get('tanggal_akhir') }}&printpdf=print&page=${id}`,
                            method: 'GET'
                        })
                    );
                });

                // console.log(promises);

                Promise.all(promises).then(function(responses) {
                    // Tambahkan hasil ke dalam elemen di halaman
                    // $('#results').append(`<div>ID: ${response.id}, Data: ${response.name}</div>`);
                    // console.log(responses);
                    // console.log(response.ProkerSubKegiatans.data);
                    var urutan = 1;
                    responses.forEach(function (response) {
                        response.ProkerSubKegiatans.data.forEach(function(item) {
                        // Tambahkan data ke dalam elemen dengan ID 'result'
                        var pagu_sm = 0;
                        var CustomNilaiKontrak = 0;
                        var PaguBerjalan = 0;
                        var keuanganTotal = 0;;
                        var PersenFisik = 0;
                        item.rincian_kegiatan.forEach(function(rk) {
                            pagu_sm += rk.pagu;

                            if (rk.realisasi_rincian_kegiatan.realisasi_fisik.length > 0 || rk.realisasi_rincian_kegiatan.realisasi_keuangan.length > 0) {
                                CustomNilaiKontrak += parseInt(rk.realisasi_rincian_kegiatan.nilai_kontrak);
                            }

                            if (Object.keys(rk.realisasi_rincian_kegiatan).length > 0) {
                                var countPaguKAh = parseInt(rk.realisasi_rincian_kegiatan.realisasi_fisik.length + rk.realisasi_rincian_kegiatan.realisasi_keuangan.length);
                                if (countPaguKAh > 0) {
                                    PaguBerjalan += parseInt(rk.pagu);
                                }

                                rk.realisasi_rincian_kegiatan.realisasi_keuangan.forEach(function (rku) {
                                    keuanganTotal += parseInt(rku.realisasi);
                                });
                            }
                        });

                        var html = `<tr class="table-primary">
                                        <td>${urutan}</td>
                                        <td>${item.sub_kegiatan.kode}</td>
                                        <td>${item.sub_kegiatan.nama_sub_kegiatan}</td>
                                        <td>Rp${ numeral(pagu_sm).format('0,0')  }</td>
                                        <td>Rp${ numeral(CustomNilaiKontrak).format('0,0')  }</td>
                                        <td>Rp${ numeral(parseInt(PaguBerjalan - CustomNilaiKontrak)).format('0,0')  }</td>
                                        <td>${(PersenFisik).toFixed(2)}%</td>
                                        <td>Rp${ numeral(keuanganTotal).format('0,0')  }</td>
                                        <td>${ ((keuanganTotal / pagu_sm) * 100).toFixed(2) }%</td>
                                        <td></td>
                                        <td></td>
                                        <td></td>
                                        <td></td>
                                        <td></td>
                                    </tr>`;
                        $('#SiCantikTableIni').append(html);


                        item.rincian_kegiatan.forEach(function(rk) {
                            var CustomNilaiKontrak = 0;
                            var PaguBerjalan = 0;
                            var keuanganTotal = 0;;
                            var PersenFisik = 0;
                            var RealisasiFisik = 0;

                            if (rk.realisasi_rincian_kegiatan.realisasi_fisik.length > 0 || rk.realisasi_rincian_kegiatan.realisasi_keuangan.length > 0) {
                                CustomNilaiKontrak += parseInt(rk.realisasi_rincian_kegiatan.nilai_kontrak);
                            }

                            if (Object.keys(rk.realisasi_rincian_kegiatan).length > 0) {
                                var countPaguKAh = parseInt(rk.realisasi_rincian_kegiatan.realisasi_fisik.length + rk.realisasi_rincian_kegiatan.realisasi_keuangan.length);
                                if (countPaguKAh > 0) {
                                    PaguBerjalan += parseInt(rk.pagu);
                                }

                                rk.realisasi_rincian_kegiatan.realisasi_keuangan.forEach(function (rku) {
                                    keuanganTotal += parseInt(rku.realisasi);
                                });

                                rk.realisasi_rincian_kegiatan.realisasi_fisik.forEach(function (rkf) {
                                    RealisasiFisik += parseInt(rkf.realisasi);
                                });

                                let volumeCheck = 0;

                                if (rk.volume == 0) {
                                    volumeCheck = 1;
                                } else {
                                    volumeCheck = rk.volume;
                                }
                                PersenFisik = (RealisasiFisik / volumeCheck) * 100;

                            }
                            var html = `<tr class="table-secondary">
                                            <td></td>
                                            <td>${rk.kode_rekening}</td>
                                            <td>${rk.uraian}</td>
                                            <td>Rp${ numeral(rk.pagu).format('0,0')}</td>
                                            <td>Rp${ numeral(CustomNilaiKontrak).format('0,0')}</td>
                                            <td>Rp${ numeral(parseInt(PaguBerjalan - CustomNilaiKontrak)).format('0,0')  }</td>
                                            <td>${ (PersenFisik).toFixed(2) }%</td>
                                            <td>Rp${ numeral(parseInt(keuanganTotal)).format('0,0')  }</td>
                                            <td>${ ((keuanganTotal / rk.pagu) * 100).toFixed(2) }%</td>
                                            <td>${ rk.opd.nama_perangkat_daerah }</td>
                                            <td>${ rk.proker_sub_kegiatan.pptk.nama ?? '-' }}</td> --}}
                                            <td></td>
                                            <td></td>
                                            <td></td>
                                        </tr>`;

                            $('#SiCantikTableIni').append(html);
                        });

                        urutan += 1;
                    });
                    $('#Loading').hide();
                });
            }).catch(function(error) {
                console.error('Error handling one of the requests:', error);
            });

                // console.log(pageList);
                // pageList
                // $.ajax({
                //     url: `{{url('umkm')}}??pd={{ $request->get('pd') }}&jenis_umk={{ $request->get('jenis_umk') }}&tanggal_awal={{ $request->get('tanggal_awal') }}&tanggal_akhir={{ $request->get('tanggal_akhir') }}&printpdf=print&page=1`, // URL ke route Laravel
                //     method: 'GET',
                //     success: function(response) {

                //     },
                //     error: function(xhr) {
                //         console.error(`Error fetching data for ID ${id}:`, xhr);
                //     }
                // });

            });
        });
    </script>


@php
$looplah = 1;
@endphp
@foreach ($ProkerSubKegiatanContent as $PSKC)
<tr class="table-primary">
    <td>{{ $looplah++ }}</td>
    <td>{{$PSKC->kode }}</td>
    <td>{{$PSKC->nama_sub_kegiatan }}</td>
    <td>Rp{{ number_format($PSKC->total_pagu, 0, ',', '.') }}</td>
    <td>Rp{{ number_format($PSKC->total_nilai_kontrak, 0, ',', '.') }}</td>
    <td>Rp{{ number_format($PSKC->total_pagu_berjalan - $PSKC->total_nilai_kontrak, 0, ',', '.') }}</td>
    <td class="text-center">{{ number_format($PSKC->total_realisasi/ max($PSKC->total_pagu, 1) , 2, ',', '.') }}%</td>
    <td class="text-nowrap text-end">Rp{{ number_format($PSKC->realisasi_keuangan_pd , 0, ',', '.') }}</td>
    <td class="text-center">
        {{ number_format(($PSKC->realisasi_keuangan_pd / $PSKC->total_pagu ) * 100 ,2 , ',', '.') }}%
    </td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
</tr>
@php
    for ($i = 1; $i <= 12; $i++) {
                $RincianKegiatansContent = DB::select("SELECT
                            rincian_kegiatans.id,
                            rincian_kegiatans.kode_rekening,
                            rincian_kegiatans.uraian,
                            SUM(rincian_kegiatans.pagu) AS total_pagu,
                            SUM(CASE WHEN rf.total_realisasi > 0 OR rk.realisasi > 0 THEN rincian_kegiatans.pagu ELSE 0 END) AS total_pagu_berjalan,
                            SUM(rincian_kegiatans.pagu * (rf.total_realisasi / rincian_kegiatans.volume) * 100) AS total_realisasi,
                            SUM(rk.realisasi) AS realisasi_keuangan_pd,
                            SUM(CASE WHEN rf.total_realisasi > 0 OR rk.realisasi > 0 THEN rrk.total_nilai_kontrak ELSE 0 END) AS total_nilai_kontrak,
                            SUM(CASE WHEN rf.total_realisasi IS NULL AND rk.realisasi IS NULL THEN rincian_kegiatans.pagu ELSE 0 END) AS total_pagu_tanpa_realisasi
                        FROM
                            rincian_kegiatans
                        LEFT JOIN (
                            SELECT rrk.rincian_kegiatan_id, SUM(rf.realisasi) AS total_realisasi
                            FROM realisasi_rincian_kegiatans AS rrk
                            INNER JOIN realisasi_fisiks AS rf ON rrk.id = rf.realisasi_rincian_kegiatan_id
                            WHERE rrk.deleted_at IS NULL
                                AND rf.deleted_at IS NULL
                                -- AND rf.tanggal_realisasi >= :tanggal_awal
                                -- AND rf.tanggal_realisasi <= :tanggal_akhir
                            GROUP BY rrk.rincian_kegiatan_id
                        ) AS rf ON rincian_kegiatans.id = rf.rincian_kegiatan_id
                        LEFT JOIN (
                            SELECT rrk.rincian_kegiatan_id, SUM(rk.realisasi) AS realisasi
                            FROM realisasi_rincian_kegiatans AS rrk
                            INNER JOIN realisasi_keuangans AS rk ON rrk.id = rk.realisasi_rincian_kegiatan_id
                            WHERE rrk.deleted_at IS NULL
                                AND rk.deleted_at IS NULL
                                -- AND rk.tanggal_realisasi >= :tanggal_awalk
                                -- AND rk.tanggal_realisasi <= :tanggal_akhirk
                            GROUP BY rrk.rincian_kegiatan_id
                        ) AS rk ON rincian_kegiatans.id = rk.rincian_kegiatan_id
                        LEFT JOIN (
                            SELECT rrk.rincian_kegiatan_id, SUM(rrk.nilai_kontrak) AS total_nilai_kontrak
                            FROM realisasi_rincian_kegiatans AS rrk
                            WHERE rrk.deleted_at IS NULL
                            GROUP BY rrk.rincian_kegiatan_id
                        ) AS rrk ON rincian_kegiatans.id = rrk.rincian_kegiatan_id WHERE rincian_kegiatans.proker_sub_kegiatan_id = 1 GROUP BY rincian_kegiatans.id, rincian_kegiatans.kode_rekening,
                            rincian_kegiatans.uraian");
                $RincianKegiatansContent = collect($RincianKegiatansContent);
    }

            // dd($RincianKegiatansContent);

@endphp
@foreach ($RincianKegiatansContent as $RKC)
    <tr class="table-primary">
        <td></td>
        <td>{{$RKC->kode_rekening }}</td>
        <td>{{$RKC->uraian }}</td>
        <td>Rp{{ number_format($RKC->total_pagu, 0, ',', '.') }}</td>
        <td>Rp{{ number_format($RKC->total_nilai_kontrak, 0, ',', '.') }}</td>
        <td>Rp{{ number_format($RKC->total_pagu_berjalan - $RKC->total_nilai_kontrak, 0, ',', '.') }}</td>
        <td class="text-center">{{ number_format($RKC->total_realisasi/ max($RKC->total_pagu, 1) , 2, ',', '.') }}%</td>
        <td class="text-nowrap text-end">Rp{{ number_format($RKC->realisasi_keuangan_pd , 0, ',', '.') }}</td>
        <td class="text-center">
            {{ number_format(($RKC->realisasi_keuangan_pd / $RKC->total_pagu ) * 100 ,2 , ',', '.') }}%
        </td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
    </tr>
@endforeach
@endforeach


for ($i = 1; $i <= 12; $i++) {
    $ProkerSubKegiatanContent = DB::select("SELECT
                -- sub_kegiatans.id,
                sub_kegiatans.kode,
                sub_kegiatans.nama_sub_kegiatan,
                -- rincian_kegiatans.proker_sub_kegiatan_id
                proker_sub_kegiatans.id,
                SUM(rincian_kegiatans.pagu) AS total_pagu,
                SUM(CASE WHEN rf.total_realisasi > 0 OR rk.realisasi > 0 THEN rincian_kegiatans.pagu ELSE 0 END) AS total_pagu_berjalan,
                SUM(rincian_kegiatans.pagu * (rf.total_realisasi / rincian_kegiatans.volume) * 100) AS total_realisasi,
                SUM(rk.realisasi) AS realisasi_keuangan_pd,
                SUM(CASE WHEN rf.total_realisasi > 0 OR rk.realisasi > 0 THEN rrk.total_nilai_kontrak ELSE 0 END) AS total_nilai_kontrak,
                SUM(rincian_kegiatans.pagu * (proker_sub_kegiatans.target_fisik_$i / 100)) AS target_fisik,
                SUM(rincian_kegiatans.pagu * (proker_sub_kegiatans.target_keuangan_$i / 100)) AS target_keuangan,
                SUM(CASE WHEN rf.total_realisasi IS NULL AND rk.realisasi IS NULL THEN rincian_kegiatans.pagu ELSE 0 END) AS total_pagu_tanpa_realisasi
            FROM
                proker_sub_kegiatans
            JOIN sub_kegiatans ON sub_kegiatans.id = proker_sub_kegiatans.sub_kegiatan_id
            JOIN rincian_kegiatans ON proker_sub_kegiatans.id = rincian_kegiatans.proker_sub_kegiatan_id
                AND proker_sub_kegiatans.deleted_at IS NULL
                AND rincian_kegiatans.deleted_at IS NULL
            LEFT JOIN (
                SELECT rrk.rincian_kegiatan_id, SUM(rf.realisasi) AS total_realisasi
                FROM realisasi_rincian_kegiatans AS rrk
                INNER JOIN realisasi_fisiks AS rf ON rrk.id = rf.realisasi_rincian_kegiatan_id
                WHERE rrk.deleted_at IS NULL
                    AND rf.deleted_at IS NULL
                    -- AND rf.tanggal_realisasi >= :tanggal_awal
                    -- AND rf.tanggal_realisasi <= :tanggal_akhir
                GROUP BY rrk.rincian_kegiatan_id
            ) AS rf ON rincian_kegiatans.id = rf.rincian_kegiatan_id
            LEFT JOIN (
                SELECT rrk.rincian_kegiatan_id, SUM(rk.realisasi) AS realisasi
                FROM realisasi_rincian_kegiatans AS rrk
                INNER JOIN realisasi_keuangans AS rk ON rrk.id = rk.realisasi_rincian_kegiatan_id
                WHERE rrk.deleted_at IS NULL
                    AND rk.deleted_at IS NULL
                    -- AND rk.tanggal_realisasi >= :tanggal_awalk
                    -- AND rk.tanggal_realisasi <= :tanggal_akhirk
                GROUP BY rrk.rincian_kegiatan_id
            ) AS rk ON rincian_kegiatans.id = rk.rincian_kegiatan_id
            LEFT JOIN (
                SELECT rrk.rincian_kegiatan_id, SUM(rrk.nilai_kontrak) AS total_nilai_kontrak
                FROM realisasi_rincian_kegiatans AS rrk
                WHERE rrk.deleted_at IS NULL
                GROUP BY rrk.rincian_kegiatan_id
            ) AS rrk ON rincian_kegiatans.id = rrk.rincian_kegiatan_id GROUP BY sub_kegiatans.id,
                sub_kegiatans.kode,
                sub_kegiatans.nama_sub_kegiatan, proker_sub_kegiatans.id ");
    // ->join('proker_programs', 'proker_programs.id', '=', 'proker_sub_kegiatans.proker_program_id')
    // ->join('prokers', 'prokers.id', '=', 'proker_programs.proker_id')
    // ->join('opds', 'opds.id', '=', 'prokers.opd_id')
    $ProkerSubKegiatanContent = collect($ProkerSubKegiatanContent);
    // dd($dataopd);
}

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