Package id.keda87.clickrental.controller

Source Code of id.keda87.clickrental.controller.ControllerTransaksi

package id.keda87.clickrental.controller;

import id.keda87.clickrental.dao.ConcreteFilmDao;
import id.keda87.clickrental.dao.ConcreteMemberDao;
import id.keda87.clickrental.dao.ConcreteNominalDao;
import id.keda87.clickrental.dao.ConcreteTransaksiDao;
import id.keda87.clickrental.model.Film;
import id.keda87.clickrental.model.Member;
import id.keda87.clickrental.model.Transaksi;
import id.keda87.clickrental.view.sub.SubPeminjaman;
import id.keda87.clickrental.view.sub.SubPengembalian;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import org.joda.time.DateTime;
import org.joda.time.Days;

public class ControllerTransaksi {

    private SubPeminjaman viewpinjam;
    private SubPengembalian viewkembali;
    private ConcreteTransaksiDao serviceTransaksi;
    private ConcreteFilmDao serviceFilm;
    private ConcreteMemberDao serviceMember;
    private ConcreteNominalDao serviceNominal;
    private List<Transaksi> daftarTransaksi;
    private List<Film> daftarNamaFilm;
    private List<Film> daftarKodeFilm;
    private List<Member> daftarIDMember;
    private List<Member> identitasMember;

    public ControllerTransaksi(SubPeminjaman viewpinjam) {
        this.viewpinjam = viewpinjam;
        serviceTransaksi = new ConcreteTransaksiDao();
        serviceFilm = new ConcreteFilmDao();
        serviceMember = new ConcreteMemberDao();
        serviceNominal = new ConcreteNominalDao();
        daftarNamaFilm = serviceFilm.getAllNamaFilm();
        daftarIDMember = serviceMember.getAllIDMember();
    }

    public ControllerTransaksi(SubPengembalian viewkembali) {
        this.viewkembali = viewkembali;
        serviceFilm = new ConcreteFilmDao();
        serviceTransaksi = new ConcreteTransaksiDao();
        serviceNominal = new ConcreteNominalDao();
        daftarTransaksi = serviceTransaksi.getAllTransaksi();
    }

    public void isiComboNamaFilm() {
//        viewpinjam.getTfnamafilm().removeAllItems();
        viewpinjam.getModelComboFilm().removeAllElements();
        daftarNamaFilm = serviceFilm.getAllNamaFilm();
//        viewpinjam.getTfnamafilm().addItem("");
        viewpinjam.getModelComboFilm().addElement("");
        for (Film namafilm : daftarNamaFilm) {
//            viewpinjam.getTfnamafilm().addItem(namafilm.getNamaFilm());
            viewpinjam.getModelComboFilm().addElement(namafilm.getNamaFilm());
        }
    }

    public void isiComboIDMember() {
//        viewpinjam.getTfidmember().removeAllItems();
        viewpinjam.getModelComboID().removeAllElements();
        daftarIDMember = serviceMember.getAllIDMember();
//        viewpinjam.getTfidmember().addItem("");
        viewpinjam.getModelComboID().addElement("");
        for (Member id : daftarIDMember) {
//            viewpinjam.getTfidmember().addItem(id.getId());
            viewpinjam.getModelComboID().addElement(id.getId());
        }
    }

    public void isiFormMember() {
        identitasMember = serviceMember.getIdentitasMember(viewpinjam.getTfidmember().getSelectedItem().toString());
        for (Member member : identitasMember) {
            viewpinjam.getTfnamapenyewa().setText(member.getNama());
            viewpinjam.getTfnohandphone().setText(member.getNomorhandphone());
            viewpinjam.getTfalamat().setText(member.getAlamat());
        }
    }

    public void isiSewa() {
        if (viewpinjam.getTfnamapenyewa().getText().isEmpty() || viewpinjam.getTfnohandphone().getText().isEmpty()
                || viewpinjam.getTfalamat().getText().isEmpty() || viewpinjam.getTfidfilm().getText().isEmpty()
                || viewpinjam.getTftanggalpinjam().getCalendar() == null || viewpinjam.getTftanggalkembali().getCalendar() == null) {
            JOptionPane.showMessageDialog(viewpinjam, "Data Harap Diisi Lengkap !", "Kesalahan", JOptionPane.WARNING_MESSAGE);
        } else {
            viewpinjam.getTftotaltransaksi().setText(ControllerStaff.formatUang((double) serviceNominal.getSewa()));
        }
    }

