Dear All,
 
Setelah mencuri-curi waktu, akhirnya selesai juga ngetik Bagian ke 2 dari
Accounting Programming ini, seperti biasa, posting ini juga bisa anda lihat
di http://dasmaniacool.blogspot.com <http://dasmaniacool.blogspot.com>  .
Semoga bermanfaat. So please enjoy ...
 
ACCOUNTING PROGRAMMING Bag. 2 : JURNAL UMUM

Setelah kita membuat tabel2 untuk master yang dibutuhkan di akuntansi, maka
kita dapat mencoba melakukan transaksi akuntansi. Menurut saya transaksi
akuntansi sebenarnya cukup dengan 1 ( satu ) form yaitu form JURNAL UMUM.
Sebelum kita masuk ke pembuatan desain table jurnal umum, kita memerlukan
beberapa hal, yaitu :

1.       Tabel HISTORY AKUN. Tabel ini sebenarnya juga tidak mutlak
diperlukan dalam pemrograman akuntansi, namun untuk mempercepat proses query
pada waktu menampilkan laporan - laporan akuntansi, saya sangat menyarankan
anda membuat table ini, anjuran desain table :

 

Nama Tabel : HAkun

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description

AkunID, int, Yes, No, No, [EMPTY], Menyimpan data AkunID

ThnBuku, int, Yes, No, No, datepart(year,getdate()), Menyimpan Tahun Buku
dari nilai akun

MataUangID, int, Yes, No, No, [EMPTY], Menyimpan ID Mata Uang

RealSa, money, Yes, No, No, 0, Menyimpan nilai Saldo Awal pada tahun buku
yang bersangkutan

Real01, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Januari pada
tahun buku yang bersangkutan

Real02, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Februari pada
tahun buku yang bersangkutan

Real03, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Maret pada tahun
buku yang bersangkutan

Real04, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan April pada tahun
buku yang bersangkutan

Real05, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Mei pada tahun
buku yang bersangkutan

Real06, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Juni pada tahun
buku yang bersangkutan

Real07, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Juli pada tahun
buku yang bersangkutan

Real08, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Agustus pada
tahun buku yang bersangkutan

Real09, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan September pada
tahun buku yang bersangkutan

Real10, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Oktober pada
tahun buku yang bersangkutan

Real11, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan November pada
tahun buku yang bersangkutan

Real12, money, Yes, No, No, 0, Menyimpan nilai Saldo bulan Desember pada
tahun buku yang bersangkutan

dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat

dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi

UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data

 

Catatan : mungkin anda sudah mengetahui apa maksud dari pembuatan table ini.
Tabel ini adalah table yang diakses pada saat kita akan mencetak laporan
akuntansi dan bukannya dari perhitungan langsung dari table transaksi yang
kemungkinan ada beribu - ribu atau bahkan sampai ratusan ribu atau jutaan
record di dalamnya. Saya rasa user pasti akan lebih senang jika dia bisa
melihat Laporan Laba Rugi dalam 5 detik daripada harus menunggu selama 5
menit hanya untuk menampilkannya. Berikut ini adalah contoh isi dari table
HAkun :

 

AkunID, ThnBuku, MataUangID, RealSa, Real01, Real02, Real03, Real04, Real05,
Real06, Real07, Real08, Real09, Real10, Real11, Real12, dtCreated,
dtModified, UpdatedBy

1, 2007, 0, 0, 0, 0, 0, 0, 2500000, -1000000, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

2, 2007, 1, 0, 0, 0, 0, 0, 125, -100, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

17, 2007, 0, 0, 0, 0, 0, 0, 1000000, 0, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

18, 2007, 1, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, [automatic], [automatic],
'PRGMR'

21, 2007, 0, 0, 0, 0, 0, 0, -2500000, 0, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

22, 2007, 1, 0, 0, 0, 0, 0, -125, 0, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

 

29, 2007, 0, 0, 0, 0, 0, 0, -1000000, 1000000, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

30, 2007, 1, 0, 0, 0, 0, 0, -100, 100, 0, 0, 0, 0, 0, [automatic],
[automatic], 'PRGMR'

 

Angka - angka tersebut didapat darimana ??!? Ikuti penjelasan dibawah ini
...

Asumsi :

-          AkunID 1 = Kas IDR

-          AkunID 2 = Kas USD

-          AkunID 17 = Persediaan Barang IDR

-          AkunID 18 = Persediaan Barang USD

-          AkunID 21 = Laba Ditahan IDR

-          AkunID 22 = Laba Ditahan USD

-          AkunID 29 = Pembelian IDR

-          AkunID 30 = Pembelian USD

 

