create view komponen_gaji_v as // Gaji Pokok select gj.id ID, p.nip_pns NIP, p.objectdetailkategorypegawaifk KategoriPegawai, p.namalengkap NamaLengkap, gp.golonganpegawai Golongan, pdk.Pendidikan Pendidikan, date_part('year', now()) - date_part('year', p.tglmasuk) MasaKerja, kh.id IdKomponenGaji, kh.komponenharga KomponenGaji, gjmkp.hargasatuan Harga from pegawaiskgaji_m gj left join pegawai_m p on gj.objectpegawaifk=p.id left join golonganpegawai_m gp on p.ObjectGolonganPegawaiFk=gp.id left join pendidikan_m pdk on p.objectpendidikanterakhirfk=pdk.id left join komponenharga_m kh on gj.objectkomponenhargafk=kh.id left join pegawaistrukturgajibymakape_m gjmkp on gjmkp.kdkomponenhargafk=gj.objectkomponenhargafk where kh.komponenharga='Gaji Pokok' and gjmkp.kdpendidikanfk=p.objectpendidikanterakhirfk and gjmkp.kddetailkategorypegawaifk=p.objectdetailkategorypegawaifk // kategori pegawai (sample data invalid->returned row 0) and gjmkp.kdrangemasakerjafk=(select r.id from range_m r where r.namarange='Range Masa Kerja' and date_part('year', now()) - date_part('year', p.tglmasuk) between r.rangemin and r.rangemax) union // Tunjangan Fungsional select distinct(gj.id) ID, p.nip_pns NIP, p.objectdetailkategorypegawaifk KategoriPegawai, p.namalengkap NamaLengkap, gp.golonganpegawai Golongan, pdk.Pendidikan Pedidikan, date_part('year', now()) - date_part('year', p.tglmasuk) MasaKerja, kh.id IdKomponenGaji, kh.komponenharga KomponenGaji, gjjp.hargasatuan Harga from pegawaiskgaji_m as gj left join pegawai_m p on gj.objectpegawaifk=p.id left join golonganpegawai_m gp on p.ObjectGolonganFk=gp.id left join pendidikan_m pdk on p.objectpendidikanterakhirfk=pdk.id left join komponenharga_m kh on gj.objectkomponenhargafk=kh.id left join pegawaistrukturgajibyjape_m gjjp on gjjp.kdkomponenhargafk=gj.objectkomponenhargafk where kh.komponenharga='Tunjangan Fungsional' and gjjp.kdpendidikan=p.objectpendidikanterakhirfk and gjjp.kdjabatanfk=p.objectjabatanfungsionalfk union // Tunjangan Bahaya Radiasi select distinct(gj.id) ID, p.nip_pns NIP, p.objectdetailkategorypegawaifk KategoriPegawai, p.namalengkap, gp.golonganpegawai Golongan, pdk.Pendidikan, date_part('year', now()) - date_part('year', p.tglmasuk) MasaKerja, kh.id IdKomponenGaji, kh.komponenharga KomponenGaji, gjlj.hargasatuan as Harga from pegawaiskgaji_m gj left join pegawai_m p on gj.objectpegawaifk=p.id left join golonganpegawai_m gp on p.ObjectGolonganFk=gp.id left join pendidikan_m pdk on p.objectpendidikanterakhirfk=pdk.id left join komponenharga_m kh on gj.objectkomponenhargafk=kh.id left join pegawaistrukturgajibyltja_m gjlj on gjlj.kdkomponenhargafk=gj.objectkomponenhargafk where kh.komponenharga='Tunjangan Bahaya Radiasi' and gjlj.kdjabatanfk=p.objectjabatanInternalfk and gjlj.kdleveltingkatfk=p.leveltingkatfk; // Gaji kotor create view komponen_gaji_bruto_v as select vg.id, vg.nip, vg.kategoripegawai, vg.namalengkap, vg.golongan, vg.pendidikan, vg.masakerja, kh.id IdKomponenGaji, kh.komponenharga KomponenGaji, (select sum(vbs.harga) from komponen_gaji_v vbs where vg.nip=vbs.nip group by vbs.nip) harga from komponen_gaji_v vg, komponenharga_m kh where kh.id=78; // Pajak create view komponen_pajak_v as select p.id ID, p.nip_pns NIP, p.objectdetailkategorypegawaifk KategoriPegawai, p.namalengkap NamaLengkap, gp.golonganpegawai Golongan, pdk.Pendidikan, date_part('year', now()) - date_part('year', p.tglmasuk) MasaKerja, 62 IdKomponenGaji, 'Persen Pajak' KomponenGaji, pj.persenpajak Harga from pegawaiskpajak_m pj left join pegawai_m p on pj.objectgolonganpegawaifk=p.objectgolonganpegawaifk left join golonganpegawai_m gp on p.objectgolonganpegawaifk=gp.id left join pendidikan_m pdk on p.objectpendidikanterakhirfk=pdk.id left join komponenharga_m kh on pj.objectobjekpajakfk=kh.id; // Tunjangan pajak create view komponen_tunjangan_pajak_v as select g.id, g.nip, g.kategoripegawai, g.namalengkap, g.golongan, g.pendidikan, g.masakerja, 62 IdKomponenGaji, 'Tunjangan Pajak' KomponenGaji, (select vp.harga/100 * gb.harga from komponen_pajak_v vp, komponen_gaji_bruto_v gb where vp.nip=gb.nip and g.nip=vp.nip) as harga from komponen_gaji_v g; // Potongan pajak create view komponen_potongan_pajak_v as select g.id, g.nip, g.kategoripegawai, g.namalengkap, g.golongan, g.pendidikan, g.masakerja, 66 IdKomponenGaji, 'Potongan Pajak' KomponenGaji, (select vp.harga/100 * gb.harga from komponen_pajak_v vp, komponen_gaji_bruto_v gb where vp.nip=gb.nip and g.nip=vp.nip) as harga from komponen_gaji_v g; // gaji bersih create view komponen_gaji_bersih_v as select g.id, g.nip, g.kategoripegawai, g.namalengkap, g.golongan, g.pendidikan, g.masakerja, 0 IdKomponenGaji, 'Gaji Bersih' KomponenGaji, gb.harga - vpp.harga harga from komponen_gaji_v g, komponen_gaji_bruto_v gb, komponen_potongan_pajak_v vpp where g.nip=gb.nip and gb.nip = vpp.nip; create view summary_gaji_v as select * from komponen_gaji_v union select * from komponen_gaji_bruto_v union select * from komponen_tunjangan_pajak_v union select * from komponen_potongan_pajak_v union select * from komponen_gaji_bersih_v;