You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
692 lines
26 KiB
PHP
692 lines
26 KiB
PHP
<?php
|
|
|
|
use alhimik1986\PhpExcelTemplator\PhpExcelTemplator;
|
|
use alhimik1986\PhpExcelTemplator\params\ExcelParam;
|
|
use alhimik1986\PhpExcelTemplator\params\CallbackParam;
|
|
use alhimik1986\PhpExcelTemplator\setters\CellSetterArrayValueSpecial;
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
|
|
use NN\files;
|
|
use NN\Post;
|
|
use NN\Session;
|
|
use NN\Module\DB;
|
|
use NN\Module\Help;
|
|
use NN\Link;
|
|
use NN\Module\DD;
|
|
use NN\Enc;
|
|
use NN\module\View;
|
|
use xls\Param;
|
|
|
|
|
|
class Rekapitulasi {
|
|
|
|
private function toArray2($data = null, $name = ""){
|
|
$new = [];
|
|
$start = 6;
|
|
foreach ($data as $key => $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 "<pre>";
|
|
// 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 "<pre>";
|
|
// 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 "<pre>";
|
|
// 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 "<pre>";
|
|
// var_dump($sheet2);
|
|
|
|
// echo $qr;
|
|
PhpExcelTemplator::outputSpreadsheetToFile($spreadsheet, $file);
|
|
}
|
|
|
|
} |