Data yang ada pada table HAkun tersebut diatas terjadi karena : ( contoh
kasus )

*      Pada tanggal 10 Juni 2007 program mulai digunakan, maka kita harus
set Saldo Awal untuk Kas IDR & Kas USD dengan cara membuat jurnal sbb. :

Transaksi IDR :

Kas IDR ( Debet ) = Rp. 2.500.000,-

Laba Ditahan IDR ( Kredit ) = Rp. 2.500.000,-

 

Transaksi USD :

Kas USD ( Debet ) = $ 125.00

Laba Ditahan USD ( Kredit ) = $ 125.00

 

*         Pada tanggal 15 Juni 2007 melakukan transaksi penerimaan barang,
maka jurnalnya adalah sbb. :

Transaksi IDR :

Persediaan Barang IDR ( Debet ) = Rp. 1.000.000,-

Pembelian IDR ( Kredit ) = Rp. 1.000.000,-

 

Transaksi USD :

Persediaan Barang USD ( Debet ) = $ 100.00

Pembelian USD ( Kredit ) = $ 100.00

 

*         Transaksi pembelian barang diatas dibayar pada tanggal 5 Juli
2007, maka jurnalnya adalah sbb. :

Transaksi IDR :

Pembelian IDR ( Debet ) = Rp. 1.000.000,-

Kas IDR ( Kredit ) = Rp. 1.000.000,-

 

Transaksi USD :

Pembelian USD ( Debet ) = $ 100.00

Kas USD ( Kredit ) = $ 100.00

 

Nah, karena sekarang anda semua sudah tahu darimana asal angka - angka
tersebut, bisa dibayangkan kecepatan pembacaan data dari 1 ( satu ) record
dibandingkan dengan jika kita menjumlahkan secara manual dari data - data
transaksi yang ada. Pertanyaan selanjutnya adalah bagaimana cara ngisinya ?
Go to the next step.

 

2.       Untuk melakukan transaksi akuntansi, kita memerlukan 2 ( dua ) buah
table MASTER & DETAIL dari Jurnal Umum, berikut ini adalah anjuran untuk
pembuatan masing-2 tabel tersebut :

 

*         MASTER JURNAL UMUM, anjuran desain tabel :

 

Nama Tabel : TJUHdr

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description

JUHdrID, int, Yes, Yes, Yes, [EMPTY], Menyimpan data Jurnal Umum Master ID

BKKHdrID, int, No, No, No, [EMPTY], Menyimpan data Bukti Kas Keluar ID (
akan saya jelaskan pada bag. selanjutnya )

BKMHdrID, int, No, No, No, [EMPTY], Menyimpan data Bukti Kas Masuk ID ( akan
saya jelaskan pada bag.selanjutnya )

CekGiroOutID, int, No, No, No, [EMPTY], Menyimpan data Rekonsiliasi Giro ID
( akan saya jelaskan pada bag.selanjutnya )

JenisJurnal, varchar( 3 ), Yes, No, No, [EMPTY], Menyimpan Jenis Jurnal dari
transaksi Jurnal Umum

TglJurnal, datetime, Yes, No, No, [EMPTY], Menyimpan data Tanggal Transaksi

MataUangID, int, Yes, No, No, [EMPTY], Menyimpan ID Mata Uang

StsPosting, varchar( 1 ), Yes, No, No, B, Menyimpan Status Posting dari
Transaksi

StsRef, bit, Yes, No, No, 1, Menyimpan Status Referensi dari Transaksi

Referensi, varchar( 100 ), No, No, No, [EMPTY], Menyimpan Kode Referensi
dari Transaksi

dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat

dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi

UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data

 

Catatan :

-       Desain tabel diatas adalah desain tabel untuk transaksi per mata
uang, artinya dalam satu transaksi tidak dapat mengandung 2 ( dua ) atau
lebih mata uang yang berlainan.

-       Apaan sih StsPosting itu ? StsPosting ini digunakan untuk status
transaksi tersebut apakah sudah diposting untuk dihitung pada proses Akhir
Tahun ( akan saya jelaskan pada bag. selanjutnya )

-       Apa itu StsRef & Referensi ? StsRef adalah field untuk menampung
apakah transaksi tersebut dibuat secara otomatis oleh transaksi lain, contoh
: Penerimaan Barang, Retur, Pembayaran, dll. Jika transaksi dibuat oleh
proses otomatis, maka system akan membuat nomor referensi sendiri. Jadi
perlu diingat, jika user memasukkan transaksi jurnal umum secara manual,
jangan lupa set StsRef = 0 ( Nol ). Hal ini diperlukan untuk memudahkan user
dalam pembuatan laporan akuntansi. Dalam tabel diatas saya beri trigger
untuk membuat nomor referensinya, triggernya adalah sebagai berikut :

