Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Imports/
Upload File :
Current File : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Imports/ImportRealisasi.php

<?php

namespace App\Imports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;

class ImportRealisasi implements ToCollection
{
    /**
    * @param Collection $collection
    */
    public function collection(Collection $rows)
    {

        $start = [];
        $number = 0;
        foreach ($rows as $key => $value) {
            if ($value[0] == 'type' and $value[1] == 'start') {
                array_push($start,$number++);
            }
        }

        $cols= [];
        $devider = [];
        $number = 0;
        foreach ($rows as $key => $values) {
            if ($values[0] == 'type') {
                // $devider[$values[1]] = [];
                $push[] = [];
                $push[] = [
                    $values[0] => $values[1],
                ];  
            }else{
                $push[] = [
                    $values[0] => $values[1],
                ];
            }
        }
        $cols = [
            $push
        ];
       
        foreach ($cols as $key => $value) {
            $num = 0;
            $index = 0;
            $active_keys = [];
            $items[] = [];
            $sub5_index = -1;
            $tes[] = [];
            // $subitem_index = -1;
            foreach ($value as $keys => $values) {
                if (!empty($values)) {
                    $val = collect($values);
                    // $index++;
                    if ($val->keys()->first() == 'type') {
                        array_push($active_keys,$val->values()->first());
                    }
                    if ($val->keys()->first() == 'type' and $val->values()->first() == 'item'){
                        $index++;
                    }elseif($val->keys()->first() == 'type' and $val->values()->first() == 'opd'){
                        $index = 0;
                        $sub5_index = -1;
                        
                    }elseif($val->keys()->first() == 'type' and $val->values()->first() == 'sub5'){
                        $sub5_index++;

                    }

                    if ($val->keys()->first() == 'type') {
                        $kunci = $val->values()->first();                                            
                        if ($val->keys()->first() == 'type' and $val->values()->first() == 'start') {
                            $num++;
                        }
                    }else{
                        if($kunci != 'item'){
                            $devider[$num-1][$kunci][$index][$val->keys()->first()] = $val->values()->first();
                        }else{
                            $devider[$num-1][$kunci][$index][$val->keys()->first()] = $val->values()->first();
                            // $items[$num-1][$index-1][$sub5_index][$val->keys()->first()] = $val->values()->first();

                            $devider[$num-1]['sub5'][$sub5_index]['items'][$index][$val->keys()->first()] = $val->values()->first();
                        }
                    }
                }
            }
            // dd($tes);
            dd($devider);
            dd($active_keys);

        }

        $wrap= [];
        
        foreach ($devider as $key => $value) {
            $wrap[] = [
                'opd'=>$value['opd'][0],
                'program'=>$value['program'][0],
                'kegiatan'=>$value['kegiatan'][0],
                'sub_kegiatan'=>$value['sub_kegiatan'][0],
                'kpa'=>$value['kpa'][0],
                'ppt'=>$value['ppt'][0],
                'sumber_dana'=>$value['sumber_dana'][0],
                'sub'=>collect($devider[$key])->map(function($item,$key){
                    $arr = ['sub1','sub2','sub3','sub4','sub5'];
                    $all = [];
                    if (in_array($key,$arr)){
                        if (!is_null($key)) {
                            return $item;
                        }
                    }
                })->filter(),
            ];
        }
        dd($wrap);


    }
}

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