    public void isiIDFilm() {
        daftarKodeFilm = serviceFilm.getAllKodeFilm(viewpinjam.getTfnamafilm().getSelectedItem().toString());
        for (Film member : daftarKodeFilm) {
            viewpinjam.getTfidfilm().setText(String.valueOf(member.getId()));
        }

        if (viewpinjam.getTfnamafilm().getSelectedIndex() == 0) {
            viewpinjam.getTfidfilm().setText("");
        }
    }

    public void insert() {
        if (viewpinjam.getTfnamapenyewa().getText().isEmpty() || viewpinjam.getTfnohandphone().getText().isEmpty() || viewpinjam.getTfalamat().getText().isEmpty()
                || viewpinjam.getTfnamafilm().getSelectedIndex() == 0 || viewpinjam.getTftanggalpinjam().getCalendar() == null
                || viewpinjam.getTftanggalkembali().getCalendar() == null) {
            JOptionPane.showMessageDialog(viewpinjam, "Form Harap Diisi lengkap & Tidak Kosong.", "Kesalahan", JOptionPane.WARNING_MESSAGE);
        } else {
            Transaksi transaksi = new Transaksi();

            if (viewpinjam.getTfCekMember().isSelected()) {
                transaksi.setIdMember(viewpinjam.getTfidmember().getSelectedItem().toString());
            } else {
                transaksi.setIdMember("Non Member");
            }

            transaksi.setNama(viewpinjam.getTfnamapenyewa().getText().trim().toUpperCase());
            transaksi.setHandphone(viewpinjam.getTfnohandphone().getText().trim().toUpperCase());
            transaksi.setAlamat(viewpinjam.getTfalamat().getText().trim().toUpperCase());
            transaksi.setNamaFilm(viewpinjam.getTfnamafilm().getSelectedItem().toString());
            transaksi.setIdFilm(Integer.parseInt(viewpinjam.getTfidfilm().getText().trim().toUpperCase()));

            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String pinjam = sdf.format(viewpinjam.getTftanggalpinjam().getDate());
            transaksi.setTanggalPinjam(pinjam);
            String kembali = sdf.format(viewpinjam.getTftanggalkembali().getDate());
            transaksi.setTanggalKembali(kembali);

            transaksi.setTotalTransaksi(kembalikanNilaiSemula(viewpinjam.getTftotaltransaksi().getText().trim()));
            transaksi.setTerlambat(0);
            transaksi.setDenda(0);
            try {
                serviceTransaksi.insertTransaksi(transaksi);
                String judulFilm = viewpinjam.getTfnamafilm().getSelectedItem().toString();
                serviceFilm.updateKetersediaan(judulFilm, "Tidak Tersedia");
                JOptionPane.showMessageDialog(viewpinjam, "Data Transaksi Berhasil Disimpan.", "Tambah Data Berhasil", JOptionPane.INFORMATION_MESSAGE);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(viewpinjam, "Data Transaksi Gagal Disimpan., Terjadi Kesalahan Pada MySQL.", "Kesalahan", JOptionPane.WARNING_MESSAGE);
            }
        }
    }

    private int kembalikanNilaiSemula(String formatUang) {
        String tmp = formatUang.replaceAll("\\s|[a-z]|[A-Z]|\\.|(,00)", "");
        return Integer.parseInt(tmp);
    }

    public void hitungPembayaran() {
        if (viewpinjam.getTfpembayaran().getText().isEmpty()) {
            JOptionPane.showMessageDialog(viewpinjam, "Harap Isi  Uang Pembayaran !", "Kesalahan", JOptionPane.WARNING_MESSAGE);
        } else {
            int totalTransaksi = kembalikanNilaiSemula(viewpinjam.getTftotaltransaksi().getText().trim());
            int uangBayar = kembalikanNilaiSemula(viewpinjam.getTfpembayaran().getText().trim());
            int uangKembalian = uangBayar - totalTransaksi;
            System.out.println(totalTransaksi);
            System.out.println(uangBayar);
            System.out.println(uangKembalian);
            viewpinjam.getTfkembalian().setText(ControllerStaff.formatUang((double) uangKembalian));
        }
    }

    private int hitungKeterlambatan(int row) {
        String tanggalKembali = viewkembali.getTabel_pengembalian().getValueAt(row, 8).toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String tanggalPengembalian = sdf.format(viewkembali.getTftanggalkembali().getDate());

        Date mulai = null;
        Date kembali = null;

        try {
            mulai = sdf.parse(tanggalKembali);
            kembali = sdf.parse(tanggalPengembalian);
        } catch (ParseException ex) {
            Logger.getLogger(ControllerTransaksi.class.getName()).log(Level.SEVERE, null, ex);
        }
        DateTime d1 = new DateTime(mulai);
        DateTime d2 = new DateTime(kembali);
        int selisih = Days.daysBetween(d1, d2).getDays();
        return selisih;
    }

