📄 guestcheckoutframe.java
字号:
* @return javax.swing.JTextField
*/
private JTextField getFeeTextField() {
if (feeTextField == null) {
feeTextField = new JTextField();
feeTextField.setBounds(new java.awt.Rectangle(470, 270, 75, 30));
feeTextField.setEditable(false);
}
return feeTextField;
}
/**
* This method initializes getMoneyTextField
*
* @return javax.swing.JTextField
*/
private JTextField getGetMoneyTextField() {
if (getMoneyTextField == null) {
getMoneyTextField = new JTextField();
getMoneyTextField
.setBounds(new java.awt.Rectangle(475, 408, 75, 40));
getMoneyTextField.setEditable(false);
}
return getMoneyTextField;
}
/**
* This method initializes gotMoneyTextField
*
* @return javax.swing.JTextField
*/
private JTextField getGotMoneyTextField() {
if (gotMoneyTextField == null) {
gotMoneyTextField = new JTextField();
gotMoneyTextField
.setBounds(new java.awt.Rectangle(475, 459, 75, 40));
gotMoneyTextField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
if (checkInput()) {
try {
if (gotMoneyTextField.getText() != "") {
double returnMoney = Double
.parseDouble(gotMoneyTextField
.getText())
- Double.parseDouble(getMoneyTextField
.getText());
if (returnMoney >= 0) {
returnMoneyTextField.setText(String
.valueOf(returnMoney));
} else {
JOptionPane.showMessageDialog(null,
"实收金额不够", "提示信息",
JOptionPane.WARNING_MESSAGE);
}
}
} catch (Exception e1) {
}
}
}
});
}
return gotMoneyTextField;
}
/**
* This method initializes returnMoneyTextField
*
* @return javax.swing.JTextField
*/
private JTextField getReturnMoneyTextField() {
if (returnMoneyTextField == null) {
returnMoneyTextField = new JTextField();
returnMoneyTextField.setBounds(new java.awt.Rectangle(475, 510, 75,
40));
returnMoneyTextField.setEditable(false);
}
return returnMoneyTextField;
}
private boolean checkInput() {
Check check = new Check();
if (check.checkIsContainCharactor(gotMoneyTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "实收金额不能包含有字母", "提示信息",
JOptionPane.WARNING_MESSAGE);
gotMoneyTextField.requestFocus();
return false;
}
return true;
}
/**
* This method initializes checkOutButton
*
* @return javax.swing.JButton
*/
private JButton getCheckOutButton() {
if (checkOutButton == null) {
checkOutButton = new JButton();
checkOutButton.setBounds(new java.awt.Rectangle(360, 350, 75, 40));
checkOutButton.setText("结账");
checkOutButton.addActionListener(this);
}
return checkOutButton;
}
// 更新宾客消费信息记录
public boolean updateGuestConsumedInfo() {
boolean flag = false;
GuestConsumedInfo gci = null;
try {
long consumedId = Long.parseLong(consumedIdTextField.getText());
String guestName = guestNameTextField.getText().trim();
// String roomNumber = roomnumberTextField.getText().trim();
long guestId = Long.parseLong(guestIdTextField.getText());
// 计算出消费时间并进行处理,不足半小时按照半小时计算,超过半小时按照一个小时计算
String guestCheckInTime = checkInTimeTextField.getText();
String[] Intemp = guestCheckInTime.split(" ");
String[] Intemp1 = Intemp[0].split("-");
String[] Intemp2 = Intemp[1].split(":");
Calendar time = Calendar.getInstance();
time.set(time.YEAR, Integer.parseInt(Intemp1[0]));
time.set(time.MONTH, Integer.parseInt(Intemp1[1]));
time.set(time.DATE, Integer.parseInt(Intemp1[2]));
time.set(time.HOUR_OF_DAY, Integer.parseInt(Intemp2[0]));
time.set(time.MINUTE, Integer.parseInt(Intemp2[1]));
time.set(time.SECOND, Integer.parseInt(Intemp2[2]));
long checkInTime = time.getTimeInMillis();
String guestCheckOutTime = new JLabelTime1()
.getCurrTime("yyyy-MM-dd HH:mm:ss");
// System.out.println(guestCheckOutTime);
String[] temp = guestCheckOutTime.split(" ");
String[] temp1 = temp[0].split("-");
String[] temp2 = temp[1].split(":");
time.set(time.YEAR, Integer.parseInt(temp1[0]));
time.set(time.MONTH, Integer.parseInt(temp1[1]));
time.set(time.DATE, Integer.parseInt(temp1[2]));
time.set(time.HOUR_OF_DAY, Integer.parseInt(temp2[0]));
time.set(time.MINUTE, Integer.parseInt(temp2[1]));
time.set(time.SECOND, Integer.parseInt(temp2[2]));
long checkOutTime = time.getTimeInMillis();
long numbertemp = (checkOutTime - checkInTime) / 1000l;
if (numbertemp < (long) (1800l)) {
JOptionPane.showMessageDialog(null, "提醒:您的消费时间不足半小时", "提示信息",
JOptionPane.WARNING_MESSAGE);
}
int numberhour = (int) (numbertemp / 3600);
int numberminute = (int) (numbertemp % 3600) / 60;
int numbersecond = (int) (numbertemp % 3600) % 60;
String strhour = null;
String strminute = null;
String strsecond = null;
numberhour = numberhour % 24;
if (numberhour < 10) {
strhour = "0" + String.valueOf(numberhour);
} else {
strhour = String.valueOf(numberhour);
}
if (numberminute < 10) {
strminute = "0" + String.valueOf(numberminute);
} else {
strminute = String.valueOf(numberminute);
}
if (numbersecond < 10) {
strsecond = "0" + String.valueOf(numbersecond);
} else {
strsecond = String.valueOf(numbersecond);
}
// 消费时间是String类型,格式需要进行处理,不能超过24小时,如例:04:45:25
String consumedTime = strhour + ":" + strminute + ":" + strsecond;
// System.out.println(consumedTime);
double consumedtime = (double) numberhour;
if (numberminute < 30) {
if (numberminute == 0) {
if (numbersecond > 0) {
consumedtime = (double) numberhour + 0.5;
}
} else {
consumedtime = (double) numberhour + 0.5;
}
} else {
consumedtime = (double) numberhour + 1;
}
// 商品消费额不变
double tempgoodsConsumedMoney = Double
.parseDouble(goodsConsumedMoney.getText().trim());
// System.out.println(consumedTime);
String consumedTypeName = consumedTypeNameTextField.getText()
.toString().trim();
// 押金只能为整数
int deposit = Integer.parseInt(depositTextField.getText());
double rebate = Double
.parseDouble(rebateTextField.getText().trim());
// 房间费用 = 折扣比例 * 处理过的消费时间 * 房间每小时费用
int roomMoney = (int) (rebate * consumedtime * Integer
.parseInt(roomPriceTextField.getText().trim()));
// 总费用 = 房间费用 + 商品消费额
double fee = roomMoney + tempgoodsConsumedMoney;
String roomNumber = roomNumberTextField.getText().trim();
getMoneyTextField.setText(String.valueOf(fee - deposit));
consumedTimeTextField.setText(consumedTime);
// rebateTextField.setText(String.valueOf(rebate));
roomMoneyTextField.setText(String.valueOf(roomMoney));
feeTextField.setText(String.valueOf(fee));
gci = new GuestConsumedInfo(consumedId, guestName, roomNumber,
guestId, guestCheckInTime, guestCheckOutTime, consumedTime,
tempgoodsConsumedMoney, roomMoney, consumedTypeName,
deposit, rebate, fee);
// 在数据库中更新消费记录
flag = new GuestConsumedDao().updateGuestConsumedInfo(gci);
if (flag) {
checkOutLabel.setVisible(false);
gcotLabel.setText(guestCheckOutTime);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return flag;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton jb = (JButton) e.getSource();
if (jb.getText().trim().equals("结账")) {
Room r = getARoom(roomNumberTextField.getText().trim());
r.setRoomStatement("可用");
r.setConsumedId(0);
if (updateGuestConsumedInfo()) {
if (updateRoomInfo(r)) {
JOptionPane.showMessageDialog(null, "结账已成功", "提示信息",
JOptionPane.WARNING_MESSAGE);
checkOutButton.setEnabled(false);
}
}
}
if (jb.getText().trim().equals("退出")) {
this.setVisible(false);
this.gotMoneyTextField.setText("");
this.returnMoneyTextField.setText("");
this.dispose();
MainFrame.getInstance().refresh();
}
}
/**
* This method initializes okkButton
*
* @return javax.swing.JButton
*/
private JButton getOkkButton() {
if (okkButton == null) {
okkButton = new JButton();
okkButton.setBounds(new java.awt.Rectangle(475, 350, 75, 40));
okkButton.setText("退出");
okkButton.addActionListener(this);
}
return okkButton;
}
/**
* This method initializes jButtonExport
*
* @return javax.swing.JButton
*/
private JButton getJButtonExport() {
if (jButtonExport == null) {
jButtonExport = new JButton();
jButtonExport.setBounds(new java.awt.Rectangle(479, 570, 122, 20));
jButtonExport.setText("导出消费明细");
jButtonExport
.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
try {
if (file != null)
filechooser.setSelectedFile(file);
int returnVal = filechooser
.showSaveDialog(GuestCheckOutFrame.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
file = filechooser.getSelectedFile();
String path = file.getPath();
System.out.println(path);
String getText = consumedIdTextField
.getText().trim();
if (hasGoodsConsumedInfo(getText)) {
GuestTable tt = new GuestTable();
Vector veDta = GuestTable
.getVectorData(getText);
tt.writeExcelOfFile(path, veDta, null);
JOptionPane.showMessageDialog(null,
"恭喜您!您的表已经导到指定的位置", "提示信息",
JOptionPane.WARNING_MESSAGE);
} else {
JOptionPane.showMessageDialog(null,
"消费明细不存在", "提示信息",
JOptionPane.YES_OPTION);
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "导出错误",
"提示信息", JOptionPane.YES_OPTION);
}
}
});
}
return jButtonExport;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -