<?php

namespace App\Exports;

use App\Models\DaftarProposalBelmawa;
use App\Models\DaftarProposalMonev;
use Illuminate\Support\Facades\DB;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;

class DaftarProposalMonevExport implements FromView,ShouldAutoSize
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function __construct($jenis,$status,$tahun,$monev)
    {
        $this->jenis = $jenis;
        $this->status = $status;
        $this->tahun = $tahun;
        $this->monev = $monev;
    }

    public function view(): View
    {
        $statement = " STATUS_HAPUS = '0'";

        if($this->jenis != "0")
        {
            $statement .= " AND jenis_id = '".$this->jenis."'";
        }

        if($this->status != "0")
        {
            // dikurang 1 karena di view mulai dari 0 sedangkan 0 itu menunggu persetujuan
            $status = $this->status - 1;
            $statement .= " AND STATUS_FINAL = '".$status."'";
        }

        if($this->tahun != "0")
        {
            $statement .= " AND PERIODE = '".$this->tahun."'";
        }

        if(isset($this->monev))
        {
            $statement.= " AND jenis_monev_desc = '".$this->monev."'";
        }

        $data = DaftarProposalMonev::with('rKelompokDetil')
            ->whereRaw($statement)
            ->get();

            // $result = [];

            // $no = 0;
    
            // foreach ($data as $key => $value) {
            //     // $dospem = "(".str_replace("###",") ",$value->identitas_dospem);
            //     $data_dospem = explode('###', $value->identitas_dospem);
            //     $data_ketua = explode('###', $value->identitas_ketua);
            //     $dospem = "(".$data_dospem[0].") ".$data_dospem[1];
            //     $url = "https://statik.unesa.ac.id/simpmw/proposal/".$value->periode."/".$value->upload_dokumen;
    
            //     // $urut = 1;
            //     // foreach ($value->rKelompokDetil as $keys => $detil) {
    
            //     //     if($detil->status_ketua == '1')
            //     //     {
            //     //         $keanggotaan = "Ketua";
            //     //     }
            //     //     else
            //     //     {
            //     //         $keanggotaan = "Anggota ".$urut;
            //     //         $urut++;
            //     //     }
            //     $urut = 1;
            //     $det = array();
            //     $no = 0;
            //     foreach ($value->rKelompokDetil as $keys => $detil) {
    
            //         if($detil->status_ketua == '1')
            //         {
            //             $keanggotaan = "Ketua";
            //         }
            //         else
            //         {
            //             $keanggotaan = "Anggota ".$urut;
            //             $urut++;
            //         }
    
            //         $det[$no]['fak'] = $detil->fakultas;
            //         $det[$no]['nama'] = $detil->nama;
            //         $det[$no]['nim']= $detil->nim;
            //         $det[$no]['keanggotaan'] = $keanggotaan;
    
            //         $no++;
            //     }
    
            //         $result[$no]['rowspan'] = count($value->rKelompokDetil);
            //         $result[$no]['kode'] = $value->kode;
            //         $result[$no]['jenis'] = $value->jenis_pkm;
            //         $result[$no]['detil'] = $det;
            //         $result[$no]['fak'] = $detil->fakultas;
            //         $result[$no]['nama'] = $detil->nama;
            //         $result[$no]['nim'] = $detil->nim;
            //         $result[$no]['keanggotaan'] = $keanggotaan;
            //         $result[$no]['judul'] = $value->judul;
            //         $result[$no]['dospem'] = $dospem;
            //         $result[$no]['link'] = $url;
            //         $result[$no]['status'] = $value->status_desc;
            //         $result[$no]['rata'] = $value->rata;
            //         $result[$no]['email_dospem'] = end($data_dospem);
            //         $result[$no]['email_ketua'] = end($data_ketua);
    
            //         $no++;
            //     }

        $result = []; // Untuk data hasil akhir
        $urut = 1;    // Untuk nomor anggota (reset setiap proposal)
        $index = 0;   // Indeks untuk $result

        foreach ($data as $key => $value) {
            $data_dospem = explode('###', $value->identitas_dospem);
            $data_ketua = explode('###', $value->identitas_ketua);
            $dospem = "(".$data_dospem[0].") ".$data_dospem[1];
            $url = $value->upload_dokumen ? "https://statik.unesa.ac.id/simpmw/proposal/".$value->periode."/".$value->upload_dokumen : '';
            $kemajuan = $value->kemajuan_file ?? '';
            $akhir = $value->akhir_file ?? '';

            $laporan = $this->monev == 'Monev Internal I'
                ? "https://statik.unesa.ac.id/simpmw/monev/I/kemajuan/".$kemajuan
                : "https://statik.unesa.ac.id/simpmw/monev/II/akhir/".$akhir;

            $video = $this->monev == 'Monev Internal II' ? ($value->produk_url ?? '') : ($value->url ?? '');

            $laporan_lain = 'https://simpmw.unesa.ac.id/reviewer/luaran/' . encrypt($value->proposal_id);
            $laporan_anggaran = 'https://simpmw.unesa.ac.id/operator/monev-internal/laporan-anggaran/' . encrypt($value->monev_internal_id);

            $det = []; // Untuk detail anggota setiap proposal
            $urut = 1; // Reset nomor anggota untuk setiap proposal

            foreach ($value->rKelompokDetil as $detil) {
                $keanggotaan = $detil->status_ketua == '1' ? "Ketua" : "Anggota ".$urut;
                if ($detil->status_ketua != '1') {
                    $urut++;
                }

                $det[] = [
                    'fak' => $detil->fakultas,
                    'nama' => $detil->nama,
                    'nim' => $detil->nim,
                    'keanggotaan' => $keanggotaan,
                ];
            }

            $result[$index] = [
                'rowspan' => count($value->rKelompokDetil),
                'kode' => $value->kode,
                'jenis' => $value->jenis_pkm,
                'detil' => $det,
                'judul' => $value->judul,
                'dospem' => $dospem,
                'link' => $url,
                'laporan' => $laporan,
                'video' => $video,
                'status' => $value->status_desc,
                'rata' => $value->rata,
                'email_dospem' => end($data_dospem),
                'email_ketua' => end($data_ketua),
                'kemajuan' => $kemajuan,
                'laporan_lain' => $laporan_lain,
                'akhir' => $akhir,
                'laporan_anggaran' => $laporan_anggaran,                
            ];

            $index++; // Tambahkan indeks setelah setiap proposal
        }
        $datas['list_proposal'] = $result;
        $datas['jenis_monev'] = 'Seleksi ' . $this->monev;

        return view('backend.operator.daftar_proposal.excel_new', $datas);
    }
}