CREATE TRIGGER [dbo].[trg_TJUHdr_Referensi] ON [dbo].[TJUHdr] 

FOR INSERT

AS

 

set nocount on

 

declare @JUHdrID int, @JenJur varchar( 5 ), @Tahun varchar( 4 ), @Bulan
varchar( 2 ), @StsRef bit

declare @RefBaru varchar( 50 )

 

select @JUHdrID = JUHdrID, @JenJur = JenisJurnal, @Tahun = isnull( cast(
year( TglJurnal ) as varchar( 4 )), '' ), 

      @Bulan = isnull( cast( month( TglJurnal ) as varchar( 2 )), '' ),
@StsRef = StsRef

from inserted

 

-- Hanya merubah Referensi jika dimasukkan secara otomatis melalui proses
lainnya

if @StsRef = 1

begin

      set @RefBaru = rtrim( @JenJur ) + '/' + @Tahun + '/' + @Bulan + '/' +
cast( @JUHdrID as varchar( 20 ))

      

      update TJUHdr

      set Referensi = @RefBaru

      where JUHdrID = @JUHdrID

end

 

-          Untuk contoh2 kasus diatas, maka jika masuk tabel adalah sebagai
berikut :

 

JUHdrID, BKKHdrID, BKMHdrID, CekGiroOutID, JenisJurnal, TglJurnal,
MataUangID, StsPosting, StsRef, Referensi, dtCreated, dtModified, UpdatedBy

1, NULL, NULL, NULL, CS, 06/10/2007, 0, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

2, NULL, NULL, NULL, CS, 06/10/2007, 1, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

3, NULL, NULL, NULL, CS, 06/15/2007, 0, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

4, NULL, NULL, NULL, CS, 06/15/2007, 1, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

5, NULL, NULL, NULL, CS, 07/05/2007, 0, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

6, NULL, NULL, NULL, CS, 07/05/2007, 1, B, 0, NULL, [automatic],
[automatic], 'PRGMR'

 

Harap diingat, data - data tanggal diatas ditulis dalam format English (
mm/dd/yyyy )

 

*         DETAIL JURNAL UMUM, anjuran desain tabel :

 

Nama Tabel : TJUDtl

Field, Tipe Data, Not Null, Primary Key, Identity, Default Value,
Description

JUDtlID, int, Yes, Yes, Yes, [EMPTY], Menyimpan data Jurnal Umum Detail ID

JUHdrID, int, Yes, No, No, [EMPTY], Menyimpan data Jurnal Umum Master ID

AkunID, int, Yes, No, No, [EMPTY], Menyimpan data Akun ID

NoVoucher, varchar( 100 ), Yes, No, No, [EMPTY], Menyimpan data Nomor
Voucher ( no. nota, kwitansi, dll )

Transaksi, varchar( 255 ), No, No, No, [EMPTY], Menyimpan penjelasan
transaksi

Debet, money, Yes, No, No, [EMPTY], Menyimpan nilai transaksi untuk kolom
Debet

Kredit, money, Yes, No, No, [EMPTY], Menyimpan nilai transaksi untuk kolom
Kredit

dtCreated, datetime, Yes, No, No, getdate(), tanggal dibuat

dtModified, datetime, Yes, No, No, getdate(), tanggal dimodifikasi

UpdatedBy, varchar( 25 ), Yes, No, No, 'PRGMR', User yang menambahkan /
mengganti data

 

Catatan :

-          Untuk memasukkan nilai kedalam tabel HAkun, maka kita perlu
membuat trigger sbb :

CREATE TRIGGER [dbo].[trg_TJUDtl_Ins_HAkun] ON [dbo].[TJUDtl] 

FOR INSERT

AS

 

set nocount on

 

declare @vAkunID int, @vBulan tinyint, @vTahun char(4), @vCur tinyint,

      @vupdatedDate datetime, @vupdatedBy varchar(5),

      @vReal money, @vDebet decimal (15,2), @vKredit decimal (15,2),
@vOrgAkun decimal (15,2)

 

select top 1 @vAkunID = JUD.AkunID, @vCur = JUH.MataUangID,

      @vBulan = CAST( month( JUH.TglJurnal ) as tinyint ), @vTahun = CAST(
year ( JUH.TglJurnal ) as char( 4 )),

      @vupdatedDate = JUD.dtModified, @vupdatedBy = JUD.updatedBy, 

      @vDebet = isnull(JUD.Debet,0), @vKredit = isnull(JUD.Kredit,0)

from TJUHdr JUH INNER JOIN

      inserted JUD ON JUH.JUHdrID = JUD.JUHdrID

 

