Wednesday, April 11, 2018

MEMBUAT FORM TRANSAKSI PEMBELIAN MODEL FIRST IN FIRST OUT




 Membuat Form Transaksi Pembelian

1.   Buatkan Form Kelola Data Pembelian dengan disain seperti pada Gambar  9.2.1:



Listing Program Transaksi Pembelian

a.   Object Form1 Procedure LOAD
close index
close data
set date british
set cent on
set defa to d:\sipbfifo\data
if used("barang")
   use in barang
endif
if used("pemasok")
   use in pemasok
endif
if used("detailbeli")
   use in detailbeli
endif
if used("pembelian")
   use in pembelian
endif
SELECT 1
use barang
set order to namabrg
SELECT 2
use pemasok
set order to nopem
SELECT 3
use pembelian EXCLUSIVE
set order to nofakbeli
SELECT 4
use detailbeli EXCLUSIVE
set order to nofakbeli
return

b.   Object Form1 Procedure UNLOAD
close index
close data
return

c.   Object Form1 Procedure AKTIF
PARAMETERS x
thisform.nopem.Enabled=x
thisform.perusahaan.Enabled=x
retu

d.   Object Form1 Procedure AKTIF1
PARAMETERS y
thisform.nofakbeli.Enabled=y
thisform.tglbeli.Enabled=y
RETURN
e.   Object Form1 Procedure AKTIF2
PARAMETERS Z
thisform.kodebrg.Enabled=z
thisform.hargabeli.Enabled=z
thisform.qty.Enabled=z
thisform.namabrg.Enabled=z
RETURN

f.    Object Form1 Procedure AKTIF3
PARAMETERS r
thisform.diskon.Enabled=r
thisform.totalbayar.Enabled=r
thisform.utang.Enabled=r
RETURN

g.   Object Form1 Procedure KENDALI
PARAMETERS s
thisform.pertama.Enabled=s
thisform.sebelumnya.Enabled=s
thisform.berikutnya.Enabled=s
thisform.terakhir.Enabled=s
RETURN

h.   Object Form1 Procedure KOSONGKAN
thisform.namabrg.value=""
thisform.nopem.value=""
thisform.perusahaan.value=""
thisform.qty.value=0
thisform.kodebrg.value=""
thisform.hargabeli.value=0
thisform.totalbeli.value=0
thisform.diskon.value=0
thisform.totalbayar.value=0
thisform.utang.value=0
return

i.    Object Form1 Procedure TAMPILKAN
select pembelian
thisform.nofakbeli.value=pembelian.nofakbeli
thisform.nopem.value=pembelian.nopem
thisform.totalbeli.value=pembelian.totalbeli
thisform.diskon.value=pembelian.diskon
thisform.Totalbayar.value=pembelian.Totalbayar
thisform.utang.value=pembelian.utang

select pemasok
locate for nopem=thisform.nopem.value
thisform.perusahaan.value=pemasok.perusahaan

SELECT DETAILBELI
SET FILTER TO NOFAKBELI=TRIM(thisform.Nofakbeli.Value)
GO top
thisform.tglbeli.value=detailbeli.tglbeli
thisform.Qty.value=detailbeli.qtyb
thisform.Hargabeli.value=detailbeli.HargaBeli
SELECT BARANG
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.Value)
thisform.NamaBrg.value=Barang.NamaBrg
thisform.refresh()
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return

j.    Object Form1 Procedure ACTIVATE
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return              

k.   Object TAMBAH Procedure CLICK
thisform.kosongkan
select barang
set order to tag namabrg
thisform.refresh
thisform.tglbeli.value=date()
thisform.proses.enabled=.f.
thisform.batal.enabled=.t.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.f.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.f.
thisform.kendali(.F.)
thisform.aktif(.t.)
thisform.aktif1(.t.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
THISFORM.NOFAKBELI.value=""
THISFORM.NOFAKBELI.SETFOCUS
return                        

l.    Object NOPEM Procedure LOSTFOCUS
SELECT Pemasok
LOCATE FOR nopem=RTRIM(thisform.nopem.Value)
IF ! FOUND()
   MESSAGEBOX("Data tidak ditemukan !",0,"Perhatian...")
   thisform.nopem.setFocus
   RETURN
endif  
thisform.perusahaan.value=pemasok.perusahaan
thisform.aktif2(.t.)
thisform.kodebrg.setFocus
return

m.  Object PERUSAHAAN Procedure InteractiveChange
thisform.nopem.value=pemasok.nopem
thisform.aktif2(.t.)
return

n.   Object KODEBRG Procedure LOSTFOCUS
IF EMPTY(thisform.kodebrg.Value)
   thisform.kodebrg.value=""
   thisform.qty.Value=0
   thisform.kodebrg.setfocus
   return
ENDIF
   SELECT BARANG
LOCATE FOR KODEBRG=TRIM(thisform.kodebrg.Value)
IF FOUND()
thisform.namabrg.value=barang.NamaBrg
thisform.qty.Value=1
thisform.Proses.setfocus
ELSE
thisform.kodebrg.value=""
thisform.qty.Value=0
thisform.kodebrg.setfocus
ENDIF
thisform.aktif(.f.)
thisform.proses.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
return

o.   Object NAMABRG Procedure INTERACTIVECHANGE
SELECT barang
LOCATE FOR namabrg=TRIM(thisform.namabrg.Value)
IF found()
thisform.kodebrg.value=barang.kodebrg
thisform.qty.Value=1
ELSE
thisform.kodebrg.value=""
thisform.qty.Value=0
ENDIF
thisform.aktif(.f.)
thisform.Proses.Enabled=.t.
thisform.simpan.Enabled=.f.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
return

p.   Object PROSES Procedure CLICK
jml=thisform.hargabeli.value*thisform.qty.value
thisform.totalbeli.value=thisform.totalbeli.value+jml
if thisform.qty.value>0 .and. thisform.hargabeli.value>0
sele detailbeli
appe blank
REPLACE Nofakbeli with thisform.Nofakbeli.value
REPLACE TglBeli with thisform.TglBeli.value
REPLACE kodebrg with thisform.kodebrg.value
REPLACE qtyb with thisform.qty.value
REPLACE Hargabeli with thisform.Hargabeli.value
REPLACE jmlbeli with jml
REPLACE Stock with thisform.qty.value

SELECT pembelian
LOCATE FOR nofakbeli=TRIM(thisform.nofakbeli.Value)
IF ! FOUND()
   APPEND BLANK
ENDIF
REPLACE Nofakbeli with thisform.Nofakbeli.value
REPLACE nopem with thisform.nopem.value
REPLACE totalbeli with thisform.totalbeli.value
REPLACE diskon with thisform.diskon.value
REPLACE totalbayar with thisform.totalbayar.value
REPLACE utang with thisform.utang.value
ENDIF
thisform.Refresh
thisform.Totalbayar.value=thisform.totalbeli.value
thisform.namabrg.value=""
thisform.qty.value=0
thisform.kodebrg.value=""
thisform.hargabeli.value=0
thisform.aktif3(.t.)
thisform.proses.Enabled=.f.
thisform.simpan.Enabled=.t.
thisform.tambah.Enabled=.f.
thisform.batal.Enabled=.f.
thisform.keluar.Enabled=.f.
thisform.cetak.Enabled=.f.
thisform.kendali(.f.)
thisform.kodebrg.setfocus
return

q.   Object BATAL Procedure CLICK
IF EMPTY(THISFORM.kodebrg.Value) .OR. EMPTY(THISFORM.namabrg.Value) .OR. ;
   EMPTY(THISFORM.QTY.Value)
   MESSAGEBOX("Click dulu Record di Grid yang akan dibatalkan",0,"Perhatian...")
   thisform.grid1.SetFocus
   RETURN
ENDIF
jawab=messagebox("Anda mau membatalkan transaksi ?",4+32+256,"Perhatian...")
if jawab=6
  sele detailbeli
  loca for detailbeli.kodebrg=TRIM(thisform.kodebrg.value) .and. ;
  nofakbeli=TRIM(thisform.nofakbeli.Value)
  SET DELETED ON
  thisform.Refresh
  IF FOUND()
    ljml=thisform.hargabeli.value*thisform.qty.value
    dele FOR detailbeli.kodebrg=TRIM(thisform.kodebrg.value) .and. ;
    nofakbeli=TRIM(thisform.nofakbeli.Value)
  ELSE
    ljml=0
  ENDIF
  thisform.totalbeli.value=thisform.totalbeli.value-ljml
  thisform.totalbayar.value=thisform.totalbeli.value
  thisform.refresh
  thisform.qty.value=0
ENDIF
IF thisform.totalbeli.Value=0
   SELECT pembelian
   LOCATE for nofakbeli=TRIM(thisform.nofakbeli.Value)
   DELETE
   thisform.aktif(.f.)
   thisform.aktif2(.t.)
   thisform.aktif3(.f.)
   thisform.proses.Enabled=.f.
   thisform.simpan.Enabled=.f.
   thisform.tambah.Enabled=.t.
   thisform.batal.Enabled=.f.
   thisform.keluar.Enabled=.t.
   thisform.cetak.Enabled=.f.
   thisform.kendali(.t.)
   thisform.refresh
 else
   thisform.aktif(.f.)
   thisform.aktif2(.t.)
   thisform.aktif3(.t.)
   thisform.proses.Enabled=.f.
   thisform.simpan.Enabled=.t.
   thisform.tambah.Enabled=.f.
   thisform.batal.Enabled=.f.
   thisform.keluar.Enabled=.f.
   thisform.cetak.Enabled=.f.
   thisform.kendali(.f.)
   thisform.refresh
endif
RETURN

r.    Object BATAL Procedure RIGHTCLICK
      thisform.keluar.enabled=.t.

s.    Object SIMPAN Procedure CLICK
if thisform.Totalbayar.value>thisform.totalbeli.value
   messagebox("Maaf Anda Keliru Memasukan Jumlah Bayar...",0,"Perhatian...")
   thisform.Totalbayar.setfocus
   retu
ENDIF
if EMPTY(thisform.nopem.value)
   messagebox("Data pemasok/supplier harus diisi dulu !",0,"Perhatian...")
   thisform.nopem.setfocus
   retu
ENDIF
 if thisform.totalbeli.value>0
   select pembelian
   locate for nofakbeli=trim(thisform.nofakbeli.value)
   if ! found()
      append blank
   endif
      repl nofakbeli with thisform.nofakbeli.value
                repl Totalbeli with thisform.totalbeli.value
                repl nopem with thisform.nopem.value
                repl diskon with thisform.diskon.value
                repl Totalbayar with thisform.Totalbayar.value
                repl utang with thisform.utang.value
ENDIF
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.t.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return

t.    Object CETAK Procedure CLICK
SELECT pemasok
SET ORDER TO TAG NOPEM
SELECT barang
SET ORDER TO kodebrg
SELECT detailbeli
SET RELATION TO KodeBrg INTO BARANG, Nofakbeli INTO PEMBELIAN, Pembelian.nopem INTO PEMASOK
REPORT form d:\sipbfifo\prg\kuitansib PREVIEW
thisform.proses.enabled=.f.
thisform.batal.enabled=.f.
thisform.simpan.enabled=.f.
thisform.tambah.enabled=.t.
thisform.simpan.enabled=.f.
thisform.cetak.enabled=.f.
thisform.keluar.enabled=.t.
thisform.kendali(.t.)
thisform.aktif(.f.)
thisform.aktif1(.f.)
thisform.aktif2(.f.)
thisform.aktif3(.f.)
return

u.   Object KELUAR Procedure CLICK
sele pembelian
set dele off
PACK
SELECT detailbeli
PACK
thisform.release
RETURN

v.   Object GRID1  Procedure AfterRowColChange
LPARAMETERS nColIndex
thisform.nofakbeli.value=detailbeli.nofakbeli
thisform.tglbeli.value=detailbeli.tglbeli
thisform.kodebrg.value=detailbeli.kodebrg
thisform.hargabeli.value=detailbeli.hargabeli
thisform.qty.value=detailbeli.qtyb
thisform.hargabeli.value=detailbeli.hargabeli
SELECT barang
LOCATE FOR kodebrg=TRIM(thisform.kodebrg.Value)
thisform.namabrg.value=barang.namabrg
SELECT pembelian
LOCATE FOR nofakbeli=TRIM(thisform.nofakbeli.Value)
thisform.nopem.value=pembelian.nopem
thisform.totalbeli.value=pembelian.totalbeli
thisform.totalbayar.value=pembelian.totalbayar
thisform.diskon.value=pembelian.diskon
thisform.utang.value=pembelian.utang
SELECT pemasok
LOCATE FOR nopem=TRIM(thisform.nopem.Value)
thisform.perusahaan.value=pemasok.perusahaan
IF thisform.simpan.Enabled=.t.
thisform.batal.Enabled=.t.
ELSE
thisform.batal.Enabled=.f.
ENDIF
return

w.  Object PERTAMA Procedure CLICK
select pembelian
set order to
go top
if bof()
   messagebox("Tidak ada record",0,"Perhatian...!")
   thisform.release()
   return
endif  
thisform.tampilkan
thisform.refresh
return

x.   Object SEBELUMNYA Procedure CLICK
select pembelian
set order to
skip -1
if bof()
   go top
endif  
thisform.tampilkan
thisform.refresh
return

y.   Object BERIKUTNYA Procedure CLICK
select pembelian
set order to
skip
if eof()
   go bottom
endif  
thisform.tampilkan
thisform.refresh
return

z.    Object TERAKHIR Procedure CLICK
select pembelian
set order to
go bottom
if eof()
   messagebox("Tidak ada record",0,"Perhatian...!")
   thisform.release
   return
endif  
thisform.tampilkan
thisform.refresh
return

No comments:

Post a Comment

MEMBUAT FORM TRANSAKSI PEMBELIAN MODEL FIRST IN FIRST OUT

  Membuat Form Transaksi Pembelian 1.    Buatkan Form Kelola Data Pembelian dengan disain seperti pada Gambar   9.2.1: L...