86 lines
5.0 KiB
SQL
86 lines
5.0 KiB
SQL
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; |