L1 TAMPILAN LAYAR PROTOTIPE APLIKI Layar Utama Tampilan Layar Utama Layar ini akan muncul pada saat prototipe aplikasi dijalankan oleh user, jika user belum melakukan autentifikasi maka hanya menu File yang dapat diakses oleh user. Berikut ini daftar menu yang terdapat pada layar utama : 1. File Login Logout Exit 2. Master Barang Jabatan Kendaraan Pegawai Pelanggan Wilayah - Kecamatan - Kelurahan
L2 - Kode Pos - Kota 3. Transaksi BP BPBJ BSTPJ Pembayaran Penagihan PO Retur Jual RKD Surat Jalan 4. Update BPBJ Surat Jalan 5. Laporan Penjualan Persediaan Retur Jual Barang Masuk Barang Keluar File Login Tampilan Layar Login User harus melakukan login dengan memasukan user id dan password yang telah disimpan di server. Server kemudian akan melakukan validasi terhadap user id dan password yang dimasukkan, jika hasilnya valid maka layar ini akan ditutup dan semua menu yang terdapat di layar utama akan diaktifkan.
L3 File Logout Menu ini berguna untuk memutuskan koneksi dengan server sehingga tampilan layar utama akan seperti pada saat prototipe aplikasi baru dijalankan. File Exit Menu ini digunakan untuk menutup prototipe aplikasi. Master Barang Tampilan Layar Add Barang Layar ini digunakan untuk menambah data barang ke dalam database. Tampilan Layar View Barang Layar ini digunakan untuk menampilkan semua daftar barang yang ada di dalam database.
L4 Tampilan Layar Update / Delete Barang Layar ini digunakan untuk mengubah atau menghapus data barang berdasarkan kode barang yang dapat diperoleh dengan menggunakan tombol Cari. Master Jabatan Tampilan Layar Add Jabatan Layar ini digunakan untuk menambah data jabatan ke dalam database.
L5 Tampilan Layar View Jabatan Layar ini digunakan untuk menampilkan semua daftar jabatan yang ada di dalam database. Tampilan Layar Update / Delete Jabatan Layar ini digunakan untuk mengubah atau menghapus data jabatan berdasarkan kode jabatan yang dapat diperoleh dengan menggunakan tombol Cari.
L6 Master Kendaraan Tampilan Layar Add Kendaraan Layar ini digunakan untuk menambah data kendaraan ke dalam database. Tampilan Layar View Kendaraan Layar ini digunakan untuk menampilkan semua daftar kendaraan yang ada di dalam database.
L7 Tampilan Layar Update / Delete Kendaraan Layar ini digunakan untuk mengubah atau menghapus data kendaraan berdasarkan nomor polisi, user dapat mencari nomor polisi yang ingin diubah atau dihapus dengan menekan tombol Cari sehingga layar pencarian kendaraan akan ditampilkan.
L8 Master Pegawai Tampilan Layar Add Pegawai Layar ini digunakan untuk menambah data pegawai ke dalam database. User dapat mengisi kelurahan, kecamatan, kode pos dan kota dengan menggunakan tombol Cari sehingga layar pencarian kelurahan akan ditampilkan.
L9 Tampilan Layar View Pegawai Layar ini digunakan untuk menampilkan semua daftar pegawai yang ada di dalam database.
L10 Tampilan Layar Update Pegawai Layar ini digunakan untuk mengubah atau menghapus data pegawai berdasarkan kode pegawai, user dapat mencari pegawai yang ingin diubah atau dihapus dengan menekan tombol Cari sehingga layar pencarian pegawai akan ditampilkan.
L11 Master Pelanggan Tampilan Layar Add Pelanggan Layar ini digunakan untuk menambah data pelanggan ke dalam database. User dapat mengisi kelurahan, kecamatan, kode pos dan kota di bagian pengiriman atau penagihan dengan menggunakan tombol Cari sehingga layar pencarian kelurahan akan ditampilkan. Tombol Copy to digunakan untuk menduplikasi data dari alamat di bagian pengiriman ke bagian penagihan.
L12 Tampilan Layar View Pelanggan Layar ini digunakan untuk menampilkan semua daftar pelanggan yang ada di dalam database. Data pelanggan akan ditampilkan berdasarkan status yang dimiliki oleh pelanggan.
L13 Tampilan Layar Update Pelanggan Layar ini digunakan untuk mengubah atau menghapus data pelanggan berdasarkan kode pelanggan. User dapat mencari pelanggan yang ingin diubah atau dihapus dengan menggunakan tombol Cari di samping kode pelanggan, sehingga layar pencarian pelanggan akan ditampilkan. Master Wilayah Kecamatan Tampilan Layar Add Kecamatan Layar ini digunakan untuk menambah data Kecamatan ke dalam database.
L14 Tampilan Layar View Kecamatan Layar ini digunakan untuk menampilkan semua daftar Kecamatan yang ada di dalam database. Tampilan Layar Update / Delete Kecamatan Layar ini digunakan untuk mengubah atau menghapus data kecamatan berdasarkan kode Kecamatan, user dapat mencari Kecamatan yang ingin diubah atau dihapus dengan menggunakan tombol Cari sehingga layar pencarian Kecamatan akan ditampilkan.
L15 Master Wilayah Kelurahan Tampilan Layar Add Kelurahan Layar ini digunakan untuk menambah data Kelurahan ke dalam database. Nama Kecamatan, kode pos, dan nama Kota dapat diperoleh dengan menggunakan tombol Cari yang telah disediakan dimasing masing bagian. Tampilan Layar View Kelurahan Layar ini digunakan untuk menampilkan semua daftar Kelurahan yang ada di dalam database.
L16 Tampilan Layar Update / Delete Kelurahan Layar ini digunakan untuk mengubah atau menghapus data Kelurahan berdasarkan kode Kelurahan, user dapat mencari Kelurahan yang ingin diubah atau dihapus dengan menggunakan tombol Cari sehingga layar pencarian Kelurahan akan ditampilkan. Master Wilayah Kode Pos Tampilan Layar Add Kode Pos Layar ini digunakan untuk menambah data kode pos ke dalam database.
L17 Tampilan Layar View Kode Pos Layar ini digunakan untuk menampilkan semua daftar kode pos yang ada di dalam database. Tampilan Layar Update / Delete Kode Pos Layar ini digunakan untuk mengubah atau menghapus data kode pos berdasarkan kode pos, user dapat mencari kode pos yang ingin diubah atau dihapus dengan menggunakan tombol Cari sehingga layar pencarian kode pos akan ditampilkan.
L18 Master Wilayah Kota Tampilan Layar Add Kota Layar ini digunakan untuk menambah data Kota ke dalam database. Tampilan Layar View Kota Layar ini digunakan untuk menampilkan semua daftar Kota yang ada di dalam database.
L19 Tampilan Layar Update / Delete Kota Layar ini digunakan untuk mengubah atau menghapus data Kota berdasarkan kode Kota, user dapat mencari Kota yang ingin diubah atau dihapus dengan menekan tombol Cari sehingga layar pencarian Kota akan ditampilkan.
L20 Transaksi BP Tampilan Layar Add BP Layar ini digunakan untuk menambah data BP ke dalam database. Kode pelanggan bisa dicari dengan dua cara, yaitu dengan menggunakan tombol Cek dan tombol Cari. Jika menggunakan tombol Cek user harus memasukan kode pelanggan terlebih dahulu dan setelah tombol Cek ditekan maka nama pelanggan akan ditampilkan. Jika menggunakan tombol Cari maka akan ditampilkan layar pencarian pelanggan. Pencarian kode barang prosesnya sama seperti proses pencarian kode pelanggan sebelumnya. Pada kontrol data, tombol Tambah digunakan untuk menambahkan barang ke dalam daftar barang., tombol Hapus digunakan untuk menghapus barang yang telah dipilih di daftar barang, tombol Reset digunakan untuk membersihkan daftar barang, tombol Ubah Jml/Kirim digunakan untuk mengubah jumlah kirim barang barang yang terdapat di daftar barang, sedangkan tombol Ubah Harga digunakan untuk mengubah harga barang yang terdapat di daftar barang
L21 Tampilan Layar View BP Layar ini digunakan untuk menampilkan semua daftar BP milik pelanggan, data yang ditampilkan dapat dipilih berdasarkan status BP yang aktif, tidak aktif maupun kedua duanya. Selain itu disediakan kotak pencarian yang bisa digunakan untuk mencari BP berdasarkan kode BP, kode pelanggan, dan semua BP. Setelah tombol Tampil ditekan maka akan dimunculkan data hasil pencarian di dalam grid yang sudah disediakan. Untuk menampilkan informasi lengkap terhadap BP, maka user hanya perlu melakukan double click pada baris yang dikehendaki.
L22 Transaksi BPBJ Tampilan Layar Add BPBJ Layar ini digunakan untuk menambah data BPBJ ke dalam database. Kode RKD dapat dicari dengan dua cara, yaitu dengan menggunakan tombol Cek dan tombol Cari. Jika menggunakan tombol Cek user harus memasukan kode RKD terlebih dahulu dan setelah tombol Cek ditekan maka informasi detail dari RKD akan ditampilkan. Jika menggunakan tombol Cari maka akan ditampilkan layar pencarian RKD. Pada kontrol data terdapat tombol Ubah Qty Diberikan, tombol ini berguna untuk mengubah kuantiti nilai barang yang dipilih pada informasi detail, tombol Beri Keterangan berguna untuk menambahkan keterangan pada barang yang dipilih pada informasi detail, sedangkan tombol Cek Stok Barang digunakan untuk mengecek berapakah stok barang yang ada pada gudang barang jadi dengan menampilkan kotak pesan dialog berikut :
L23 Tampilan Layar View BPBJ Layar ini digunakan untuk menampilkan semua daftar BPBJ yang ada di dalam database, data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user.
L24 Transaksi BSTPJ Tampilan Layar Add BSTPJ Layar ini digunakan untuk menambah data BSTPJ ke dalam database. Kode Barang dicari dengan menggunakan tombol Cek dan Cari. Jika mengguanakan tombol Cari, maka user harus memasukan kode barang terlebih dahulu. Setelah tombol Cek ditekan maka nama barang akan ditampilkan. Jika menggunakan tombol Cari, maka akan ditampilkan layar pencarian barang. Pada kontrol data, tombol Tambah digunakan untuk menambahkan barang ke dalam daftar barang, tombol Ubah Qty digunakan untuk mengubah kuantiti barang yang telah dipilih di daftar barang, tombol Hapus digunakan untuk menghapus yang telah dipilih di daftar barang, sedangkan tombol Reset digunakan untuk menghapus semua barang yang ada di daftar barang.
L25 Tampilan Layar View BSTPJ Layar ini digunakan untuk menampilkan semua data BSTPJ yang ada di dalam database, data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user.
L26 Tampilan Layar Update / Delete BSTPJ Layar ini digunakan untuk mengubah atau menghapus data BSTPJ berdasarkan kode BSTPJ. Kode BSTPJ dicari dengan menggunakan tombol Cek dan Cari. Jika menggunakan tombol Cek maka user harus memasukan kode BSTPJ terlebih dahulu. Setelah menekan tombol Cek maka nama barang akan ditampilkan. Jika menggunakan tombol Cari, maka akan ditampilkan layar pencarian barang. Pada kontrol data, tombol Tambah digunakan untuk menambahkan dan meng-update barang ke dalam daftar barang, tombol Ubah Qty digunakan untuk melakukan update terhadap kuantiti barang yang telah dipilih di daftar barang, tombol Hapus digunakan untuk menghapus barang yang telah dipilih di daftar barang. Sedangkan tombol Delete digunakan untuk menghapus BSTPJ berdasarkan kode BSTPJ.
L27 Transaksi Pembayaran Tampilan Layar Add Pembayaran Layar ini digunakan untuk menambah data pembayaran ke dalam database. Kode penagihan dan kode kolektor didapat dengan menggunakan tombol Cek dan Cari. Jika menggunakan tombol Cek maka user harus memasukan kode penagihan dan kode kolektor terlebih dahulu. Setelah menekan tombol Cek maka nama barang akan ditampilkan. Jika menggunakan tombol Cari, akan ditampilkan layar pencarian penagihan dan pegawai.
L28 Tampilan Layar View Pembayaran Layar ini digunakan untuk menampilkan semua data pembayaran yang ada di dalam database, data ditampilkan berdasarkan rentang waktu yang telah ditentukan oleh user.
L29 Transaksi Penagihan TampilanLayar Add Penagihan Layar ini digunakan untuk menambah data penagihan milik pelanggan. User harus menentukan periode tagihan yang akan dibuat, selain itu user juga harus menentukan jenis pembayaran pelanggan. Tombol Cari digunakan untuk menampilkan layar pencarian pelanggan. Pada layar pencarian pelanggan, daftar pelanggan yang akan ditampilkan adalah hanya pelanggan yang belum dibuatkan penagihan. Tombol Hitung digunakan untuk menghitung jumlah pembayaran setelah dikurangi discount dan ditambah pajak.
L30 Tampilan Layar View Penagihan Bulanan Layar ini digunakan untuk menampilkan data penagihan pelanggan dari database. Data penagihan ditampilkan berdasarkan status tagihan, jenis pembayaran dan rentang waktu yang telah ditentukan oleh user.
L31 Transaksi Purchase Order Tampilan Layar Add PO Layar ini digunakan untuk menambah data PO ke dalam database. User mencari kode Pelanggan yang akan dibuatkan PO dengan menggunakan tombol Cari, sehingga akan ditampilkan layar pencarian pelanggan. Data pelanggan yang muncul adalah hanya pelanggan yang mempunyai pesanan barang sesuai dengan jadwal pengiriman yang ada di BP. Pada kontrol data, tombol Ubah Jml / Kirim digunakan untuk mengubah jumlah kirim barang yang ada di informasi detail, tombol Hapus digunakan untuk menghapus barang yang ada di informasi detail, sedangkan tombol Ubah ke Default digunakan untuk mengembalikan pesanan barang sesuai dengan BP milik pelanggan.
L32 Tampilan Layar View PO Layar ini digunakan untuk menampilkan data PO dari database. Data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user.
L33 Tampilan Layar Update / Delete PO Layar ini digunakan untuk mengubah atau menghapus data PO berdasarkan kode PO. Kode PO dicari dengan menggunakan tombol Cek dan Cari. Jika menggunakan tombol Cek maka user harus memasukan kode PO terlebih dahulu. Setelah menekan tombol Cek maka informasi tentang kode PO tersebut akan ditampilkan. Jika menggunakan tombol Cari, maka akan ditampilkan layar pencarian PO. Pada kontrol data, tombol Ubah Jml / Kirim digunakan untuk melakukan update jumlah barang yang ada di dalam informasi detail, sedangkan tombol Hapus digunakan untuk menghapus barang yang telah dipilih. Tombol Delete digunakan untuk menghapus PO berdasarkan kode PO.
L34 Transaksi Retur Jual Tampilan Layar Add Retur Jual Layar ini digunakan untuk menambah data retur ke dalam database. Kode penagihan dan kode kolektor didapat dengan menggunakan tombol Cek dan Cari. Jika menggunakan tombol Cek maka user harus memasukan kode penagihan dan kode kolektor terlebih dahulu. Setelah menekan tombol Cek maka nama barang akan ditampilkan. Jika menggunakan tombol Cari, akan ditampilkan layar pencarian penagihan dan pegawai.
L35 Tampilan Layar View Retur Jual Layar ini digunakan untuk menampilkan data retur pelanggan dari database. Data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user.
L36 Tampilan Layar Update / Delete Retur Layar ini digunakan untuk mengubah atau menghapus data retur berdasarkan kode retur. Kode retur dan kode barang diisi dengan menggunakan tombol Cek dan Cari. Jika menggunakan tombol Cek maka user harus memasukan kode penagihan dan kode kolektor terlebih dahulu. Setelah menekan tombol Cek maka nama barang akan ditampilkan. Jika menggunakan tombol Cari, akan ditampilkan layar pencarian retur dan barang. Pada layar ini semua field dapat diubah kecuali kode retur, kode pelanggan, dan nama pelanggan.
L37 Transaksi RKD Tampilan Layar Add RKD Layar ini digunakan untuk menambah data RKD ke dalam database. User dapat menampilkan daftar PO berdasarkan kode pelanggan, kelurahan pelanggan, kecamatan pelanggan, serta kode RKD lama dengan menggunakan tombol Cari yang tersedia.. Setelah itu user menekan tombol Tampil untuk menampilkan kode PO ke dalam daftar PO yang berada di sebelah kiri. Jika user meng-click kode PO yang terdapat di sebelah kiri, maka keterangan pelanggan untuk PO tersebut akan ditampilkan dan diberi warna latar yang sama dengan daftar PO sebelah kiri (warna kuning). Untuk menambahkan daftar PO yang letaknya di sebelah kanan, maka user harus menekan tombol Tambah ke RKD. Jika user meng-click kode PO yang terdapat di sebelah kanan, maka keterangan PO tersebut akan ditampilkan dan diberi warna latar yang sama dengan daftar PO di sebelah kanan (warna biru). Statistik PO digunakan untuk memberitahukan jumlah PO yang ada pada tanggal yang terdapat di Tgl. PO, statistik ini terdiri dari Total All PO yang memberikan informasi mengenai total seluruh PO pada tanggal tersebut, Handled PO yang memberikan informasi mengenai jumlah PO yang sudah diproses pada tanggal tersebut, dan Remaining PO yang memberikan informasi mengenai jumlah PO yang belum diproses pada tanggal tersebut.
L38 Statistik barang berisi informasi jumlah semua barang yang ada di dalam daftar PO sebelah kanan. Kendaraan dapat dipilih dengan menekan tombol Cari di samping field nomor polisi untuk menampilkan layar pencarian kendaraan. Driver, helper 1, dan helper 2 diisi dengan menekan tombol Cari di sampingnya untuk menampilkan layar pencarian pegawai. Untuk menghapus kode PO dari daftar PO di sebelah kanan, user dapat menggunakan tombol Remove yang ada di kontrol operasi. Tampilan Layar View RKD Layar ini digunakan untuk menampilkan data RKD dari database. Data ditampilkan berdasarkan rentang waktu yang telah ditentukan oleh user. Jika user men-double click hasil data yang ditampilkan di tabel, maka informasi dari RKD tersebut akan ditampilkan.
L39 Tampilan Layar Update RKD Layar ini digunakan untuk mengubah atau menghapus data RKD berdasarkan kode RKD. Kode RKD diperoleh dengan menekan tombol Cari yang ada di sebelah kanannya sehinggan layar pencarian RKD akan ditampilkan. Tombol Tambah dan Update ke RKD digunakan untuk menambah PO ke dalam daftar PO sebelah kanan dan langsung disimpan ke dalam database. Tombol Update digunakan untuk melakukan update RKD terhadap nomor polisi, tanggal RKD, Driver, Helper 1, dan Helper 2
L40 Transaksi Surat Jalan Tampilan Layar Add SJ Layar ini digunakan untuk menambah data SJ ke dalam database. User akan memilih RKD berdasarkan tanggal pembuatan RKD dan kemudian akan dimasukkan ke dalam daftar RKD dengan menekan tombol Tampil. Untuk membuat SJ yang baru, user harus memilih kode RKD dari daftar RKD yang telah ditampilkan dan menekan tombol Generate SJ, sehingga secara otomatis sistem akan membuatkan SJ yang kemudian akan dicetak dengan menggunakan tombol Print dan Print All. Tombol Print digunakan untuk mencetak SJ tertentu dari daftar SJ, sedangkan tombol Print All digunakan untuk mencetak semua SJ yang ada di daftar SJ.
L41 Tampilan Layar View SJ Layar ini digunakan untuk menampilkan menampilkan semua daftar SJ pelanggan dari database. Data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user
L42 Update BPBJ Tampilan Layar Update BPBJ Layar ini digunakan untuk mengubah data BPBJ berdasarkan kode BPBJ yang dapat dicari dengan menggunakan tombol Cek dan Cari. Jika user menggunakan tombol Cek maka user harus memasukan kode BPBJ terlebih dahulu. Setelah menekan tombol Cek maka informasi detail BPBJ akan ditampilkan. Jika menggunakan tombol Cari, akan ditampilkan layar pencarian BPBJ.
L43 Tampilan Layar View BPBJ Layar ini digunakan untuk menampilkan semua daftar BPBJ yang ada di dalam database, data ditampilkan berdasarkan rentang waktu yang telah ditentukan oleh user.
L44 Update Surat Jalan Tampilan Layar Update SJ Layar ini digunakan untuk mengubah data SJ berdasarkan kode SJ yang dapat dicari dengan menggunakan tombol Cek dan Cari. Jika user menggunakan tombol Cek maka user harus memasukan kode SJ terlebih dahulu. Setelah menekan tombol Cek maka informasi detail SJ akan ditampilkan. Jika menggunakan tombol Cari, maka akan ditampilkan layar pencarian SJ.
L45 Tampilan Layar View SJ Layar ini digunakan untuk menampilkan seluruh daftar SJ pelanggan dari database. Data ditampilkan berdasarkan rentang waktu yang ditentukan oleh user
L46 Laporan Penjualan Tampilan Layar Laporan Penjualan
L47 Laporan Persediaan Barang Tampilan Layar Laporan Persediaan Barang
L48 Laporan Retur Jual Tampilan Layar Laporan Retur Jual Laporan Barang Masuk Tampilan Layar Laporan Barang Jadi Masuk
L49 Laporan Barang Keluar Layar Pencarian Tampilan Layar Laporan Barang Keluar Tampilan Layar Pencarian Wilayah
L50 Tampilan Layar Pencarian BPBJ Tampilan Layar Pencarian Barang
L51 Tampilan Layar Pencarian Jabatan Tampilan Layar Pencarian Kecamatan
L52 Tampilan Layar Pencarian Kelurahan Layar Pencarian Kendaraan
L53 Tampilan Layar Pencarian Kode Pos Tampilan Layar Pencarian Kota
L54 Tampilan Layar Pencarian Pegawai Tampilan Layar Pencarian Pelanggan
L55 Tampilan Layar Pencarian PO Tampilan Layar Pencarian RKD
L56 Tampilan Layar Pencarian SJ Tampilan Layar Pencarian Tagihan
L57 CODING CREATE TABLE CREATE TABLE Jabatan ( kodejabatan CHAR(6) PRIMARY KEY NOT NULL, namajabatan VARCHAR(30) UNIQUE NOT NULL, CONSTRAINT P_kodeJabatan CHECK (LEN(kodeJabatan)=6), CONSTRAINT cek_kodejabatan CHECK (SUBSTRING(kodeJabatan,1,3) ='JBT'), CONSTRAINT cek_urutjabatan CHECK (CT(SUBSTRING(kodeJabatan,4,3) INT) > 0 AND CT(SUBSTRING(kodeJabatan,4,3) INT) <= 999) ) CREATE TABLE Barang ( kodebarang CHAR(6) PRIMARY KEY NOT NULL, namabarang VARCHAR(30) UNIQUE NOT NULL, merek VARCHAR(30) NOT NULL, satuan VARCHAR(30)NOT NULL, stok SMALLINT NOT NULL, CONSTRAINT kodebarang CHECK (LEN(kodeBarang)=6), CONSTRAINT cek_kodebarang CHECK (SUBSTRING (kodebarang,1,3)='brg'), CONSTRAINT cek_urutbarang CHECK (CT(SUBSTRING(kodeBarang,4,3) INT) >= 0 AND CT(SUBSTRING(kodeBarang,4,3) INT) <= 999), CONSTRAINT cek_stokakhir CHECK (stok >= 0) ) CREATE TABLE Kota ( kodekota CHAR(6) PRIMARY KEY NOT NULL, namakota VARCHAR(30) UNIQUE NOT NULL, CONSTRAINT P_kodeKota CHECK (LEN(kodeKota)=6), CONSTRAINT cek_kodekota CHECK (SUBSTRING(kodeKota,1,3) ='KOT'), CONSTRAINT cek_urutkota CHECK (CT(SUBSTRING(kodeKota,4,3) INT) > 0 AND CT(SUBSTRING(kodeKota,4,3) INT) <= 999) ) CREATE TABLE Kecamatan ( kodekec CHAR(6) PRIMARY KEY NOT NULL, namakec VARCHAR(30) NOT NULL, CONSTRAINT P_kodeKec CHECK (LEN(kodeKec)=6), CONSTRAINT cek_kodekec CHECK (SUBSTRING(kodeKec,1,3) ='KEC'), CONSTRAINT cek_urutkecamatan CHECK (CT(SUBSTRING(kodeKec,4,3) INT) > 0 AND CT(SUBSTRING(kodeKec,4,3) INT) <= 999) )
L58 CREATE TABLE Pos ( kodepos INT PRIMARY KEY NOT NULL, CONSTRAINT P_kodePos CHECK (LEN(kodePos)=5) ) CREATE TABLE Kelurahan ( kodekel CHAR(6) PRIMARY KEY NOT NULL, namakel VARCHAR(30) NOT NULL, kodekec CHAR(6) NOT NULL, kodekota CHAR(6) NOT NULL, kodepos INT NOT NULL, FOREIGN KEY(kodeKec) REFERENCES kecamatan(kodekec) ON UPDATE CCADE ON DELETE NO ACTION, FOREIGN KEY(kodeKota) REFERENCES Kota(kodeKota) ON UPDATE CCADE ON DELETE NO ACTION, FOREIGN KEY(kodePos) REFERENCES pos(kodepos) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodeKel CHECK (LEN(kodeKel)=6), CONSTRAINT cek_kodekel CHECK (SUBSTRING(kodeKel,1,3) ='KEL'), CONSTRAINT cek_urutkelurahan CHECK (CT(SUBSTRING(kodeKel,4,3) INT) > 0 AND CT(SUBSTRING(kodeKel,4,3) INT) <= 999) ) CREATE TABLE Pegawai ( kodepegawai CHAR(10) PRIMARY KEY NOT NULL, namapegawai VARCHAR(30) NOT NULL, alamatpegawai VARCHAR(100) NOT NULL, kodekel CHAR(6) NOT NULL, tgllahir DATETIME NOT NULL, jeniskelamin CHAR(1) NOT NULL, tglmasukkerja DATETIME NOT NULL, notelepon VARCHAR(12), nohp VARCHAR(12), kodejabatan CHAR(6) NOT NULL, statuspegawai BIT NOT NULL, FOREIGN KEY (kodekel) REFERENCES kelurahan(kodekel) ON UPDATE CCADE ON DELETE NO ACTION, FOREIGN KEY (kodejabatan) REFERENCES Jabatan(kodeJabatan) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodePegawai CHECK (LEN(kodePegawai)=10), CONSTRAINT cek_kodepegawai CHECK (SUBSTRING(kodePegawai,1,3)= 'PGW'), CONSTRAINT cek_tahunpegawai CHECK (CT(SUBSTRING(kodePegawai,4,2) INT) >= 0 AND CT(SUBSTRING(kodePegawai,4,2) INT) <= 99),
L59 ) CONSTRAINT cek_bulanpegawai CHECK (CT(SUBSTRING(kodePegawai,6,2) INT) > 0 AND CT(SUBSTRING(kodePegawai,6,2) INT) < 13), CONSTRAINT cek_urutpegawai CHECK (CT(SUBSTRING(kodePegawai,8,3) INT) > 0 AND CT(SUBSTRING(kodePegawai,8,3) INT) <= 999), CONSTRAINT cek_jeniskelamin CHECK (jeniskelamin = 'L' OR jeniskelamin = 'P') CREATE TABLE Pelanggan ( kodepelanggan CHAR(10) PRIMARY KEY NOT NULL, namapelanggan VARCHAR(30) NOT NULL, alamatpengiriman VARCHAR(100) NOT NULL, kodekelkirim CHAR(6) NOT NULL, alamatpenagihan VARCHAR(100) NOT NULL, kodekeltagih CHAR(6) NOT NULL, NPWP VARCHAR(25), statuspelanggan BIT NOT NULL, CONSTRAINT P_kodePelanggan CHECK (LEN(kodePelanggan)=10), CONSTRAINT cek_kodepelanggan CHECK (SUBSTRING(kodePelanggan,1,3)='PLG'), CONSTRAINT cek_tahunpelanggan CHECK (CT(SUBSTRING(kodePelanggan,4,2) INT) >= 0 AND CT(SUBSTRING(kodePelanggan,4,2) INT) <= 99), CONSTRAINT cek_bulanpelanggan CHECK (CT(SUBSTRING(kodePelanggan,6,2) INT) > 0 AND CT(SUBSTRING(kodePelanggan,6,2) INT) < 13), CONSTRAINT cek_urutpelanggan CHECK (CT(SUBSTRING(kodePelanggan,8,3) INT) > 0 AND CT(SUBSTRING(kodePelanggan,8,3) INT) <= 999) ) CREATE TABLE TeleponPlgn ( notelepon VARCHAR(12) NOT NULL, kodepelanggan CHAR(10) NOT NULL, PRIMARY KEY (notelepon,kodepelanggan), FOREIGN KEY (kodepelanggan) REFERENCES Pelanggan(kodePelanggan) ON UPDATE CCADE ON DELETE CCADE ) CREATE TABLE FaxPlgn ( nofax VARCHAR(12) NOT NULL, kodepelanggan CHAR(10) NOT NULL, PRIMARY KEY (nofax,kodepelanggan),
L60 ) FOREIGN KEY (kodepelanggan) REFERENCES Pelanggan(kodePelanggan) ON UPDATE CCADE ON DELETE CCADE CREATE TABLE Kendaraan ( nopolisi VARCHAR(8) PRIMARY KEY NOT NULL, merekmobil VARCHAR(30) NOT NULL, tipe VARCHAR(30) NOT NULL, tahun SMALLINT NOT NULL, kapasitasstd SMALLINT NOT NULL, kapasitasopt SMALLINT NOT NULL, statuskendaraan BIT NOT NULL, keterangan VARCHAR(100), CONSTRAINT P_noPolisi CHECK (LEN(noPolisi)>= 2), CONSTRAINT P_tahun CHECK (LEN(tahun)=4), CONSTRAINT cek_kapasitasstd CHECK (kapasitasstd > 0), CONSTRAINT cek_kapasitasopt CHECK (kapasitasopt > 0) ) CREATE TABLE BP ( kodebp CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, jenispembayaran CHAR(1) NOT NULL, jmlpinjamangalon SMALLINT NOT NULL, hargapinjamangalon MONEY NOT NULL, statusbp BIT NOT NULL, kodepelanggan CHAR(10) NOT NULL, kodepegawai CHAR(10) NOT NULL, FOREIGN KEY (kodepelanggan) REFERENCES Pelanggan(kodePelanggan) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_jmlpinjamangalon CHECK (jmlpinjamangalon >= 0), CONSTRAINT P_kodeBP CHECK (LEN(kodeBP)=10), CONSTRAINT cek_transaksibp CHECK (SUBSTRING(kodeBP,1,2)='BP'), CONSTRAINT cek_tahunbp CHECK (CT(SUBSTRING(kodeBP,3,2) INT) >= 0 AND CT(SUBSTRING(kodeBP,3,2) INT) <= 99), CONSTRAINT cek_bulanbp CHECK (CT(SUBSTRING(kodeBP,5,2) INT) > 0 AND CT(SUBSTRING(kodeBP,5,2) INT) < 13), CONSTRAINT cek_urutbp CHECK (CT(SUBSTRING(kodeBP,7,4) INT) > 0 AND CT(SUBSTRING(kodeBP,7,4) INT) <= 9999), CONSTRAINT cek_jenispembayaran CHECK (jenispembayaran in ('L','K')) ) CREATE TABLE BPDetail ( kodebp CHAR(10) NOT NULL,
L61 ) kodebarang CHAR(6) NOT NULL, hargabarang MONEY NOT NULL, jmldefaultkirim SMALLINT NOT NULL, PRIMARY KEY (kodebp,kodebarang), FOREIGN KEY (kodebp) REFERENCES BP(kodeBP) ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang(kodeBarang) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_hargabarang CHECK (hargabarang > 0), CONSTRAINT cek_jmldefaultkirim CHECK (jmldefaultkirim >= 0) CREATE TABLE JadwalKirim ( harikirim VARCHAR(6) NOT NULL, kodebp CHAR(10) NOT NULL, PRIMARY KEY (harikirim,kodebp), FOREIGN KEY (kodebp) REFERENCES BP(kodeBP) ON UPDATE CCADE ON DELETE CCADE, CONSTRAINT cek_harikirim CHECK (harikirim IN ('Senin','Selasa','Rabu','Kamis','Jumat','Sabtu','Minggu')) ) CREATE TABLE RKD ( koderkd CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, keterangan VARCHAR(100), kodepegawai CHAR(10) NOT NULL, kodedriver CHAR(10) NOT NULL, kodehelper1 CHAR(10) NOT NULL, kodehelper2 CHAR(10) NOT NULL, kodekendaraan VARCHAR(8) NOT NULL, FOREIGN KEY (kodekendaraan) REFERENCES Kendaraan(noPolisi) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodeRKD CHECK (LEN(kodeRKD)=10), CONSTRAINT cek_transaksirkd CHECK (SUBSTRING(kodeRKD,1,2)='RD'), CONSTRAINT cek_tahunrkd CHECK (CT(SUBSTRING(kodeRKD,3,2) INT) >= 0 AND CT(SUBSTRING(kodeRKD,3,2) INT) <= 99), CONSTRAINT cek_bulanrkd CHECK (CT(SUBSTRING(kodeRKD,5,2) INT) > 0 AND CT(SUBSTRING(kodeRKD,5,2) INT) < 13), CONSTRAINT cek_urutrkd CHECK (CT(SUBSTRING(kodeRKD,7,4) INT) > 0 AND CT(SUBSTRING(kodeRKD,7,4) INT) <= 9999) ) CREATE TABLE PO (
L62 ) kodepo CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, kodepegawai CHAR(10) NOT NULL, koderkd CHAR(10), kodebp CHAR(10) NOT NULL, FOREIGN KEY (koderkd) REFERENCES RKD(kodeRKD) ON UPDATE CCADE ON DELETE NO ACTION, FOREIGN KEY (kodebp) REFERENCES BP(kodeBP) ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodePO CHECK (LEN(kodePO)=10), CONSTRAINT cek_transaksipo CHECK (SUBSTRING(kodePO,1,2)='PO'), CONSTRAINT cek_tahunpo CHECK (CT(SUBSTRING(kodePO,3,2) INT) >= 0 AND CT(SUBSTRING(kodePO,3,2) INT) <= 99), CONSTRAINT cek_bulanpo CHECK (CT(SUBSTRING(kodePO,5,2) INT) > 0 AND CT(SUBSTRING(kodePO,5,2) INT) < 13), CONSTRAINT cek_urutpo CHECK (CT(SUBSTRING(kodePO,7,4) INT) > 0 AND CT(SUBSTRING(kodePO,7,4) INT) <= 9999) CREATE TABLE PODetail ( kodepo CHAR(10) NOT NULL, kodebarang CHAR(6) NOT NULL, qtydiminta SMALLINT NOT NULL, PRIMARY KEY (kodepo,kodebarang), FOREIGN KEY (kodepo) REFERENCES PO ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_qtydiminta CHECK (qtydiminta > 0) ) CREATE TABLE Penagihan ( kodepenagihan CHAR(10) PRIMARY KEY NOT NULL, tglpenagihan DATETIME NOT NULL, tgljatuhtempo DATETIME NOT NULL, tglpembayaran DATETIME, jumlah MONEY NOT NULL, disc FLOAT NOT NULL, ppn FLOAT NOT NULL, totalpenagihan MONEY NOT NULL, statustagih BIT NOT NULL, kodepegawaibyr CHAR(10), kodepegawaitgh CHAR(10), kodekolektor CHAR(10),
L63 ) CONSTRAINT P_kodePenagihan CHECK (LEN(kodePenagihan)=10), CONSTRAINT cek_transaksitagih CHECK (SUBSTRING(kodePenagihan,1,2)='PH'), CONSTRAINT cek_tahuntagih CHECK (CT(SUBSTRING(kodePenagihan,3,2) INT) >= 0 AND CT(SUBSTRING(kodePenagihan,3,2) INT) <= 99), CONSTRAINT cek_bulantagih CHECK (CT(SUBSTRING(kodePenagihan,5,2) INT) > 0 AND CT(SUBSTRING(kodePenagihan,5,2) INT) < 13), CONSTRAINT cek_uruttagih CHECK (CT(SUBSTRING(kodePenagihan,7,4) INT) > 0 AND CT(SUBSTRING(kodePenagihan,7,4) INT) <= 9999) CREATE TABLE SJ ( kodesj CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, totaldijual MONEY, kodepegawai CHAR(10) NOT NULL, kodepo CHAR(10) UNIQUE NOT NULL, kodepenagihan CHAR(10), FOREIGN KEY (kodepo) REFERENCES PO ON UPDATE CCADE ON DELETE NO ACTION, FOREIGN KEY (kodepenagihan) REFERENCES Penagihan ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodeSJ CHECK (LEN(kodeSJ)=10), CONSTRAINT cek_transaksisj CHECK (SUBSTRING(kodeSJ,1,2)='SJ'), CONSTRAINT cek_tahunsj CHECK (CT(SUBSTRING(kodeSJ,3,2) INT) >= 0 AND CT(SUBSTRING(kodeSJ,3,2) INT) <= 99), CONSTRAINT cek_bulansj CHECK (CT(SUBSTRING(kodeSJ,5,2) INT) > 0 AND CT(SUBSTRING(kodeSJ,5,2) INT) < 13), CONSTRAINT cek_urutsj CHECK (CT(SUBSTRING(kodeSJ,7,4) INT) > 0 AND CT(SUBSTRING(kodeSJ,7,4) INT) <= 9999) ) CREATE TABLE SJDetail ( kodesj CHAR(10) NOT NULL, kodebarang CHAR(6) NOT NULL, qtydijual SMALLINT, jumlahdijual MONEY, keterangan VARCHAR(100), PRIMARY KEY (kodesj,kodebarang), FOREIGN KEY (kodesj) REFERENCES SJ ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_qtydijual CHECK (qtydijual >= 0) )
L64 CREATE TABLE BPBJ ( kodebpbj CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, koderkd CHAR(10) NOT NULL, kodepegawai CHAR(10) NOT NULL, FOREIGN KEY (koderkd) REFERENCES RKD ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT P_kodeBPBJ CHECK (LEN(kodeBPBJ)=10), CONSTRAINT cek_transaksibpbj CHECK (SUBSTRING(kodeBPBJ,1,2)='PB'), CONSTRAINT cek_tahunbpbj CHECK (CT(SUBSTRING(kodeBPBJ,3,2) INT) >= 0 AND CT(SUBSTRING(kodeBPBJ,3,2) INT) <= 99), CONSTRAINT cek_bulanbpbj CHECK (CT(SUBSTRING(kodeBPBJ,5,2) INT) > 0 AND CT(SUBSTRING(kodeBPBJ,5,2) INT) < 13), CONSTRAINT cek_urutbpbj CHECK (CT(SUBSTRING(kodeBPBJ,7,4) INT) > 0 AND CT(SUBSTRING(kodeBPBJ,7,4) INT) <= 9999) ) CREATE TABLE BPBJDetail ( kodebpbj CHAR(10) NOT NULL, kodebarang CHAR(6) NOT NULL, qtydiberikan SMALLINT NOT NULL, qtysisabarang SMALLINT, keterangan VARCHAR(100), PRIMARY KEY (kodebpbj,kodebarang), FOREIGN KEY (kodebpbj) REFERENCES BPBJ ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_qtydiberikan CHECK (qtydiberikan > 0), CONSTRAINT cek_qtysisabarang CHECK (qtydiberikan >= 0) ) CREATE TABLE BSTPJ ( kodebstpj CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, kodepegawai CHAR(10) NOT NULL, CONSTRAINT P_kodeBSTPJ CHECK (LEN(kodeBSTPJ)=10), CONSTRAINT cek_transaksibstpj CHECK (SUBSTRING(kodeBSTPJ,1,2)='TB'), CONSTRAINT cek_tahunbstpj CHECK (CT(SUBSTRING(kodeBSTPJ,3,2) INT) >= 0 AND CT(SUBSTRING(kodeBSTPJ,3,2) INT) <= 99), CONSTRAINT cek_bulanbstpj CHECK (CT(SUBSTRING(kodeBSTPJ,5,2) INT) > 0 AND CT(SUBSTRING(kodeBSTPJ,5,2) INT) < 13), CONSTRAINT cek_urutbstpj CHECK (CT(SUBSTRING(kodeBSTPJ,7,4) INT) > 0 AND CT(SUBSTRING(kodeBSTPJ,7,4) INT) <= 9999)
L65 ) CREATE TABLE BSTPJDetail ( kodebstpj CHAR(10) NOT NULL, kodebarang CHAR(6) NOT NULL, qtymasuk SMALLINT NOT NULL, PRIMARY KEY (kodebstpj,kodebarang), FOREIGN KEY (kodebstpj) REFERENCES BSTPJ ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_qtymasuk CHECK (qtymasuk > 0) ) CREATE TABLE ReturJual ( kodereturjual CHAR(10) PRIMARY KEY NOT NULL, tgl DATETIME NOT NULL, kodepelanggan CHAR(10) NOT NULL, kodepegawai CHAR(10) NOT NULL, FOREIGN KEY (kodepelanggan) REFERENCES Pelanggan ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT kodereturjual CHECK (LEN(kodeReturJual)=10), CONSTRAINT cek_transaksiretur CHECK (SUBSTRING(kodeReturJual,1,2)='RJ'), CONSTRAINT cek_tahunretur CHECK (CT(SUBSTRING(kodeReturJual,3,2) INT) >= 0 AND CT(SUBSTRING(kodeReturJual,3,2) INT) <= 99), CONSTRAINT cek_bulanretur CHECK (CT(SUBSTRING(kodeReturJual,5,2) INT) > 0 AND CT(SUBSTRING(kodeReturJual,5,2) INT) < 13), CONSTRAINT cek_urutretur CHECK (CT(SUBSTRING(kodeReturJual,7,4) INT) > 0 AND CT(SUBSTRING(kodeReturJual,7,4) INT) <= 9999), ) CREATE TABLE ReturJualDetail ( kodereturjual CHAR(10) NOT NULL, kodebarang CHAR(6) NOT NULL, qtyretur SMALLINT NOT NULL, keterangan VARCHAR(100), PRIMARY KEY (kodereturjual,kodebarang), FOREIGN KEY (kodereturjual) REFERENCES ReturJual ON UPDATE CCADE ON DELETE CCADE, FOREIGN KEY (kodebarang) REFERENCES Barang ON UPDATE CCADE ON DELETE NO ACTION, CONSTRAINT cek_qtyretur CHECK (qtyretur > 0) )
L66 CODING CREATE PROCEDURE CREATE PROC insjabatan @nmjabatan VARCHAR(30) DECLARE @lastcode CHAR(6) DECLARE @newcode CHAR(6) DECLARE @temp CHAR(3) IF NOT EXISTS (SELECT kodejabatan FROM Jabatan) INSERT INTO Jabatan (kodejabatan, namajabatan) VALUES ('JBT001',@nmJabatan) ELSE SELECT TOP 1 @lastcode = kodejabatan FROM Jabatan ORDER BY kodejabatan DESC SET @temp = CT((CT(SUBSTRING(@lastCode,4,3) INT) + 1) CHAR) SET @newcode = 'JBT' + REPLICATE('0', 3 - LEN(@temp)) + CT((@temp) CHAR) INSERT INTO Jabatan (kodejabatan, namajabatan) VALUES (@newcode, @nmjabatan) CREATE PROC insbarang @nmbarang VARCHAR(30), @merek CHAR(30), @satuan CHAR(30), @stok SMALLINT DECLARE @lastcode CHAR(6) DECLARE @newcode CHAR(6) DECLARE @temp CHAR(3) IF NOT EXISTS (SELECT kodebarang from Barang) INSERT INTO Barang(kodeBarang,namaBarang,merek,satuan,stok) VALUES ('BRG001',@nmBarang,@merek,@satuan,@stok) ELSE SELECT TOP 1 @lastcode = kodebarang FROM Barang ORDER BY kodebarang DESC SET @temp = CT((CT(SUBSTRING(@lastCode,4,3) INT) + 1) CHAR) SET @newcode = 'BRG' + REPLICATE('0',3 - LEN(@temp)) + @temp
L67 INSERT INTO Barang(kodeBarang,namaBarang,merek,satuan,stok) VALUES (@newcode,@nmbarang,@merek,@satuan,@stok) CREATE PROC inskota @nmkota VARCHAR(30) DECLARE @lastcode CHAR(6) DECLARE @newcode CHAR(6) DECLARE @temp CHAR(3) IF NOT EXISTS (SELECT kodekota from Kota) INSERT INTO Kota VALUES ('KOT001',@nmKota) ELSE SELECT TOP 1 @lastcode = kodekota FROM Kota ORDER BY kodekota DESC SET @temp = CT((CT(SUBSTRING(@lastCode,4,3) INT) + 1) CHAR) SET @newcode = 'KOT' + REPLICATE('0', 3 - LEN(@temp)) + CT((@temp) CHAR) INSERT INTO Kota VALUES (@newcode,@nmkota) CREATE PROC inskecamatan @nmkecamatan VARCHAR(30) DECLARE @lastcode CHAR(6) DECLARE @newcode CHAR(6) DECLARE @temp CHAR(3) IF NOT EXISTS (SELECT kodekec from Kecamatan) INSERT INTO Kecamatan(kodeKec,namaKec) VALUES ('KEC001',@nmKecamatan) ELSE SELECT TOP 1 @lastcode = kodekec FROM Kecamatan ORDER BY kodekec DESC SET @temp = CT((CT(SUBSTRING(@lastCode,4,3) INT) + 1) CHAR) SET @newcode = 'KEC' + REPLICATE('0', 3 - LEN(@temp)) + CT((@temp) CHAR) INSERT INTO Kecamatan VALUES (@newcode,@nmkecamatan)
L68 CREATE PROC inskodepos @kodepos INT INSERT INTO Pos(kodePos) VALUES(@kodePos) GO CREATE PROC inskelurahan @namakel VARCHAR(30), @kodekec CHAR(6), @kodekota CHAR(6), @kodepos INT DECLARE @lastcode CHAR(6) DECLARE @newcode CHAR(6) DECLARE @temp CHAR(3) IF NOT EXISTS (SELECT kodekel from Kelurahan) INSERT INTO Kelurahan(kodeKel,namaKel,kodeKec,kodeKota,kodePos) VALUES ('KEL001',@namaKel,@kodeKec,@kodeKota,@kodePos) ELSE SELECT TOP 1 @lastcode = kodekel FROM Kelurahan ORDER BY kodekel DESC SET @temp = CT((CT(SUBSTRING(@lastCode,4,3) INT) + 1) CHAR) SET @newcode = 'KEL' + REPLICATE('0', 3 - LEN(@temp)) + CT((@temp) CHAR) INSERT INTO Kelurahan(kodeKel,namaKel,kodeKec,kodeKota,kodePos) VALUES (@newcode,@namakel,@kodekec,@kodekota,@kodepos) CREATE PROC inspegawai @kodepegawai CHAR(10), @namapegawai VARCHAR(30), @alamatpegawai VARCHAR(100), @kodekel CHAR(6), @tgllahir DATETIME, @jeniskelamin CHAR(1), @tglmasukkerja DATETIME, @notelepon VARCHAR(12), @nohp VARCHAR(12), @kodejabatan CHAR(6) INSERT INTO Pegawai(kodePegawai, namapegawai, alamatpegawai, kodekel, tgllahir, jeniskelamin,tglmasukkerja,notelepon,nohp,kodejabatan,statuspegawai) VALUES(@kodePegawai,@namaPegawai,@alamatPegawai,@kodeKel,@tglLahir,@je niskelamin,@tglmasukkerja,@notelepon,@nohp,@kodejabatan,1)
L69 CREATE PROC inspelanggan @kodepelanggan CHAR(10), @namapelanggan VARCHAR(30), @alamatpengiriman VARCHAR(100), @kodekelkirim CHAR(6), @alamatpenagihan VARCHAR(100), @kodekeltagih CHAR(6), @NPWP VARCHAR(25) IF EXISTS (SELECT kodekel FROM Kelurahan WHERE kodekel = @kodekelkirim) AND EXISTS (SELECT kodekel FROM Kelurahan WHERE kodekel = @kodekeltagih) INSERT INTO Pelanggan(kodePelanggan, namapelanggan, alamatpengiriman, kodekelkirim,alamatpenagihan,kodekeltagih,npwp,statuspelanggan) VALUES(@kodePelanggan,@namaPelanggan,@alamatPengiriman,@kodeKelKirim,@ alamatpenagihan,@kodekeltagih,@npwp,1) CREATE PROC instelpplgn @notelepon VARCHAR (12), @kodepelanggan CHAR(10) INSERT INTO TeleponPlgn(noTelepon,kodePelanggan) VALUES (@notelepon,@kodepelanggan) CREATE PROC insfaxplgn @nofax VARCHAR (12), @kodepelanggan CHAR(10) INSERT INTO FaxPlgn(noFax,kodePelanggan) VALUES (@nofax,@kodepelanggan) CREATE PROC inskendaraan @nopolisi VARCHAR(8), @merekmobil VARCHAR(30), @tipe VARCHAR(30), @tahun SMALLINT, @kapasitasstd SMALLINT, @kapasitasopt SMALLINT, @statuskendaraan BIT, @keterangan VARCHAR(100) INSERT INTO Kendaraan(noPolisi,merekMobil,tipe,tahun,kapasitasStd,kapasitasOpt,statusKendaraan,k eterangan) VALUES(@noPolisi, @merekmobil, @tipe, @tahun, @kapasitasstd, @kapasitasopt, @statuskendaraan,@keterangan) CREATE PROC insbp @kodebp CHAR(10), @jenispembayaran CHAR(1), @jmlpinjamangalon SMALLINT = 0, @hargapinjamangalon MONEY = 0,
L70 @kodepelanggan CHAR(10), @kodepegawai CHAR(10) DECLARE @lastactivebp CHAR(10) IF EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) TRAN T_BP SELECT @lastactivebp = kodebp from BP WHERE kodepelanggan = @kodepelanggan AND statusbp = 1 IF @lastactivebp IS NOT NULL UPDATE BP SET statusbp = 0 WHERE kodebp = @lastactivebp DELETE FROM JadwalKirim where kodebp = @lastactivebp INSERT INTO BP(kodeBP, tgl, jenispembayaran, jmlpinjamangalon, hargapinjamangalon, statusbp,kodepelanggan,kodepegawai) VALUES(@kodeBP,getdate(),@jenisPembayaran,@jmlPinjamanGalon,@hargaPinjama ngalon,1,@kodepelanggan,@kodepegawai) IF @@ERROR <> 0 PRINT 'Insert Gagal' ROLLBACK TRAN T_BP ELSE COMMIT TRAN T_BP CREATE PROC insbpdetail @kodebp CHAR(10), @kodebarang CHAR(6), @hargabarang MONEY, @jmldefaultkirim SMALLINT INSERT INTO BPDetail(kodeBP,kodeBarang,hargaBarang,jmlDefaultKirim) VALUES(@kodeBP,@kodeBarang,@hargaBarang,@jmlDefaultKirim) CREATE PROC insjadwalkirim @harikirim VARCHAR(6), @kodebp CHAR(10) INSERT INTO JadwalKirim(hariKirim,kodeBP) VALUES(@hariKirim,@kodeBP) CREATE PROC inspo @kodepo CHAR(10), @tgl DATETIME, @kodebp CHAR (10),
L71 @kodepegawai CHAR(10) IF EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) INSERT INTO PO(kodePO,tgl,kodePegawai,kodeBP) VALUES(@kodePO,@tgl,@kodePegawai,@kodeBP) CREATE PROC inspodetail @kodepo CHAR(10), @kodebarang CHAR(6), @qtydiminta SMALLINT INSERT INTO PODetail(kodePO,kodeBarang,qtyDiminta) VALUES(@kodePO,@kodeBarang,@qtyDiminta) CREATE PROC insrkd @koderkd CHAR(10), @tgl DATETIME, @keterangan VARCHAR(100), @kodepegawai CHAR(10), @kodedriver CHAR(10), @kodehelper1 CHAR(10), @kodehelper2 CHAR(10), @kodekendaraan VARCHAR(8) IF EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) AND EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodedriver) AND EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodehelper1) AND EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodehelper2) INSERT INTO RKD(kodeRKD, tgl,keterangan, kodepegawai, kodedriver, kodehelper1,kodehelper2,kodekendaraan) VALUES(@kodeRKD, @tgl, @keterangan, @kodepegawai, @kodedriver, @kodehelper1, @kodehelper2,@kodekendaraan) CREATE PROC inssj @kodepegawai CHAR(10), @kodepo CHAR(10) DECLARE @lastcode CHAR(10) DECLARE @newcode CHAR(10)
L72 DECLARE @temp CHAR(4) DECLARE @bulan CHAR(2) IF EXISTS ( SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai ) SET @lastcode = '0' SELECT TOP 1 @lastcode = kodesj FROM SJ ORDER BY kodesj DESC IF CT(MONTH(GETDATE()) CHAR(2)) < 10 SET @bulan ='0'+ CT(MONTH(GETDATE()) CHAR(2)) ELSE SET @bulan =CT(MONTH(GETDATE()) CHAR(2)) IF @lastcode = '0' OR SUBSTRING(@lastCode,3,4) <> (CT(RIGHT(YEAR(GETDATE()),2) CHAR(2)) + @bulan) SET @newcode = 'SJ' + CT(RIGHT(YEAR(GETDATE()),2) CHAR(2)) + @bulan + '0001' INSERT INTO SJ(kodeSJ,tgl,totalDijual,kodePegawai,kodePO) VALUES(@newCode,getdate(),0,@kodePegawai,@kodePO) ELSE SET @temp = CT((CT(SUBSTRING(@lastCode,7,4) INT) + 1) CHAR) SET @newcode = SUBSTRING(@lastCode,1,6) + REPLICATE('0', 4 - LEN(@temp)) + @temp INSERT INTO SJ(kodeSJ,tgl,totalDijual,kodePegawai,kodePO) VALUES(@newCode,getdate(),0,@kodePegawai,@kodePO) CREATE PROC inssjdetail @kodesj CHAR(10), @kodebarang CHAR(6), @qtydijual SMALLINT, @keterangan VARCHAR(100), @kodepegawai CHAR(10) DECLARE @jumlahdijual MONEY DECLARE @totaldijual MONEY DECLARE @harga MONEY IF EXISTS (SELECT c.kodebarang FROM SJ a INNER JOIN PO b ON a.kodepo = b.kodepo INNER JOIN PODetail c ON b.kodepo = c.kodepo WHERE c.kodebarang = @kodebarang and kodesj = @kodesj) AND EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) TRAN T_SJDetail UPDATE SJ SET kodepegawai = @kodepegawai WHERE kodesj = @kodesj
L73 SELECT @harga = hargabarang FROM SJ a INNER JOIN PO b ON a.kodepo = b.kodepo INNER JOIN BP c ON b.kodebp = c.kodebp INNER JOIN BPDetail d ON c.kodebp = d.kodebp WHERE d.kodebarang = @kodebarang AND a.kodesj = @kodesj SET @jumlahdijual = @qtydijual * @harga INSERT INTO SJDetail(kodeSJ,kodeBarang,qtyDijual,jumlahDijual,keterangan) VALUES(@kodeSJ,@kodeBarang,@qtyDijual,@jumlahDijual,@keterangan) SELECT @totaldijual = SUM(jumlahDijual) FROM SJDetail WHERE kodesj = @kodesj UPDATE SJ SET totaldijual = @totaldijual WHERE kodesj = @kodesj IF @@ERROR <> 0 PRINT 'Insert Gagal' ROLLBACK TRAN T_SJDetail ELSE COMMIT TRAN T_SJDetail CREATE PROC inspenagihan @kodetagih CHAR(10), @kodepelanggan CHAR(10), @disc FLOAT, @ppn FLOAT, @jumlah MONEY, @totalpenagihan MONEY, @kodepegawai CHAR(10) DECLARE @kodesj CHAR(10) DECLARE @bulan SMALLINT DECLARE @tahun SMALLINT SET @bulan = MONTH(GETDATE()) SET @tahun = YEAR(GETDATE()) IF EXISTS ( SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai ) TRAN T_Tagih INSERT INTO Penagihan(kodePenagihan,tglPenagihan,tglJatuhTempo,jumlah,disc,ppn,totalPenagihan, statustagih,kodepegawaitgh,kodepegawaibyr) VALUES(@kodeTagih, getdate(), DATEADD(DAY,10,getdate()),0,@disc,@ppn,0,0,@kodePegawai,@kodePegawai) DECLARE CUR1 CURSOR FOR SELECT kodesj FROM SJ a INNER JOIN PO b ON a.kodepo = b.kodepo INNER JOIN BP c ON b.kodebp = c.kodebp
L74 WHERE kodepelanggan = @kodepelanggan AND MONTH(a.tgl) = @bulan AND YEAR(a.tgl) = @tahun OPEN CUR1 FETCH NEXT FROM CUR1 INTO @kodesj WHILE @@FETCH_STATUS = 0 IF @kodesj IS NOT NULL UPDATE SJ SET kodepenagihan = @kodetagih WHERE kodesj = @kodesj FETCH NEXT FROM CUR1 INTO @kodesj CLOSE CUR1 DEALLOCATE CUR1 UPDATE Penagihan SET jumlah = @jumlah, totalpenagihan = @totalpenagihan WHERE kodepenagihan = @kodetagih IF @@ERROR <> 0 PRINT 'Insert Gagal' ROLLBACK TRAN T_Tagih ELSE COMMIT TRAN T_Tagih CREATE PROC insbpbj @kodebpbj CHAR(10), @koderkd CHAR(10), @kodepegawai CHAR(10) IF EXISTS ( SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai ) INSERT INTO BPBJ(kodeBPBJ,tgl,kodeRKD,kodePegawai) VALUES(@kodeBPBJ,getdate(),@kodeRKD,@kodePegawai) CREATE PROC insbpbjdetail @kodebpbj CHAR(10), @kodebarang CHAR(6), @qtydiberikan SMALLINT, @qtysisabarang SMALLINT = 0, @keterangan VARCHAR(50)
L75 DECLARE @lastvalue SMALLINT DECLARE @temp SMALLINT SELECT @lastvalue = stok from Barang WHERE kodebarang=@kodebarang SET @temp = @lastvalue - @qtydiberikan IF(@temp > 0) INSERT INTO BPBJDetail(kodeBPBJ,kodeBarang,qtyDiberikan,qtySisaBarang,keterangan) VALUES(@kodeBPBJ,@kodeBarang,@qtyDiberikan,@qtySisaBarang,@ketera ngan) UPDATE Barang SET stok = @temp WHERE kodebarang = @kodebarang ELSE PRINT 'Stok akhir sudah tidak dapat memenuhi barang yang diminta' CREATE PROC insbstpj @kodebstpj CHAR(10), @kodepegawai CHAR(10) IF EXISTS ( SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai ) INSERT INTO BSTPJ(kodeBSTPJ,tgl,kodePegawai) VALUES(@kodeBSTPJ,getdate(),@kodePegawai) CREATE PROC insbstpjdetail @kodebstpj CHAR(10), @kodebarang CHAR(6), @qtymasuk SMALLINT TRAN T_BSTPJDetail DECLARE @lastvalue SMALLINT DECLARE @temp SMALLINT SELECT @lastvalue = stok FROM Barang WHERE kodebarang=@kodebarang IF(@lastValue = 0) SET @temp = @lastvalue+@qtymasuk ELSE SET @temp = @lastvalue+@qtymasuk INSERT INTO BSTPJDetail(kodeBSTPJ,kodeBarang,qtyMasuk)
L76 VALUES(@kodeBSTPJ,@kodeBarang,@qtyMasuk) UPDATE Barang SET stok=@temp WHERE kodebarang=@kodebarang IF @@ERROR <> 0 PRINT 'Insert Gagal' ROLLBACK TRAN T_BSTPJDetail ELSE COMMIT TRAN T_BSTPJDetail CREATE PROC insreturjual @kodereturjual CHAR(10), @kodepelanggan CHAR(10), @kodepegawai CHAR(10) IF EXISTS ( SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai ) INSERT INTO ReturJual(kodeReturJual,tgl,kodePelanggan,kodePegawai) VALUES(@kodeReturJual,getdate(),@kodePelanggan,@kodePegawai) GO CREATE PROC insreturjualdetail @kodereturjual CHAR(10), @kodebarang CHAR(6), @qtyretur SMALLINT, @keterangan VARCHAR(100) INSERT INTO ReturJualDetail(kodeReturJual,kodeBarang,qtyRetur,keterangan) VALUES(@kodeReturJual,@kodeBarang,@qtyRetur,@keterangan) CREATE PROC updpo @kodepo CHAR(10), @koderkd CHAR(10) IF EXISTS(SELECT kodepo FROM PO WHERE kodepo = @kodepo AND koderkd IS NULL) UPDATE PO SET koderkd = @koderkd WHERE kodepo = @kodepo CREATE PROC updponull @kodepo CHAR(10) IF NOT EXISTS (SELECT kodesj FROM SJ WHERE kodepo = @kodepo )
L77 UPDATE PO SET koderkd = NULL WHERE kodepo = @kodepo CREATE PROC updpodetail @kodepo CHAR(10), @kodebarang CHAR(6), @qtydiminta INT, @kodepegawai CHAR(10) IF EXISTS(SELECT kodepo FROM PO WHERE kodepo = @kodepo AND koderkd IS NULL) AND EXISTS (SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) TRAN T_updPODetail UPDATE PO SET kodepegawai = @kodepegawai WHERE kodepo = @kodepo UPDATE PODetail SET qtydiminta = @qtydiminta WHERE kodepo = @kodepo AND kodebarang = @kodebarang IF @@ERROR <> 0 PRINT 'Update Gagal' ROLLBACK TRAN T_updPODetail ELSE COMMIT TRAN T_updPODetail CREATE PROC updpenagihan @kodepenagihan CHAR(10), @tglbayar DATETIME, @kodekolektor CHAR(10), @kodepegawai CHAR(10) UPDATE Penagihan SET tglpembayaran = @tglbayar, kodekolektor = @kodekolektor, kodepegawaibyr = @kodepegawai, statustagih = 1 WHERE kodepenagihan = @kodepenagihan CREATE PROC updpelanggan @kodepelanggan CHAR(10), @namapelanggan VARCHAR(30), @alamatpengiriman VARCHAR(100), @kodekelkirim CHAR(6), @alamatpenagihan VARCHAR(100), @kodekeltagih CHAR(6), @NPWP VARCHAR(25), @statuspelanggan BIT
L78 UPDATE Pelanggan SET namapelanggan = @namapelanggan, alamatpengiriman = @alamatpengiriman, kodekelkirim = @kodekelkirim, alamatpenagihan = @alamatpenagihan,kodekeltagih = @kodekeltagih, NPWP = @NPWP,statusPelanggan = @statuspelanggan WHERE kodepelanggan = @kodepelanggan CREATE PROC updjabatan @nmjabatan VARCHAR(30), @kodejabatan CHAR(6) UPDATE Jabatan SET namajabatan = @nmjabatan WHERE kodejabatan = @kodejabatan CREATE PROC updpegawai @kodepegawai CHAR(10), @namapegawai VARCHAR(30), @alamatpegawai VARCHAR(100), @kodekel CHAR(6), @tgllahir DATETIME, @jeniskelamin CHAR(1), @tglmasukkerja DATETIME, @notelepon VARCHAR(12), @nohp VARCHAR(12), @kodejabatan CHAR(6), @statuspegawai BIT UPDATE Pegawai SET namapegawai = @namapegawai, alamatpegawai = @alamatpegawai, kodekel = @kodekel, tgllahir = @tgllahir, jeniskelamin = @jeniskelamin, tglmasukkerja = @tglmasukkerja, notelepon = @notelepon,nohp = @nohp,kodejabatan = @kodejabatan,statuspegawai = @statuspegawai WHERE kodepegawai = @kodepegawai CREATE PROC updbarang @kodebarang CHAR(6), @nmbarang VARCHAR(30), @merek CHAR(30), @satuan CHAR(30) UPDATE Barang SET namabarang = @nmbarang, merek = @merek, satuan = @satuan WHERE kodebarang = @kodebarang CREATE PROC updkendaraan @nopolisi VARCHAR(8), @merekmobil VARCHAR(30), @tipe VARCHAR(30), @tahun SMALLINT,
L79 @kapasitasstd SMALLINT, @kapasitasopt SMALLINT, @statuskendaraan BIT, @keterangan VARCHAR(100) UPDATE Kendaraan SET merekmobil = @merekmobil, tipe = @tipe, tahun = @tahun, kapasitasstd = @kapasitasstd, kapasitasopt = @kapasitasopt, statuskendaraan = @statuskendaraan, keterangan = @keterangan WHERE nopolisi = @nopolisi CREATE PROC updrkd @koderkd CHAR(10), @keterangan VARCHAR(100), @kodepegawai CHAR(10), @kodedriver CHAR(10), @kodehelper1 CHAR(10), @kodehelper2 CHAR(10), @kodekendaraan VARCHAR(8) UPDATE RKD SET keterangan = @keterangan, kodepegawai = @kodepegawai,kodedriver = @kodedriver, kodehelper1 = @kodehelper1, kodehelper2 = @kodehelper2, kodekendaraan = @kodekendaraan WHERE koderkd = @koderkd CREATE PROC updkodepos @oldkodepos INT, @newkodepos INT UPDATE Pos SET kodepos = @newkodepos WHERE kodepos = @oldkodepos CREATE PROC updbpbjdetail @kodebpbj CHAR(10), @kodebarang CHAR(6), @qtysisa int, @ket VARCHAR(100), @kodepegawai CHAR(10) IF EXISTS(SELECT kodepegawai FROM Pegawai WHERE kodepegawai = @kodepegawai) TRAN T_updBPBJDetail UPDATE BPBJ SET kodepegawai = @kodepegawai WHERE kodebpbj = @kodebpbj UPDATE BPBJDetail SET qtysisabarang = @qtysisa, keterangan = @ket WHERE kodebpbj = @kodebpbj AND kodebarang = @kodebarang IF @@ERROR <> 0
L80 ELSE PRINT 'Update Gagal' ROLLBACK TRAN T_updBPBJDetail COMMIT TRAN T_updBPBJDetail CREATE PROC updkota @kodekota CHAR(6), @namakota VARCHAR(30) UPDATE Kota SET namakota = @namakota WHERE kodekota = @kodekota CREATE PROC updkecamatan @kodekec CHAR(6), @namakec CHAR(50) UPDATE Kecamatan SET namakec = @namakec WHERE kodekec = @kodekec CREATE PROC updkelurahan @kodekel CHAR(6), @namakel VARCHAR(50), @kodekec CHAR(6), @kodekota CHAR(6), @kodepos INT UPDATE Kelurahan SET namakel = @namakel,kodekec = @kodekec, kodekota = @kodekota, kodepos = @kodepos WHERE kodekel = @kodekel CREATE PROC updbstpjdetail @kodebstpj CHAR(10), @kodebarang CHAR(6), @newqty INT TRAN T_updBSTPJDetail IF EXISTS (SELECT kodebarang FROM BSTPJDetail WHERE kodebstpj = @kodebstpj AND kodebarang = @kodebarang) UPDATE Barang SET stok = stok - (SELECT qtymasuk FROM BSTPJDetail WHERE kodebstpj = @kodebstpj AND kodebarang = @kodebarang) WHERE kodebarang = @kodebarang UPDATE Barang SET stok = stok + @newqty WHERE kodebarang = @kodebarang UPDATE BSTPJDetail SET qtymasuk = @newqty WHERE kodebstpj = @kodebstpj AND kodebarang = @kodebarang ELSE
L81 EXEC insbstpjdetail @kodebstpj,@kodebarang,@newqty IF @@ERROR <> 0 PRINT 'Update Gagal' ROLLBACK TRAN T_updBSTPJDetail ELSE COMMIT TRAN T_updBSTPJDetail CREATE PROC updreturjual @kodereturjual CHAR(10), @kodebarang CHAR(6), @qtyretur INT, @keterangan VARCHAR(100) TRAN T_updReturJual IF EXISTS (SELECT kodebarang FROM ReturJualDetail WHERE kodereturjual = @kodereturjual AND kodebarang = @kodebarang) UPDATE ReturJualDetail SET qtyretur = @qtyretur, keterangan = @keterangan WHERE kodereturjual = @kodereturjual AND kodebarang = @kodebarang ELSE EXEC insreturjualdetail @kodereturjual,@kodebarang,@qtyretur,@keterangan IF @@ERROR <> 0 PRINT 'Update Gagal' ROLLBACK TRAN T_updReturJual ELSE COMMIT TRAN T_updReturJual CREATE PROC delpelanggan @kodeplgn CHAR(10) DELETE FROM Pelanggan WHERE kodepelanggan = @kodeplgn GO CREATE PROC deljabatan @kodejabatan CHAR(6) DELETE FROM Jabatan WHERE kodejabatan = @kodejabatan CREATE PROC delbarang @kodebarang CHAR(6) DELETE FROM Barang WHERE kodebarang = @kodebarang
L82 CREATE PROC delkendaraan @nopolisi VARCHAR(8) DELETE FROM Kendaraan WHERE nopolisi = @nopolisi CREATE PROC delpo @kodepo CHAR(10) IF EXISTS (SELECT kodepo FROM PO WHERE kodepo = @kodepo AND koderkd IS NULL) DELETE FROM PO WHERE kodepo = @kodepo CREATE PROC delpodetail @kodepo CHAR(10), @kodebarang CHAR(6) IF EXISTS (SELECT kodepo FROM PO WHERE kodepo = @kodepo AND koderkd IS NULL) DELETE FROM PODetail WHERE kodepo = @kodepo AND kodebarang = @kodebarang CREATE PROC delbstpj @kodebstpj CHAR(10) TRAN T_delBSTPJ DECLARE @kodebarang CHAR(10) DECLARE @qtymasuk INT DECLARE cur1 CURSOR FOR SELECT kodebarang, qtymasuk FROM BSTPJDetail WHERE kodebstpj = @kodebstpj OPEN cur1 FETCH NEXT FROM cur1 INTO @kodebarang,@qtymasuk WHILE (@@FETCH_STATUS <> 0) UPDATE Barang SET stok = stok - @qtymasuk WHERE kodebarang = @kodebarang FETCH NEXT FROM cur1 INTO @kodebarang,@qtymasuk DELETE FROM BSTPJ WHERE kodebstpj = @kodebstpj IF @@ERROR <> 0 PRINT 'Update Gagal'
L83 ELSE ROLLBACK TRAN T_delBSTPJ COMMIT TRAN T_delBSTPJ CREATE PROC delbstpjdetail @kodebstpj CHAR(10), @kodebarang CHAR(6) TRAN T_delBSTPJDetail UPDATE Barang SET stok = stok - (SELECT qtymasuk FROM BSTPJDetail WHERE kodebstpj = @kodebstpj AND kodebarang = @kodebarang) WHERE kodebarang = @kodebarang DELETE FROM BSTPJDetail WHERE kodebstpj = @kodebstpj AND kodebarang = @kodebarang IF @@ERROR <> 0 PRINT 'Update Gagal' ROLLBACK TRAN T_delBSTPJDetail ELSE COMMIT TRAN T_delBSTPJDetail CREATE PROC delreturjual @kodereturjual CHAR(10) DELETE FROM ReturJual WHERE kodereturjual = @kodereturjual CREATE PROC delreturjualdetail @kodereturjual CHAR(10), @kodebarang CHAR(6) DELETE FROM ReturJualDetail WHERE kodereturjual = @kodereturjual AND kodebarang = @kodebarang CREATE PROC delkota @kodekota CHAR(6) DELETE FROM Kota WHERE kodekota = @kodekota CREATE PROC delkecamatan @kodekecamatan CHAR(6) DELETE FROM Kecamatan WHERE kodekec = @kodekecamatan CREATE PROC delpos @kodepos INT
L84 DELETE FROM Pos WHERE kodepos = @kodepos CREATE PROC delkelurahan @kodekel CHAR(6) IF NOT EXISTS (SELECT kodekelkirim FROM Pelanggan WHERE kodekelkirim = @kodekel) AND NOT EXISTS (SELECT kodekeltagih FROM Pelanggan WHERE kodekeltagih = @kodekel) DELETE FROM Kelurahan WHERE kodekel = @kodekel CREATE PROC deltelpplgn @kodepelanggan CHAR(10) DELETE FROM TeleponPlgn WHERE kodepelanggan = @kodepelanggan CREATE PROC delfaxplgn @kodepelanggan CHAR(10) DELETE FROM FaxPlgn WHERE kodepelanggan = @kodepelanggan
L85 CODING CREATE TRIGGER CREATE TRIGGER trgpegawai ON Pegawai FOR UPDATE IF UPDATE (kodepegawai) update BP set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update PO set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update Penagihan set kodepegawaitgh = (select kodepegawai from inserted) where kodepegawaitgh = (select kodepegawai from deleted) update Penagihan set kodepegawaibyr = (select kodepegawai from inserted) where kodepegawaibyr = (select kodepegawai from deleted) update Penagihan set kodekolektor = (select kodepegawai from inserted) where kodekolektor = (select kodepegawai from deleted) update SJ set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update BSTPJ set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update ReturJual set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update BPBJ set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) update RKD set kodedriver = (select kodepegawai from inserted) where kodedriver = (select kodepegawai from deleted) update RKD set kodehelper1 = (select kodepegawai from inserted) where kodehelper1 = (select kodepegawai from deleted) update RKD set kodehelper2 = (select kodepegawai from inserted) where kodehelper2 = (select kodepegawai from deleted) update RKD set kodepegawai = (select kodepegawai from inserted) where kodepegawai = (select kodepegawai from deleted) CREATE TRIGGER trgpegawaidel ON Pegawai FOR DELETE IF EXISTS (SELECT kodepegawai FROM BP WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM PO WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawaitgh FROM Penagihan WHERE kodepegawaitgh = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawaibyr FROM Penagihan WHERE kodepegawaibyr = (SELECT kodepegawai FROM deleted))
L86 OR EXISTS (SELECT kodekolektor FROM Penagihan WHERE kodekolektor = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM SJ WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM BSTPJ WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM ReturJual WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM BPBJ WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodedriver FROM RKD WHERE kodedriver = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodehelper1 FROM RKD WHERE kodehelper1 = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodehelper2 FROM RKD WHERE kodehelper2 = (SELECT kodepegawai FROM deleted)) OR EXISTS (SELECT kodepegawai FROM RKD WHERE kodepegawai = (SELECT kodepegawai FROM deleted)) INSERT INTO Pegawai SELECT * FROM deleted PRINT 'Kelurahan tidak dapat dihapus' CREATE TRIGGER trgkelurahan ON Kelurahan FOR UPDATE IF UPDATE (kodekel) update Pelanggan set kodekelkirim = (select kodekel from inserted) where kodekelkirim = (select kodekel from deleted) update Pelanggan set kodekeltagih = (select kodekel from inserted) where kodekeltagih = (select kodekel from deleted) CREATE TRIGGER trgkelurahandel ON Kelurahan FOR DELETE IF EXISTS (SELECT kodekelkirim FROM Pelanggan WHERE kodekelkirim = (SELECT kodekel FROM deleted)) OR EXISTS (SELECT kodekeltagih FROM Pelanggan WHERE kodekeltagih = (SELECT kodekel FROM deleted)) INSERT INTO Kelurahan SELECT * FROM deleted PRINT 'Kelurahan tidak dapat dihapus'
L87 CODING CREATE INDEX CREATE UNIQUE INDEX KotaKodeKotaInd ON Kota (kodekota) CREATE INDEX KotaNamaKotaInd ON Kota (namakota) CREATE UNIQUE INDEX KelurahanKodeKelInd ON Kelurahan (kodekel) CREATE INDEX KelurahanNamaKelInd ON Kelurahan (namakel) CREATE UNIQUE INDEX PosKodePosInd ON Pos (kodepos) CREATE UNIQUE INDEX KecamatanKodeKecInd ON Kecamatan (kodekec) CREATE INDEX KecamatanNamaKecInd ON Kecamatan (namakec) CREATE UNIQUE INDEX PelangganKodePelangganInd ON Pelanggan (kodepelanggan) CREATE INDEX PelangganNamaPelangganInd ON Pelanggan (namapelanggan) CREATE UNIQUE INDEX TeleponPlgnNoTeleponInd ON TeleponPlgn (notelepon) CREATE INDEX TeleponKodePelangganInd ON TeleponPlgn (kodepelanggan) CREATE UNIQUE INDEX FaxPlgnNoFaxInd ON FaxPlgn (nofax) CREATE INDEX FaxPlgnKodePelangganInd ON FaxPlgn (kodepelanggan) CREATE UNIQUE INDEX JabatanKodeJabatanInd ON Jabatan (kodejabatan) CREATE INDEX JabatanNamaJabatanInd ON Jabatan (namajabatan) CREATE UNIQUE INDEX PegawaiKodePegawaiInd ON Pegawai (kodepegawai) CREATE INDEX PegawaiNamaPegawaiInd ON Pegawai (namapegawai) CREATE UNIQUE INDEX BarangKodeBarangInd ON Barang (kodebarang) CREATE INDEX BarangNamaBarangInd ON Barang (namabarang) CREATE UNIQUE INDEX KendaraanNoPolisiInd ON Kendaraan (nopolisi) CREATE UNIQUE INDEX RKDKodeRKDInd ON RKD (koderkd) CREATE INDEX RKDTanggalInd ON RKD (tgl) CREATE INDEX RKDKodeKendaraanInd ON RKD(kodeKendaraan) CREATE INDEX RKDKodeDriverInd ON RKD(kodeDriver) CREATE INDEX RKDKodeHelper1Ind ON RKD(kodeHelper1) CREATE INDEX RKDKodeHelper2Ind ON RKD(kodeHelper2) CREATE INDEX RKDKodePegawaiInd ON RKD(kodePegawai) CREATE UNIQUE INDEX BPKodeBPInd ON BP (kodebp) CREATE INDEX BPTanggalInd ON BP (tgl) CREATE INDEX BPKodePelangganInd ON BP (kodepelanggan) CREATE INDEX BPKodePegawaiInd ON BP (kodepegawai) CREATE UNIQUE INDEX BPDetailKodeBPKodeBarangInd ON BPDetail (kodebp,kodebarang) CREATE INDEX BPDetailKodeBPInd ON BPDetail (kodebp) CREATE INDEX BPDetailKodeBarangInd ON BPDetail (kodebarang) CREATE UNIQUE INDEX JadwalKirimHariKirimKodeBPInd ON JadwalKirim (harikirim,kodebp) CREATE INDEX JadwalKirimHariKirimInd ON JadwalKirim (harikirim) CREATE INDEX JadwalKirimKodeBPInd ON JadwalKirim (kodebp) CREATE UNIQUE INDEX PenagihanKodePenagihanInd ON Penagihan (kodepenagihan) CREATE INDEX PenagihanTglPenagihanInd ON Penagihan (tglpenagihan)
CREATE INDEX PenagihanTglJatuhTempoInd ON Penagihan (tgljatuhtempo) CREATE INDEX PenagihanTglPembayaranInd ON Penagihan (tglpembayaran) CREATE INDEX PenagihanKodeKolektorInd ON Penagihan (kodekolektor) CREATE INDEX PenagihanKodePegawaiTghInd ON Penagihan (kodepegawaitgh) CREATE INDEX PenagihanKodePegawaiByrInd ON Penagihan (kodepegawaibyr) CREATE UNIQUE INDEX POKodePOInd ON PO (kodepo) CREATE INDEX POTanggalInd ON PO (tgl) CREATE INDEX POKodePegawaiInd ON PO (kodepegawai) CREATE UNIQUE INDEX PODetailKodePOKodeBarangInd ON PODetail (kodepo,kodebarang) CREATE INDEX PODetailKodePOInd ON PODetail (kodepo) CREATE INDEX PODetailKodeBarangInd ON PODetail (kodebarang) CREATE UNIQUE INDEX SJKodeSJInd ON SJ (kodesj) CREATE INDEX SJTanggalInd ON SJ (tgl) CREATE INDEX SJKodePOInd ON SJ (kodepo) CREATE INDEX SJKodePegawaiInd ON SJ (kodepegawai) CREATE INDEX SJKodePenagihanInd ON SJ (kodepenagihan) CREATE UNIQUE INDEX SJDetailKodeSJKodeBarangInd ON SJDetail (kodesj,kodebarang) CREATE INDEX SJDetailKodeSJInd ON SJDetail (kodesj) CREATE INDEX SJDetailKodeBarangInd ON SJDetail (kodebarang) CREATE UNIQUE INDEX BPBJKodeBPBJInd ON BPBJ (kodebpbj) CREATE INDEX BPBJTanggalInd ON BPBJ (tgl) CREATE INDEX BPBJKodeRKDInd ON BPBJ (koderkd) CREATE INDEX BPBJKodePegawaiInd ON BPBJ (kodepegawai) CREATE UNIQUE INDEX BPBJDetailKodeBPBJKodeBarangInd ON BPBJDetail (kodebpbj,kodebarang) CREATE INDEX BPBJDetailKodeBPBJInd ON BPBJDetail (kodebpbj) CREATE INDEX BPBJDetailKodeBarangInd ON BPBJDetail (kodebarang) CREATE UNIQUE INDEX BSTPJKodeBSTPJInd ON BSTPJ (kodebstpj) CREATE INDEX BSTPJTanggalInd ON BSTPJ (tgl) CREATE INDEX BSTPJKodePegawaiInd ON BSTPJ (kodepegawai) CREATE UNIQUE INDEX BSTPJDetailKodeBSTPJKodeBarangInd ON BSTPJDetail (kodebstpj,kodebarang) CREATE INDEX BSTPJDetailKodeBSTPJInd ON BSTPJDetail (kodebstpj) CREATE INDEX BSTPJDetailKodeBarangInd ON BSTPJDetail (kodebarang) CREATE UNIQUE INDEX ReturJualKodeReturInd ON ReturJual (kodereturjual) CREATE INDEX ReturJualTanggalInd ON ReturJual (tgl) CREATE INDEX ReturJualKodePelangganInd ON ReturJual (kodepelanggan) CREATE INDEX ReturJualKodePegawaiInd ON ReturJual (kodepegawai) CREATE UNIQUE INDEX ReturJualDetailKodeReturKodeBarangInd ON ReturJualDetail (kodereturjual,kodebarang) CREATE INDEX ReturJualDetailKodeReturInd ON ReturJualDetail (kodereturjual) CREATE INDEX ReturJualDetailKodeBarangInd ON ReturJualDetail (kodebarang) L88
L89 HAK AKSES USER GRANT SELECT, INSERT, UPDATE, DELETE ON Jabatan TO Admin WITH GRANT OPTION GRANT SELECT ON Jabatan TO Distribusi GRANT SELECT ON Jabatan TO Gudang GRANT SELECT ON Jabatan TO Kasir GRANT SELECT ON Jabatan TO Keuangan GRANT SELECT ON Jabatan TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON Jabatan TO Personalia GRANT SELECT, INSERT, UPDATE, DELETE ON Barang TO Admin WITH GRANT OPTION GRANT SELECT ON Barang TO Distribusi GRANT SELECT, UPDATE ON Barang TO Gudang GRANT SELECT ON Barang TO Kasir GRANT SELECT ON Barang TO Keuangan GRANT SELECT ON Barang TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON Kota TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON Kota TO Distribusi GRANT SELECT ON Kota TO Penjualan GRANT SELECT, INSERT, UPDATE ON Kecamatan TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON Kecamatan TO Distribusi GRANT SELECT ON Kecamatan TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON Pos TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON Pos TO Distribusi GRANT SELECT ON Pos TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON Kelurahan TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON Kelurahan TO Distribusi GRANT SELECT ON Kelurahan TO Penjualan GRANT SELECT, INSERT, UPDATE ON Pegawai TO Admin WITH GRANT OPTION GRANT SELECT ON Pegawai TO Distribusi GRANT SELECT ON Pegawai TO Gudang GRANT SELECT ON Pegawai TO Kasir GRANT SELECT ON Pegawai TO Keuangan GRANT SELECT ON Pegawai TO Penjualan GRANT SELECT, INSERT, UPDATE ON Pegawai TO Personalia GRANT SELECT, INSERT, UPDATE, DELETE ON Pelanggan TO Admin WITH GRANT OPTION GRANT SELECT ON Pelanggan TO Distribusi GRANT SELECT ON Pelanggan TO Kasir GRANT SELECT ON Pelanggan TO Keuangan
GRANT SELECT, INSERT, UPDATE, DELETE ON Pelanggan TO Penjualan GRANT SELECT, INSERT, DELETE ON TeleponPlgn TO Admin WITH GRANT OPTION GRANT SELECT ON TeleponPlgn TO Distribusi GRANT SELECT ON TeleponPlgn TO Kasir GRANT SELECT ON TeleponPlgn TO Keuangan GRANT SELECT, INSERT, DELETE ON TeleponPlgn TO Penjualan GRANT SELECT, INSERT, DELETE ON FaxPlgn TO Admin WITH GRANT OPTION GRANT SELECT ON FaxPlgn TO Distribusi GRANT SELECT ON FaxPlgn TO Kasir GRANT SELECT ON FaxPlgn TO Keuangan GRANT SELECT, INSERT, DELETE ON FaxPlgn TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON Kendaraan TO Admin WITH GRANT OPTION GRANT SELECT ON Kendaraan TO Distribusi GRANT SELECT ON Kendaraan TO Gudang GRANT SELECT, INSERT, UPDATE ON BP TO Admin WITH GRANT OPTION GRANT SELECT ON BP TO Distribusi GRANT SELECT ON BP TO Kasir GRANT SELECT ON BP TO Keuangan GRANT SELECT, INSERT, UPDATE ON BP TO Penjualan GRANT SELECT, INSERT ON BPDetail TO Admin WITH GRANT OPTION GRANT SELECT ON BPDetail TO Distribusi GRANT SELECT ON BPDetail TO Kasir GRANT SELECT ON BPDetail TO Keuangan GRANT SELECT, INSERT ON BPDetail TO Penjualan GRANT SELECT, INSERT, DELETE JadwalKirim TO Admin WITH GRANT OPTION GRANT SELECT ON JadwalKirim TO Distribusi GRANT SELECT ON JadwalKirim TO Gudang GRANT SELECT, INSERT, DELETE ON JadwalKirim TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON RKD TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON RKD TO Distribusi GRANT SELECT ON RKD TO Gudang GRANT SELECT, INSERT, UPDATE, DELETE ON PO TO Admin WITH GRANT OPTION GRANT SELECT ON PO TO Distribusi GRANT SELECT ON PO TO Kasir GRANT SELECT ON PO TO Keuangan GRANT SELECT, INSERT, UPDATE, DELETE ON PO TO Penjualan GRANT SELECT, INSERT, UPDATE ON PODetail TO Admin WITH GRANT OPTION GRANT SELECT ON PODetail TO Distribusi GRANT SELECT ON PODetail TO Kasir GRANT SELECT ON PODetail TO Keuangan L90
GRANT SELECT, INSERT, UPDATE, DELETE ON PODetail TO Penjualan GRANT SELECT, INSERT, UPDATE ON Penagihan TO Admin WITH GRANT OPTION GRANT SELECT ON Penagihan TO Kasir GRANT SELECT ON Penagihan TO Keuangan GRANT SELECT, INSERT, UPDATE ON Penagihan TO Penjualan GRANT SELECT, INSERT, UPDATE ON SJ TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE ON SJ TO Distribusi GRANT SELECT ON SJ TO Kasir GRANT SELECT ON SJ TO Keuangan GRANT SELECT ON SJ TO Penjualan GRANT SELECT, INSERT, UPDATE ON SJDetail TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE ON SJDetail TO Distribusi GRANT SELECT ON SJDetail TO Kasir GRANT SELECT ON SJDetail TO Keuangan GRANT SELECT ON SJDetail TO Penjualan GRANT SELECT, INSERT, UPDATE ON BPBJ TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE ON BPBJ TO Distribusi GRANT SELECT ON BPBJ TO Gudang GRANT SELECT ON BPBJ TO Penjualan GRANT SELECT, INSERT, UPDATE ON BPBJDetail TO Admin WITH GRANT OPTION GRANT SELECT, INSERT ON BPBJDetail TO Distribusi GRANT SELECT, UPDATE ON BPBJDetail TO Gudang GRANT SELECT ON BPBJDetail TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJ TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJ TO Gudang GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJDetail TO Admin WITH GRANT OPTION GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJDetail TO Gudang GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJ TO Admin WITH GRANT OPTION GRANT SELECT ON BSTPJ TO Distribusi GRANT SELECT, INSERT, UPDATE, DELETE ON BSTPJ TO Gudang GRANT SELECT ON BSTPJ TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON ReturJual TO Admin WITH GRANT OPTION GRANT SELECT ON ReturJual TO Distribusi GRANT SELECT, INSERT, UPDATE, DELETE ON ReturJual TO Gudang GRANT SELECT ON ReturJual TO Penjualan GRANT SELECT, INSERT, UPDATE, DELETE ON ReturJualDetail TO Admin WITH GRANT OPTION GRANT SELECT ON ReturJualDetail TO Distribusi GRANT SELECT, INSERT, UPDATE, DELETE ON ReturJualDetail TO Gudang GRANT SELECT ON ReturJualDetail TO Penjualan L91
L92 TRANSKRIP WAWANCARA 1. Perusahaan ini bergerak dibidang apa dan kapan didirikannya? PT Mejisinar Kasih merupakan perusahaan yang bergerak di bidang Air Minum Dalam Kemasan (AMDK). Perusahaan ini didirikan pada tanggal 14 Juni 1990 dan beralamat di Jalan Raya Bogor Km. 26,6 Ciracas Jakarta 13069. Pada awalnya perusahaan ini berada dalam manajemen PT Astra Internasional, selama berada di bawah manajemen PT Astra, PT Mejisinar Kasih mulai berkembang menjadi perusahaan menengah dan produknya mulai dikenal oleh masyarakat. Pada tahun 1998 terjadi krisis moneter yang menyebabkan perusahaan ini terpaksa berhenti beroperasi selama 4 tahun, dan pada tahun 2002 PT Mejisinar Kasih berganti kepemilikan dan sudah tidak dibawah manajemen PT Astra Internasional lagi. 2. Apa visi dan misi perusahaan ini? PT Mejisinar Kasih memiliki sebuah visi yaitu berkomitmen untuk selalu memenuhi harapan dan kepuasan pelanggan dalam hal mutu produk Air Minum Dalam Kemasan (AMDK) yang akan diberikan. Sedangkan misinya adalah bertekad untuk selalu memenuhi mutu produksi dan menjaga secara konsisten berdasarkan pada acuan Standar Nasional Indonesia (SNI) 01 3553 1996. 3. Perusahaan ini menjual produk apa saja? Untuk saat ini PT Mejisinar Kasih sudah mempunyai dua buah merek dagang, yaitu Bonanza dan Osmosis. Masing masing merek memproduksi produk air minum dalam kemasan gelas, botol, dan galon. 4. Bahan baku air yang digunakan berasal dari mana? Bahan baku air yang digunakan berasal dari sumur dalam yang kemudian diproses kembali dengan menggunakan metode Reverse Osmosis. Metode ini digunakan untuk mengeluarkan partikel partikel zat padat yang terlarut dalam air sehingga kadar TDS yang terkandung dalam air tersebut semakin kecil. 5. Proses bisnis apa saja yang terlibat pada saat transakski penjualan dilakukan? Pada awalnya jika ada seseorang yang ingin menjadi pelanggan tetap kami (PT Mejisinar Kasih), maka ia harus melakukan proses pendaftaran terlebih dahulu kepada staff bagian pemasaran / distribusi. Proses ini dapat memakan waktu hingga satu minggu lamanya, karena staff bagian distribusi harus melakukan survei terhadap alamat calon pelanggan dan mengecek apakah jadwal pengiriman beserta barang barang yang ingin dipesan dapat memenuhi kondisi yang ada. Setelah staff bagian distribusi menyatakan bahwa calon pelanggan tersebut dapat dilayani pesanannya, maka staff bagian penjualan akan menerbitkan BP (Bukti Pendaftaran) yang berisi
L93 data diri pelanggan beserta jadwal kirim, nama barang apa saja yang akan dikirim beserta harga dari masing masing barang yang akan dikirim. Setiap hari staff bagian penjualan akan menerbitkan PO (Purchase Order) yang berisi daftar barang yang dipesan oleh pelanggan berdasarkan BP yang telah diterbitkan. PO tersebut kemuadian akan diberikan kepada bagian distribusi untuk dibuatkan RKD (Rencana Kerja Distribusi). RKD berisi daftar nama pelanggan yang akan dikirimkan pesanannya sesuai dengan PO yang ada. Bagian distribusi juga akan menerbitkan BPBJ (Bukti Pengeluaran Barang Jadi) dan SJ (Surat Jalan) yang kemudian akan diberikan kepada bagian gudang. Bagian gudang akan mempersiapkan barang untuk dimasukan kedalam kendaraan sesuai dengan daftar barang dan jumlah yang tertera di BPBJ. Kemudian staff bagian gudang akan menyerahkan kendaraan yang telah terisi barang kepada driver yang namanya tercantum dalam RKD beserta dengan seluruh SJ yang sebelumnya telah diberikan oleh staff bagian distribusi. Setelah itu driver akan mengirimkan barang kepada pelanggan sesuai dengan alamat pengiriman pelanggan masing masing. Pelanggan dapat melakukan retur barang, dengan menukarkan barang yang rusak atau cacat kepada driver pada saat driver mengirimkan barang kepada pelanggan yang bersangkutan. Driver kemudian akan mengecek apakah barang tersebut dapat ditukarkan dengan yang baru, jika ternyata bisa maka barang yang diretur tersebut akan langsung ditukarkankan dengan yang baru jika masih tersedia kelebihan barang di dalam kendaraan. Setelah itu driver akan menerbitkan BR (Bukti Retur) yang berisi nama barang dan jumlah barang yang di tukar. Jika ternyata barang dikendaraan tidak tersedia maka, retur akan dilaksanakan pada pengiriman berikutnya. Staff bagian penjualan akan membuat SP (Surat Penagihan) untuk pelanggan berdasarkan jenis pembayaran (harian dan bulanan) yang telah ditentukan di BP. Untuk jenis pembayaran harian, staff bagian penjualan akan menerbitkan SP pada saat barang pesanan pelanggan dikirimkan bersama dengan SJ, hanya saja jumlah penagihan belum dicantumkan karena jumlah penagihan dihitung berdasarkan SJ milik pelanggan. Untuk jenis penagihan bulanan, staff bagian penjualan akan menerbitkan SP setiap akhir bulan dan akan diberikan kepada pelanggan yang bersangkutan. Staff bagian gudang akan menerima BSTPJ yang diberikan oleh staff bagian produksi pada saat bagian produksi mengirimkan barang jadi kedalam gudang barang jadi. 6. Apakah pesanan barang pelanggan dapat diubah? Pesanan pelanggan dapat diubah dengan syarat harus dilakukan sehari sebelum pengiriman barang dan paling lambat jam 12.00 siang. Perubahan pesanan hanya pada jumlah barang yang dipesan bukan pada hari pengiriman barang.
L94 7. Berapa jumlah pelanggan yang ada saat ini, serta berapa jumlah rata rata transaksi setiap harinya? Saat ini pelanggan tetap kami berjumlah sekitar 500 pelanggan., dengan rata rata transaksi sebesar 150 transaksi setiap harinya. 8. Apa yang harus dilakukan jika pelanggan ingin menambah jumlah barang atau jenis barang yang ingin dikirimkan? Pelanggan harus membuat BP baru dan harus mendapatkan persetujuan dari bagian distribusi, karena bagian distribusi harus melakukan pengecekan terlebih dahulu apakah permintaan pelanggan dapat dipenuhi atau tidak. 9. Permasalahan apa yang sedang dihadapi saat ini pada proses penjualan? Staff bagian penjualan mengalami kesulitan pada saat membuat PO untuk pelanggan, karena harus mengecek jadwal pengiriman barang setiap pelanggan untuk mengetahui barang apa saja yang harus dikirimkan untuk pelanggan beserta jumlahnya. Staff bagian distribusi dan penjualan mengalami kesulitan untuk mengetahui persediaan barang pada gudang barang jadi, karena harus selalu menghubungi staff bagian gudang terlebih dahulu. Staff bagian penjualan mengalami kesulitan dalam menghitung tagihan milik pelanggan, dikarenakan harga barang untuk setiap pelanggan tidak selalu sama. Selain itu staff bagian penjualan juga tidak dapat langsung mengetahui tagihan mana yang telah melalui tanggal jatuh tempo. 10. Pada saat pengiriman barang kepada pelanggan, driver akan ditemani oleh siapa? Pada saat mengirimkan barang untuk pelanggan, driver akan ditemani oleh dua orang asisten driver (helper) untuk membantu dalam mendistribusikan barang dari dalam kendaraan kepada pelanggan. 11. Apakah jumlah barang yang terdapat di PO milik pelanggan selalu sama dengan jumlah barang yang diterima oleh pelanggan? Jumlah barangnya tidak selalu sama, terutama pada produk galon. Jumlah galon yang turun harus sama dengan jumlah galon kosong yang naik ke dalam kendaraan. Jika ternyata galon kosong milik pelanggan hanya berjumlah 5, padahal jumlah barang yang tertera pada PO adalah 7, maka jumlah barang yang diterima pelanggan tetap berjumlah 5. 12. Apakah jumlah barang di PO akan diperbaharui jika ternyata jumlah barang yang diterima oleh pelanggan tidak sama banyaknya? Jumlah barang di PO tidak diperbaharui, karena jumlah barang yg terdapat di PO tersebut akan digunakan untuk analisa oleh bagian distribusi.
L95 13. Bagaimana cara driver mengambil barang dari gudang barang jadi? Driver hanya dapat mengambil / membawa keluar barang dari gudang barang jadi jika sudah mendapatkan formulir BPBJ dari bagian gudang. 14. Bagaimana dengan penagihan untuk pelangan, apa yang akan dijadikan dasar biaya penagihan untuk pelanggan? SJ (Surat Jalan) adalah dasar yang digunakan untuk melakukan perhitungan tagihan. Karena setiap kali barang diterima oleh pelanggan, maka driver akan mencatat jumlah barang yang diterima oleh pelangganm dan SJ tersebut akan ditandatangani oleh pelanggan. 15. Bagaimana cara pembayaran tagihan untuk masing masing pelanggan? Ada 2 jenis pembayaran yang berlaku di perusahaan ini, yaitu pembayaran lunas dan kredit. Pembayaran lunas dilakukan setiap kali ada pengiriman barang ke pelanggan, jadi pada saat akan dilakukan pengiriman barang diterbitkan pula SP. Sedangkan pembayaran kredit dilakukan setiap bulan, jadi setiap akhir bulan akan diterbitkan SP berdasarkan SJ.
L96 KODE POS 1 Kel. Pekojan Kec. Tambora JAKARTA 11240 2 Kel. Jembatan Lima Kec. Tambora JAKARTA 11250 3 Kel. Krendang Kec. Tambora JAKARTA 11260 4 Kel. Duri Selatan Kec. Tambora JAKARTA 11270 5 Kel. Duri Utara Kec. Tambora JAKARTA 11270 6 Kel. Kalianyar Kec. Tambora JAKARTA 11310 7 Kel. Jembatan Besi Kec. Tambora JAKARTA 11320 8 Kel. Angke Kec. Tambora JAKARTA 11330 9 Kel. Slipi Kec. Palmerah JAKARTA 11410 10 Kel. Kota Bambu Selatan Kec. Palmerah JAKARTA 11420 11 Kel. Kota Bambu Utara Kec. Palmerah JAKARTA 11420 12 Kel. Jati Pulo Kec. Palmerah JAKARTA 11430 13 Kel. Tomang Kec. Grogol Petamburan JAKARTA 11440 14 Kel. Grogol Kec. Grogol Petamburan JAKARTA 11450 15 Kel. Jelambar Kec. Grogol Petamburan JAKARTA 11460 16 Kel. Jelambar Baru Kec. Grogol Petamburan JAKARTA 11460 17 Kel. Wijaya Kusuma Kec. Grogol Petamburan JAKARTA 11460 18 Kel. Tanjung Duren Kec. Grogol Petamburan JAKARTA 11470 19 Kel. Tanjung Duren Utara Kec. Grogol Petamburan JAKARTA 11470 20 Kel. Kemanggisan Kec. Palmerah JAKARTA 11480 21 Kel. Palmerah Kec. Palmerah JAKARTA 11480 22 Kel. Duri Kepa Kec. Kebon Jeruk JAKARTA 11510 23 Kel. Kedoya Selatan Kec. Kebon Jeruk JAKARTA 11520 24 Kel. Kedoya Utara Kec. Kebon Jeruk JAKARTA 11520 25 Kel. Kebon Jeruk Kec. Kebon Jeruk JAKARTA 11530 26 Kel. Sukabumi Utara Kec. Kebon Jeruk JAKARTA 11540 27 Kel. Kelapa Dua Kec. Kebon Jeruk JAKARTA 11550 28 Kel. Sukabumi Selatan Kec. Kebon Jeruk JAKARTA 11560 29 Kel. Kembangan Barat Kec. Kembangan JAKARTA 11610 30 Kel. Kembangan Timur Kec. Kembangan JAKARTA 11610