• Tidak ada hasil yang ditemukan

DAFTAR PUSTAKA. Berntson, Craig. Using Windows Component Services (COM+) with Visual FoxPro, 3M Health Information Systems, Salt Lake City, 2005.

N/A
N/A
Protected

Academic year: 2022

Membagikan "DAFTAR PUSTAKA. Berntson, Craig. Using Windows Component Services (COM+) with Visual FoxPro, 3M Health Information Systems, Salt Lake City, 2005."

Copied!
19
0
0

Teks penuh

(1)

DAFTAR PUSTAKA

Berntson, Craig. “Using Windows Component Services (COM+) with Visual FoxPro”, 3M Health Information Systems, Salt Lake City, 2005.

Chafee, A. (2000). One, two, three, or n tiers? Should you hold back the tiers of your application?. [online].

http://www.javaworld.com/javaworld/jw-01-2000/jw-01-ssj-tiers-p2.html.

Diakses terakhir 10 Mei 2011.

Connoly, Thomas M. dan Begg, Carolyn, E. “Database Systems a Practical Approach to Design, Implementation and Management” , Addison Wesley, 2

nd

edition , New York , 2002.

Kurniawan, Agus. “Pemrograman COM, DCOM dan COM+ dengan Visual Basic 6.0” : Elex Media Komputindo , Jakarta, 2003

Open Project. Computer Software Definition. [online].

http://www.openprojects.org/index.htm. Diakses terakhir 05 Mei 2011.

PERATURAN DIREKTUR JENDERAL PAJAK NOMOR 57/PJ/2009 TANGGAL 12 OKTOBER 2009 Tentang Perubahan Atas Peraturan Direktur Jenderal Pajak Nomor Per-31/pj/2009 Tentang Pedoman Tekhnis Tata Cara Pemotongan, Penyetoran Dan Pelaporan Pajak Penghasilan Pasal 21 Dan/atau Pajak Penghasilan Pasal 26 Sehubungan Dengan Pekerjaan, Jasa Dan Kegiatan Orang Pribadi

Pressman, Roger. “Software Engineering - A Practitionar's Approach” , McGraw-Hill Science/Engineering/Math, 7th Edition , New York , 2010.

Supardi, Yuniar. “Semua Bisa Menjadi Programer Visual Foxpro 9.0” : Elex Media Komputindo, Jakarta, 2010.

Tamsil, Raymond. “Aplikasi Pengisian SPT masa PPh Pasal 21 dan atau 26, SPT

Tahunan 1770 S & 1770 SS dan Rekonsiliasi Biaya Gaji” : Mitra Wacana Media,

Jakarta, 2010.

(2)

LAMPIRAN 1

Lampiran Hasil pengujian black box perhitungan pajak PPh21

a. Percobaan 1

(3)

b. Percobaan 2

(4)

c. Percobaan 3

(5)

d. Percobaan 4

(6)

e. Percobaan 5

(7)

LAMPIRAN 2 Source Program

DEFINE CLASS bizproses AS SESSION OLEPUBLIC PROCEDURE INIT()

close database set sysmenu on

set exclusive OFF set talk OFF set delete on set escape OFF set safety OFF set date ITALIAN

set exclusive OFF set exact OFF set century ON SET CONSOLE OFF

SET NULLDISPLAY TO '' SET ESCAPE OFF

*SET DEFAULT TO 'G:\MY COLLEGE\SKRIPSI\APLIKASI\com dbf\data' SET DEFAULT TO 'D:\datacom'

SET PATH TO data,;

prgs,;

class,;

bitmap,;

icon,;

forms,;

menu

ENDPROC

* --- PERUSAHAAN ---

PROCEDURE prsh_insert(tcxml AS STRING) AS STRING LOCAL llretval

XMLTOCURSOR(tcXML, "cPerusahaan") SELECT cPerusahaan

SCATTER MEMVAR m.id_prsh = 'ABC123'

SELECT 0 USE mst_prsh APPEND BLANK GATHER MEMVAR USE IN mst_prsh

RETURN '.t.' ENDPROC

PROCEDURE prsh_update(tcxml AS STRING) AS STRING

LOCAL llretval

