INSERT INTO pendekatan_harga_jual VALUES
(:id,
:id_proyek,
:no_kavling,
:ket,
:kategori,
:lb,
:lt,
:hj_bangunan,
:hb_tanah,
:indeks_tanah,
:h_dasar)
UPDATE pendekatan_harga_jual SET
id=:id,
id_proyek=:id_proyek,
no_kavling=:no_kavling,
ket=:ket,
kategori=:kategori,
lb=:lb,
lt=:lt,
hj_bangunan=:hj_bangunan,
hb_tanah=:hb_tanah,
indeks_tanah=:indeks_tanah,
h_dasar=:h_dasar
WHERE id=:OLD_id
DELETE FROM pendekatan_harga_jual WHERE :id
INSERT INTO proyek VALUES
(:id,
:nama_proyek,
:lokasi,
:total_lt,
:luas_jalan,
:luas_taman,
:lt_mushola,
:tgl_mulai,
:tgt_selesai_proyek,
:bgt_1lt_rs,
:bgt_1lt_rk,
:bgt_2lt_rk,
:hg_m2_tanah,
:ket,
:status)
UPDATE proyek SET
id=:id,
nama_proyek=:nama_proyek,
lokasi=:lokasi,
total_lt=:total_lt,
luas_jalan=:luas_jalan,
luas_taman=:luas_taman,
lt_mushola=:lt_mushola,
tgl_mulai=:tgl_mulai,
tgt_selesai_proyek=:tgt_selesai_proyek,
bgt_1lt_rs=:bgt_1lt_rs,
bgt_1lt_rk=:bgt_1lt_rk,
bgt_2lt_rk=:bgt_2lt_rk,
hg_m2_tanah=:hg_m2_tanah,
ket=:ket,
status=:status
WHERE id=:OLD_id
DELETE FROM proyek WHERE id=OLD_id
INSERT INTO `target_penjualan` VALUES
(:id,
:id_proyek,
:no_kavling,
:bln_akad,
:dp,
:termin_1,
:termin_2,
:termin_3,
:termin_4)
UPDATE `target_penjualan` SET
id=:id,
id_proyek=:id_proyek,
no_kavling=:no_kavling,
bln_akad=:bln_akad,
dp=:dp,
termin_1=:termin_1,
termin_2=:termin_2,
termin_3=:termin_3,
termin_4=:termin_4
WHERE id=:OLD_id
DELETE FROM `target_penjualan` WHERE id=:id
INSERT INTO cashflow_pembangunan VALUES
(:id,
:id_proyek,
:no_kavling,
:mulai_bangun)
UPDATE cashflow_pembangunan SET
id=:id,
id_proyek=:id_proyek,
no_kavling=:no_kavling,
mulai_bangun=:mulai_bangun
WHERE id=:OLD_id
DELETE FROM cashflow_pembangunan WHERE id=:id
INSERT INTO rab VALUES
(:id,
:id_proyek,
:kode_rab,
:uraian,
:volume,
:unit,
:harga_satuan,
:ket)
UPDATE rab SET
id=:id,
id_proyek=:id_proyek,
kode_rab=:kode_rab,
uraian=:uraian,
volume=:volume,
unit=:unit,
harga_satuan=:harga_satuan,
ket=:ket
WHERE id=:OLD_id
DELETE FROM rab WHERE id=:id
INSERT INTO bop VALUES
(:id,
:id_proyek,
:kode_rab,
:uraian,
:volume_kumulatif,
:volume_kuantiti,
:unit,
:harga_satuan,
:ket)
UPDATE bop SET
id=:id,
id_proyek=:id_proyek,
kode_rab=:kode_rab,
uraian=:uraian,
volume_kumulatif=:volume_kumulatif,
volume_kuantiti=:volume_kuantiti,
unit=:unit,
harga_satuan=:harga_satuan,
ket=:ket
WHERE id=:OLD_id
DELETE FROM bop WHERE id=:id
$columnGroup->add(new ViewColumnGroup('Perumahan',
array(
$columns['nama_proyek'],
$columns['lokasi'],
$columns['total_lt']
)
));
$columnGroup->add(new ViewColumnGroup('Kavling',
array(
$columns['ls_tot_kav'],
$columns['pc_kav']
)
));
$columnGroup->add(new ViewColumnGroup('Jalan',
array(
$columns['luas_jalan'],
$columns['pc_jln']
)
));
$columnGroup->add(new ViewColumnGroup('Taman',
array(
$columns['luas_taman'],
$columns['pc_tmn']
)
));
$columnGroup->add(new ViewColumnGroup('Mushola',
array(
$columns['lt_mushola'],
$columns['pc_msl']
)
));
$columnGroup->add(new ViewColumnGroup('Target Timeline',
array(
$columns['tgl_mulai'],
$columns['tgt_selesai_proyek'],
$columns['tanggal_selesai'],
$columns['status']
)
));
$columnGroup->add(new ViewColumnGroup('Budget',
array(
$columns['bgt_1lt_rs'],
$columns['bgt_1lt_rk'],
$columns['bgt_2lt_rk']
)
));
$columnGroup->add(new ViewColumnGroup('Luas Bangunan',
array(
$columns['ls_tot_bgn'],
$columns['tot_ls_kav_komersil'],
$columns['tot_ls_kav_sub_plus'],
$columns['tot_ls_kav_subsidi']
)
));
$columnGroup->add(new ViewColumnGroup('Kavling',
array(
$columns['id_proyek'],
$columns['no_kavling'],
$columns['ket'],
$columns['kategori']
)
));
$columnGroup->add(new ViewColumnGroup('Luas',
array(
$columns['lb'],
$columns['lt']
)
));
$columnGroup->add(new ViewColumnGroup('Harga Jual',
array(
$columns['hj_bangunan'],
$columns['harga_tanah']
)
));
$columnGroup->add(new ViewColumnGroup('Perumahan',
array(
$columns['id_proyek'],
$columns['no_kavling']
)
));
$columnGroup->add(new ViewColumnGroup('Harga & Akad',
array(
$columns['harga_jual'],
$columns['dp_nominal'],
$columns['kpr'],
$columns['bln_akad']
)
));
$columnGroup->add(new ViewColumnGroup('Jul-25',
array(
$columns['bln_4']
)
));
$columnGroup->add(new ViewColumnGroup('Aug-25',
array(
$columns['bln_5']
)
));
$columnGroup->add(new ViewColumnGroup('Sep-25',
array(
$columns['bln_6']
)
));
$columnGroup->add(new ViewColumnGroup('Oct-25',
array(
$columns['bln_7']
)
));
$columnGroup->add(new ViewColumnGroup('Nov-25',
array(
$columns['bln_8']
)
));
$columnGroup->add(new ViewColumnGroup('Dec-25',
array(
$columns['bln_9']
)
));
$columnGroup->add(new ViewColumnGroup('Jan-26',
array(
$columns['bln_10']
)
));
$columnGroup->add(new ViewColumnGroup('Feb-26',
array(
$columns['bln_11']
)
));
$columnGroup->add(new ViewColumnGroup('Mar-26',
array(
$columns['bln_12']
)
));
$columnGroup->add(new ViewColumnGroup('Apr-26',
array(
$columns['bln_13']
)
));
$columnGroup->add(new ViewColumnGroup('May-26',
array(
$columns['bln_14']
)
));
$columnGroup->add(new ViewColumnGroup('Jun-26',
array(
$columns['bln_15']
)
));
$columnGroup->add(new ViewColumnGroup('Jul-26',
array(
$columns['bln_16']
)
));
$columnGroup->add(new ViewColumnGroup('Aug-26',
array(
$columns['bln_17']
)
));
$columnGroup->add(new ViewColumnGroup('Sep-26',
array(
$columns['bln_18']
)
));
$columnGroup->add(new ViewColumnGroup('Oct-26',
array(
$columns['bln_19']
)
));
$columnGroup->add(new ViewColumnGroup('Nov-26',
array(
$columns['bln_20']
)
));
$columnGroup->add(new ViewColumnGroup('Dec-26',
array(
$columns['bln_21']
)
));
$columnGroup->add(new ViewColumnGroup('Jan-27',
array(
$columns['bln_22']
)
));
$columnGroup->add(new ViewColumnGroup('Feb-27',
array(
$columns['bln_23']
)
));
$columnGroup->add(new ViewColumnGroup('Mar-27',
array(
$columns['bln_24']
)
));
$columnGroup->add(new ViewColumnGroup('Apr-27',
array(
$columns['bln_25']
)
));
$columnGroup->add(new ViewColumnGroup('May-27',
array(
$columns['bln_26']
)
));
$columnGroup->add(new ViewColumnGroup('Jun-27',
array(
$columns['bln_27']
)
));
$columnGroup->add(new ViewColumnGroup('Jul-27',
array(
$columns['bln_28']
)
));
$columnGroup->add(new ViewColumnGroup('Perumahan',
array(
$columns['id_proyek'],
$columns['no_kavling']
)
));
$columnGroup->add(new ViewColumnGroup('Pembangunan',
array(
$columns['tot_bangunan'],
$columns['mulai_bangun']
)
));
$columnGroup->add(new ViewColumnGroup('Aug-25',
array(
$columns['bln_5']
)
));
$columnGroup->add(new ViewColumnGroup('Sep-25',
array(
$columns['bln_6']
)
));
$columnGroup->add(new ViewColumnGroup('Oct-25',
array(
$columns['bln_7']
)
));
$columnGroup->add(new ViewColumnGroup('Nov-25',
array(
$columns['bln_8']
)
));
$columnGroup->add(new ViewColumnGroup('Dec-25',
array(
$columns['bln_9']
)
));
$columnGroup->add(new ViewColumnGroup('Jan-26',
array(
$columns['bln_10']
)
));
$columnGroup->add(new ViewColumnGroup('Feb-26',
array(
$columns['bln_11']
)
));
$columnGroup->add(new ViewColumnGroup('Mar-26',
array(
$columns['bln_12']
)
));
$columnGroup->add(new ViewColumnGroup('Apr-26',
array(
$columns['bln_13']
)
));
$columnGroup->add(new ViewColumnGroup('May-26',
array(
$columns['bln_14']
)
));
$columnGroup->add(new ViewColumnGroup('Jun-26',
array(
$columns['bln_15']
)
));
$columnGroup->add(new ViewColumnGroup('Jul-26',
array(
$columns['bln_16']
)
));
$columnGroup->add(new ViewColumnGroup('Aug-26',
array(
$columns['bln_17']
)
));
$columnGroup->add(new ViewColumnGroup('Sep-26',
array(
$columns['bln_18']
)
));
$columnGroup->add(new ViewColumnGroup('Oct-26',
array(
$columns['bln_19']
)
));
$columnGroup->add(new ViewColumnGroup('Nov-26',
array(
$columns['bln_20']
)
));
$columnGroup->add(new ViewColumnGroup('Dec-26',
array(
$columns['bln_21']
)
));
$columnGroup->add(new ViewColumnGroup('Jan-27',
array(
$columns['bln_22']
)
));
$columnGroup->add(new ViewColumnGroup('Feb-27',
array(
$columns['bln_23']
)
));
$columnGroup->add(new ViewColumnGroup('Mar-27',
array(
$columns['bln_24']
)
));
$columnGroup->add(new ViewColumnGroup('Apr-27',
array(
$columns['bln_25']
)
));
$columnGroup->add(new ViewColumnGroup('May-27',
array(
$columns['bln_26']
)
));
$columnGroup->add(new ViewColumnGroup('Jun-27',
array(
$columns['bln_27']
)
));
$columnGroup->add(new ViewColumnGroup('Jul-27',
array(
$columns['bln_28']
)
));
$columnGroup->add(new ViewColumnGroup('Type / Luas',
array(
$columns['id_proyek'],
$columns['no_kavling'],
$columns['lb'],
$columns['lt'],
$columns['ket']
//$columns['kategori']
)
));
$columnGroup->add(new ViewColumnGroup('Perhitungan HPP',
array(
$columns['tanah_proyek'],
$columns['pengolahan_lahan'],
$columns['prasarana_sarana'],
$columns['kontruksi_rumah'],
$columns['perijinan_proyek'],
$columns['legalitas_proyek'],
$columns['legalitas_pjl_kav'],
$columns['hpp']
)
));
$columnGroup->add(new ViewColumnGroup('Harga & Laba',
array(
$columns['harga_min_jual'],
$columns['laba_kotor'],
$columns['prosentase_laba']
)
));
$columnGroup->add(new ViewColumnGroup('Type / Luas',
array(
$columns['id_proyek'],
$columns['no_kavling'],
$columns['lb'],
$columns['lt'],
$columns['ket']
//$columns['kategori']
)
));
$columnGroup->add(new ViewColumnGroup('HPP',
array(
$columns['hpp']
)
));
$columnGroup->add(new ViewColumnGroup('Biaya Operasional Proyek',
array(
$columns['mgt_pengawasan'],
$columns['perlengkapan_ktr'],
$columns['operasional_ktr'],
$columns['operasional_pemasaran'],
$columns['operasional_proyek']
)
));
$columnGroup->add(new ViewColumnGroup('Pemasukan Penjualan',
array(
$columns['id_proyek'],
$columns['pemasukan'],
$columns['kum_act'],
$columns['kum_tgt'],
$columns['selisih']
)
));
$columnGroup->add(new ViewColumnGroup('(Bln 5) Aug-25',
array(
$columns['act_bln_5'],
$columns['tgt_bln_5']
)
));
$columnGroup->add(new ViewColumnGroup('(Bln 6) Sep-25',
array(
$columns['act_bln_6'],
$columns['tgt_bln_6']
)
));
$columnGroup->add(new ViewColumnGroup('(Bln 7) Oct-25',
array(
$columns['act_bln_7'],
$columns['tgt_bln_7']
)
));
$columnGroup->add(new ViewColumnGroup('(Bln 8) Nov-25',
array(
$columns['act_bln_8'],
$columns['tgt_bln_8']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 9) Dec-24',
array(
$columns['act_bln_9'],
$columns['tgt_bln_9']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 10) Jan-25',
array(
$columns['act_bln_10'],
$columns['tgt_bln_10']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 11) Feb-25',
array(
$columns['act_bln_11'],
$columns['tgt_bln_11']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 12) Mar-25', array(
$columns['act_bln_12'],
$columns['tgt_bln_12']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 13) Apr-25', array(
$columns['act_bln_13'],
$columns['tgt_bln_13']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 14) May-25', array(
$columns['act_bln_14'],
$columns['tgt_bln_14']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 15) Jun-25', array(
$columns['act_bln_15'],
$columns['tgt_bln_15']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 16) Jul-25', array(
$columns['act_bln_16'],
$columns['tgt_bln_16']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 17) Aug-25', array(
$columns['act_bln_17'],
$columns['tgt_bln_17']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 18) Sep-25', array(
$columns['act_bln_18'],
$columns['tgt_bln_18']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 19) Oct-25', array(
$columns['act_bln_19'],
$columns['tgt_bln_19']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 20) Nov-25', array(
$columns['act_bln_20'],
$columns['tgt_bln_20']
)));
$columnGroup->add(new ViewColumnGroup('(Bln 21) Dec-25', array(
$columns['act_bln_21'],
$columns['tgt_bln_21']
)));
$columnGroup->add(new ViewColumnGroup('Modal Proyek',
array(
$columns['id_proyek'],
$columns['rencana_modal']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 0',
array(
$columns['bln_0']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 1',
array(
$columns['bln_1']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 2',
array(
$columns['bln_2']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 3',
array(
$columns['bln_3']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 4',
array(
$columns['bln_4']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 5',
array(
$columns['bln_5']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 6',
array(
$columns['bln_6']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 7',
array(
$columns['bln_7']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 8',
array(
$columns['bln_8']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 9',
array(
$columns['bln_9']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 10',
array(
$columns['bln_10']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 11',
array(
$columns['bln_11']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 12',
array(
$columns['bln_12']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 13',
array(
$columns['bln_13']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 14',
array(
$columns['bln_14']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 15',
array(
$columns['bln_15']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 16',
array(
$columns['bln_16']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 17',
array(
$columns['bln_17']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 18',
array(
$columns['bln_18']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 19',
array(
$columns['bln_19']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 20',
array(
$columns['bln_20']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 21',
array(
$columns['bln_21']
)
));
$columnGroup->add(new ViewColumnGroup('Pengembalian Modal Proyek',
array(
$columns['id_proyek'],
$columns['pengembalian_modal']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 0',
array(
$columns['bln_0']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 1',
array(
$columns['bln_1']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 2',
array(
$columns['bln_2']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 3',
array(
$columns['bln_3']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 4',
array(
$columns['bln_4']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 5',
array(
$columns['bln_5']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 6',
array(
$columns['bln_6']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 7',
array(
$columns['bln_7']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 8',
array(
$columns['bln_8']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 9',
array(
$columns['bln_9']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 10',
array(
$columns['bln_10']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 11',
array(
$columns['bln_11']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 12',
array(
$columns['bln_12']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 13',
array(
$columns['bln_13']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 14',
array(
$columns['bln_14']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 15',
array(
$columns['bln_15']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 16',
array(
$columns['bln_16']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 17',
array(
$columns['bln_17']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 18',
array(
$columns['bln_18']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 19',
array(
$columns['bln_19']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 20',
array(
$columns['bln_20']
)
));
$columnGroup->add(new ViewColumnGroup('Bln 21',
array(
$columns['bln_21']
)
));
if (
($part == PagePart::RecordCard && $mode == PageMode::ExportPdf) ||
($part == PagePart::Grid && $mode == PageMode::PrintOneRecord)
) {
// pengeluaran harga pokok produksi
$hargaPokokProduksiDetail = array();
$hppId = GetApplication()->GetGETValue('pk0');
$sql1 = "
SELECT
p.nama_proyek,
p.lokasi,
hr.id_rab,
hr.nama_rab,
COALESCE(qrht.total_jumlah, 0) AS total_jumlah,
ROUND(
CASE
WHEN qnpp.nilai_penerimaan_penjualan IS NOT NULL AND qnpp.nilai_penerimaan_penjualan > 0
THEN (COALESCE(qrht.total_jumlah, 0) / qnpp.nilai_penerimaan_penjualan * 100)
ELSE 0
END, 2) AS persen,
ROUND(
CASE
WHEN hr.id_rab = 'B3' THEN
COALESCE(qrht.total_jumlah, 0) / (
SELECT COALESCE(SUM(qphj.lb), 1)
FROM d6_mardin.query_pendekatan_harga_jual qphj
WHERE qphj.id_proyek = p.id
)
ELSE
COALESCE(qrht.total_jumlah, 0) / 7266.0
END, 2) AS nilai_per_m2
FROM
d6_mardin.head_ref hr
LEFT JOIN
d6_mardin.query_rab_head_total qrht ON hr.id_rab = qrht.id_rab
LEFT JOIN
d6_mardin.proyek p ON p.id = COALESCE(qrht.id_proyek)
LEFT JOIN
d6_mardin.query_nilai_penerimaan_penjualan qnpp ON qnpp.id = p.id
WHERE
p.id = %d AND qrht.total_jumlah IS NOT NULL AND qrht.total_jumlah > 0
ORDER BY
hr.id_rab";
$this->GetConnection()->ExecQueryToArray(sprintf($sql1, $hppId), $hargaPokokProduksiDetail);
// Ubah key 'sub jumlah' menjadi 'sub_total' (opsional jika query tidak bisa diubah)
foreach ($hargaPokokProduksiDetail as &$itemHPP) {
if (isset($itemHPP['total_jumlah'])) {
$hppTotal = (int) $itemHPP['total_jumlah'];
$itemHPP['total_jumlah'] = number_format($hppTotal, 0, ',', '.');
$nilaiPerM2 = (int) $itemHPP['nilai_per_m2'];
$itemHPP['nilai_per_m2'] = number_format($nilaiPerM2, 0, ',', '.');
}
}
unset($itemHPP); // good practice
// Hitung total
$invoiceTotal = 0;
foreach ($hargaPokokProduksiDetail as $hppDetail) {
if (isset($hppDetail['sub_total'])) {
$hppTotal += $hppDetail['sub_total'];
}
}
// pengeluaran biaya manajemen dan operasional kantor
$biayaOperasionalDetail = array();
$bopId = GetApplication()->GetGETValue('pk0');
$sql2 = "
SELECT
p.nama_proyek,
p.lokasi,
hr.id_rab,
hr.nama_rab,
COALESCE(qbht.total_jumlah, 0) AS total_jumlah,
ROUND(
CASE
WHEN qnpp.nilai_penerimaan_penjualan IS NOT NULL AND qnpp.nilai_penerimaan_penjualan > 0
THEN (COALESCE(qbht.total_jumlah, 0) / qnpp.nilai_penerimaan_penjualan * 100)
ELSE 0
END, 2) AS persen
FROM
d6_mardin.head_ref hr
LEFT JOIN
d6_mardin.query_bop_head_total qbht ON hr.id_rab = qbht.id_rab
LEFT JOIN
d6_mardin.proyek p ON p.id = COALESCE(qbht.id_proyek)
LEFT JOIN
d6_mardin.query_nilai_penerimaan_penjualan qnpp ON qnpp.id = p.id
WHERE
p.id = %d and qbht.total_jumlah IS NOT NULL and qbht.total_jumlah > 0
ORDER BY
hr.id_rab";
$this->GetConnection()->ExecQueryToArray(sprintf($sql2, $bopId), $biayaOperasionalDetail);
// Ubah key 'sub jumlah' menjadi 'sub_total' (opsional jika query tidak bisa diubah)
foreach ($biayaOperasionalDetail as &$itemBop) {
if (isset($itemBop['total_jumlah'])) {
$bopTotal = (int) $itemBop['total_jumlah'];
$itemBop['total_jumlah'] = number_format($bopTotal, 0, ',', '.');
}
}
unset($itemBop); // good practice
// Hitung total
$invoiceTotal = 0;
foreach ($biayaOperasionalDetail as $bopDetail) {
if (isset($bopDetail['sub_total'])) {
$bopTotal += $bopDetail['sub_total'];
}
}
// laba proyek sebelum pajak dan biaya modal
$labaBeforeTaxDetail = array();
$labaBTId = GetApplication()->GetGETValue('pk0');
$sql3 = "
SELECT
(qnpp.nilai_penerimaan_penjualan - qnpp.harga_pokok_produksi - qnpp.biaya_operasional_kantor) as laba,
round( (qnpp.nilai_penerimaan_penjualan - qnpp.harga_pokok_produksi - qnpp.biaya_operasional_kantor)/ qnpp.nilai_penerimaan_penjualan * 100, 2) as persen
FROM
d6_mardin.query_nilai_penerimaan_penjualan qnpp
where
qnpp.id = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql3, $labaBTId), $labaBeforeTaxDetail);
foreach ($labaBeforeTaxDetail as &$itemLaba) {
if (isset($itemLaba['laba'])) {
$labaTotal = (int) $itemLaba['laba'];
$itemLaba['laba'] = number_format($labaTotal, 0, ',', '.');
}
}
unset($itemBop); // good practice
// hitung total persen rab
$rabPersen = array();
$rabPersenId = GetApplication()->GetGETValue('pk0');
$sql4 = "
SELECT
SUM(qrp.persen ) as persen
FROM
d6_mardin.query_rab_persen qrp
WHERE
qrp.id_proyek = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql4, $rabPersenId), $rabPersen);
// hitung total persen bop
$bopPersen = array();
$bopPersenId = GetApplication()->GetGETValue('pk0');
$sql5 = "
SELECT
SUM(qbp.persen ) as persen
FROM
d6_mardin.query_bop_persen qbp
WHERE
qbp.id_proyek = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql5, $bopPersenId), $bopPersen);
// hitung semua total persentase
$totalPersen = array();
$totalPersenId = GetApplication()->GetGETValue('pk0');
$sql6 = "
SELECT
(SELECT SUM(qbp.persen) FROM d6_mardin.query_bop_persen qbp ) +
(SELECT SUM(qrp.persen ) FROM d6_mardin.query_rab_persen qrp ) +
(SELECT ROUND(
(qnpp.nilai_penerimaan_penjualan - qnpp.harga_pokok_produksi - qnpp.biaya_operasional_kantor ) / qnpp.nilai_penerimaan_penjualan * 100, 2)
FROM d6_mardin.query_nilai_penerimaan_penjualan qnpp ) as persen";
$this->GetConnection()->ExecQueryToArray(sprintf($sql6, $totalPersenId), $totalPersen);
// hitung zakat 2.5%
$zakatDetail = array();
$zakatId = GetApplication()->GetGETValue('pk0');
$sql7 = "
SELECT ((
qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor )* 0.025) as zakat
FROM d6_mardin.query_nilai_penerimaan_penjualan qnpp
WHERE qnpp.id = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql7, $zakatId), $zakatDetail);
foreach ($zakatDetail as &$itemZakat) {
if (isset($itemZakat['zakat'])) {
$zakatTotal = (int) $itemZakat['zakat'];
$itemZakat['zakat'] = number_format($zakatTotal, 0, ',', '.');
}
}
unset($itemZakat); // good practice
// target laba bersih proyek
$labaBersih = array();
$labaBersihId = GetApplication()->GetGETValue('pk0');
$sql8 = "
SELECT
(qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor ) -
((
qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor )* 0.025)
as laba_bersih
FROM d6_mardin.query_nilai_penerimaan_penjualan qnpp
WHERE qnpp.id = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql8, $labaBersihId), $labaBersih);
foreach ($labaBersih as &$itemLabaBersih) {
if (isset($itemLabaBersih['laba_bersih'])) {
$labaBersihTotal = (int) $itemLabaBersih['laba_bersih'];
$itemLabaBersih['laba_bersih'] = number_format($labaBersihTotal, 0, ',', '.');
}
}
unset($itemLabaBersih); // good practice
// terhadap omset non ppn
$omsetNonPPN = array();
$omsetNonPPNId = GetApplication()->GetGETValue('pk0');
$sql9 = "
SELECT
round(((qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor ) -
((
qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor )* 0.025)) /
(qnpp.nilai_penerimaan_penjualan ) * 100, 2)
as omset_non_ppn
FROM d6_mardin.query_nilai_penerimaan_penjualan qnpp
WHERE qnpp.id = %d";
$this->GetConnection()->ExecQueryToArray(sprintf($sql9, $omsetNonPPNId), $omsetNonPPN);
// terhadap nilai pokok tanah
$nilaiPokokTanah = array();
$nilaiPokokTanahId = GetApplication()->GetGETValue('pk0');
$sql10 = "
SELECT
round ((SELECT
qrht.total_jumlah
FROM
d6_mardin.query_rab_head_total qrht
WHERE
qrht.id_proyek = %d AND qrht.id_rab = 'A') /
(
SELECT
(qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor ) -
((
qnpp.nilai_penerimaan_penjualan -
qnpp.harga_pokok_produksi -
qnpp.biaya_operasional_kantor )* 0.025)
as laba_bersih
FROM d6_mardin.query_nilai_penerimaan_penjualan qnpp
WHERE qnpp.id = %d
) * 100,2) as nilai_pokok_tanah";
$this->GetConnection()->ExecQueryToArray(sprintf($sql10, $nilaiPokokTanahId, $nilaiPokokTanahId), $nilaiPokokTanah);
//Debug
// echo '<pre>';
// print_r($hargaPokokProduksiDetail);
// print_r($biayaOperasionalDetail);
// print_r($labaBeforeTaxDetail);
// print_r($rabPersen);
// echo '</pre>';
// exit;
// Kirim data ke template
$params['HargaPokokProduksiDetail'] = $hargaPokokProduksiDetail;
$params['BiayaOperasionalDetail'] = $biayaOperasionalDetail;
$params['LabaBeforeTaxDetail'] = $labaBeforeTaxDetail;
$params['RabPersen'] = $rabPersen;
$params['BopPersen'] = $bopPersen;
$params['TotalPersen'] = $totalPersen;
$params['ZakatDetail'] = $zakatDetail;
$params['LabaBersih'] = $labaBersih;
$params['OmsetNonPPN'] = $omsetNonPPN;
$params['NilaiPokokTanah'] = $nilaiPokokTanah;
//$params['InvoiceNumber'] = 'RAB-' . sprintf('%03d', $invoiceId);
$params['InvoiceSubtotal'] = number_format($invoiceTotal, 0, ',', '.');
//$params['InvoiceTax'] = $invoiceTotal * 0.06; // pajak 6%
//$params['InvoiceTotal'] = $invoiceTotal + $params['InvoiceTax'];
// Tentukan template yang digunakan
if ($mode == PageMode::ExportPdf) {
$result = 'kesimpulan_proyek_pdf.tpl';
} else {
$result = 'kesimpulan_proyek_print.tpl';
}
}
if ($part == PagePart::PrintLayout && $mode == PageMode::PrintOneRecord) {
$result = 'kesimpulan_proyek_print_layout.tpl';
}
C:\xampp2\htdocs\d6\components\renderers\renderer.php