253 lines
5.2 KiB
SQL
253 lines
5.2 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; |