Arsip: Buat sistem database biar ngak bisa dibajak orang

 
user image
more 19 years ago

EkoIndri

kebanyakan aku masih banyak sekali melihat orang terutaman para programmer yang membuar SP sangat gamblang dan mudah dibajak oleh orang. sebelumnya saya ingin mengatakan klo ini tujuannya untuk keamaan bukan untuk dipelajari oleh orang banyak, tp klo pengen bisa dipelajari oleh orang banyak sih..terserah temen2.... untuk itu biasakan buat SP digroup sehingga kita bisa cukup membaca keterangan dan maksud secara detail diobjectnya saja... sebagai contoh lihat berikut ini: [code:1:b9a56fb4a9] CREATE PROCEDURE sp_Kasir;1 @NilaiBiayaAngkut money, @NilaiBiayaLain money, @NilaiDiskon money, @NilaiYangHarusDiBayar money, @NilaiPiutang money, @IDTransaksi varchar(10), @NamaRekPenjualan varchar(75), @TanggalBayar datetime, @Keterangan varchar(500), @Tunggakan money AS DECLARE @NomorJurnalPenjualanTerakhir numeric, @NOJurnalPenjualan varchar(10) SELECT @NomorJurnalPenjualanTerakhir = MAX(DISTINCT CAST(RIGHT([ID Jurnal], 8) AS numeric)) FROM BukuBesarPenjualanKeuangan IF @NomorJurnalPenjualanTerakhir IS NULL BEGIN SET @NomorJurnalPenjualanTerakhir = 1 END ELSE BEGIN SET @NomorJurnalPenjualanTerakhir = @NomorJurnalPenjualanTerakhir + 1 END DECLARE @KodePenjualan varchar(5) SELECT @KodePenjualan = [Kode Jurnal Penjualan] FROM indikator IF @NomorJurnalPenjualanTerakhir < 10 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'0000000' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 100 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'000000' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 1000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'00000' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 10000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'0000' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 100000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'000' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 1000000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'00' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 10000000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan+'0' +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END ELSE IF @NomorJurnalPenjualanTerakhir < 100000000 BEGIN SET @NOJurnalPenjualan = @KodePenjualan +CAST( @NomorJurnalPenjualanTerakhir AS varchar ) END UPDATE Inventory SET Inventory.Jumlah = Inventory.Jumlah - Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.Jumlah FROM Transaksi_Daftar_BarangYangBelumDibayar_Penjualan WHERE Inventory.[ID Barang] = Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[ID Barang] AND [ID Transaksi] = @IDTransaksi UPDATE Transaksi_Daftar_NotaYangBelumDibayar_Penjualan SET [Biaya Angkut] = @NilaiBiayaAngkut, [Biaya Lain] = @NilaiBiayaLain, [Total Diskon] = @NilaiDiskon, [Bayar DP] = @NilaiYangHarusDiBayar, Piutang = @NilaiPiutang WHERE [ID Transaksi] = @IDTransaksi UPDATE Card SET Card.Piutang = Card.Piutang + @NilaiPiutang FROM Card INNER JOIN Transaksi_Daftar_NotaYangBelumDibayar_Penjualan ON card.[id card] = Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Konsumen] WHERE Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] = @IDTransaksi INSERT INTO BukuBesarCicilanPenjualanInventory ( [Tanggal Ambil], [ID Transaksi], [ID Jurnal], [Tanggal Nota], [ID Barang], Jumlah, Harga, Nama, Total, Angsuran, [Besar Cicilan Per Barang], [Sub Biaya Per Angsuran], Cicilan, Status, Konsumen, Sales, DB, [ID Konsumen], [ID Sales], [ID DB], Keterangan ) SELECT [Tanggal Bayar Cicilan], [ID Transaksi], @NOJurnalPenjualan, [Tanggal Nota], [ID Barang], Jumlah, Harga, Nama, Total-[Biaya Per Angsuran]Jumlah, Angsuran, [Biaya Per Angsuran], [Sub Biaya Per Angsuran], Cicilan, case cicilan when 1 then 'Terbayar' else 'Belum Terbayar' end, Konsumen, Sales, DB, [ID Konsumen], [ID Sales], [ID DB], 'Angsuran ke - '+Cast(cicilan as varchar) FROM Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar WHERE [ID Transaksi] = @IDTransaksi INSERT INTO BukuBesarPenjualanInventory ( [ID Transaksi], [Tanggal Nota], [ID Barang], Jumlah, [Harga Lama], Nama, [Besar Cicilan Per Barang], Terbayar, Konsumen, Sales, DB, [ID Konsumen], [ID Sales], [ID DB], [ID Jurnal], [Tanggal Ambil], Cicilan, Keterangan ) SELECT [ID Transaksi], [Tanggal Nota], [ID Barang], Jumlah, Harga, Nama, [Biaya Per Angsuran], Jumlah [Biaya Per Angsuran], Konsumen, Sales, DB, [ID Konsumen], [ID Sales], [ID DB], @NOJurnalPenjualan , [Tanggal Bayar Cicilan], Cicilan, ( SELECT Keterangan FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi ) FROM Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar WHERE Cicilan = 1 AND [ID Transaksi] = @IDTransaksi INSERT INTO BukuBesarPembantuPiutang ( [ID Transaksi], [ID Jurnal], [Tanggal Nota], [Tanggal Bayar Cicilan], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, Cicilan, [Bayar Cicilan], Keterangan, Status, Jumlah, [Angsuran Terbayar], [Angsuran Jumlah], [Angsuran Sisa], Tunggakan, [Sisa Tunggakan] ) SELECT [ID Transaksi], @NOJurnalPenjualan, [Tanggal Nota], [Tanggal Bayar Cicilan], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, Cicilan, [Bayar Per Angsuran], Keterangan, Status, Jumlah, 1, (SELECT COUNT(Status) FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar GROUP BY [ID Transaksi] HAVING [ID Transaksi] = @IDTransaksi), (SELECT COUNT(Status) FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar GROUP BY [ID Transaksi] HAVING [ID Transaksi] = @IDTransaksi)-1, CASE WHEN status = 'Terbayar' THEN @Tunggakan ELSE 0 END, CASE WHEN status = 'Terbayar' THEN @Tunggakan ELSE 0 END FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi INSERT INTO BukuBesarPenjualanKeuangan ( [ID Transaksi], [Tanggal Nota], Konsumen, Sales, DB, [ID Jurnal], [Tanggal Bayar Cicilan], [Bayar Cicilan], [ID Konsumen], [ID Sales], [ID DB], [Biaya Angkut], [Biaya Lain], [Total Jual], [Total Bayar], [Total PPN], [Total Diskon], [Bayar DP], Piutang, Cicilan, [Cicilan ke -], [Keterangan 2], Tunggakan, [Sisa Tunggakan], [Nilai Tunggakan Yang Akan Dibayar] ) SELECT Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Nota], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Konsumen, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Sales, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.DB, @NOJurnalPenjualan, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Tanggal Bayar Cicilan], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Bayar Per Angsuran], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Konsumen], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Sales], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID DB], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Biaya Angkut], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Biaya Lain], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Jual], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total PPN], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Diskon], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Bayar DP], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.Piutang, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Cicilan, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Keterangan, @Keterangan, @Tunggakan, @Tunggakan, @Tunggakan FROM Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar INNER JOIN Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar ON Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi] = Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[ID Transaksi] INNER JOIN Transaksi_Daftar_NotaYangBelumDibayar_Penjualan ON Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi] = Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] GROUP BY Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Nota], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Konsumen, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Sales, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.DB, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Tanggal Bayar Cicilan], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Bayar Per Angsuran], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Konsumen], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Sales], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID DB], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Biaya Angkut], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Biaya Lain], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Jual], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total PPN], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Diskon], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Bayar DP], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.Piutang, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Cicilan, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Keterangan HAVING Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status = 'Terbayar' AND Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi] = @IDTransaksi IF NOT EXISTS (SELECT FROM sysobjects WHERE id = object_id(N'[Tabel_DetailJurnalPenjualan]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar Cicilan] AS [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB INTO Tabel_DetailJurnalPenjualan FROM BukuBesarPenjualanKeuangan WHERE [ID Transaksi] = @IDTransaksi END ELSE BEGIN TRUNCATE TABLE Tabel_DetailJurnalPenjualan INSERT INTO Tabel_DetailJurnalPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar Cicilan] AS [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB FROM BukuBesarPenjualanKeuangan WHERE [ID Transaksi] = @IDTransaksi END INSERT INTO BukuBesarCicilanPenjualanKeuangan ( [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [ID Transaksi], [ID Jurnal], [Tanggal Nota], [Tanggal Bayar Cicilan], Cicilan, [Bayar Per Angsuran], Keterangan, Status, Jumlah ) SELECT Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Konsumen], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Sales], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID DB], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Konsumen, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Sales, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.DB, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi], @NOJurnalPenjualan, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Nota], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Bayar Cicilan], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Cicilan, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Biaya Per Angsuran] Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.jumlah, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Keterangan, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Jumlah FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar INNER JOIN Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar ON Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[ID Transaksi] = Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi] AND Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Cicilan = Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Cicilan GROUP BY Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Keterangan, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Jumlah, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Konsumen, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Sales, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.DB, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Cicilan, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Biaya Per Angsuran], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.Jumlah, Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Konsumen], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Sales], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID DB], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Nota], Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[Tanggal Bayar Cicilan] HAVING Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar.[ID Transaksi] = @IDTransaksi / Menentukan No Rekening Pembayaran / DECLARE @NoRekPenjualan numeric SELECT @NoRekPenjualan = [No Rekening] FROM RekeningAkuntansi WHERE [Nama Rekening] = @NamaRekPenjualan / Pemasukan Rekening Kas ke Jurnal Transaksi Penjualan / DECLARE @KeteranganJurnalPenjualan varchar(500) SELECT @KeteranganJurnalPenjualan = Keterangan FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit, Keterangan ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @NoRekPenjualan AS Rekening, @NamaRekPenjualan AS [Nama Rekening], @NilaiYangHarusDiBayar AS Debit, 0 AS Kredit, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_DetailJurnalPenjualan / / / / / Proses Update Rekening Kas / / / / / WHILE @NoRekPenjualan <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiYangHarusDiBayar WHERE [No Rekening] = @NoRekPenjualan SELECT @NoRekPenjualan = Master FROM RekeningAkuntansi WHERE [No Rekening] = @NoRekPenjualan END / / / / / Proses Update Rekening Persediaan / / / / / IF NOT EXISTS (SELECT FROM sysobjects WHERE id = object_id(N'[Tabel_BesarDataNilaiPersediaanYangBerkurang]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN SELECT [Rek Persediaan], SUM(BukuBesarPenjualanInventory.Jumlah [Harga Lama]) AS total INTO Tabel_BesarDataNilaiPersediaanYangBerkurang FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON BukuBesarPenjualanInventory.[ID Barang] = Inventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek Persediaan] END ELSE BEGIN TRUNCATE TABLE Tabel_BesarDataNilaiPersediaanYangBerkurang INSERT INTO Tabel_BesarDataNilaiPersediaanYangBerkurang ( [Rek Persediaan], Total, Total2 ) SELECT [Rek Persediaan], SUM(BukuBesarPenjualanInventory.Jumlah [Harga Beli]), SUM(BukuBesarPenjualanInventory.Jumlah Harga) FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON Inventory.[ID Barang] = BukuBesarPenjualanInventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek Persediaan] END / / / / / Pemasukan Rekening Persediaan ke Jurnal Transaksi Penjualan / / / / / INSERT INTO JurnalTransaksiPenjualan ( Debit, Rekening, Kredit, [ID Jurnal], [Nama Rekening], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, Keterangan ) SELECT cast('0' as Int) AS Debit, [Rek Persediaan], total, [ID Jurnal], [Nama Rekening], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_BesarDataNilaiPersediaanYangBerkurang INNER JOIN RekeningAkuntansi ON [Rek Persediaan] = [No Rekening] CROSS JOIN Tabel_DetailJurnalPenjualan / / / / / UPDATE REKENING HEADER PERSEDIAAN / / / / / DECLARE @NoRekNilaiPersediaanTotal numeric, @NilaiPersediaanTotal money DECLARE Cursor_TransaksiPenjualan CURSOR FOR SELECT [Rek Persediaan], Total FROM Tabel_BesarDataNilaiPersediaanYangBerkurang OPEN Cursor_TransaksiPenjualan FETCH NEXT FROM Cursor_TransaksiPenjualan INTO @NoRekNilaiPersediaanTotal, @NilaiPersediaanTotal WHILE @@FETCH_Status = 0 BEGIN WHILE @NoRekNilaiPersediaanTotal <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo - @NilaiPersediaanTotal WHERE [No Rekening] = @NoRekNilaiPersediaanTotal SELECT @NoRekNilaiPersediaanTotal = Master FROM RekeningAkuntansi WHERE [No Rekening] = @NoRekNilaiPersediaanTotal END FETCH NEXT FROM Cursor_TransaksiPenjualan INTO @NoRekNilaiPersediaanTotal, @NilaiPersediaanTotal END CLOSE Cursor_TransaksiPenjualan DEALLOCATE Cursor_TransaksiPenjualan / / / / / Pemasukan Rekening Ikhtisar Rugi/Laba ke Jurnal Transaksi Penjualan / / / / / INSERT INTO JurnalTransaksiPenjualan ( Debit, Rekening, Kredit, [ID Jurnal], [Nama Rekening], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, Keterangan ) SELECT cast('0' as Int) AS Debit, 9100000, SUM(total2-Total), [ID Jurnal], '-->> Ikhtisar Rugi/Laba', [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_BesarDataNilaiPersediaanYangBerkurang INNER JOIN RekeningAkuntansi ON [Rek Persediaan] = [No Rekening] CROSS JOIN Tabel_DetailJurnalPenjualan GROUP BY Tabel_DetailJurnalPenjualan.[ID Jurnal], Tabel_DetailJurnalPenjualan.[ID Transaksi], Tabel_DetailJurnalPenjualan.[Tanggal Nota], Tabel_DetailJurnalPenjualan.[Tanggal Bayar], Tabel_DetailJurnalPenjualan.[ID Konsumen], Tabel_DetailJurnalPenjualan.[ID Sales], Tabel_DetailJurnalPenjualan.[ID DB], Tabel_DetailJurnalPenjualan.Konsumen, Tabel_DetailJurnalPenjualan.Sales, Tabel_DetailJurnalPenjualan.DB UPDATE RekeningAkuntansi SET Saldo = Saldo + (SELECT SUM(Total2 - Total) FROM Tabel_BesarDataNilaiPersediaanYangBerkurang) WHERE RekeningAkuntansi.[No Rekening] = 9100000 / Update Nilai Laba/Rugi / UPDATE RekeningAkuntansi SET Saldo = ( SELECT Saldo FROM RekeningAkuntansi WHERE [No Rekening] = 9100000 ) WHERE [Nama Rekening] = 'Laba/Rugi' / Update Rekening Akuntansi karena timbul Laba/Rugi / DECLARE @NoRekLabaRugi Numeric, @NilaiLabaRugi money SELECT @NoRekLabaRugi = Master FROM RekeningAkuntansi WHERE [Nama Rekening] = 'Laba/Rugi' SELECT @NilaiLabaRugi = SUM(total2-Total) FROM Tabel_BesarDataNilaiPersediaanYangBerkurang WHILE @NoRekLabaRugi <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiLabaRugi WHERE [No Rekening] = @NoRekLabaRugi SELECT @NoRekLabaRugi = Master FROM RekeningAkuntansi WHERE [No Rekening] = @NoRekLabaRugi END / Proses Update Rekening Harga Pokok Penjualan / IF NOT EXISTS ( SELECT FROM dbo.sysobjects WHERE id = object_id(N'Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN SELECT [Rek HPP], SUM(BukuBesarPenjualanInventory.Jumlah Harga) AS total INTO Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON Inventory.[ID Barang] = BukuBesarPenjualanInventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek HPP] END ELSE BEGIN TRUNCATE TABLE Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang INSERT INTO Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang ( [Rek HPP], Total ) SELECT [Rek HPP], SUM(BukuBesarPenjualanInventory.Jumlah Harga) AS total FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON Inventory.[ID Barang] = BukuBesarPenjualanInventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek HPP] END / Proses pemasukan Harga Pokok Penjualan ke jurnal transaksi penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit, Keterangan ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [No Rekening], [Nama Rekening], Total AS Debit, 0 AS Kredit, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang INNER JOIN RekeningAkuntansi ON [Rek HPP] = [No Rekening] CROSS JOIN Tabel_DetailJurnalPenjualan DECLARE @NilaiHPPTotal money, @NoRekNilaiHPPTotal numeric DECLARE Cursor_NilaiHPP CURSOR FOR SELECT [Rek HPP], Total FROM Tabel_BesarDataNilaiHargaPokokPenjualanYangBerkurang OPEN Cursor_NilaiHPP FETCH NEXT FROM Cursor_NilaiHPP INTO @NoRekNilaiHPPTotal, @NilaiHPPTotal WHILE @@FETCH_STATUS = 0 BEGIN WHILE @NoRekNilaiHPPTotal <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiHPPTotal WHERE [No Rekening] = @NoRekNilaiHPPTotal SELECT @NoRekNilaiHPPTotal = Master FROM RekeningAkuntansi WHERE [No Rekening] = @NoRekNilaiHPPTotal END FETCH NEXT FROM Cursor_NilaiHPP INTO @NoRekNilaiHPPTotal, @NilaiHPPTotal END CLOSE Cursor_NilaiHPP DEALLOCATE Cursor_NilaiHPP / Proses Update Rekening Pendapatan / IF NOT EXISTS ( SELECT FROM sysobjects WHERE id = object_id(N'[Tabel_BesarDataNilaiPendapatanYangBerkurang]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1) BEGIN SELECT [Rek Pendapatan], SUM(BukuBesarPenjualanInventory.Jumlah [Harga Lama]) AS total INTO Tabel_BesarDataNilaiPendapatanYangBerkurang FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON BukuBesarPenjualanInventory.[ID Barang] = Inventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek Pendapatan] END ELSE BEGIN DELETE FROM Tabel_BesarDataNilaiPendapatanYangBerkurang INSERT INTO Tabel_BesarDataNilaiPendapatanYangBerkurang ( [Rek Pendapatan], Total ) SELECT [Rek Pendapatan], SUM(BukuBesarPenjualanInventory.Jumlah [Harga Lama]) AS total FROM BukuBesarPenjualanInventory INNER JOIN Inventory ON BukuBesarPenjualanInventory.[ID Barang] = Inventory.[ID Barang] WHERE [ID Transaksi] = @IDTransaksi GROUP BY [Rek Pendapatan] END / Proses pemasukan pendapatan ke jurnal transaksi penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit, Keterangan ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [No Rekening], [Nama Rekening], 0 AS Debit, total AS Kredit, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_BesarDataNilaiPendapatanYangBerkurang INNER JOIN RekeningAkuntansi ON [Rek Pendapatan] = [No Rekening] CROSS JOIN Tabel_DetailJurnalPenjualan DECLARE @NilaiPendapatanTotal money, @NoRekNilaiPendapatanTotal numeric DECLARE Cursor_NilaiPendapatan CURSOR FOR SELECT [Rek Pendapatan], Total FROM Tabel_BesarDataNilaiPendapatanYangBerkurang OPEN Cursor_NilaiPendapatan FETCH NEXT FROM Cursor_NilaiPendapatan INTO @NoRekNilaiPendapatanTotal, @NilaiPendapatanTotal WHILE @@FETCH_STATUS = 0 BEGIN WHILE @NoRekNilaiPendapatanTotal <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiPendapatanTotal WHERE [No Rekening] = @NoRekNilaiPendapatanTotal SELECT @NoRekNilaiPendapatanTotal = Master FROM RekeningAkuntansi WHERE [No Rekening] = @NoRekNilaiPendapatanTotal END FETCH NEXT FROM Cursor_NilaiPendapatan INTO @NoRekNilaiPendapatanTotal, @NilaiPendapatanTotal END CLOSE Cursor_NilaiPendapatan DEALLOCATE Cursor_NilaiPendapatan / Proses Menentukan nilai Piutang / DECLARE @NamaRekPiutangPenjualan varchar(50), @RekPiutang numeric SELECT @RekPiutang = [Rek Piutang] FROM RekeningTransaksiPenjualan SELECT @NilaiPiutang = Piutang FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi SELECT @NamaRekPiutangPenjualan = [Nama Rekening] FROM RekeningAkuntansi WHERE [No Rekening] = @RekPiutang / Pemasukan Rekening Piutang ke Jurnal Transaksi Penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit, Keterangan ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @RekPiutang AS Rekening, @NamaRekPiutangPenjualan AS [Nama Rekening], @NilaiPiutang AS Debit, 0 AS Kredit, @KeteranganJurnalPenjualan AS Keterangan FROM Tabel_DetailJurnalPenjualan / Proses Update Rekening Piutang / WHILE @RekPiutang <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiPiutang WHERE [No Rekening] = @RekPiutang SELECT @RekPiutang = Master FROM RekeningAkuntansi WHERE [No Rekening] = @RekPiutang END / Menentukan Nama Rekening Pajak dan Nomor Rekeningnya / DECLARE @NilaiPajak money, @NamaRekPajak varchar(50), @RekPajak numeric SELECT @RekPajak = [Rek Pajak] FROM RekeningTransaksiPenjualan SELECT @NilaiPajak = [Total PPN] FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi SELECT @NamaRekPajak = [Nama Rekening] FROM RekeningAkuntansi WHERE [No Rekening] = @RekPajak / Pemasukan Rekening Pajak ke Jurnal Transaksi Penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @RekPajak AS Rekening, @NamaRekPajak AS [Nama Rekening], 0 AS Debit, @NilaiPajak AS Kredit FROM Tabel_DetailJurnalPenjualan / Proses Update Rekening Pajak / WHILE @RekPajak <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiPajak WHERE [No Rekening] = @RekPajak SELECT @RekPajak = Master FROM RekeningAkuntansi WHERE [No Rekening] = @RekPajak END / Proses menentukan nama rekening Biaya Angkut / DECLARE @NamaRekBiayaAngkut varchar(50), @RekBiayaAngkut numeric SELECT @RekBiayaAngkut = [Rek Biaya Angkut] FROM RekeningTransaksiPenjualan SELECT @NamaRekBiayaAngkut = [Nama Rekening] FROM RekeningAkuntansi WHERE [No Rekening] = @RekBiayaAngkut / Pemasukan Rekening Biaya Angkut ke Jurnal Transaksi Penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @RekBiayaAngkut AS Rekening, @NamaRekBiayaAngkut AS [Nama Rekening], 0 AS Debit, @NilaiBiayaAngkut AS Kredit FROM Tabel_DetailJurnalPenjualan / Proses Update Pendapatan Biaya Angkut / WHILE @RekBiayaAngkut <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiBiayaAngkut WHERE [No Rekening] = @RekBiayaAngkut SELECT @RekBiayaAngkut = Master FROM RekeningAkuntansi WHERE [No Rekening] = @RekBiayaAngkut END / Proses menentukan nama rekening Biaya Lain / DECLARE @NamaRekBiayaLain varchar(50), @RekBiayaLain numeric SELECT @RekBiayaLain = [Rek Biaya Lain] FROM RekeningTransaksiPenjualan SELECT @NamaRekBiayaLain = [Nama Rekening] FROM RekeningAkuntansi WHERE [No Rekening] = @RekBiayaLain / Pemasukan Rekening Biaya Lain ke Jurnal Transaksi Penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @RekBiayaLain AS Rekening, @NamaRekBiayaLain AS [Nama Rekening], 0 AS Debit, @NilaiBiayaLain AS Kredit FROM Tabel_DetailJurnalPenjualan / Proses Update Pendapatan Biaya Lain / WHILE @RekBiayaLain <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiBiayaLain WHERE [No Rekening] = @RekBiayaLain SELECT @RekBiayaLain = Master FROM RekeningAkuntansi WHERE [No Rekening] = @RekBiayaLain END / Proses menentukan nama rekening Diskon / DECLARE @NamaRekDiskon varchar(50), @RekDiskon numeric SELECT @RekDiskon = [Rek Diskon] FROM RekeningTransaksiPenjualan SELECT @NamaRekDiskon = [Nama Rekening] FROM RekeningAkuntansi WHERE [No Rekening] = @RekDiskon / Pemasukan Rekening Diskon ke Jurnal Transaksi Penjualan / INSERT INTO JurnalTransaksiPenjualan ( [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, [Rekening], [Nama Rekening], Debit, Kredit ) SELECT [ID Jurnal], [ID Transaksi], [Tanggal Nota], [Tanggal Bayar], [ID Konsumen], [ID Sales], [ID DB], Konsumen, Sales, DB, @RekDiskon AS Rekening, @NamaRekDiskon AS [Nama Rekening], @NilaiDiskon AS Debit, 0 AS Kredit FROM Tabel_DetailJurnalPenjualan / Proses Update Biaya Diskon / WHILE @RekDiskon <> 0 BEGIN UPDATE RekeningAkuntansi SET Saldo = Saldo + @NilaiDiskon WHERE [No Rekening] = @RekDiskon SELECT @RekDiskon = Master FROM RekeningAkuntansi WHERE [No Rekening] = @RekDiskon END INSERT INTO Transaksi_Daftar_NotaYangSudahDibayar_Penjualan ( [ID Transaksi], [Tanggal Nota], [Tanggal Bayar Terakhir], [ID Konsumen], [ID Sales], [ID DB], [Biaya Angkut], [Biaya Lain], [Total Jual], [Total Bayar], [Total PPN], [Total Diskon], [Bayar DP], Piutang, Konsumen, Sales, DB ) SELECT [ID Transaksi], [Tanggal Nota], @TanggalBayar, [ID Konsumen], [ID Sales], [ID DB], [Biaya Angkut], [Biaya Lain], [Total Jual], [Total Bayar], [Total PPN], [Total Diskon], [Bayar DP], Piutang, Konsumen, Sales, DB FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi DELETE FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi UPDATE Inventory SET PO = PO - Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.Jumlah FROM Transaksi_Daftar_BarangYangBelumDibayar_Penjualan WHERE Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[ID Barang] = Inventory.[ID Barang] AND [ID Transaksi] = @IDTransaksi DELETE FROM Transaksi_Daftar_BarangYangBelumDibayar_Penjualan WHERE [ID Transaksi] = @IDTransaksi DELETE FROM Transaksi_DaftarRincianAngsuranGabunganBeberapaBarangPenjualanSebelumDibayar WHERE [ID Transaksi] = @IDTransaksi DELETE FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi GO CREATE PROCEDURE sp_Kasir;2 AS TRUNCATE TABLE KeteranganNoCicilanPiutang GO CREATE PROCEDURE sp_Kasir;3 @JenisTransaksi varchar(50), @IDTransaksi varchar(10) AS IF @JenisTransaksi = 'Piutang' BEGIN SELECT [ID Transaksi], [ID Konsumen] AS [ID Card], [Tanggal Bayar Cicilan] AS [Tgl Bayar], [Bayar Cicilan], Keterangan, Status, Cicilan, ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuPiutang WHERE Status = 'Belum Terbayar' AND [Status 2] = 'Tidak Terpilih' AND [ID Transaksi] = @IDTransaksi ) AS Total, ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuPiutang WHERE [ID Transaksi] = @IDTransaksi ) AS [Total Pembayaran], ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuPiutang WHERE Status = 'Belum Terbayar' AND [ID Transaksi] = @IDTransaksi ) + ( SELECT SUM([Sisa Tunggakan]) FROM BukuBesarPenjualanKeuangan WHERE [ID Transaksi] = @IDTransaksi ) AS Sisa FROM BukuBesarPembantuPiutang WHERE Status = 'Belum Terbayar' AND [Status 2] = 'Tidak Terpilih' AND [ID Transaksi] = @IDTransaksi END ELSE IF @JenisTransaksi = 'Hutang' BEGIN SELECT [ID Transaksi], [ID Supplier] AS [ID Card], [Tanggal Bayar Cicilan] AS [Tgl Bayar], [Bayar Cicilan], Keterangan, Status, Cicilan, ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuHutang WHERE Status = 'Belum Terbayar' AND [Status 2] = 'Tidak Terpilih' AND [ID Transaksi] = @IDTransaksi ) AS Total, ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuHutang WHERE [ID Transaksi] = @IDTransaksi ) AS [Total Pembayaran], ( SELECT SUM([Bayar Cicilan]) FROM BukuBesarPembantuHutang WHERE Status = 'Belum Terbayar' AND [ID Transaksi] = @IDTransaksi ) + ( SELECT SUM(Tunggakan) FROM BukuBesarPembelianKeuangan WHERE [ID Transaksi] = @IDTransaksi ) AS Sisa FROM BukuBesarPembantuHutang WHERE Status = 'Belum Terbayar' AND [Status 2] = 'Tidak Terpilih' AND [ID Transaksi] = @IDTransaksi END GO CREATE PROCEDURE sp_Kasir;4 @JenisTransaksi varchar(50) AS IF @JenisTransaksi = 'Penjualan' BEGIN SELECT [ID Konsumen] AS [ID Card], Konsumen AS [Nama Card], SUM([Total Bayar]) AS [Bayar Cicilan], 'Penjualan' AS Transaksi FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan GROUP BY [ID Konsumen], Konsumen ORDER BY Konsumen END ELSE IF @JenisTransaksi = 'Pembelian' BEGIN SELECT [ID Supplier] AS [ID Card], Supplier AS [Nama Card], SUM([Total Bayar]) AS [Bayar Cicilan], 'Pembelian' AS Transaksi FROM Transaksi_Daftar_NotaYangBelumDibayar_Pembelian GROUP BY [ID Supplier], Supplier ORDER BY Supplier END ELSE IF @JenisTransaksi = 'Piutang' BEGIN SELECT [ID Konsumen] AS [ID Card], Konsumen AS [Nama Card], SUM([Bayar Cicilan]) AS [Bayar Cicilan], 'Piutang' AS Transaksi FROM BukuBesarPembantuPiutang GROUP BY [ID Konsumen], Konsumen, Status HAVING Status = 'Belum Terbayar' END ELSE IF @JenisTransaksi = 'Hutang' BEGIN SELECT [ID Supplier] AS [ID Card], Supplier AS [Nama Card], SUM([Bayar Cicilan]) AS [Bayar Cicilan], 'Hutang' AS Transaksi FROM BukuBesarPembantuHutang GROUP BY [ID Supplier], Supplier, Status HAVING Status = 'Belum Terbayar' END GO CREATE PROCEDURE sp_Kasir;5 @JenisTransaksi varchar(50), @IDCard varchar(10), @Status varchar(10) AS IF @JenisTransaksi = 'Penjualan' BEGIN IF @Status = 'Kredit' BEGIN SELECT Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar] AS [Sub Total], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Tanggal Nota] AS [Tgl Nota], Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[Total PPN] AS Pajak, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Bayar Per Angsuran] AS [Cicilan Pertama] FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan INNER JOIN Transaksi_Daftar_BarangYangBelumDibayar_Penjualan ON Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] = Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[ID Transaksi] INNER JOIN Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar ON Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] = Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[ID Transaksi] GROUP BY Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Tanggal Nota], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Konsumen], Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[Total PPN], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Bayar Per Angsuran], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status HAVING Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Konsumen] = @IDCard AND Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status = 'Terbayar' ORDER BY Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] END ELSE BEGIN SELECT Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar] AS [Sub Total], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Tanggal Nota] AS [Tgl Nota], Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[Total PPN] AS Pajak, Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Total Persediaan] AS [Cicilan Pertama] FROM Transaksi_Daftar_NotaYangBelumDibayar_Penjualan INNER JOIN Transaksi_Daftar_BarangYangBelumDibayar_Penjualan ON Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] = Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[ID Transaksi] INNER JOIN Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar ON Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] = Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[ID Transaksi] GROUP BY Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[Tanggal Nota], Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Konsumen], Transaksi_Daftar_BarangYangBelumDibayar_Penjualan.[Total PPN], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.[Total Persediaan], Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status HAVING Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Konsumen] = @IDCard AND Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar.Status = 'Terbayar' ORDER BY Transaksi_Daftar_NotaYangBelumDibayar_Penjualan.[ID Transaksi] END END ELSE IF @JenisTransaksi = 'Pembelian' BEGIN IF @Status = 'Kredit' BEGIN SELECT Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Total Bayar] AS [Sub Total], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Tanggal Nota] AS [Tgl Nota], Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[Total PPN] AS Pajak, Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[Bayar Per Angsuran] AS [Cicilan Pertama] FROM Transaksi_Daftar_NotaYangBelumDibayar_Pembelian INNER JOIN Transaksi_Daftar_BarangYangBelumDibayar_Pembelian ON Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] = Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[ID Transaksi] INNER JOIN Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar ON Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] = Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[ID Transaksi] GROUP BY Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Tanggal Nota], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Supplier], Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[Total PPN], Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.Status, Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[Bayar Per Angsuran] HAVING Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Supplier] = @IDCard AND Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.Status = 'Terbayar' ORDER BY Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] END ELSE BEGIN SELECT Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Total Bayar] AS [Sub Total], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Tanggal Nota] AS [Tgl Nota], Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[Total PPN] AS Pajak, Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[Total Persediaan] AS [Cicilan Pertama] FROM Transaksi_Daftar_NotaYangBelumDibayar_Pembelian INNER JOIN Transaksi_Daftar_BarangYangBelumDibayar_Pembelian ON Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] = Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[ID Transaksi] INNER JOIN Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar ON Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] = Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[ID Transaksi] GROUP BY Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Total Bayar], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[Tanggal Nota], Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Supplier], Transaksi_Daftar_BarangYangBelumDibayar_Pembelian.[Total PPN], Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.Status, Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.[Total Persediaan] HAVING Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Supplier] = @IDCard AND Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar.Status = 'Terbayar' ORDER BY Transaksi_Daftar_NotaYangBelumDibayar_Pembelian.[ID Transaksi] END END ELSE IF @JenisTransaksi = 'Piutang' BEGIN SELECT [ID Transaksi], SUM([Bayar Cicilan]) AS [Sub Total], [Tanggal Nota] AS [Tgl Nota], Cast('0' AS Money) AS Pajak, Cast('0' AS Money) AS [Cicilan Pertama] FROM BukuBesarPembantuPiutang WHERE Status = 'Belum Terbayar' AND [ID Konsumen] = @IDCard GROUP BY [ID Transaksi], [ID Konsumen], [Tanggal Nota] ORDER BY [ID Transaksi] END ELSE IF @JenisTransaksi = 'Hutang' BEGIN SELECT [ID Transaksi], SUM([Bayar Cicilan]) AS [Sub Total], [Tanggal Nota] AS [Tgl Nota], Cast('0' AS Money) AS Pajak, Cast('0' AS Money) AS [Cicilan Pertama] FROM BukuBesarPembantuHutang WHERE Status = 'Belum Terbayar' AND [ID Supplier] = @IDCard GROUP BY [ID Transaksi], [ID Supplier], [Tanggal Nota] ORDER BY [ID Transaksi] END GO CREATE PROCEDURE sp_Kasir;6 @JenisTransaksi varchar(50), @IDTransaksi varchar(10), @Status varchar(10) AS IF @JenisTransaksi = 'Penjualan' BEGIN IF @Status = 'Kredit' BEGIN SELECT [ID Transaksi], [Tanggal Bayar Cicilan], Cicilan, [Bayar Per Angsuran], Keterangan, Status, Jumlah, [Total Persediaan] AS Total FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi END ELSE IF @Status = 'Cash' BEGIN SELECT [ID Transaksi], ( SELECT [Tanggal Bayar Cicilan] FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi AND Cicilan = 1 ) AS [Tanggal Bayar Cicilan], Cast('1' AS Int) AS Cicilan, [Total Persediaan] AS [Bayar Per Angsuran], 'Angsuran ke - 1' AS Keterangan, 'Lunas' AS Status, ( SELECT Jumlah FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi AND Cicilan = 1 ) AS Jumlah, [Total Persediaan] AS Total FROM Transaksi_DaftarRincianAngsuranNotaPenjualanYangAkanDibayar GROUP BY [ID Transaksi], [Total Persediaan] HAVING [ID Transaksi] = @IDTransaksi END END ELSE IF @JenisTransaksi = 'Pembelian' BEGIN IF @Status = 'Kredit' BEGIN SELECT [ID Transaksi], [Tanggal Bayar Cicilan], Cicilan, [Bayar Per Angsuran], Keterangan, Status, Jumlah, [Total Persediaan] AS Total FROM Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi END ELSE BEGIN SELECT [ID Transaksi], ( SELECT [Tanggal Bayar Cicilan] FROM Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi AND Cicilan = 1 ) AS [Tanggal Bayar Cicilan], Cast('1' AS Int) AS Cicilan, [Total Persediaan] AS [Bayar Per Angsuran], 'Angsuran ke - 1' AS Keterangan, 'Lunas' AS Status, ( SELECT Jumlah FROM Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar WHERE [ID Transaksi] = @IDTransaksi AND Cicilan = 1 ) AS Jumlah, [Total Persediaan] AS Total FROM Transaksi_DaftarRincianAngsuranNotaPembelianYangAkanDibayar GROUP BY [ID Transaksi], [Total Persediaan] HAVING [ID Transaksi] = @IDTransaksi END END ELSE IF @JenisTransaksi = 'Piutang' BEGIN SELECT [ID Transaksi], [Tanggal Bayar Cicilan], Cicilan, SUM([Bayar Per Angsuran]) AS [Bayar Per Angsuran], Keterangan, Status, Jumlah, ( SELECT SUM([Bayar Per Angsuran]) FROM BukuBesarCicilanPenjualanKeuangan WHERE Status = 'Terbayar' AND [ID Transaksi] = @IDTransaksi ) AS Total FROM BukuBesarCicilanPenjualanKeuangan WHERE Status = 'Terbayar' AND [ID Transaksi] = @IDTransaksi GROUP BY [Tanggal Bayar Cicilan], Keterangan, Status, Jumlah, Cicilan, [ID Transaksi] END ELSE IF @JenisTransaksi = 'Hutang' BEGIN SELECT [ID Transaksi], [Tanggal Ambil] AS [Tanggal Bayar Cicilan], Cicilan, SUM([Besar Cicilan Per Barang] * Jumlah) AS [Bayar Per Angsuran], 'Angsuran ke -' + CAST(Cicilan AS varchar) AS Keterangan, Status, COUNT([ID Barang]) AS Jumlah, ( SELECT SUM([Bayar Per Angsuran]) FROM BukuBesarCicilanPembelianKeuangan WHERE Status = 'Terbayar' AND [ID Transaksi] = @IDTransaksi ) AS Total FROM BukuBesarCicilanPembelianInventory WHERE [ID Transaksi] = @IDTransaksi GROUP BY [ID Transaksi], [Tanggal Ambil], Cicilan, 'Angsuran ke -' + CAST(Cicilan AS varchar), Status HAVING Status = 'Terbayar' ORDER BY Cicilan END GO [/code:1:b9a56fb4a9]
user image
more 19 years ago

