package windowsform; import java.awt.GridLayout; import javax.swing.JPanel; import javax.swing.JLabel; import java.awt.Rectangle; import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JButton; import javax.swing.table.DefaultTableModel; import core.business.AvailableService; import core.business.Customer; import core.business.Reservation; import core.business.ReservationDetailService; import core.business.Room; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.ResultSet; import java.sql.SQLException; public class CheckoutForm extends JInternalFrame{ /** * */ private static final long serialVersionUID = 1L; int resID; int custID; int roomID; JInternalFrame owner; DefaultTableModel tblModelAvailable; DefaultTableModel tblModelService; public CheckoutForm(JInternalFrame owner, int resID) { try { this.resID = resID; this.owner = owner; jbInit(); this.setClosable(true); this.setMaximizable(true); this.setVisible(true); //this.setResizable(true); this.setSize(700, 550); loadReservation(); } catch (Exception ex) { ex.printStackTrace(); } } public void loadReservation(){ ResultSet rs = Reservation.getReservationInfo(resID); try { while(rs.next()){ this.custID = rs.getInt("customerID"); this.txt_NumOfAdult.setText(rs.getInt("numberOfAdult") +""); this.txt_NumOFfChild.setText(rs.getInt("numberOfChild")+""); this.txt_CheckinDate.setText(rs.getString("resDate")); this.txt_LeaveDate.setText(rs.getString("resLeaveDate")); this.txt_Total.setText(rs.getDouble("preTotalCost") + ""); roomID = rs.getInt("roomID"); } //load customer loadCustomer(custID); //load reservation detail room, service loadRoomDetailOfRes(); loadExtraService(resID); //load } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void loadExtraService(int resID){ try{ ResultSet rs = ReservationDetailService.getExtraServices(resID); int i = 0; double total = 0; while(rs.next()){ tblModelService.insertRow(i++, new Object[]{rs.getInt("serviceID"), rs.getString("serviceName"), rs.getDouble("serviceAmount")}); total += rs.getDouble("serviceAmount"); } txt_ServiceFee.setText(total + ""); } catch(Exception ex){ System.out.println(ex.getMessage()); } } private void loadCustomer(int custID){ Customer cust = new Customer(custID); this.txt_CustName.setText(cust.getCustName()); this.txt_CustAddress.setText(cust.getCustAddress()); this.txt_CustPassport.setText(cust.getCustPassport()); this.txt_CustPhone.setText(cust.getCustPhone()); } private void loadRoomDetailOfRes(){ Room room = new Room(roomID); this.txt_Room.setText(room.getRoomName()); this.txt_RoomFee.setText(room.getRoomFee()+""); ResultSet rs = AvailableService.getAvailableServiceByRoom(roomID); try { int i=0; while(rs.next()){ tblModelAvailable.insertRow(i++, new Object[]{rs.getInt("serviceID"), rs.getString("serviceName"), rs.getDouble("serviceAmount")}); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void jbInit() throws Exception { String col[] = {"Service ID", "Service Name", "Service Amt"}; tblModelAvailable = new DefaultTableModel(null, col); tblModelService = new DefaultTableModel(null, col); tblExtraService = new JTable(tblModelService){ private static final long serialVersionUID = 1L; public boolean isCellEditable(int rowIndex, int colIndex) { return false; //Disallow the editing of any cell }}; tblAvailableService = new JTable(tblModelAvailable){ private static final long serialVersionUID = 1L; public boolean isCellEditable(int rowIndex, int colIndex) { return false; //Disallow the editing of any cell }}; this.getContentPane().setLayout(gridLayout1); jLabel2.setFont(new java.awt.Font("Tahoma", Font.BOLD, 15)); jLabel2.setText("Check Out"); jLabel2.setBounds(new Rectangle(309, 2, 84, 20)); jLabel3.setText("Address"); jLabel3.setBounds(new Rectangle(26, 93, 64, 18)); jLabel4.setText("ID/Passport"); jLabel4.setBounds(new Rectangle(26, 69, 78, 14)); jLabel5.setText("Room"); jLabel5.setBounds(new Rectangle(26, 152, 34, 14)); jLabel6.setText("Number Of Adult"); jLabel6.setBounds(new Rectangle(352, 42, 99, 15)); jLabel7.setText("Number Of Children"); jLabel7.setBounds(new Rectangle(352, 62, 98, 21)); jLabel8.setText("Phone"); jLabel8.setBounds(new Rectangle(26, 116, 70, 24)); jLabel9.setText("Checkin Date"); jLabel9.setBounds(new Rectangle(26, 176, 92, 23)); jLabel10.setText("Leave Date"); jLabel10.setBounds(new Rectangle(26, 201, 86, 24)); jLabel11.setText("Room Fee"); jLabel11.setBounds(new Rectangle(25, 384, 87, 21)); jLabel12.setText("Total Service Fee"); jLabel12.setBounds(new Rectangle(25, 406, 108, 26)); jLabel13.setText("Total"); jLabel13.setBounds(new Rectangle(25, 431, 84, 31)); jScrollPane1 = new JScrollPane(tblExtraService); jScrollPane1.setBounds(new Rectangle(348, 233, 305, 133)); jScrollPane2 = new JScrollPane( tblAvailableService); jScrollPane2.setBounds(new Rectangle(26, 234, 305, 133)); jLabel14.setText("Extra Services"); jLabel14.setBounds(new Rectangle(354, 203, 101, 22)); txt_CustName.setText(":"); txt_CustName.setBounds(new Rectangle(146, 41, 138, 16)); txt_CustPassport.setText(":"); txt_CustPassport.setBounds(new Rectangle(146, 67, 138, 16)); txt_CheckinDate.setText(":"); txt_CheckinDate.setBounds(new Rectangle(147, 176, 138, 16)); txt_CustPhone.setText(":"); txt_CustPhone.setBounds(new Rectangle(147, 118, 138, 16)); txt_Room.setText(":"); txt_Room.setBounds(new Rectangle(147, 150, 138, 16)); txt_CustAddress.setText(":"); txt_CustAddress.setBounds(new Rectangle(146, 95, 351, 16)); txt_NumOfAdult.setText(":"); txt_NumOfAdult.setBounds(new Rectangle(486, 41, 138, 16)); txt_NumOFfChild.setText(":"); txt_NumOFfChild.setBounds(new Rectangle(486, 62, 138, 16)); txt_LeaveDate.setText(":"); txt_LeaveDate.setBounds(new Rectangle(147, 205, 138, 16)); txt_RoomFee.setText(":"); txt_RoomFee.setBounds(new Rectangle(146, 388, 138, 16)); txt_ServiceFee.setText(":"); txt_ServiceFee.setBounds(new Rectangle(146, 410, 138, 16)); txt_Total.setText(":"); txt_Total.setBounds(new Rectangle(146, 437, 138, 16)); btn_Print.setBounds(new Rectangle(303, 468, 73, 23)); btn_Print.setText("Print"); btn_Print.addActionListener(new CheckoutForm_btn_Print_actionAdapter(this)); btn_Ok.setBounds(new Rectangle(217, 468, 73, 23)); btn_Ok.setText("Ok"); btn_Ok.addActionListener(new CheckoutForm_btn_Ok_actionAdapter(this)); btn_Cancel.setBounds(new Rectangle(388, 468, 73, 23)); btn_Cancel.setText("Cancel"); btn_Cancel.addActionListener(new CheckoutForm_btn_Cancel_actionAdapter(this)); jPanel1.add(jLabel1); jPanel1.add(jLabel4); jPanel1.add(jLabel3); jPanel1.add(jLabel5); jPanel1.add(jLabel8); jPanel1.add(jLabel10); jPanel1.add(jLabel9); jPanel1.add(jLabel11); jPanel1.add(jLabel13); jPanel1.add(jLabel12); jPanel1.add(jScrollPane2); jPanel1.add(jScrollPane1); jPanel1.add(jLabel14); jPanel1.add(jLabel2); jPanel1.add(txt_CustName); jPanel1.add(txt_CustPassport); jPanel1.add(txt_CustAddress); jPanel1.add(txt_CustPhone); jPanel1.add(txt_Room); jPanel1.add(txt_CheckinDate); jPanel1.add(txt_LeaveDate); jPanel1.add(txt_RoomFee); jPanel1.add(txt_ServiceFee); jPanel1.add(txt_Total); jPanel1.add(jLabel7); jPanel1.add(jLabel6); jPanel1.add(txt_NumOfAdult); jPanel1.add(txt_NumOFfChild); jPanel1.add(btn_Print); jPanel1.add(btn_Cancel); jPanel1.add(btn_Ok); //jScrollPane1.getViewport().add(tblExtraService); //jScrollPane2.getViewport().add(jTable3); this.getContentPane().add(jPanel1); jLabel1.setText("Customer"); jLabel1.setBounds(new Rectangle(26, 43, 58, 14)); jPanel1.setLayout(null); } GridLayout gridLayout1 = new GridLayout(); JPanel jPanel1 = new JPanel(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JLabel jLabel3 = new JLabel(); JLabel jLabel4 = new JLabel(); JLabel jLabel5 = new JLabel(); JLabel jLabel6 = new JLabel(); JLabel jLabel7 = new JLabel(); JLabel jLabel8 = new JLabel(); JLabel jLabel9 = new JLabel(); JLabel jLabel10 = new JLabel(); JLabel jLabel11 = new JLabel(); JLabel jLabel12 = new JLabel(); JLabel jLabel13 = new JLabel(); JTable tblAvailableService; JScrollPane jScrollPane1; JTable tblExtraService; JScrollPane jScrollPane2; JLabel jLabel14 = new JLabel(); JLabel txt_CustName = new JLabel(); JLabel txt_CustPassport = new JLabel(); JLabel txt_CheckinDate = new JLabel(); JLabel txt_CustPhone = new JLabel(); JLabel txt_Room = new JLabel(); JLabel txt_CustAddress = new JLabel(); JLabel txt_NumOfAdult = new JLabel(); JLabel txt_NumOFfChild = new JLabel(); JLabel txt_LeaveDate = new JLabel(); JLabel txt_RoomFee = new JLabel(); JLabel txt_ServiceFee = new JLabel(); JLabel txt_Total = new JLabel(); JButton btn_Print = new JButton(); JButton btn_Ok = new JButton(); JButton btn_Cancel = new JButton(); public void btn_Ok_actionPerformed(ActionEvent e) { //update res Status to complete Reservation.makeComplete(resID); //update room Status to free Room.updateStatus(roomID, 1); JOptionPane.showMessageDialog(null, "Check-out completed."); ((RoomStatusForm)owner).updateRoomLayout(); } public void btn_Print_actionPerformed(ActionEvent e) { } public void btn_Cancel_actionPerformed(ActionEvent e) { } } class CheckoutForm_btn_Cancel_actionAdapter implements ActionListener { private CheckoutForm adaptee; CheckoutForm_btn_Cancel_actionAdapter(CheckoutForm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_Cancel_actionPerformed(e); } } class CheckoutForm_btn_Print_actionAdapter implements ActionListener { private CheckoutForm adaptee; CheckoutForm_btn_Print_actionAdapter(CheckoutForm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_Print_actionPerformed(e); } } class CheckoutForm_btn_Ok_actionAdapter implements ActionListener { private CheckoutForm adaptee; CheckoutForm_btn_Ok_actionAdapter(CheckoutForm adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.btn_Ok_actionPerformed(e); } }