Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/talent.gosepakat.id/app/Exports/Sheets/
Upload File :
Current File : /home/aplikasiposinfo/www/talent.gosepakat.id/app/Exports/Sheets/MasterDataSheet.php

<?php
namespace App\Exports\Sheets;

use App\Models\KabupatenKota;
use App\Models\Kecamatan;
use App\Models\KelurahanDesa;
use App\Models\Partai;
use App\Models\Pelatihan;
use App\Models\Regency;
use App\Models\Tps;
use Illuminate\Contracts\View\View;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\WithEvents;
use Maatwebsite\Excel\Events\AfterSheet;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;

class MasterDataSheet implements FromView, WithTitle,ShouldAutoSize,WithEvents
{   
    //public $user;

    public function __construct()
    {   
       
    }

    public function view(): View
    {   
        $multiDropdown = [];
        $user = auth()->user();
        $kabupatenKotas = Regency::with('districts.villages')->where('province_id',64);

       

        $kabupatenKotas = $kabupatenKotas->get();
        
        foreach ($kabupatenKotas as $kabupatenKota) {
            $multiDropdown[$kabupatenKota->id] = [
                "nama"=>$kabupatenKota->name,
                "sub_data"=>[]
            ];
            foreach ($kabupatenKota->districts as $kecamatan) {
                $multiDropdown[$kabupatenKota->id]["sub_data"][$kecamatan->id] = [
                    "nama"=>$kecamatan->name,
                ];
                foreach ($kecamatan->villages as $desa) {
                    $multiDropdown[$kabupatenKota->id]["sub_data"][$kecamatan->id]['sub_data'][$desa->id] = [
                        "nama"=>$desa->name,
                    ];
                }
            }
        }
        $pelatihans = Pelatihan::all();
        return view('admin.peserta.template-excel-master-data',compact('kabupatenKotas','multiDropdown','pelatihans'));
    }

    /**
     * @return string
     */
    public function title(): string
    {
        return 'MASTER_DATA';
    }

    public function registerEvents(): array
    {   
        
        $kabupatenKotas = Regency::with('districts.villages')->where('province_id',64);

       

        $kabupatenKotas = $kabupatenKotas->get();
       

        return [
            
            AfterSheet::class => function(AfterSheet $event)use($kabupatenKotas) {
                
              
               
                $event->sheet->getDelegate()->getParent()->addNamedRange(
                    new \PhpOffice\PhpSpreadsheet\NamedRange(
                        'ListKabupatenKota',
                        $event->sheet->getDelegate(),
                        '$A$1:$A$'.count($kabupatenKotas)
                    )
                );
                $offset = count($kabupatenKotas)+2;
              
                foreach ($kabupatenKotas as $index_kab_kota => $kabupatenKota) {
                    
                    $event->sheet->getDelegate()->getParent()->addNamedRange(
                        new \PhpOffice\PhpSpreadsheet\NamedRange(
                            "KEC_".str_replace(' ','_',str_replace("'",'',$kabupatenKota->name)),
                            $event->sheet->getDelegate(),
                            '$B$'.($index_kab_kota+1).':$'.Coordinate::stringFromColumnIndex(($kabupatenKota->districts->count()+1)).'$'.($index_kab_kota+1)
                        )
                    );
                    
                    foreach ($kabupatenKota->districts as $index_kec => $kecamatan) {
                       
                        $event->sheet->getDelegate()->getParent()->addNamedRange(
                            new \PhpOffice\PhpSpreadsheet\NamedRange(
                                "KEL_DES_".(str_replace("'",'-',str_replace('/','-',str_replace(' ','_',str_replace("'","",$kecamatan->name))))),
                                $event->sheet->getDelegate(),
                                '$C$'.($offset+($index_kab_kota+1)+($index_kec+1)).':$C$'.($kecamatan->villages->count()+($offset+($index_kab_kota+1)+($index_kec)))
                            )
                        );
                     
                        $offset += $kecamatan->villages->count();
    
                    }
                    $offset += $kabupatenKota->districts->count();
                    
                }
                $event->sheet->getDelegate()->getParent()->addNamedRange(
                    new \PhpOffice\PhpSpreadsheet\NamedRange(
                        'ListPelatihan',
                        $event->sheet->getDelegate(),
                        '$A$'.($offset+count($kabupatenKotas)).':$A$'.($offset+Pelatihan::count())
                    )
                );
               
            },
        ];
    }

}

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