LuriDarmawan

yang ini diriku tidak sepaham. diriku lebih suka membuat aplikasi n-Tier dengan general client-side dengan server-point dan bisnis-rule yang bisa akses ke sembarang DB. dengan kondisi demikian, aplikasi menjadi tidak terpaku ke salah satu database-server saja. cara rekan EkoIndri hanya terpaku ke salah satu db-server. soal bajak-membajak, tetap dipersilahkan. sebagai penyeimbang, buatlah TOS, SLA, LA yang sesuai untuk setial aplikasi yang dibuat.
user image
more 19 years ago

cyber_hecker

wah gue juga setuju banget ama bung luri. gue juga lebih suka membuat program yang bisa di akses di sembarang db tanpa harus merubah banyak koding ataupun query. kalo ada yang mau mbajak, ya silakan juga - anggap aja lagi mberi dan menularkan ilmu pada orang lain. itung-itung amal dikit lah. kekekek :P. by the way TOS, SLA, LA itu apa seh ? hik.. hik.. :P
user image
more 19 years ago

EkoIndri

@Luri kita beda aliran.......... beda itu wajar... yang penting aq tidak no profile wakakaakakk aku cuma kasih saran buat temen2..... bukan membunuh ni thread... status : [mode advance ON] hati2.......... @cycber terserah loe mau ngikut siapa...... klo sumbang2 menyumbang itu aq ada cara sendiri.... aq jadi orang juga ngak pelit........... wakakakaak tanya aja ma rekan2 loe yang ada disini... gw pelit ngak......... jika loe pada sombong dan merasa sok maka gw akan pelit ma loe pade wakakakakakak @temen2......... silahkan anda sesuaikan dengan kebutuhan anda.... klo bisa cari karakter loe masing2 jangan asal ikut mengikut wakaakakakk
user image
more 19 years ago

penyakit_mambu

hargailah diri kita setinggi mungkin ..... <- upss... :lol:
user image
more 19 years ago

LuriDarmawan

perbedaan membuat semakin warna-warninya dunia maya semakin cerah. @cyber_hecker TOS: Terms of Service SLA: Service Legal Agrement LA: License Agreement AUP: Acceptable Use Policy
user image
more 19 years ago

EkoIndri

@penyakit_mambu itu harus..... @Luri tul sekali mas.... buat warna-warni
user image
more 19 years ago

saysansay

perbedaan membuat semakin warna-warninya dunia maya semakin cerah.
@EKOIndri tul sekali mas.... buat warna-warni
Walah Aku jadi ingat situs terkerenz yg penuh warnawarni www.onlymovies.com wakakakakakakaka
user image
more 19 years ago

EkoIndri

@saysansay btw, kamu dah coba SP dengan prinsip grouping lom ??? ini akan bagus lho.....buat keamanan database kamu
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com