topbella

Minggu, 21 Juli 2013

FORM PENJUALAN BARANG UNTUK SISTEM

Langkah - Langkah Membuat Form Penjualan Barang untuk Menjalankan Sistem menggunakan Netbeans

     Sistem ini akan berjalan dengan membuat form terlebih dahulu. Dalam form inilah pengguna dapat membuat, mengedit, menampung, meng-update bahkan menghapus data yang ada. Sistem ini akan berjalan secara berkesinambungan sesuai dengan apa yang dibutuhkan pengguna.

Form Ketujuh :
Form Penjualan Barang

Keterangan :
Untuk membuat form tersebut dibutuhkan Palette untuk mendesignnya. Ada juga palette yang dibutuhkan untuk menunjang pembuatan form ini. Semua palette harus memiliki variabel nama supaya mudah di panggil. Seperti :
Text Field dari Label Kode Otomatis : txt_idpenjualan
JDate Chooser dari Label Tanggal : txttanggal
Text Field dari Label Cari Id / Nama Barang : txt_cari
Text Field dari Label Id Barang : txt_idbarang
Text Field dari Label Jumlah : txt_jmlh
Text Field dari Label Harga : txt_hrga
Text Filed (tanpa nama) : idHapus
Table 1 : tbl_barangjual
Table 2 : tbl_barangbeli
Button dari Transaksi Baru : btntransaksibaru
Label dari Label Total : txt_tot
Text Filed dari Label Bayar : txt_bayar
Button dari Home : btnkembali
Button dari Insert : btninsert
Button dari Delete : btndelete

Untuk bisa menjalankan form di atas dibutuhkan script sebagai berikut :

package toko_barang;

import Toko.Koneksi.Koneksi;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import sun.applet.Main;

public class form_penjualan_barang extends javax.swing.JFrame {

    Koneksi k;
    Statement statement;
    ResultSet resultSet;
    String idPenjualan, id_barang,ubah;
    int count,jml_awal;

    public form_penjualan_barang() {
        initComponents();
        k = new Koneksi();
        setResizable(false);
        selectTabelHargaJual();
        selectTabelHargaBeli();
        kondisiawal();
    }
    
    # untuk membersihkan text field
    private void clear() {
        txt_idbarang.setText("");
        txt_cari.setText("");
        txt_jmlh.setText("");
        txt_hrga.setText("");
        txt_bayar.setText("");
    }

    # semua action tidak aktif kecuali Button Transaksi Baru dan Home
    private void kondisiawal() {
        btninsert.setEnabled(false);
        btndelete.setEnabled(false);
        txt_idbarang.setEnabled(false);
        txt_jmlh.setEnabled(false);
        tbl_barangbeli.setEnabled(false);
        txt_tot.setEnabled(false);
        txt_bayar.setEnabled(false);
        clear();
        btntransaksibaru.setEnabled(true);
        idPenjualan = "";
    }

    # setelah mengklik Button Transaksi Baru maka semua action akan aktif
    private void kondisiAktif() {
        btninsert.setEnabled(true);
        btndelete.setEnabled(true);
        txt_jmlh.setEnabled(true);
        tbl_barangbeli.setEnabled(true);
        btntransaksibaru.setEnabled(false);
        txt_bayar.setEnabled(true);
        clear();
    }

