package windowsform;
import javax.swing.JPanel;
import java.awt.GridLayout;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JInternalFrame;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import core.business.Customer;
import core.business.Reservation;
import core.business.ReservationDetailService;
import core.business.Room;
import core.formcontroller.MDIDesktopPane;
public class AddCheckinServiceForm extends JInternalFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
MDIDesktopPane desktop;
DefaultTableModel tblModelService;
int resID;
int roomID;
int custID;
int resDetailID;
int oldRowNumber;
public AddCheckinServiceForm(MDIDesktopPane desktop, int resID) {
try {
this.desktop = desktop;
this.resID = resID;
this.setSize(370, 320);
this.setClosable(true);
this.setMaximizable(true);
this.setVisible(true);
jbInit();
loadReserService();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void loadReserService(){
ResultSet rs = Reservation.getReservationInfo(resID);
try {
while(rs.next()){
this.custID = rs.getInt("customerID");
roomID = rs.getInt("roomID");
txtTotalAmt.setText(rs.getDouble("preTotalCost") + "");
resDetailID = rs.getInt("resDetailID");
}
Room room = new Room(roomID);
this.txtRoomName.setText(room.getRoomName());
Customer cust = new Customer(custID);
this.txtCustomer.setText(cust.getCustName());
//load reservation detail room, service
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;
while(rs.next()){
tblModelService.insertRow(i++, new Object[]{rs.getInt("serviceID"), rs.getString("serviceName"), rs.getDouble("serviceAmount")});
}
oldRowNumber = i;
}
catch(Exception ex){
System.out.println(ex.getMessage());
}
}
private void jbInit() throws Exception {
String col[] = {"Service ID", "Service Name", "Service Amt"};
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
}};
this.setSize(367,300);
this.getContentPane().setLayout(gridLayout1);
jScrollPane1.setBounds(new Rectangle(29, 156, 305, 133));
txtRoomName.setBounds(new Rectangle(87, 24, 182, 22));
btnAddMore.setBounds(new Rectangle(87, 123, 97, 23));
btnAddMore.setText("Add more...");
btnAddMore.addActionListener(new
AddCheckinServiceForm_btnAddMore_actionAdapter(this));
btnSave.setBounds(new Rectangle(195, 123, 74, 23));
btnSave.setText("Save");
btnSave.addActionListener(new AddCheckinServiceForm_btnSave_actionAdapter(this));
jLabel2.setText("Customer");
jLabel2.setBounds(new Rectangle(29, 63, 57, 18));
txtCustomer.setBounds(new Rectangle(87, 58, 182, 22));
jLabel3.setText("Total Amt");
jLabel3.setBounds(new Rectangle(28, 97, 116, 24));
txtTotalAmt.setBounds(new Rectangle(178, 90, 90, 23));
jPanel1.add(jLabel1);
jPanel1.add(txtRoomName);
jPanel1.add(txtCustomer);
jPanel1.add(jLabel2);
jPanel1.add(jScrollPane1);
jPanel1.add(btnAddMore);
jPanel1.add(btnSave);
jPanel1.add(jLabel3);
jPanel1.add(txtTotalAmt);
jScrollPane1.getViewport().add(tblExtraService);
this.getContentPane().add(jPanel1, null);
jLabel1.setText("Room:");
jLabel1.setBounds(new Rectangle(29, 26, 63, 24));
jPanel1.setLayout(null);
}
JPanel jPanel1 = new JPanel();
GridLayout gridLayout1 = new GridLayout();
JLabel jLabel1 = new JLabel();
JTextField txtRoomName = new JTextField();
JScrollPane jScrollPane1 = new JScrollPane();
JButton btnAddMore = new JButton();
JButton btnSave = new JButton();
JTable tblExtraService;
JLabel jLabel2 = new JLabel();
JTextField txtCustomer = new JTextField();
JLabel jLabel3 = new JLabel();
JTextField txtTotalAmt = new JTextField();
public void btnAddMore_actionPerformed(ActionEvent e) {
ServiceChooseForAddMore sc = new ServiceChooseForAddMore(this);
try{
desktop.add(sc);
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
public void btnSave_actionPerformed(ActionEvent e) {
int rowcount = tblExtraService.getModel().getRowCount();
for(int i=0; i<rowcount-oldRowNumber; i++){
int sevID = (Integer) tblExtraService.getModel().getValueAt(i, 0);
ReservationDetailService resDet = new ReservationDetailService(resDetailID, sevID, 1);
resDet.addReservationServiceDetail();
//System.out.println(sevID + ", " + resDetailID);
}
Reservation.updateAmount(resID, Double.parseDouble(txtTotalAmt.getText()));
this.setVisible(false);
desktop.remove(this);
}
}
class AddCheckinServiceForm_btnSave_actionAdapter implements ActionListener {
private AddCheckinServiceForm adaptee;
AddCheckinServiceForm_btnSave_actionAdapter(AddCheckinServiceForm adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnSave_actionPerformed(e);
}
}
class AddCheckinServiceForm_btnAddMore_actionAdapter implements ActionListener {
private AddCheckinServiceForm adaptee;
AddCheckinServiceForm_btnAddMore_actionAdapter(AddCheckinServiceForm adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnAddMore_actionPerformed(e);
}
}