37 lines
1.3 KiB
PHP
37 lines
1.3 KiB
PHP
<?php
|
|
|
|
$cek=pg_query("SELECT p.sub_kegiatan_id
|
|
FROM pekerjaan p
|
|
INNER JOIN vr_realisasi r ON (p.id=r.pekerjaan_id)
|
|
INNER JOIN vr_pelunasan l ON (r.id=l.vr_realisasi_id)
|
|
WHERE l.id=$id");
|
|
while($rcek=pg_fetch_array($cek)) {$sub_kegiatan_id=$rcek[0];}
|
|
|
|
/* re-seting urutan NPD dari rekening sebelumnya */
|
|
pg_query("UPDATE vr_pelunasan c
|
|
SET id_npd = c2.seqnum
|
|
FROM
|
|
(
|
|
SELECT c2.*, row_number() OVER (ORDER BY CAST(id_npd AS INT)) as seqnum
|
|
FROM vr_pelunasan c2
|
|
INNER JOIN vr_realisasi r2 ON (r2.id=c2.vr_realisasi_id)
|
|
INNER JOIN pekerjaan p2 ON (p2.id=r2.pekerjaan_id)
|
|
WHERE p2.sub_kegiatan_id=$sub_kegiatan_id AND c2.status_npd='v'
|
|
) c2
|
|
WHERE c2.id = c.id");
|
|
|
|
/* re-seting akumulasi NPD dari rekening sebelumnya */
|
|
pg_query("UPDATE vr_pelunasan c
|
|
SET akumulasi_npd = c2.cum_amt
|
|
FROM
|
|
(
|
|
SELECT c2.id_npd,c2.akumulasi_npd,c2.nilai_pelunasan,c2.status_npd,c2.id,
|
|
CASE WHEN c2.status_npd IS NULL THEN NULL ELSE
|
|
sum(c2.nilai_pelunasan) OVER (PARTITION BY p2.sub_kegiatan_id ORDER BY COALESCE(c2.id_npd,0))-c2.nilai_pelunasan END AS cum_amt
|
|
FROM vr_pelunasan c2
|
|
INNER JOIN vr_realisasi r2 ON (r2.id=c2.vr_realisasi_id)
|
|
INNER JOIN pekerjaan p2 ON (p2.id=r2.pekerjaan_id)
|
|
WHERE p2.sub_kegiatan_id=$sub_kegiatan_id AND c2.npdman='x'
|
|
) c2
|
|
WHERE c2.id = c.id");
|
|
?>
|