Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * * @author KIDDY */ import java.awt.Color; import java.sql.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.swing.JOptionPane; import org.joda.time.DateTime; import org.joda.time.Days; public class UpdateTransaction extends javax.swing.JFrame { /** * Creates new form UpdateTransaction */ public UpdateTransaction() { initComponents(); getContentPane().setBackground(Color.BLACK); getDataForCombo(); getDataForCustomer(); getDataForRoom(); ClearForm(); dp_checkin.setFormats(new String[] { "yyyy-MM-dd" }); dp_checkin.setDate(null); dp_checkout.setFormats(new String[] { "yyyy-MM-dd" }); dp_checkout.setDate(null); jTextField4.setVisible(false); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { cb_IDCustomer = new javax.swing.JComboBox(); cb_IDRoom = new javax.swing.JComboBox(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); dp_checkin = new org.jdesktop.swingx.JXDatePicker(); dp_checkout = new org.jdesktop.swingx.JXDatePicker(); jLabel13 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); btn_update = new javax.swing.JButton(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jComboBox1 = new javax.swing.JComboBox(); jTextField4 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setMaximumSize(new java.awt.Dimension(450, 450)); setMinimumSize(new java.awt.Dimension(450, 450)); setPreferredSize(new java.awt.Dimension(450, 450)); setSize(new java.awt.Dimension(450, 450)); getContentPane().setLayout(null); getContentPane().add(cb_IDCustomer); cb_IDCustomer.setBounds(179, 125, 161, 20); cb_IDRoom.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { cb_IDRoomItemStateChanged(evt); } }); getContentPane().add(cb_IDRoom); cb_IDRoom.setBounds(179, 156, 161, 20); jLabel3.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel3.setForeground(new java.awt.Color(255, 255, 255)); jLabel3.setText("ID Customer"); getContentPane().add(jLabel3); jLabel3.setBounds(58, 128, 73, 15); jLabel4.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel4.setForeground(new java.awt.Color(255, 255, 255)); jLabel4.setText("ID Room"); getContentPane().add(jLabel4); jLabel4.setBounds(58, 159, 52, 14); dp_checkin.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dp_checkinActionPerformed(evt); } }); getContentPane().add(dp_checkin); dp_checkin.setBounds(179, 213, 161, 22); dp_checkout.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { dp_checkoutActionPerformed(evt); } }); getContentPane().add(dp_checkout); dp_checkout.setBounds(179, 242, 161, 22); jLabel13.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel13.setForeground(new java.awt.Color(255, 255, 255)); jLabel13.setText("ID Transaction"); getContentPane().add(jLabel13); jLabel13.setBounds(58, 102, 85, 15); jLabel5.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel5.setForeground(new java.awt.Color(255, 255, 255)); jLabel5.setText("Check In Date"); getContentPane().add(jLabel5); jLabel5.setBounds(58, 217, 81, 15); jLabel6.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel6.setForeground(new java.awt.Color(255, 255, 255)); jLabel6.setText("Check Out Date"); getContentPane().add(jLabel6); jLabel6.setBounds(58, 246, 92, 15); jLabel7.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel7.setForeground(new java.awt.Color(255, 255, 255)); jLabel7.setText("Room Price"); getContentPane().add(jLabel7); jLabel7.setBounds(58, 190, 68, 15); btn_update.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N btn_update.setText("Update"); btn_update.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_updateActionPerformed(evt); } }); getContentPane().add(btn_update); btn_update.setBounds(179, 344, 75, 23); jLabel8.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel8.setForeground(new java.awt.Color(255, 255, 255)); jLabel8.setText("Total Day"); getContentPane().add(jLabel8); jLabel8.setBounds(58, 278, 55, 15); jLabel9.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jLabel9.setForeground(new java.awt.Color(255, 255, 255)); jLabel9.setText("Total Price"); getContentPane().add(jLabel9); jLabel9.setBounds(58, 309, 61, 15); jLabel1.setFont(new java.awt.Font("Monotype Corsiva", 1, 48)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 255, 255)); jLabel1.setText("Update Transaction"); getContentPane().add(jLabel1); jLabel1.setBounds(24, 33, 393, 55); jTextField1.setEditable(false); getContentPane().add(jTextField1); jTextField1.setBounds(179, 187, 161, 20); jTextField2.setEditable(false); jTextField2.setText(" "); getContentPane().add(jTextField2); jTextField2.setBounds(179, 275, 161, 20); jTextField3.setEditable(false); jTextField3.setText(" "); getContentPane().add(jTextField3); jTextField3.setBounds(179, 306, 161, 20); jComboBox1.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { jComboBox1ItemStateChanged(evt); } }); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBox1ActionPerformed(evt); } }); getContentPane().add(jComboBox1); jComboBox1.setBounds(179, 99, 160, 20); jTextField4.setEditable(false); jTextField4.setForeground(new java.awt.Color(255, 255, 255)); getContentPane().add(jTextField4); jTextField4.setBounds(350, 156, 55, 20); jButton1.setFont(new java.awt.Font("Myriad Pro", 0, 14)); // NOI18N jButton1.setText("Clear"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); getContentPane().add(jButton1); jButton1.setBounds(279, 344, 61, 23); jButton2.setText("Close"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); getContentPane().add(jButton2); jButton2.setBounds(310, 10, 80, 23); pack(); }// </editor-fold>//GEN-END:initComponents private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_jComboBox1ItemStateChanged // TODO add your handling code here: try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "select * from tb_trans where id_transaction = ?"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, jComboBox1.getSelectedItem().toString()); ResultSet rs = ps.executeQuery(); if (rs.next()) { //cb_IDCustomer.addItem(rs.getString("id_customer")); cb_IDCustomer.setSelectedItem(rs.getString("id_customer")); cb_IDRoom.setSelectedItem(rs.getString("id_room")); dp_checkin.setDate(rs.getDate("checkindate")); dp_checkout.setDate(rs.getDate("checkoutdate")); jTextField2.setText(rs.getString("totaldays")); jTextField3.setText(rs.getString("totalprice")); jTextField4.setText(rs.getString("id_room")); } else { JOptionPane.showMessageDialog(this, "Data not found."); } } catch (Exception e) { System.err.println(e); } }//GEN-LAST:event_jComboBox1ItemStateChanged private void cb_IDRoomItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cb_IDRoomItemStateChanged // TODO add your handling code here: //start try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "select * from tb_room2 where id_room = ?"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, cb_IDRoom.getSelectedItem().toString()); ResultSet rs = ps.executeQuery(); if (rs.next()) { //cb_IDCustomer.addItem(rs.getString("id_customer")); jTextField1.setVisible(true); jTextField1.setText(rs.getString("price")); } else { JOptionPane.showMessageDialog(this, "Data not found."); } } catch (Exception e) { System.err.println(e); } }//GEN-LAST:event_cb_IDRoomItemStateChanged private void dp_checkinActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dp_checkinActionPerformed // TODO add your handling code here: java.util.Date today = new java.util.Date(); //mengambil tanggal hari ini java.util.Date checkindate = dp_checkin.getDate(); if (jTextField1.getText() == "") { JOptionPane.showMessageDialog(this, "Please Choose ID Room"); dp_checkin.setDate(checkindate); } //check yesterday DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); // Create a calendar object with today date. Calendar is in java.util pakage. Calendar calendar = Calendar.getInstance(); // Move calendar to yesterday calendar.add(Calendar.DATE, -1); // Get current date of calendar which point to the yesterday now java.util.Date yesterday = calendar.getTime(); // if (checkindate.before(yesterday)) { JOptionPane.showMessageDialog(this, "Checkindate must be bigger than today"); dp_checkin.setDate(today); } }//GEN-LAST:event_dp_checkinActionPerformed private void dp_checkoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dp_checkoutActionPerformed // TODO add your handling code here: //check total days java.util.Date today = new java.util.Date(); //mengambil tanggal hari ini java.util.Date checkindate = dp_checkin.getDate(); java.util.Date checkoutdate = dp_checkout.getDate(); if (jTextField1.getText() == "") { JOptionPane.showMessageDialog(this, "Please Choose ID Room"); dp_checkin.setDate(checkindate); } if (dp_checkin.getDate() == null) { JOptionPane.showMessageDialog(this, "Please Choose Checkin Date"); } //start int days = getDaysDiff(today, checkindate); int days2 = getDaysDiff(checkindate, checkoutdate); int days3 = getDaysDiff(checkoutdate, checkindate); // tanggal lahir harus sebelum tanggal hari ini. if (today.before(checkindate)) { JOptionPane.showMessageDialog(this, "Checkin date must bigger than today"); dp_checkin.setDate(null); } if (checkindate.equals(today)) { jTextField2.setText(String.valueOf(days2)); Integer roomprice = Integer.parseInt(jTextField1.getText()); Integer totaldays = Integer.parseInt(jTextField2.getText()); Integer total = roomprice * totaldays; jTextField3.setText(String.valueOf(total)); } if (checkoutdate.before(checkindate)) { JOptionPane.showMessageDialog(this, "Checkout date must bigger than checkin date"); dp_checkout.setDate(checkoutdate); } if (checkoutdate.equals(checkindate)) { JOptionPane.showMessageDialog(this, "Checkout date must bigger than checkin date"); dp_checkout.setDate(checkoutdate); } else { jTextField2.setText(String.valueOf(days2)); Integer roomprice = Integer.parseInt(jTextField1.getText()); Integer totaldays = Integer.parseInt(jTextField2.getText()); Integer total = roomprice * totaldays; jTextField3.setText(String.valueOf(total)); } }//GEN-LAST:event_dp_checkoutActionPerformed private void btn_updateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btn_updateActionPerformed // TODO add your handling code here: try { String idtransaction = jComboBox1.getSelectedItem().toString(); String idcustomer = cb_IDCustomer.getSelectedItem().toString(); String idroom = cb_IDRoom.getSelectedItem().toString(); String idroomlama = jTextField4.getText(); String roomprice = jTextField1.getText(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String checkindate = df.format(dp_checkin.getDate()); String checkoutdate = df.format(dp_checkout.getDate()); String totaldays = jTextField2.getText(); String totalprice = jTextField3.getText(); String status = "Not Avaliable"; String statusroom = "Available"; Koneksi kon = new Koneksi(); Connection con = kon.open(); //update room pertama// String sql2 = "update tb_room2 set status = ? where id_room = ?"; PreparedStatement ps2 = con.prepareStatement(sql2); ps2.setString(1, statusroom); ps2.setString(2, idroomlama); int rows2 = ps2.executeUpdate(); //finish String sql = "update tb_trans set id_customer = ?, id_room = ?, checkindate = ?, checkoutdate = ?, totaldays = ?, totalprice = ? where id_transaction = ?"; PreparedStatement ps = con.prepareStatement(sql); ps.setString(1, idcustomer); ps.setString(2, idroom); ps.setString(3, checkindate); ps.setString(4, checkoutdate); ps.setString(5, totaldays); ps.setString(6, totalprice); ps.setString(7, idtransaction); //update room kedua yang akan dibuat// String sql3 = "update tb_room2 set status = ? where id_room = ?"; PreparedStatement ps3 = con.prepareStatement(sql3); ps3.setString(1, status); ps3.setString(2, idroom); int rows3 = ps3.executeUpdate(); //finish int rows = ps.executeUpdate(); if (rows != 0) { JOptionPane.showMessageDialog(this, "Sucessfull Checkout."); ClearForm(); } else { JOptionPane.showMessageDialog(this, "ID Transaction Not Found."); } } catch (Exception e) { System.err.println(e); } }//GEN-LAST:event_btn_updateActionPerformed private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jComboBox1ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed // TODO add your handling code here: ClearForm(); }//GEN-LAST:event_jButton1ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed // TODO add your handling code here: this.hide(); }//GEN-LAST:event_jButton2ActionPerformed private int getDaysDiff(java.util.Date startdate, java.util.Date enddate) { DateTime start = new DateTime(startdate); DateTime end = new DateTime(enddate); int days = Days.daysBetween(start, end).getDays(); return days; } private void getDataForCombo() { try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "Select * from tb_trans where status = 'Check In'"; Statement state = con.createStatement(); ResultSet rs = state.executeQuery(sql); while (rs.next()) { jComboBox1.addItem(rs.getString("id_transaction")); } jComboBox1.setSelectedIndex(-1); con.close(); } catch (Exception e) { System.err.println(e); } } private void getDataForCustomer() { try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "Select * from tb_cust"; Statement state = con.createStatement(); ResultSet rs = state.executeQuery(sql); while (rs.next()) { cb_IDCustomer.addItem(rs.getString("id_customer")); } cb_IDCustomer.setSelectedIndex(-1); con.close(); } catch (Exception e) { System.err.println(e); } } private void getDataForRoom() { try { Koneksi kon = new Koneksi(); Connection con = kon.open(); String sql = "Select * from tb_room2"; Statement state = con.createStatement(); ResultSet rs = state.executeQuery(sql); while (rs.next()) { cb_IDRoom.addItem(rs.getString("id_room")); } cb_IDRoom.setSelectedIndex(-1); con.close(); } catch (Exception e) { System.err.println(e); } } public void ClearForm() { jComboBox1.setSelectedIndex(-1); cb_IDCustomer.setSelectedIndex(-1); cb_IDRoom.setSelectedIndex(-1); jTextField1.setText(""); jTextField2.setText(""); jTextField3.setText(""); jTextField4.setText(""); dp_checkin.setDate(null); dp_checkout.setDate(null); } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(UpdateTransaction.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(UpdateTransaction.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(UpdateTransaction.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(UpdateTransaction.class.getName()) .log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new UpdateTransaction().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btn_update; private javax.swing.JComboBox cb_IDCustomer; private javax.swing.JComboBox cb_IDRoom; private org.jdesktop.swingx.JXDatePicker dp_checkin; private org.jdesktop.swingx.JXDatePicker dp_checkout; private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; // End of variables declaration//GEN-END:variables }