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.

212 lines
8.8 KiB
PHP

<?php
use NN\files;
use NN\Post;
use NN\Session;
use NN\Module\DB;
use NN\Module\DD;
use NN\Module\Help;
use NN\Module\Datatable;
use NN\Link;
use NN\Enc;
use NN\module\View;
class Kartupinjaman {
public static function datakartu($kode){
$kode = base64_decode($kode);
$thn = [
["id"=>"01","text"=>"Januari"],
["id"=>"02","text"=>"Februari"],
["id"=>"03","text"=>"Maret"],
["id"=>"04","text"=>"April"],
["id"=>"05","text"=>"Mei"],
["id"=>"06","text"=>"Juni"],
["id"=>"07","text"=>"Juli"],
["id"=>"08","text"=>"Agustus"],
["id"=>"09","text"=>"September"],
["id"=>"10","text"=>"Oktober"],
["id"=>"11","text"=>"November"],
["id"=>"12","text"=>"Desember"]
];
$user = DB::query_result_object_row("SELECT
a.nama
, a.telp
, b.lokasi unitkerja
FROM anggota a
LEFT JOIN munitkerja b ON b.kode = a.unitkerja
WHERE
a.kode = '$kode' ");
$jp = [
["id"=>"REG","text"=>"USP Reguler"]
,["id"=>"USP1","text"=>"USP 1 (Pembiayaan Elektronik)"]
,["id"=>"USP2","text"=>"USP 2 (Pembiayaan Sepeda Motor)"]
,["id"=>"USP3","text"=>"USP 3 (Pembiayaan Haji/ Umroh)"]
,["id"=>"KHUSUS","text"=>"USP KHUSUS"]
];
$ds = [];
foreach($jp as $jj){
$jj = (object) $jj;
$ds[$jj->id] = [];
foreach ($thn as $key => $th) {
$th = (object) $th;
$payb = DB::query_result_object_row("
SELECT
p.kode
, p.kodesp
, ifnull(sum(p.pokok + p.bunga),0) - ifnull(sum(m.bunga) + sum(m.pokok),0) awal
, ifnull(sum(m.bunga) + sum(m.pokok),0) total
, ifnull(sum(m.bunga),0) bunga
, ifnull(sum(m.pokok),0) pokok
FROM mpinjam p
LEFT JOIN (
SELECT mags.fkt, mags.kode, sum(mags.pokok) pokok, sum(mags.bunga) bunga FROM mags
LEFT JOIN mpinjam m ON mags.fkt = m.faktur
WHERE mags.kode = '$kode' AND mags.tgl < '".date('Y')."-$th->id-01' AND m.kodesp = '$jj->id'
) m ON p.faktur = m.fkt
WHERE p.kode = '$kode' AND p.tgl < '".date('Y')."-$th->id-01'
AND p.kodesp = '$jj->id'
");
$payc = DB::query_result_object_row("
SELECT
m.kode
, p.kodesp
, ifnull(sum(p.pokok ),0) - ifnull(sum(m.pokok),0) awal
, ifnull(sum(m.bunga) + sum(m.pokok),0) total
, ifnull(sum(m.bunga),0) bunga
, ifnull(sum(m.pokok),0) pokok
FROM
mpinjam p
LEFT JOIN (
SELECT mags.fkt, mags.kode, sum(mags.pokok) pokok, sum(mags.bunga) bunga FROM mags
LEFT JOIN mpinjam m ON mags.fkt = m.faktur
WHERE mags.kode = '$kode' AND mags.tgl <= '".date('Y-m-t', strtotime("'".date('Y')."-$th->id'") )."' AND m.kodesp = '$jj->id'
) m ON p.faktur = m.fkt
WHERE p.kode = '$kode'
AND p.tgl < '".date('Y')."-$th->id-".date("t",strtotime(date('Y')."-".$th->id))."'
AND p.kodesp = '$jj->id'
");
$pay = DB::query_result_object_row("
SELECT
m.kode,
p.kodesp,
ifnull( sum( p.pokok + p.bunga ), 0 ) baru,
ifnull( sum( ifnull(m.bunga,0) ) + sum( ifnull(m.pokok,0) ), 0 ) total,
ifnull( sum( ifnull(m.bunga,0) ), 0 ) bunga,
ifnull( sum( ifnull(m.pokok,0) ), 0 ) pokok
FROM
mpinjam p
LEFT JOIN (
SELECT mags.fkt, mags.kode, sum(mags.pokok) pokok, sum(mags.bunga) bunga FROM mags
LEFT JOIN mpinjam m ON mags.fkt = m.faktur
WHERE mags.kode = '$kode' AND mags.tgl <= '".date('Y-m-t', strtotime("'".date('Y')."-$th->id'") )."' AND m.kodesp = '$jj->id'
) m ON p.faktur = m.fkt
WHERE
p.kode = '$kode'
AND p.tgl LIKE '".date('Y')."-$th->id%'
AND p.kodesp = '$jj->id'
");
$now = date('Y')."-".$th->id;
$startDate = date("Y-m-01", strtotime($now));
$lastDate = date("Y-m-t", strtotime($now));
$lastDate2 = date("Y-m", strtotime($now));
$qrn = DB::query_result_object("
SELECT
ifnull(sum(p.pokok),0) sisa
FROM
mpinjam p
WHERE
p.kode = '$kode'
AND p.tgl LIKE '$now%'
AND p.kodesp = '$jj->id'
");
$qr = DB::query_result_object("
SELECT
ifnull(sum(p.pokok),0)
- ifnull(sum((SELECT sum(pokok) FROM mags WHERE fkt = p.faktur AND tgl < '$startDate')),0) sisa
FROM
mpinjam p
WHERE
p.kode = '$kode'
AND p.tgl < '$startDate'
AND p.kodesp = '$jj->id'
");
// echo "<br>---</br>";
// echo "
// SELECT
// ifnull(sum(p.pokok),0)
// - ifnull(sum((SELECT sum(pokok) FROM mags WHERE fkt = p.faktur)),0) sisa,
// ifnull(sum(( SELECT sum(pokok) FROM mags WHERE fkt = p.faktur AND tgl LIKE '$lastDate2%' )),0) bayar,
// ifnull(sum(( SELECT sum(bunga) FROM mags WHERE fkt = p.faktur AND tgl LIKE '$lastDate2%' )),0) bunga
// FROM
// mpinjam p
// WHERE
// p.kode = '$kode'
// AND p.tgl <= '$lastDate'
// AND p.kodesp = '$jj->id'
// ";
// echo "<br>---</br>";
$qr1 = DB::query_result_object("
SELECT
ifnull(sum(p.pokok),0)
- ifnull(sum((SELECT sum(pokok) FROM mags WHERE fkt = p.faktur AND tgl <= '$lastDate')),0) sisa,
ifnull(sum(( SELECT sum(pokok) FROM mags WHERE fkt = p.faktur AND tgl LIKE '$lastDate2%' )),0) bayar,
ifnull(sum(( SELECT sum(bunga) FROM mags WHERE fkt = p.faktur AND tgl LIKE '$lastDate2%' )),0) bunga
FROM
mpinjam p
WHERE
p.kode = '$kode'
AND p.tgl <= '$lastDate'
AND p.kodesp = '$jj->id'
");
$ds[$jj->id][$th->id] = [];
$ds[$jj->id][$th->id]['ke'] = '-';
$ds[$jj->id][$th->id]['awal'] = '-';
$ds[$jj->id][$th->id]['dibayar'] = (new self)->cekData($qr1, 'bayar');
$ds[$jj->id][$th->id]['jasa'] = (new self)->cekData($qr1, 'bunga');
$ds[$jj->id][$th->id]['baru'] = (new self)->cekData($qrn, 'sisa');
$ds[$jj->id][$th->id]['sisa'] = '-';
$ds[$jj->id][$th->id]['totke'] = '-';
$ds[$jj->id][$th->id]['totawal'] = (new self)->cekData($qr, 'sisa');
$ds[$jj->id][$th->id]['totdibayar'] = (new self)->cekData($qr1, 'bayar');
$ds[$jj->id][$th->id]['totjasa'] = (new self)->cekData($qr1, 'bunga');
$ds[$jj->id][$th->id]['totbaru'] = (new self)->cekData($qrn, 'sisa');
$ds[$jj->id][$th->id]['totsisa'] = (new self)->cekData($qr1, 'sisa');
}
}
$data = [
"no" => $user->kode,
"noinduk" => $user->kode,
"nama" => $user->nama,
"unitkerja" => $user->unitkerja,
"telp" => $user->telp,
"th" => date('Y', strtotime($user->telp)),
"data" => $ds,
];
if(count($_POST) == 0){
DD::view($data);
}else{
echo json_encode($data);
}
}
private function cekData ($data, $nilai){
if( count($data) > 0 ){
$data = (array) $data[0];
return $data[$nilai];
}
return 0;
}
}