<?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]