    private void selectTabelHargaJual(){
        Object header[] = {"ID BARANG","NAMA BARANG","HARGA JUAL","STOK"};
        DefaultTableModel defaultTable = new DefaultTableModel(null,header);
        tbl_barangjual.setModel(defaultTable);

        int baris = tbl_barangjual.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select id_barang,nama_barang,harga_jual,stok from barang where stok > 0";
        try {
            statement = k.conn.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while(resultSet.next()){
                String idBarang = resultSet.getString(1);
                String namaBarang = resultSet.getString(2);
                String harga_jual = resultSet.getString(3);
                String stok = resultSet.getString(4);

                String kolom[] = {idBarang,namaBarang,harga_jual,stok};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

private void selectTabelHargaBeli() {
    Object header[] = {"ID PENJUALAN", "ID BARANG", "NAMA BARANG", "HARGA", "JUMLAH", "TOTAL HARGA"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tbl_barangbeli.setModel(defaultTable);

        int baris = tbl_barangbeli.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

       String sql_select = "select r.id_penjualan,r.id_barang,b.nama_barang,b.harga_jual,r.jumlah,r.total_harga " + "from rel_penjualan_barang r, barang b where r.id_barang = b.id_barang and r.id_penjualan ='" + idPenjualan + "'";
        try {
            statement = k.conn.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String idjual = resultSet.getString(1);
                String idBarang = resultSet.getString(2);
                String namaBarang = resultSet.getString(3);
                String harga = resultSet.getString(4);
                String jml = resultSet.getString(5);
                String total = resultSet.getString(6);

                String kolom[] = {idjual, idBarang, namaBarang, harga, jml, total};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

    private void searchTabelHargaJual(){
        Object header[] = {"ID BARANG","NAMA BARANG","HARGA JUAL","STOK"};
        DefaultTableModel defaultTable = new DefaultTableModel(null,header);
        tbl_barangjual.setModel(defaultTable);

        int baris = tbl_barangjual.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select id_barang,nama_barang,harga_jual,stok from barang " + "where stok > 0 and (nama_barang like '%"+txt_cari.getText()+"%' or id_barang like '%"+txt_cari.getText()+"%')";
        try {
            statement = k.conn.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while(resultSet.next()){
                String idBarang = resultSet.getString(1);
                String namaBarang = resultSet.getString(2);
                String harga_jual = resultSet.getString(3);
                String stok = resultSet.getString(4);

                String kolom[] = {idBarang,namaBarang,harga_jual,stok};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private String insertTabelPenjualan() {
        try {
            Date date = new Date();
            SimpleDateFormat dateformat=new SimpleDateFormat ("yyyy-MM-dd");
            String tanggal=dateformat.format(date);
            txttanggal.setDate(date);

            SimpleDateFormat dateformat2=new SimpleDateFormat ("dd.MM.yyyy");
            String tanggal2=dateformat2.format(date);
            int count = 100;
            String sqltanggal = "select tanggal_penjualan,id_penjualan from penjualan";
            resultSet = statement.executeQuery(sqltanggal);
            while (resultSet.next()) {
                String data1 = resultSet.getString(1);
                String data2 = resultSet.getString(2);
                if (data1.equals(tanggal)) {
                    if (count == Integer.valueOf(data2.substring(14, 17))) {
                        count++;
                    }
                }
            }
            idPenjualan = "TJ." + tanggal2 + "." + count;
            String sql = "insert into penjualan values('" + idPenjualan + "','"+Form_Login.userLogin+"','" + tanggal + "',0)";
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return idPenjualan;
    }

    private void insertRelPenjualan() {
        double total = Integer.parseInt(txt_jmlh.getText()) * Double.parseDouble(txt_hrga.getText());

        try {
 String sql = "INSERT INTO rel_penjualan_barang " + "VALUES('" + txt_idbarang.getText() + "','" + idPenjualan + "','" + txt_jmlh.getText() + "','"+hitungLaba()+"','" + total + "')";
            statement = k.conn.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

private void total_transaksi() {
String total = "SELECT sum(total_harga) from rel_penjualan_barang where id_penjualan ='" + idPenjualan + "'";
        try {
            statement = k.conn.createStatement();
            resultSet = statement.executeQuery(total);

            while (resultSet.next()) {
                txt_tot.setText(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

    private void updateTotalTransaksi() {
        String sql_update = "UPDATE penjualan SET total_penjualan = '" + txt_tot.getText() + "' WHERE ID_PENJUALAN = '" + idPenjualan + "'";
        try {
            statement = k.conn.createStatement();
            statement.executeUpdate(sql_update);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

    private double hitungLaba() throws SQLException {
        Vector<String> vektorIdPengadaan = new Vector();
        Vector<String> vektorIdBarang = new Vector();
        Vector<Integer> jum = new Vector();
        Vector<Double> hargaBeli = new Vector();
        Vector<Double> hargaJual = new Vector();
        double laba = 0;
        try {
            String sql = "select r.id_pengadaan,r.id_barang,r.harga_beli_satuan,b.harga_jual,r.belum_terjual "
                    + "from rel_pengadaan_barang r,barang b "
                    + "where r.id_barang=b.id_barang AND r.id_barang='" + txt_idbarang.getText() + "' and r.belum_terjual>0";
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                vektorIdPengadaan.addElement(resultSet.getString(1));
                vektorIdBarang.addElement(resultSet.getString(2));
                hargaBeli.addElement(resultSet.getDouble(3));
                hargaJual.addElement(resultSet.getDouble(4));
                jum.addElement(resultSet.getInt(5));
            }
            int jumlah;
            int jumlahJual = Integer.valueOf(txt_jmlh.getText());
            for (int i = 0; i < vektorIdPengadaan.size(); i++) {
                jumlah = jum.elementAt(i) - jumlahJual;
                if (jumlah >= 0) {
                    try {
    String query = "update rel_pengadaan_barang set belum_terjual=" + jumlah + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
                        statement.executeUpdate(query);
                        laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jumlahJual;
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, e.getMessage());
                    }
                    break;
                } else {
                    try {
     String query1 = "update rel_pengadaan_barang set belum_terjual=" + 0 + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
                        statement.executeUpdate(query1);
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, e.getMessage());
                    }
                    laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jum.elementAt(i);
                    jumlahJual = -1 * jumlah;
                }
            }
        } catch (NumberFormatException n) {
            JOptionPane.showMessageDialog(null, n.getMessage());
        }
        return laba;
    }

    private int cekStok() {
        int stok = 0;
        String total = "SELECT stok from barang where id_barang ='" + id_barang + "'";
        try {
            statement = k.conn.createStatement();
            resultSet = statement.executeQuery(total);

            while (resultSet.next()) {
                stok = Integer.parseInt(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
        return stok;
    }

    private void UpdateStok(String ubah) {
        int stokBaru = 0;
        try {
            if(ubah.equals("insert")){
                stokBaru = cekStok() - Integer.parseInt(txt_jmlh.getText());
            }else if(ubah.equals("delete")){
                stokBaru=cekStok()+jml_awal;
            }
            String total = "UPDATE barang set stok ='" + stokBaru + "' where id_barang = '" + id_barang + "'";
            statement.executeUpdate(total);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

    private void delete(){
        String sql_delete="DELETE FROM rel_penjualan_barang WHERE ID_PENJUALAN='"+idPenjualan+"' AND ID_BARANG='"+idHapus.getText()+"'";
        try {
            statement=k.conn.createStatement();
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Data masih digunakan!!");
            System.out.println(""+e.getMessage());
        }
    }

Supaya action-action pada form yang telah dibuat bisa berfungsi, dibutuhkan script sebagai berikut :
Key Type txt_cari

private void txt_cariKeyTyped(java.awt.event.KeyEvent evt) {                                  
        // TODO add your handling code here:
        searchTabelHargaJual();
    }

Key Pressed txt_jmlh

private void txt_jmlhKeyPressed(java.awt.event.KeyEvent evt) {                                    
        // TODO add your handling code here:
        ubah="insert";
        if(evt.getKeyChar()=='\n'){
            if(Integer.parseInt(txt_jmlh.getText()) <= cekStok()){
                insertRelPenjualan();
                total_transaksi();
                UpdateStok(ubah);
                updateTotalTransaksi();
            }
        }
    }

Mouse Click tbl_barangjual

private void tbl_barangjualMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:
        id_barang = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow(), 0).toString();
        String namaBarang = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow(), 1).toString();
        String harga = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow(), 2).toString();
        txt_idbarang.setText(id_barang);
        txt_cari.setText(namaBarang);
        txt_hrga.setText(harga);
    }

Mouse Click tbl_barangbeli

private void tbl_barangbeliMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:
        idHapus.setText(tbl_barangbeli.getValueAt(tbl_barangbeli.getSelectedRow(), 1).toString());
        jml_awal=Integer.valueOf(tbl_barangbeli.getValueAt(tbl_barangbeli.getSelectedRow(), 4).toString());
    }

Button Transaksi Baru

private void btntransaksibaruActionPerformed(java.awt.event.ActionEvent evt) {                                                 
        // TODO add your handling code here:
        kondisiAktif();
        txt_idpenjualan.setText(insertTabelPenjualan());
    }

Key Pressed txt_bayar

private void txt_bayarKeyPressed(java.awt.event.KeyEvent evt) {                                     
        // TODO add your handling code here:
        double sisa = Double.parseDouble(txt_bayar.getText()) - Double.parseDouble(txt_tot.getText());

        if (evt.getKeyChar() == '\n') {
            if (sisa >= 0) {
                if (sisa != 0) {
                    JOptionPane.showMessageDialog(null, "Kembalian Anda = " + sisa);
                } else {
                    JOptionPane.showMessageDialog(null, "Uang anda pas");
                }
                updateTotalTransaksi();
                clear();
                kondisiawal();
                selectTabelHargaBeli();
                selectTabelHargaJual();
            } else {
                JOptionPane.showMessageDialog(null, "Uang anda kurang = " + (sisa * (-1)));
            }
        }
    }

Button Delete

private void btndeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        ubah="delete";
        if(idHapus.getText().equals("")){
            JOptionPane.showMessageDialog(null, "Pilih data yang akan dihapus");
        }
        else{
            int hasil=JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin menghapus kode kategori : "+idHapus.getText(),null,JOptionPane.YES_NO_OPTION);
            if(hasil == JOptionPane.YES_OPTION){
                delete();
                UpdateStok(ubah);
                idHapus.setText("");
                selectTabelHargaBeli();
                selectTabelHargaJual();
            }
            else if(hasil==JOptionPane.NO_OPTION){
                idHapus.setText("");
            }
        }
    }

Button Insert

private void btninsertActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        ubah="insert";
        if (Integer.parseInt(txt_jmlh.getText()) <= cekStok()) {
            insertRelPenjualan();
            total_transaksi();
            UpdateStok(ubah);
            selectTabelHargaJual();
            selectTabelHargaBeli();
            clear();
        } else {
            JOptionPane.showMessageDialog(null, "Stok barang tidak cukup!!");
        }
    }

Button Home

private void btnkembaliActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        new MenuUtama(Form_Login.kondisiLogin).setVisible(true);
        this.dispose();
    }

# menjalankan form
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
                new form_penjualan_barang().setVisible(true);
            }
        });
    }
}

0 komentar:

Posting Komentar

Datos personales