$n) { $e = ( array ) $n; $new[] = str_replace("{no}",$start+$key, $e[$name]); } return $new; } public static function do($tahun, $bulan, $type, $gol = "01"){ ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); $tht = date('Y-m-t', strtotime( $tahun.'-'.$bulan ) ); $tht2 = date('Y-m', strtotime( $tahun.'-'.$bulan ) ); $bulanData = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"]; ini_set('display_ 231564524452errors', 1); $file = SETUP_PATH.'excel/rekapitulasi-'.$tahun.'-'.$bulan.'-'.date('ymdhis').'.xlsx'; if(base64_decode($type) != 'all'){ $filex = SETUP_PATH.'/excel/rekapitulasi2.xlsx'; }else{ $filex = SETUP_PATH.'/excel/rekapitulasi.xlsx'; if($gol == "02"){ $filex = SETUP_PATH.'/excel/rekapitulasi3.xlsx'; } } define('SPECIAL_ARRAY_TYPE', CellSetterArrayValueSpecial::class); $kodeSwithch = ", m.jurubayar"; $namatagar = "JURU BAYAR"; $gts = " AND c.status = 1"; if($gol == "02"){ $gts = " AND b.status = 1"; $namatagar = "GOLONGAN"; $kodeSwithch = ", a.rekapgol jurubayar"; } $jubar = "jurubayar nama"; $jubar2 = "jurubayar gol"; $groupby = " GROUP BY jurubayar ORDER BY jurubayar ASC"; if(base64_decode($type) != 'all'){ $jubar = "nama"; $jubar2 = "nama gol"; $groupby = " GROUP BY kode HAVING jurubayar = '".base64_decode($type)."' ORDER BY kode ASC"; } $qr = " SELECT '={no} - 5' no ,'=SUM(D{no}:H{no})' jum1 ,'=SUM(J{no}:P{no})' jum2 ,'=Q{no}+I{no}' jum3 , jurubayar , $jubar , $jubar2 , sum(sisa) reg , sum(pokok) pokok , sum(jasa) bunga , sum(swp) swp , sum(manasuka) sm , sum(tk) tk , sum(sp) sp , sum(sw) sw , sum(bw) bw , sum(pt) pk , sum(usp1) usp1 , sum(usp2) usp2 , sum(usp3) usp3 , sum(pusp1) pusp1 , sum(pusp2) pusp2 , sum(pusp3) pusp3 , sum(busp1) busp1 , sum(busp2) busp2 , sum(busp3) busp3 , sum(tusp1) tusp1 , sum(tusp2) tusp2 , sum(tusp3) tusp3 , '=I{no}+P{no}+W{no}+Z{no}' tot , 0 nol FROM ( SELECT m.kode ,a.nama $kodeSwithch ,ifnull(sum(if(m.kodesp = 'reg', ( SELECT pokok tot from mpinjam where faktur = m.faktur ),0)),0) pinjaman ,ifnull(sum(if(m.kodesp = 'reg', m.ke,0)),0) ke ,ifnull(sum(if(m.kodesp = 'reg', ( SELECT pokok tot from mpinjam where faktur = m.faktur ),0)),0) - ( ifnull(sum(if(m.kodesp = 'reg', m.ke,0)),0) * ifnull(sum(if(m.kodesp = 'reg', m.pokok,0)),0) ) sisa ,ifnull(sum(if(m.kodesp = 'reg', ( SELECT lama from mpinjam where faktur = m.faktur ),0)),0) masa ,ifnull(sum(if(m.kodesp = 'reg', m.pokok,0)),0) pokok ,ifnull(sum(if(m.kodesp = 'reg', m.bunga,0)),0) jasa ,ifnull(sum(if(m.kodesp = 'swp', jumlah,0)),0) swp ,ifnull(sum(if(m.kodesp = 'sm', jumlah,0)),0) manasuka ,ifnull(sum(if(m.kodesp = 'tk', jumlah,0)),0) tk ,ifnull(sum(if(m.kodesp = 'sp', jumlah,0)),0) sp ,ifnull(sum(if(m.kodesp = 'sw', jumlah,0)),0) sw ,ifnull(sum(if(m.kodesp = 'bw', jumlah,0)),0) bw ,ifnull(sum(if(m.kodesp = 'pt', m.pokok,0)),0) pt ,ifnull(sum(if(m.kodesp = 'usp1', m.pokok + m.bunga,0)),0) usp1 ,ifnull(sum(if(m.kodesp = 'usp2', m.pokok + m.bunga,0)),0) usp2 ,ifnull(sum(if(m.kodesp = 'usp3', m.pokok + m.bunga,0)),0) usp3 ,ifnull(sum(if(m.kodesp = 'usp1', m.pokok ,0)),0) pusp1 ,ifnull(sum(if(m.kodesp = 'usp2', m.pokok ,0)),0) pusp2 ,ifnull(sum(if(m.kodesp = 'usp3', m.pokok ,0)),0) pusp3 ,ifnull(sum(if(m.kodesp = 'usp1', m.bunga,0)),0) busp1 ,ifnull(sum(if(m.kodesp = 'usp2', m.bunga,0)),0) busp2 ,ifnull(sum(if(m.kodesp = 'usp3', m.bunga,0)),0) busp3 ,ifnull(sum(IF( m.kodesp = 'usp1', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0 )),0) - ifnull(sum(if(m.kodesp = 'usp1', m.pokok ,0)),0) tusp1 ,ifnull(sum(IF( m.kodesp = 'usp2', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0 )),0) - ifnull(sum(if(m.kodesp = 'usp2', m.pokok ,0)),0) tusp2 ,ifnull(sum(IF( m.kodesp = 'usp3', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0 )),0) - ifnull(sum(if(m.kodesp = 'usp3', m.pokok ,0)),0) tusp3 FROM mtagihan m LEFT JOIN anggota a ON m.kode = a.kode LEFT JOIN mrekapgol b ON a.rekapgol = b.kode LEFT JOIN mjurubayar c ON m.jurubayar = c.kode WHERE m.tgl LIKE '$tht2%' $gts GROUP BY m.kode ) a $groupby "; // echo "
";
        // echo $qr;
        // die();

        $dt = [
            "d" => "tusp",
            "e" => "pusp",
            "f" => "busp",
            "g" => "usp"
        ];


        $golongan = DB::query_result_object("SELECT * FROM mrekapgol WHERE `status` = 1");
        $data2 = DB::query_result_object($qr);
        $data = [];
        // jika data merupakan golongan
        if($gol == '02'){
            $newData = array_map(function($pop) use ($data2) {
                $p = array_filter($data2, function($p) use($pop) {
                    if($p->jurubayar == $pop->kode){
                        return $p;
                    }
                });
                if(count($p) > 0){
                    foreach($p as $o){
                        $p = $o;
                    }
                }else{
                    $p = (object) array(
                        "no" => "={no} - 5",
                        "jum1" => "=SUM(D{no}:H{no})",
                        "jum2" => "=SUM(J{no}:P{no})",
                        "jum3" => "=Q{no}+I{no}",
                        "jurubayar" => $pop->kode,
                        "nama" => $pop->kode,
                        "gol" => $pop->kode,
                        "reg" => "0.000",
                        "pokok" => "0.00",
                        "bunga" => "0.00",
                        "swp" => "0.00",
                        "sm" => "0.00",
                        "tk" => "0.00",
                        "sp" => "0.00",
                        "sw" => "0.00",
                        "bw" => "0.00",
                        "pk" => "0.00",
                        "usp1" => "0.00",
                        "usp2" => "0.00",
                        "usp3" => "0.00",
                        "pusp1" => "0.00",
                        "pusp2" => "0.00",
                        "pusp3" => "0.00",
                        "busp1" => "0.00",
                        "busp2" => "0.00",
                        "busp3" => "0.00",
                        "tusp1" => "0.00",
                        "tusp2" => "0.00",
                        "tusp3" => "0.00",
                        "tot" => "=I{no}+P{no}+W{no}+Z{no}",
                        "nol" => "0.00"
                    );
                }
                return $p;
            }, $golongan);
    
            $data= $newData;
        }else{
            $data = $data2;
        }
        //  

        $dataParse = [];
        $newPar = new Param();

        $newPar2 = new Param();

        $dataParse['no'] = (new self)->toArray2($data, "no"); 

        $newPar->add('no', $dataParse);
        $newPar2->add('no', $dataParse);

        $dataParse['nama'] = (new self)->toArray2($data, "nama"); 
        $newPar->add('nama', $dataParse);

        $dataParse['gol'] = (new self)->toArray2($data, "nama"); 
        $newPar2->add('gol', $dataParse);
        
        for ($n=1; $n <= 3; $n++) { 
            $dataParse['a'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('a'.$n, $dataParse);
            
            $dataParse['b'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('b'.$n, $dataParse);

            $dataParse['c'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('c'.$n, $dataParse);

            $dataParse['d'.$n] = (new self)->toArray2($data, $dt['d'].$n); 
            $newPar2->add('d'.$n, $dataParse);
            
            $dataParse['e'.$n] = (new self)->toArray2($data, $dt['e'].$n); 
            $newPar2->add('e'.$n, $dataParse);
            
            $dataParse['f'.$n] = (new self)->toArray2($data, $dt['f'].$n); 
            $newPar2->add('f'.$n, $dataParse);
            
            $dataParse['g'.$n] = (new self)->toArray2($data, $dt['g'].$n); 
            $newPar2->add('g'.$n, $dataParse);
        }
        
        $dataParse['swp'] = (new self)->toArray2($data, "swp"); 
        $newPar->add('swp', $dataParse);
        
        $dataParse['reg'] = (new self)->toArray2($data, "reg"); 
        $newPar->add('reg', $dataParse);

        $dataParse['usp1'] = (new self)->toArray2($data, "usp1"); 
        $newPar->add('usp1', $dataParse);

        $dataParse['usp2'] = (new self)->toArray2($data, "usp2"); 
        $newPar->add('usp2', $dataParse);

        $dataParse['usp3'] = (new self)->toArray2($data, "usp3"); 
        $newPar->add('usp3', $dataParse);

        $dataParse['pk'] = (new self)->toArray2($data, "pk"); 
        $newPar->add('pk', $dataParse);

        $dataParse['a4'] = (new self)->toArray2($data, "pk"); 
        $newPar2->add('a4', $dataParse);

        $dataParse['b4'] = (new self)->toArray2($data, "nol"); 
        $newPar2->add('b4', $dataParse);

        $dataParse['c4'] = (new self)->toArray2($data, "pk"); 
        $newPar2->add('c4', $dataParse);

        $dataParse['tot'] = (new self)->toArray2($data, "tot"); 
        $newPar2->add('tot', $dataParse);

        $dataParse['bw'] = (new self)->toArray2($data, "bw"); 
        $newPar->add('bw', $dataParse);

        $dataParse['sw'] = (new self)->toArray2($data, "sw"); 
        $newPar->add('sw', $dataParse);

        $dataParse['sp'] = (new self)->toArray2($data, "sp"); 
        $newPar->add('sp', $dataParse);

        $dataParse['tk'] = (new self)->toArray2($data, "tk"); 
        $newPar->add('tk', $dataParse);

        $dataParse['sm'] = (new self)->toArray2($data, "sm"); 
        $newPar->add('sm', $dataParse);

        $dataParse['pokok'] = (new self)->toArray2($data, "pokok"); 
        $newPar->add('pokok', $dataParse);

        $dataParse['bunga'] = (new self)->toArray2($data, "bunga"); 
        $newPar->add('bunga', $dataParse);

        $dataParse['jum1'] = (new self)->toArray2($data, "jum1"); 
        $newPar->add('jum1', $dataParse);

        $dataParse['jum2'] = (new self)->toArray2($data, "jum2"); 
        $newPar->add('jum2', $dataParse);

        $dataParse['jum3'] = (new self)->toArray2($data, "jum3"); 
        $newPar->add('jum3', $dataParse);
       
        $newPar->single('time', strtoupper($bulanData[ $bulan - 1 ]) ." ". $tahun );
        $newPar->single('jubar', strtoupper(base64_decode($type)) );
        $newPar->single('jubar', strtoupper(base64_decode($type)) );
        $newPar->single('tagar', $namatagar );

        $newPar2->single('time', strtoupper($bulanData[ $bulan - 1 ]) ." ". $tahun );
        $newPar2->single('jubar', strtoupper(base64_decode($type)) );
        $newPar2->single('jubar', strtoupper(base64_decode($type)) );
        $newPar2->single('tagar', $namatagar );

        // $dataParse['swp'] = (new self)->toArray2($data, "swp"); 
        // $newPar->add('swp', $dataParse);

        $params = $newPar->get();
        $params2 = $newPar2->get();
        // encopy
        $callbacks = [];
        $events = [];

        $spreadsheet = IOFactory::load($filex);
        $templateVarsArr = $spreadsheet->getSheet(0)->toArray();
        
        $sheet1 = $spreadsheet->getSheet(0);
        PhpExcelTemplator::renderWorksheet($sheet1, $templateVarsArr, $params, $callbacks, $events);
        
        $sheet2 = $spreadsheet->getSheet(1);
        $templateVarsArr2 = $spreadsheet->getSheet(1)->toArray();
        PhpExcelTemplator::renderWorksheet($sheet2, $templateVarsArr2, $params2, $callbacks, $events);

        // echo "
";
        // var_dump($sheet2);

        // echo $qr;
        PhpExcelTemplator::outputSpreadsheetToFile($spreadsheet, $file);
    }
    
    public static function do2($tahun, $bulan, $type, $gol = "01"){
        ini_set('display_errors', 1);
        ini_set('display_startup_errors', 1);
        error_reporting(E_ALL);

        $tht = date('Y-m-t', strtotime( $tahun.'-'.$bulan ) );
        $tht2 = date('Y-m', strtotime( $tahun.'-'.$bulan ) );
        $bulanData = ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"];
        ini_set('display_  231564524452errors', 1);
        $file = SETUP_PATH.'excel/rekapitulasi-'.$tahun.'-'.$bulan.'-'.date('ymdhis').'.xlsx';
        if(base64_decode($type) !=  'all'){
            $filex = SETUP_PATH.'/excel/rekapitulasi2.xlsx';
        }else{
            $filex = SETUP_PATH.'/excel/rekapitulasi.xlsx';
            if($gol == "02"){
                $filex = SETUP_PATH.'/excel/rekapitulasi3.xlsx';
            }
        }
        define('SPECIAL_ARRAY_TYPE', CellSetterArrayValueSpecial::class);

        $kodeSwithch = ", m.jurubayar";
        $namatagar = "JURU BAYAR";
        $gts = " AND c.status = 1";
        
        if($gol == "02"){
            $gts = " AND b.status = 1";
            $namatagar = "GOLONGAN";
            $kodeSwithch = ", a.rekapgol jurubayar";
        }

        $jubar = "jurubayar nama";
        $jubar2 = "jurubayar gol";
        $groupby = " GROUP BY jurubayar ORDER BY jurubayar ASC";
        
        if(base64_decode($type) !=  'all'){
           $jubar = "nama";
           $jubar2 = "nama gol";
           $groupby = " GROUP BY kode HAVING jurubayar = '".base64_decode($type)."' ORDER BY kode ASC";
        }

        $qr = "
        SELECT 
            '={no} - 5' no
            ,'=SUM(D{no}:H{no})' jum1
            ,'=SUM(J{no}:P{no})' jum2
            ,'=Q{no}+I{no}' jum3
            , jurubayar
            , $jubar
            , $jubar2
            , sum(sisa) reg
            , sum(pokok) pokok
            , sum(jasa) bunga
            , sum(swp) swp
            , sum(manasuka) sm
            , sum(tk) tk
            , sum(sp) sp
            , sum(sw) sw
            , sum(bw) bw
            , sum(pt) pk
            , sum(usp1) usp1
            , sum(usp2) usp2
            , sum(usp3) usp3
            , sum(pusp1) pusp1
            , sum(pusp2) pusp2
            , sum(pusp3) pusp3
            , sum(busp1) busp1
            , sum(busp2) busp2
            , sum(busp3) busp3
            , sum(tusp1) tusp1
            , sum(tusp2) tusp2
            , sum(tusp3) tusp3
            , '=I{no}+P{no}+W{no}+Z{no}' tot
            , 0 nol
        FROM (
        SELECT 
            m.kode
            ,a.nama
            $kodeSwithch
            ,ifnull(sum(if(m.kodesp = 'reg', (
                SELECT pokok tot from mpinjam where faktur = m.faktur
            ),0)),0) pinjaman
            ,ifnull(sum(if(m.kodesp = 'reg', m.ke,0)),0) ke
            ,ifnull(sum(if(m.kodesp = 'reg', (
                SELECT pokok tot from mpinjam where faktur = m.faktur
            ),0)),0) - ( ifnull(sum(if(m.kodesp = 'reg', m.ke,0)),0) * ifnull(sum(if(m.kodesp = 'reg', m.pokok,0)),0) ) sisa
            ,ifnull(sum(if(m.kodesp = 'reg', (
                SELECT lama from mpinjam where faktur = m.faktur
            ),0)),0) masa
            ,ifnull(sum(if(m.kodesp = 'reg', m.pokok,0)),0) pokok
            ,ifnull(sum(if(m.kodesp = 'reg', m.bunga,0)),0) jasa
            ,ifnull(sum(if(m.kodesp = 'swp', jumlah,0)),0) swp
            ,ifnull(sum(if(m.kodesp = 'sm', jumlah,0)),0) manasuka
            ,ifnull(sum(if(m.kodesp = 'tk', jumlah,0)),0) tk
            ,ifnull(sum(if(m.kodesp = 'sp', jumlah,0)),0) sp
            ,ifnull(sum(if(m.kodesp = 'sw', jumlah,0)),0) sw
            ,ifnull(sum(if(m.kodesp = 'bw', jumlah,0)),0) bw
            ,ifnull(sum(if(m.kodesp = 'pt', m.pokok,0)),0) pt
            ,ifnull(sum(if(m.kodesp = 'usp1', m.pokok + m.bunga,0)),0) usp1
            ,ifnull(sum(if(m.kodesp = 'usp2', m.pokok + m.bunga,0)),0) usp2
            ,ifnull(sum(if(m.kodesp = 'usp3', m.pokok + m.bunga,0)),0) usp3
            ,ifnull(sum(if(m.kodesp = 'usp1', m.pokok ,0)),0) pusp1
            ,ifnull(sum(if(m.kodesp = 'usp2', m.pokok ,0)),0) pusp2
            ,ifnull(sum(if(m.kodesp = 'usp3', m.pokok ,0)),0) pusp3
            ,ifnull(sum(if(m.kodesp = 'usp1', m.bunga,0)),0) busp1
            ,ifnull(sum(if(m.kodesp = 'usp2', m.bunga,0)),0) busp2
            ,ifnull(sum(if(m.kodesp = 'usp3', m.bunga,0)),0) busp3
            ,ifnull(sum(IF(
                m.kodesp = 'usp1', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0
            )),0) - ifnull(sum(if(m.kodesp = 'usp1', m.pokok ,0)),0) tusp1
            ,ifnull(sum(IF(
                m.kodesp = 'usp2', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0
            )),0) - ifnull(sum(if(m.kodesp = 'usp2', m.pokok ,0)),0) tusp2
            ,ifnull(sum(IF(
                m.kodesp = 'usp3', (SELECT pokok FROM mpinjam WHERE faktur = m.faktur), 0
            )),0) - ifnull(sum(if(m.kodesp = 'usp3', m.pokok ,0)),0) tusp3
        FROM mtagihan m 
        LEFT JOIN anggota a ON m.kode = a.kode
        LEFT JOIN mrekapgol b ON a.rekapgol = b.kode
        LEFT JOIN mjurubayar c ON m.jurubayar = c.kode
        WHERE m.tgl LIKE '$tht2%' $gts GROUP BY m.kode
        ) a $groupby
        ";
        
        // echo "
";
        // echo $qr;
        // die();

        $dt = [
            "d" => "tusp",
            "e" => "pusp",
            "f" => "busp",
            "g" => "usp"
        ];


        $golongan = DB::query_result_object("SELECT * FROM mrekapgol WHERE `status` = 1");
        $data2 = DB::query_result_object($qr);
        $data = [];
        // jika data merupakan golongan
        if($gol == '02'){
            $newData = array_map(function($pop) use ($data2) {
                $p = array_filter($data2, function($p) use($pop) {
                    if($p->jurubayar == $pop->kode){
                        return $p;
                    }
                });
                if(count($p) > 0){
                    foreach($p as $o){
                        $p = $o;
                    }
                }else{
                    $p = (object) array(
                        "no" => "={no} - 5",
                        "jum1" => "=SUM(D{no}:H{no})",
                        "jum2" => "=SUM(J{no}:P{no})",
                        "jum3" => "=Q{no}+I{no}",
                        "jurubayar" => $pop->kode,
                        "nama" => $pop->kode,
                        "gol" => $pop->kode,
                        "reg" => "0.000",
                        "pokok" => "0.00",
                        "bunga" => "0.00",
                        "swp" => "0.00",
                        "sm" => "0.00",
                        "tk" => "0.00",
                        "sp" => "0.00",
                        "sw" => "0.00",
                        "bw" => "0.00",
                        "pk" => "0.00",
                        "usp1" => "0.00",
                        "usp2" => "0.00",
                        "usp3" => "0.00",
                        "pusp1" => "0.00",
                        "pusp2" => "0.00",
                        "pusp3" => "0.00",
                        "busp1" => "0.00",
                        "busp2" => "0.00",
                        "busp3" => "0.00",
                        "tusp1" => "0.00",
                        "tusp2" => "0.00",
                        "tusp3" => "0.00",
                        "tot" => "=I{no}+P{no}+W{no}+Z{no}",
                        "nol" => "0.00"
                    );
                }
                return $p;
            }, $golongan);
    
            $data= $newData;
        }else{
            $data = $data2;
        }
        //  

        $dataParse = [];
        $newPar = new Param();

        $newPar2 = new Param();

        $dataParse['no'] = (new self)->toArray2($data, "no"); 

        $newPar->add('no', $dataParse);
        $newPar2->add('no', $dataParse);

        $dataParse['nama'] = (new self)->toArray2($data, "nama"); 
        $newPar->add('nama', $dataParse);

        $dataParse['gol'] = (new self)->toArray2($data, "nama"); 
        $newPar2->add('gol', $dataParse);
        
        for ($n=1; $n <= 3; $n++) { 
            $dataParse['a'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('a'.$n, $dataParse);
            
            $dataParse['b'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('b'.$n, $dataParse);

            $dataParse['c'.$n] = (new self)->toArray2($data, 'nol'); 
            $newPar2->add('c'.$n, $dataParse);

            $dataParse['d'.$n] = (new self)->toArray2($data, $dt['d'].$n); 
            $newPar2->add('d'.$n, $dataParse);
            
            $dataParse['e'.$n] = (new self)->toArray2($data, $dt['e'].$n); 
            $newPar2->add('e'.$n, $dataParse);
            
            $dataParse['f'.$n] = (new self)->toArray2($data, $dt['f'].$n); 
            $newPar2->add('f'.$n, $dataParse);
            
            $dataParse['g'.$n] = (new self)->toArray2($data, $dt['g'].$n); 
            $newPar2->add('g'.$n, $dataParse);
        }
        
        $dataParse['swp'] = (new self)->toArray2($data, "swp"); 
        $newPar->add('swp', $dataParse);
        
        $dataParse['reg'] = (new self)->toArray2($data, "reg"); 
        $newPar->add('reg', $dataParse);

        $dataParse['usp1'] = (new self)->toArray2($data, "usp1"); 
        $newPar->add('usp1', $dataParse);

        $dataParse['usp2'] = (new self)->toArray2($data, "usp2"); 
        $newPar->add('usp2', $dataParse);

        $dataParse['usp3'] = (new self)->toArray2($data, "usp3"); 
        $newPar->add('usp3', $dataParse);

        $dataParse['pk'] = (new self)->toArray2($data, "pk"); 
        $newPar->add('pk', $dataParse);

        $dataParse['a4'] = (new self)->toArray2($data, "pk"); 
        $newPar2->add('a4', $dataParse);

        $dataParse['b4'] = (new self)->toArray2($data, "nol"); 
        $newPar2->add('b4', $dataParse);

        $dataParse['c4'] = (new self)->toArray2($data, "pk"); 
        $newPar2->add('c4', $dataParse);

        $dataParse['tot'] = (new self)->toArray2($data, "tot"); 
        $newPar2->add('tot', $dataParse);

        $dataParse['bw'] = (new self)->toArray2($data, "bw"); 
        $newPar->add('bw', $dataParse);

        $dataParse['sw'] = (new self)->toArray2($data, "sw"); 
        $newPar->add('sw', $dataParse);

        $dataParse['sp'] = (new self)->toArray2($data, "sp"); 
        $newPar->add('sp', $dataParse);

        $dataParse['tk'] = (new self)->toArray2($data, "tk"); 
        $newPar->add('tk', $dataParse);

        $dataParse['sm'] = (new self)->toArray2($data, "sm"); 
        $newPar->add('sm', $dataParse);

        $dataParse['pokok'] = (new self)->toArray2($data, "pokok"); 
        $newPar->add('pokok', $dataParse);

        $dataParse['bunga'] = (new self)->toArray2($data, "bunga"); 
        $newPar->add('bunga', $dataParse);

        $dataParse['jum1'] = (new self)->toArray2($data, "jum1"); 
        $newPar->add('jum1', $dataParse);

        $dataParse['jum2'] = (new self)->toArray2($data, "jum2"); 
        $newPar->add('jum2', $dataParse);

        $dataParse['jum3'] = (new self)->toArray2($data, "jum3"); 
        $newPar->add('jum3', $dataParse);
       
        $newPar->single('time', strtoupper($bulanData[ $bulan - 1 ]) ." ". $tahun );
        $newPar->single('jubar', strtoupper(base64_decode($type)) );
        $newPar->single('jubar', strtoupper(base64_decode($type)) );
        $newPar->single('tagar', $namatagar );

        $newPar2->single('time', strtoupper($bulanData[ $bulan - 1 ]) ." ". $tahun );
        $newPar2->single('jubar', strtoupper(base64_decode($type)) );
        $newPar2->single('jubar', strtoupper(base64_decode($type)) );
        $newPar2->single('tagar', $namatagar );

        // $dataParse['swp'] = (new self)->toArray2($data, "swp"); 
        // $newPar->add('swp', $dataParse);

        $params = $newPar->get();
        $params2 = $newPar2->get();
        // encopy
        $callbacks = [];
        $events = [];

        $spreadsheet = IOFactory::load($filex);
        $templateVarsArr = $spreadsheet->getSheet(0)->toArray();
        
        $sheet1 = $spreadsheet->getSheet(0);
        PhpExcelTemplator::renderWorksheet($sheet1, $templateVarsArr, $params, $callbacks, $events);
        
        $sheet2 = $spreadsheet->getSheet(1);
        $templateVarsArr2 = $spreadsheet->getSheet(1)->toArray();
        PhpExcelTemplator::renderWorksheet($sheet2, $templateVarsArr2, $params2, $callbacks, $events);

        // echo "
";
        // var_dump($sheet2);

        // echo $qr;
        PhpExcelTemplator::outputSpreadsheetToFile($spreadsheet, $file);
    }

}