set @vReal = 0

 

if @vDebet > 0 set @vReal = isnull( @vDebet, 0)

else if @vKredit > 0 set @vReal = isnull( @vKredit, 0) * -1

 

-- Cek apakah sudah ada akun tersebut pada HAkun

if Not Exists ( select top 1 AkunID -- Jika belum ada

      from HAkun

      where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and ( MataUangID
= @vCur ))

begin

      if @vBulan = 1

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real01,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 2

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real02,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 3

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real03,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 4

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real04,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 5

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real05,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 6

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real06,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 7

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real07,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 8

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real08,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 9

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real09,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 10

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real10,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 11

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real11,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

      else if @vBulan = 12

            insert into HAkun( AkunID, ThnBuku, MataUangID, Real12,
updatedBy)

            select JUD.AkunID, @vTahun, @vCur, isnull( @vReal, 0 ),
JUD.UpdatedBy

            from inserted JUD INNER JOIN

                  TJUHdr JUH ON JUD.JUHdrID = JUH.JUHdrID

            where ( JUD.AkunID = @vAkunID ) and ( CAST( year( JUH.TglJurnal
) as char( 4 )) = @vTahun )

end

else -- Jalankan update perbulan

begin

      if @vBulan = 1

            update HAkun 

            set Real01 = isnull( Real01, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 2

            update HAkun 

            set Real02 = isnull( Real02, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 3

            update HAkun 

            set Real03 = isnull( Real03, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 4

            update HAkun 

            set Real04 = isnull( Real04, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 5

            update HAkun 

            set Real05 = isnull( Real05, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 6

            update HAkun 

            set Real06 = isnull( Real06, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 7

            update HAkun 

            set Real07 = isnull( Real07, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 8

            update HAkun 

            set Real08 = isnull( Real08, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 9

            update HAkun 

            set Real09 = isnull( Real09, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 10

            update HAkun 

            set Real10 = isnull( Real10, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 11

            update HAkun 

            set Real11 = isnull( Real11, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

      else if @vBulan = 12

            update HAkun 

            set Real12 = isnull( Real12, 0 ) + isnull( @vReal, 0 ),
updatedBy = @vupdatedBy

            where ( AkunID = @vAkunID ) and ( ThnBuku = @vTahun ) and (
MataUangID = @vCur )

end

 

-          untuk contoh kasus diatas, maka isi dari tabel tersebut adalah
sbb :

 

JUDtlID, JUHdrID, AkunID, NoVoucher, Transaksi, Debet, Kredit, dtCreated,
dtModified, UpdatedBy

1, 1, 1, SA, Saldo Awal, 2500000, 0, [automatic], [automatic], 'PRGMR'

2, 1, 21, SA, Saldo Awal, 0, 2500000, [automatic], [automatic], 'PRGMR'

3, 2, 2, SB, Starting Balance, 125, 0, [automatic], [automatic], 'PRGMR'

4, 2, 22, SB, Starting Balance, 0, 125, [automatic], [automatic], 'PRGMR'

5, 3, 17, Faktur 0001, Penerimaan Barang A, 1000000, 0, [automatic],
[automatic], 'PRGMR'

6, 3, 29, Faktur 0001, Penerimaan Barang A, 0, 1000000, [automatic],
[automatic], 'PRGMR'

7, 4, 18, Invoice 0001, Receiving article B, 100, 0, [automatic],
[automatic], 'PRGMR'

8, 4, 30, Invoice 0001, Receiving article B, 0, 100, [automatic],
[automatic], 'PRGMR'

9, 5, 29, Kwitansi 1111, Pembayaran Faktur 0001, 1000000, 0, [automatic],
[automatic], 'PRGMR'

10, 5, 1, Kwitansi 1111, Pembayaran Faktur 0001, 0, 1000000, [automatic],
[automatic], 'PRGMR'

11, 6, 30, Check 2222, Pay Invoice 0001, 100, 0, [automatic], [automatic],
'PRGMR'

12, 6, 2, Check 2222, Pay Invoice 0001, 0, 100, [automatic], [automatic],
'PRGMR'

 

Nah, dari penjelasan pada bagian sebelumnya dan diatas, anda sudah dapat
membuat desain database untuk program akuntansi.

 
Best Regards,
 
Dhani Aristyawan, S. Kom.
IT Supervisor
 
PT. ALP Petro Industry
Desa Kebonsari - Legok
Pasuruan - 67155
Phone : +62 343 853308 Ext. 62
FAX : +62 343 853307
 
Visit me @  <http://dasmaniacool.blogspot.com/>
http://dasmaniacool.blogspot.com


[Non-text portions of this message have been removed]

Kirim email ke