    public void pengembalian(int row) {
        if (row == -1) {
            JOptionPane.showMessageDialog(viewpinjam, "Harap Pilih Data Yang Akan Dieksekusi !", "Kesalahan", JOptionPane.WARNING_MESSAGE);
        }

        Transaksi trn = new Transaksi();
        int besarDenda = hitungKeterlambatan(row) * serviceNominal.getDenda();
        String id = viewkembali.getTabel_pengembalian().getValueAt(row, 0).toString();
        String judulFilm = viewkembali.getTabel_pengembalian().getValueAt(row, 5).toString();

        trn.setTerlambat(hitungKeterlambatan(row));
        trn.setDenda(besarDenda);
        trn.setIdTransaksi(Integer.parseInt(id));

        serviceFilm.updateKetersediaan(judulFilm, "Tersedia");
        serviceTransaksi.updateTransaksi(trn);

        viewkembali.getTfketerlambatan().setText(String.valueOf(hitungKeterlambatan(row)));
        viewkembali.getTftotaldenda().setText(ControllerStaff.formatUang((double) besarDenda));

        System.out.println("Keterlambatan: " + hitungKeterlambatan(row) + " hari");
        System.out.println("Denda: " + hitungKeterlambatan(row) + "*" + serviceNominal.getDenda() + " = " + besarDenda);
    }

    public void kosongkanForm() {
        viewpinjam.getTfidmember().setSelectedIndex(0);
        viewpinjam.getTfCekMember().setSelected(false);
        viewpinjam.getTfnamapenyewa().setText("");
        viewpinjam.getTfnohandphone().setText("");
        viewpinjam.getTfalamat().setText("");
        viewpinjam.getTfnamafilm().setSelectedIndex(0);
        viewpinjam.getTfidfilm().setText("");
        viewpinjam.getTftanggalpinjam().setCalendar(null);
        viewpinjam.getTftanggalkembali().setCalendar(null);
        viewpinjam.getTftotaltransaksi().setText("");
        viewpinjam.getTfpembayaran().setText("");
    }

    public void kosongkanFormPengembalian() {
        viewkembali.getTftanggalkembali().setCalendar(null);
        viewkembali.getTfbayardenda().setText("");
        viewkembali.getTfkembalian().setText("");
        viewkembali.getTftotaldenda().setText("");
        viewkembali.getTfketerlambatan().setText("");
    }

    public void hitungPembayaranDenda() {
        int bayar = Integer.parseInt(viewkembali.getTfbayardenda().getText().trim());
        int denda = kembalikanNilaiSemula(viewkembali.getTftotaldenda().getText().trim());
        int kembalian = bayar - denda;
        viewkembali.getTfkembalian().setText(ControllerStaff.formatUang((double) kembalian));
    }

    public void isiTablePengembalian() {
        daftarTransaksi = serviceTransaksi.getAllTransaksi();
        Object[][] data = new Object[daftarTransaksi.size()][12];
        int baris = 0;
        for (Transaksi transaksi : daftarTransaksi) {
            data[baris][0] = transaksi.getIdTransaksi();
            data[baris][1] = transaksi.getIdMember();
            data[baris][2] = transaksi.getNama();
            data[baris][3] = transaksi.getHandphone();
            data[baris][4] = transaksi.getAlamat();
            data[baris][5] = transaksi.getNamaFilm();
            data[baris][6] = transaksi.getIdFilm();
            data[baris][7] = transaksi.getTanggalPinjam();
            data[baris][8] = transaksi.getTanggalKembali();
            data[baris][9] = ControllerStaff.formatUang((double) transaksi.getTotalTransaksi());
            data[baris][10] = transaksi.getTerlambat();
            data[baris][11] = ControllerStaff.formatUang((double) transaksi.getDenda());
            baris++;
        }
        String[] header = {"ID", "ID MEMBER", "NAMA", "HANDPHONE", "ALAMAT", "FILM", "ID FILM", "TANGGAL PINJAM", "TANGGAL KEMBALI", "TOTAL", "KETERLAMBATAN", "DENDA"};
        DefaultTableModel model = new DefaultTableModel(data, header);
        viewkembali.getTabel_pengembalian().setModel(model);
    }
}
TOP

Related Classes of id.keda87.clickrental.controller.ControllerTransaksi

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.