Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Exports/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Exports/PembayaransExport.php

<?php

namespace App\Exports;

use App\Models\Pembayaran;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;

class PembayaransExport implements FromCollection, WithMapping, WithHeadings,ShouldAutoSize
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {   
        $query = Pembayaran::select('pembayarans.*')->has('suratPermintaan')->with('suratPermintaan.groupItem.item','suratPermintaan.groupItem.biayaLainnyas','suratPermintaan.groupItem.item.budget');
        if (request()->pemohon != "") {
            $query->where('peminta', 'like', '%' . request()->pemohon . '%');
        }
        if (request()->dari_tanggal != "" && request()->sampai_tanggal != "") {
            $query->whereBetween(DB::raw('tanggal_pembayaran'), [request()->dari_tanggal, request()->sampai_tanggal]);
        }

        if (request()->divisi_id != "") {
            $query->where('divisi_id', request()->divisi_id);
        }

        if (request()->cari != "") {
            $query->where(function ($ws) {
                $ws->where('keterangan_pembayaran','like', '%' . request()->cari . '%')
                ->orWhereHas('suratPermintaan', function ($query) {
                    $query->where('perihal', 'like', '%' . request()->cari . '%')
                        ->orWhere('tmp_nomor_surat', 'like', '%' . request()->cari . '%')
                        ->orWhere('status', 'like', '%' . request()->cari . '%')
                        ->orWhereHas('peminta', function ($query) {
                            $query->where('name', 'like', '%' . request()->cari . '%');
                        })->orWhereHas('groupItem', function ($wgi) {
                            $wgi->whereHas('item', function ($wi) {
                                    $wi->whereHas('budget', function ($wb) {
                                        $wb->where('kode_budget', 'like', '%' . request()->cari . '%');
                                    });
                                });
                        });
                });
            });
        }
        $query = $query->orderByDesc('tanggal_pembayaran');
        return $query->get();
    }

    public function headings(): array
    {
        return [
            'TANGGAL',
            'NOMOR SURAT',
            'TOTAL PEMBAYARAN',
            'KETERANGAN',
        ];
    }

    public function map($data): array
    {
        
        return [
            'tanggal_pembayaran'=>$data->tanggal_pembayaran,
            'nomor_surat'=>@$data->suratPermintaan->nomor_surat_format,
            'total_pembayaran'=>$data->total_pembayaran,
            'keterangan_pembayaran'=>$data->keterangan_pembayaran
        ];
    }
}

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