XMLTOCURSOR(tcXML, "cPerusahaan") SELECT cPerusahaan

SCATTER MEMVAR

SELECT 0

USE mst_prsh GO TOP

IF !EOF() OR !BOF() GATHER MEMVAR USE IN mst_prsh

RETURN '.t.'

(8)

ELSE

USE IN mst_prsh

RETURN '.f.' ENDIF

ENDPROC

PROCEDURE prsh_delete(tcxml AS STRING) AS STRING LOCAL llretval

SELECT 0 USE mst_prsh GO TOP

IF !EOF() OR !BOF() DELETE USE IN mst_prsh

RETURN '.t.' ELSE

USE IN mst_prsh

RETURN '.f.' ENDIF

ENDPROC

PROCEDURE prsh_cari(tNRK AS STRING) AS STRING LOCAL llretval, lcXML

SELECT 0 USE mst_prsh

SELECT * FROM mst_prsh WHERE id_prsh = ALLTRIM(tnrk) INTO CURSOR abc USE IN mst_prsh

CURSORTOXML("abc", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN abc

RETURN llretval ENDPROC

* --- PEGAWAI ---

PROCEDURE peg_cari(tNRK AS STRING) AS STRING LOCAL llretval, lcXML

SELECT 0

USE mst_pegawai

SELECT * FROM mst_pegawai WHERE nrk= ALLTRIM(tnrk) INTO CURSOR abc READWRITE

USE IN mst_pegawai IF RECCOUNT('abc') = 0

SELECT abc APPEND BLANK

REPLACE tgl_lahir WITH DATE() REPLACE sex WITH 'L'

REPLACE stat_kary WITH '2' REPLACE status_pjk WITH 'K/-' ENDIF

CURSORTOXML("abc", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN abc

RETURN llretval ENDPROC

(9)

PROCEDURE peg_insert(tcxml AS STRING) AS STRING LOCAL llretval

XMLTOCURSOR(tcXML, "mst_peg") SELECT mst_peg

SCATTER MEMVAR

m.id_pegawai = SYS(2015)

SELECT 0

USE mst_pegawai APPEND BLANK GATHER MEMVAR USE IN mst_pegawai

RETURN '.t.' ENDPROC

PROCEDURE peg_update(tcxml AS STRING) AS STRING

LOCAL llretval

XMLTOCURSOR(tcXML, "mst_pegawai") SELECT mst_pegawai

SCATTER MEMVAR USE IN mst_pegawai

SELECT 0

USE mst_pegawai GO TOP

LOCATE FOR id_pegawai = m.id_pegawai IF !EOF() OR !BOF()

GATHER MEMVAR USE IN mst_pegawai

RETURN '.t.' ELSE

USE IN mst_pegawai RETURN '.f.' ENDIF

ENDPROC

PROCEDURE peg_delete(tcxml AS STRING) AS STRING

LOCAL llretval

XMLTOCURSOR(tcXML, "mst_pegawai") SELECT mst_pegawai

SCATTER MEMVAR USE IN mst_pegawai

SELECT 0

USE mst_pegawai GO TOP

LOCATE FOR id_pegawai = m.id_pegawai IF !EOF() OR !BOF()

DELETE

USE IN mst_pegawai RETURN '.t.' ELSE

USE IN mst_pegawai RETURN '.f.' ENDIF

ENDPROC

* --- GAJIAN ---

PROCEDURE gaji_cari(tNRK AS STRING, tBULAN AS Number, ; tTAHUN AS Number ) AS STRING

LOCAL llretval, lcXML, tid_peg tid_peg = ''

SELECT 0

USE mst_pegawai

(10)

SELECT * FROM mst_pegawai WHERE nrk= ALLTRIM(tnrk) INTO CURSOR abc IF RECCOUNT('abc')= 0

tid_peg = '@#$' ELSE

tid_peg = NVL(abc.id_pegawai,' ') ENDIF

USE IN mst_pegawai USE IN abc

SELECT 0

USE gajian

SELECT * FROM gajian WHERE id_pegawai= ALLTRIM(tid_peg) ;

AND bulan = tBULAN ; AND tahun = tTAHUN ;

INTO CURSOR abc USE IN gajian

CURSORTOXML("abc", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN abc

RETURN llretval ENDPROC

PROCEDURE gaji_insert(tcxml AS STRING) AS STRING LOCAL llretval

XMLTOCURSOR(tcXML, "tmpgajian") SELECT tmpgajian

SCATTER MEMVAR

m.id_gajian = SYS(2015)

SELECT 0 USE gajian APPEND BLANK GATHER MEMVAR USE IN gajian

RETURN '.t.' ENDPROC

PROCEDURE gaji_update(tcxml AS STRING) AS STRING LOCAL llretval

XMLTOCURSOR(tcXML, "tmpgajian") SELECT tmpgajian

SCATTER MEMVAR USE IN tmpgajian

SELECT 0 USE gajian GO TOP

LOCATE FOR id_gajian = m.id_gajian GATHER MEMVAR

USE IN gajian

RETURN '.t.' ENDPROC

PROCEDURE gaji_delete(tcxml AS STRING) AS STRING LOCAL llretval

XMLTOCURSOR(tcXML, "tmpgajian") SELECT tmpgajian

SCATTER MEMVAR USE IN tmpgajian

SELECT 0 USE gajian

(11)

GO TOP

LOCATE FOR id_gajian = m.id_gajian DELETE

USE IN gajian

RETURN '.t.' ENDPROC

* --- hitung PPH21 ---

PROCEDURE cari_pegawai as String LOCAL llretval, lcXML

SELECT 0

USE mst_pegawai

SELECT * FROM mst_pegawai INTO CURSOR abc USE IN mst_pegawai

CURSORTOXML("abc", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN abc

RETURN llretval

ENDPROC

*** pegawai yg tidak ada di gajian..

*** default ambil di data pegawai untuk gapoknya

*** simpan di gajian

PROCEDURE hitung_pph( tid_peg AS STRING, ; tBULAN AS Number, ; tTAHUN AS Number, ;

turut AS Number ) AS STRING

** ambil data pegawai SELECT 0

USE mst_pegawai

SELECT * FROM mst_pegawai ;

WHERE id_pegawai= ALLTRIM(tid_peg) INTO CURSOR tmppeg USE IN mst_pegawai

* cek gajian SELECT 0 USE gajian

SELECT * FROM gajian WHERE id_pegawai= ALLTRIM(tid_peg) ;

AND bulan = tBULAN ; AND tahun = tTAHUN ;

INTO CURSOR tmpgaji

* rekap pajak

*!* SELECT 0

*!* USE byrpph

*!* SET ORDER TO 1

SELECT tmpgaji

IF RECCOUNT('tmpgaji') = 0

* tambah di table gajian SELECT gajian

APPEND BLANK

REPLACE no_urut WITH turut REPLACE bulan WITH tbulan REPLACE tahun WITH ttahun REPLACE id_gajian WITH SYS(2015)

(12)

REPLACE gapok WITH tmppeg.gapok REPLACE id_pegawai WITH tid_peg

REPLACE status_pjk WITH tmppeg.status_pjk

REPLACE stat_kary WITH tmppeg.stat_kary ELSE

SELECT gajian GO TOP

LOCATE FOR id_gajian = tmpgaji.id_gajian REPLACE no_urut WITH turut

ENDIF

LOCAL lv_pphthp1, lv_pphthp2, lv_pphthp3

LOCAL lv_gapok, lv_bonus, lv_thr, lv_premijkk, ; lv_premijk, lv_tujpajak,;

lv_bruto , lv_lembur, lv_obat,;

lv_sisapkp, lv_pphsthn, lv_pphsbln, ; lv_pph1, lv_pph2, lv_pph3, lv_pph4,;

lv_bijabat, lv_jht, lv_pensiun, lv_cdt, ; lv_koperasi, lv_lain, lv_kurang, lv_netto,;

lv_ptkp, lv_pkpgj,lv_pkpgjbns, lv_pphbonus, ; lv_pphgajibln, lv_pphbruto

**

======================================================================================

** step 1 : pph gaji + bonus / thr (setahun) **

=====================================================================================

STORE 0 TO lv_gapok, lv_bonus, lv_thr, lv_premijkk, lv_premijk, lv_tujpajak,;

lv_bruto , lv_lembur, lv_obat,;

lv_sisapkp, lv_pphsthn, lv_pphsbln, lv_pph1, lv_pph2, lv_pph3, lv_pph4,;

lv_bijabat, lv_jht, lv_pensiun, lv_cdt, lv_koperasi, lv_lain, lv_kurang, lv_netto,;

lv_ptkp, lv_pkp, lv_pkpgjbns , lv_pkpgj, lv_pphthp1

*--- penghasilan bruto ---

&&IF tmpgaji.bonus <> 0

lv_gapok = tmpgaji.gapok * 12 lv_bonus = tmpgaji.bonus lv_thr = tmpgaji.thr lv_lembur = tmpgaji.lembur lv_obat = tmpgaji.obat

lv_premijkk = ( 0.5 / 100 ) * lv_gapok

&& 0.5% dari gapok dbyr prsh lv_premijk = ( 0.3 /100 ) * lv_gapok

&& 0.3% dari gapok dbyr prsh

lv_tujpajak = (250000 * 12 )

&& perusahaan

lv_bruto = lv_gapok + ;

lv_bonus + ;

lv_thr + ;

lv_lembur + ;

lv_obat + ;

lv_premijkk + ;

lv_premijk + ;

lv_tujpajak

*--- Pengurang ---

lv_cdt = tmpgaji.pot_cdt lv_koperasi = tmpgaji.pot_kop lv_lain = tmpgaji.pot_lain

lv_bijabat = ( (5/100) * lv_gapok ) IF lv_bijabat > 108000

(13)

lv_bijabat = 108000 * 12 ELSE

lv_bijabat = lv_bijabat * 12 ENDIF

lv_pensiun = 100000 * 12 lv_jht = 200000 * 12

lv_kurang = lv_cdt + ;

lv_koperasi + ;

lv_lain + ;

lv_bijabat + ;

lv_pensiun + ;

lv_jht

lv_netto = lv_bruto - lv_kurang && SETAHUN

*--- PTKP ---

*!* status : K/-,K/1,K/2,K/3,K/I/-,K/I/1,K/I/2,K/I/3,TK/-,TK/1

*!* 1. Tidak Kawin (TK/-)--- Rp 15.480.000,-

*!* 2. Tidak Kawin (TK/1)--- Rp 16.800.000,-

*!* 3. Kawin + anak 0 (K/-)--- Rp. 16.800.000,-

*!* 4. Kawin + anak 1 (K/1)--- Rp. 18.120.000,-

*!* 5. Kawin + anak 2 (K/2)--- Rp. 19.440.000,-

*!* 6. Kawin + anak 3 (K/3)--- Rp. 20.760.000,-

*!* 7. Kawin + istri + anak 0 (K/-)--- Rp. 32.280.000,-

*!* 8. Kawin + istri + anak 1 (K/1)--- Rp. 33.600.000,-

*!* 9. Kawin + istri + anak 2 (K/2)--- Rp. 34.920.000,-

*!*10. Kawin + istri + anak 3 (K/3)--- Rp. 36.240.000,-

DO CASE

CASE tmppeg.status_pjk = 'TK/-'

lv_ptkp = 15840000

CASE tmppeg.status_pjk = 'TK/1'

lv_ptkp = 16800000

CASE tmppeg.status_pjk = 'K/-'

lv_ptkp = 16800000

CASE tmppeg.status_pjk = 'K/1'

lv_ptkp = 18120000

CASE tmppeg.status_pjk = 'K/2'

lv_ptkp = 19440000

CASE tmppeg.status_pjk = 'K/3'

lv_ptkp = 20760000

CASE tmppeg.status_pjk = 'K/I/-'

lv_ptkp = 32280000

CASE tmppeg.status_pjk = 'K/I/1'

lv_ptkp = 33600000

CASE tmppeg.status_pjk = 'K/I/2'

lv_ptkp = 34920000

CASE tmppeg.status_pjk = 'K/I/3'

lv_ptkp = 36240000

ENDCASE

* kalau net setahun tidak melebihi ptkp

* tidak ada pajak

IF lv_netto < lv_ptkp

lv_ptkp = lv_netto ENDIF

*--- PKP --- lv_pkpgjbns = lv_netto - lv_ptkp

*--- PPH 21 ---

DO CASE

CASE lv_pkpgjbns <= 50000000

lv_pphsthn = 0.05 * lv_pkp

(14)

CASE BETWEEN(lv_pkpgjbns, 50000001,250000000) lv_pph1 = 50000000 * 0.05

lv_pph2 = ( lv_pkpgjbns- 50000000 ) * 0.15 lv_pphsthn = lv_pph1 + lv_pph2

CASE BETWEEN(lv_pkpgjbns,250000001,500000000) lv_pph1 = 50000000 * 0.05 lv_pph2 = 200000000 * 0.15

lv_pph3 = ( lv_pkpgjbns- 250000000 ) * 0.25 lv_pphsthn = lv_pph1 + lv_pph2 + lv_pph3

CASE lv_pkpgjbns > 500000000

lv_pph1 = 50000000 * 0.05 lv_pph2 = 200000000 * 0.15 lv_pph3 = 250000000 * 0.25

lv_pph4 = ( lv_pkpgjbns- 500000000 ) * 0.3 lv_pphsthn = lv_pph1 + lv_pph2 + lv_pph3 + lv_pph4 ENDCASE

lv_pphthp1 = lv_pphsthn

&&ENDIF

**

======================================================================================

** step 2 : pph gaji (setahun)

**

======================================================================================

STORE 0 TO lv_gapok, lv_bonus, lv_thr, lv_premijkk, lv_premijk, lv_tujpajak,;

lv_bruto , lv_lembur, lv_obat,;

lv_sisapkp, lv_pphsthn, lv_pphsbln, lv_pph1, lv_pph2, lv_pph3, lv_pph4,;

lv_bijabat, lv_jht, lv_pensiun, lv_cdt, lv_koperasi, lv_lain, lv_kurang, lv_netto,;

lv_ptkp, lv_pkp

*--- penghasilan bruto ---

lv_gapok = tmpgaji.gapok * 12

lv_bonus = 0

lv_thr = tmpgaji.thr lv_lembur = tmpgaji.lembur lv_obat = tmpgaji.obat

lv_premijkk = ( 0.5 / 100 ) * lv_gapok

&& 0.5% dari gapok dbyr prsh lv_premijk = ( 0.3 /100 ) * lv_gapok

&& 0.3% dari gapok dbyr prsh lv_tujpajak = (250000 * 12 )

&& perusahaan

lv_bruto = lv_gapok + ;

lv_bonus + ;

lv_thr + ;

lv_lembur + ;

lv_obat + ;

lv_premijkk + ;

lv_premijk + ;

lv_tujpajak

*--- Pengurang ---

lv_cdt = tmpgaji.pot_cdt lv_koperasi = tmpgaji.pot_kop lv_lain = tmpgaji.pot_lain

(15)

lv_bijabat = ( (5/100) * lv_gapok ) IF lv_bijabat > 108000

lv_bijabat = 108000 * 12 ELSE

lv_bijabat = lv_bijabat * 12 ENDIF

lv_pensiun = 100000 * 12 lv_jht = 200000 * 12

lv_kurang = lv_cdt + ;

lv_koperasi + ;

lv_lain + ;

lv_bijabat + ;

lv_pensiun+;

lv_jht

lv_netto = lv_bruto - lv_kurang && SETAHUN

*--- PTKP ---

*!* status : K/-,K/1,K/2,K/3,K/I/-,K/I/1,K/I/2,K/I/3,TK/-,TK/1

*!* 1. Tidak Kawin (TK/-)--- Rp 15.480.000,-

*!* 2. Tidak Kawin (TK/1)--- Rp 16.800.000,-

*!* 3. Kawin + anak 0 (K/-)--- Rp. 16.800.000,-

*!* 4. Kawin + anak 1 (K/1)--- Rp. 18.120.000,-

*!* 5. Kawin + anak 2 (K/2)--- Rp. 19.440.000,-

*!* 6. Kawin + anak 3 (K/3)--- Rp. 20.760.000,-

*!* 7. Kawin + istri + anak 0 (K/-)--- Rp. 32.280.000,-

*!* 8. Kawin + istri + anak 1 (K/1)--- Rp. 33.600.000,-

*!* 9. Kawin + istri + anak 2 (K/2)--- Rp. 34.920.000,-

*!*10. Kawin + istri + anak 3 (K/3)--- Rp. 36.240.000,-

DO CASE

CASE tmppeg.status_pjk = 'TK/-'

lv_ptkp = 15840000

CASE tmppeg.status_pjk = 'TK/1'

lv_ptkp = 16800000

CASE tmppeg.status_pjk = 'K/-'

lv_ptkp = 16800000

CASE tmppeg.status_pjk = 'K/1'

lv_ptkp = 18120000

CASE tmppeg.status_pjk = 'K/2'

lv_ptkp = 19440000

CASE tmppeg.status_pjk = 'K/3'

lv_ptkp = 20760000

CASE tmppeg.status_pjk = 'K/I/-'

lv_ptkp = 32280000

CASE tmppeg.status_pjk = 'K/I/1'

lv_ptkp = 33600000

CASE tmppeg.status_pjk = 'K/I/2'

lv_ptkp = 34920000

CASE tmppeg.status_pjk = 'K/I/3'

lv_ptkp = 36240000

ENDCASE

* kalau net setahun tidak melebihi ptkp

* tidak ada pajak

IF lv_netto < lv_ptkp

lv_ptkp = lv_netto ENDIF

*--- PKP --- lv_pkpgj = lv_netto - lv_ptkp

*--- PPH 21 --- DO CASE

CASE lv_pkpgj <= 50000000

(16)

lv_pphsthn = 0.05 * lv_pkp CASE BETWEEN(lv_pkpgj ,50000001,250000000)

lv_pph1 = 50000000 * 0.05

lv_pph2 = ( lv_pkpgj - 50000000 ) * 0.15

lv_pphsthn = lv_pph1 + lv_pph2 CASE BETWEEN(lv_pkpgj ,250000001,500000000)

lv_pph1 = 50000000 * 0.05 lv_pph2 = 200000000 * 0.15

lv_pph3 = ( lv_pkpgj - 250000000 ) * 0.25 lv_pphsthn = lv_pph1 + lv_pph2 + lv_pph3 CASE lv_pkpgj > 500000000

lv_pph1 = 50000000 * 0.05 lv_pph2 = 200000000 * 0.15 lv_pph3 = 250000000 * 0.25

lv_pph4 = ( lv_pkpgj - 500000000 ) * 0.3 lv_pphsthn = lv_pph1 + lv_pph2 + lv_pph3 + lv_pph4 ENDCASE

lv_pphthp2 = lv_pphsthn

**

======================================================================================

** step 3 : pph gaji + bonus bulan ini (sebulan)

**

======================================================================================

STORE 0 TO lv_pphbonus, lv_pphgajibln, lv_pphbruto IF tmpgaji.bonus <> 0

lv_pphbonus = lv_pphthp1 - lv_pphthp2 ELSE

lv_pphbonus = 0 ENDIF

lv_pphgajibln = lv_pphthp2 / 12

lv_pphbruto = lv_pphbonus + lv_pphgajibln lv_pphnetto = lv_pphbruto - (lv_tujpajak /12)

SELECT gajian

REPLACE bonus WITH tmpgaji.bonus REPLACE thr WITH tmpgaji.thr REPLACE lembur WITH tmpgaji.lembur REPLACE obat WITH tmpgaji.obat

REPLACE pot_cdt WITH tmpgaji.pot_cdt REPLACE pot_kop WITH tmpgaji.pot_kop REPLACE pot_lain WITH tmpgaji.pot_lain

REPLACE tuj_jkk WITH lv_premijkk REPLACE tuj_jk WITH lv_premijk

REPLACE tuj_pajak WITH lv_tujpajak REPLACE bi_jabat WITH lv_bijabat REPLACE iuran_jht WITH lv_jht

REPLACE iuran_pens WITH lv_pensiun REPLACE ptkp WITH lv_ptkp

REPLACE pkp_gj WITH lv_pkpgj REPLACE pkp_gjbns WITH lv_pkpgjbns

REPLACE pph_gj WITH lv_pphthp2 REPLACE pph_gjbns WITH lv_pphthp1

REPLACE pph_bln WITH lv_pphgajibln REPLACE pph_bonus WITH lv_pphbonus

USE IN gajian RETURN '.t.' ENDPROC

PROCEDURE cari_gajian( tid_peg AS STRING, tTAHUN AS Number ) AS STRING

(17)

* Aambil gajian SELECT 0

USE gajian

SELECT * FROM gajian WHERE id_pegawai= ALLTRIM(tid_peg) ;

AND tahun = tTAHUN ;

INTO CURSOR tmpgaji ORDER BY tahun, bulan

CURSORTOXML("tmpgaji", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN tmpgaji USE IN gajian

RETURN llretval ENDPROC

PROCEDURE proses_spt( tid_peg AS STRING, tTAHUN AS Number ) AS STRING CREATE CURSOR xSPT( isi01 n(20,0),;

isi02 n(20,0),;

isi03 n(20,0),;

isi04 n(20,0),;

isi05 n(20,0),;

isi06 n(20,0),;

isi07 n(20,0),;

isi08 n(20,0),;

isi09 n(20,0),;

isi10 n(20,0),;

isi11 n(20,0),;

isi12 n(20,0),;

isi13 n(20,0),;

isi14 n(20,0),;

isi15 n(20,0),;

isi16 n(20,0),;

isi17 n(20,0),;

isi18 n(20,0),;

isi19 n(20,0),;

isi20 n(20,0),;

isi21 n(20,0),;

isi22 n(20,0),;

isi22a n(20,0),;

isi22b n(20,0),;

isi23 n(20,0),;

isi23a c(1),;

isi23b c(1),;

isi24 n(20,0),;

isi24a c(1),;

isi24b c(1),;

bulan1 c(2),;

bulan2 c(2),;

isi24b_bln1 c(1),;

isi24b_bln2 c(1),;

isi24b_thn1 c(1),;

isi24b_thn2 c(1),;

isi24b_thn3 c(1),;

isi24b_thn4 c(1),;

tgl1 c(1),;

tgl2 c(1),;

tgl3 c(1),;

tgl4 c(1),;

tgl5 c(1),;

tgl6 c(1),;

tgl7 c(1),;

tgl8 c(1),;

spttahun c(4))

SELECT xSPT APPEND BLANK

GO TOP

(18)

SELECT 0 USE gajian

SELECT * FROM gajian WHERE id_pegawai= ALLTRIM(tid_peg) ;

AND tahun = tTAHUN ;

INTO CURSOR tmpgaji ; ORDER BY tahun, bulan USE IN gajian

SELECT tmpgaji GO TOP

xbulan1 = PADL(ALLTRIM(STR(tmpgaji.bulan,2)),2,'0') GO BOTTOM

xbulan2 = PADL(ALLTRIM(STR(tmpgaji.bulan,2)),2,'0')

SELECT xspt

REPLACE spttahun WITH STR(ttahun,4)

REPLACE isi01 WITH isi01 + (tmpgaji.gapok*12)

REPLACE isi03 WITH isi03 + tmpgaji.tuj_jkk + tmpgaji.tuj_jk + tmpgaji.tuj_pajak

REPLACE isi07 WITH isi01 + isi02 + isi03 + isi04 + isi05 + isi06 REPLACE isi08 WITH isi08 + tmpgaji.thr + tmpgaji.bonus

REPLACE isi09 WITH isi07 + isi08

REPLACE isi10 WITH isi10 + tmpgaji.bi_jabat

REPLACE isi12 WITH isi12 + tmpgaji.iuran_jht + tmpgaji.iuran_pens REPLACE isi13 WITH isi10 + isi11 + isi12

REPLACE isi14 WITH isi14 + (isi09 - isi13) REPLACE isi16 WITH isi14 - isi15

REPLACE isi17 WITH isi17 + tmpgaji.ptkp REPLACE isi18 WITH isi16 - isi17

IF tmpgaji.pph_gj <> tmpgaji.pph_gjbns

REPLACE isi19 WITH isi19 + tmpgaji.pph_gjbns ELSE

REPLACE isi19 WITH isi19 + tmpgaji.pph_gj ENDIF

REPLACE isi21 WITH isi19 + isi20 REPLACE bulan1 WITH xbulan1 REPLACE bulan2 WITH xbulan2

xpph = 0 SELECT tmpgaji GO TOP

DO WHILE !EOF()

xpph = xpph + tmpgaji.pph_bln + tmpgaji.pph_bonus SELECT tmpgaji

SKIP

ENDDO

SELECT tmpgaji GO BOTTOM

m.tuj_pajakbln = tmpgaji.tuj_pajak / 12

SELECT xSPT

REPLACE isi22 WITH isi22 + (xpph - m.tuj_pajakbln) REPLACE isi22b WITH isi22b + (xpph - m.tuj_pajakbln)

xkurang = xSPT.isi21 - xSPT.isi22 REPLACE isi23 WITH xkurang IF xkurang <> 0

IF xkurang > 0

REPLACE isi23a WITH 'X' ELSE

REPLACE isi23b WITH 'X' ENDIF

REPLACE isi24b WITH 'X' REPLACE isi24b_bln1 WITH '1'

(19)

REPLACE isi24b_bln2 WITH '2'

REPLACE isi24b_thn1 WITH SUBSTR(STR(tTAHUN,4),1,1) REPLACE isi24b_thn2 WITH SUBSTR(STR(tTAHUN,4),2,1) REPLACE isi24b_thn3 WITH SUBSTR(STR(tTAHUN,4),3,1) REPLACE isi24b_thn4 WITH SUBSTR(STR(tTAHUN,4),4,1) REPLACE isi24 WITH xkurang

ENDIF

xtgl = DTOS(DATE())

REPLACE tgl1 WITH SUBSTR(xtgl,7,1) REPLACE tgl2 WITH SUBSTR(xtgl,8,1) REPLACE tgl3 WITH SUBSTR(xtgl,5,1) REPLACE tgl4 WITH SUBSTR(xtgl,6,1) REPLACE tgl5 WITH SUBSTR(xtgl,1,1) REPLACE tgl6 WITH SUBSTR(xtgl,2,1) REPLACE tgl7 WITH SUBSTR(xtgl,3,1) REPLACE tgl8 WITH SUBSTR(xtgl,4,1)

CURSORTOXML("xSPT", "lcXML", 1, 0, 0, "1") llretval = lcXML

USE IN xSPT USE IN tmpgaji

RETURN llretval ENDPROC

ENDDEFINE

Referensi

Dokumen terkait

Laporan keuangan adalah tolak ukur dalam menilai kesehatan perusahaan.IAI (2009:2) menyatakan bahwa tujuan laporan keuangan adalah menyediakan informasi posisi

Faktor yang mempengaruhi posisi entrance dengan demikian adalah akses atau keberadaan jalan ke tapak masjid, dan orientasi dan posisi masjid yang memungkinkan terbentuknya

Dari uji coba yang dilakukan penulis, terlihat bahwa jumlah pixel citra yang berwarna putih lebih banyak ditemukan pada metode Roberts dibandingkan dengan metode

Permasalahan dalam penelitian ini adalah apakah ada hubungan peran petugas kesehatan, guru dan orang tua dalam pelaksanaan UKGS dengan perilaku menyikat gigi

Peraturan Direktur Jenderal Pajak Nomor PER-18/PJ/2017 sebagaimana telah diubah dengan Peraturan Direktur Jenderal Pajak Nomor PER-26/PJ/2018, menyebutkan apabila

Manakala, kajian yang difokuskan kepada syarikat-syarikat kecil dalam industri pembinaan telah dilakukan oleh (Kamal dan Flanagan, 2014; Surienty et al.,.. 2011); Chuan et

(2) Dalam hal Wajib Pajak mengajukan keberatan atas suatu pemotongan atau pemungutan pajak oleh pihak ketiga berdasarkan ketentuan peraturan perundang-undangan

To get an idea of these use cases behind this CR imagine a layer of traffic signs in roads, or a layer of points of interest (POIs) with different symbols for different kinds of