📄 modifyregisterinfoframe.java
字号:
guestnameTextField = new JTextField();
guestnameTextField.setBounds(new java.awt.Rectangle(140, 30, 120,
30));
}
return guestnameTextField;
}
private JTextField getguestidTextField() {
if (guestidTextField == null) {
guestidTextField = new JTextField();
guestidTextField.setBounds(new Rectangle(390, 30, 150, 30));
}
return guestidTextField;
}
private JTextField getguestcheckintimeTextField() {
if (guestcheckintimeTextField == null) {
guestcheckintimeTextField = new JTextField();
guestcheckintimeTextField.setBounds(new java.awt.Rectangle(140, 85,
133, 30));
guestcheckintimeTextField.setEditable(false);
}
return guestcheckintimeTextField;
}
private JTextField getguestcheckouttimeTextField() {
if (guestcheckouttimeTextField == null) {
guestcheckouttimeTextField = new JTextField();
guestcheckouttimeTextField.setBounds(new java.awt.Rectangle(390,
85, 150, 30));
}
return guestcheckouttimeTextField;
}
private JComboBox getconsumedtypenameComboBox() {
if (consumedtypenameComboBox == null) {
consumedtypenameComboBox = new JComboBox();
consumedtypenameComboBox
.setBounds(new Rectangle(140, 140, 120, 30));
Vector v = getAllKindsOfConsumedType();
Iterator ite = v.iterator();
ConsumedTypeInfo ct = null;
while (ite.hasNext()) {
ct = (ConsumedTypeInfo) ite.next();
consumedtypenameComboBox.addItem(ct.getConsumedTypeName()
.trim());
}
}
return consumedtypenameComboBox;
}
private JTextField getconsumedidTextField() {
if (consumedidTextField == null) {
consumedidTextField = new JTextField();
consumedidTextField.setBounds(new java.awt.Rectangle(140, 190, 120,
30));
consumedidTextField.setEditable(false);
}
return consumedidTextField;
}
private JTextField getdepositTextField() {
if (depositTextField == null) {
depositTextField = new JTextField();
depositTextField
.setBounds(new java.awt.Rectangle(390, 140, 80, 30));
}
return depositTextField;
}
private JButton getModifyButton() {
if (modifyButton == null) {
modifyButton = new JButton();
modifyButton.setBounds(new java.awt.Rectangle(50, 430, 100, 40));
modifyButton.setText("修改确定");
}
modifyButton.addActionListener(this);
return modifyButton;
}
// 修改宾客消费记录
private boolean setGuestConsumedInfo() {
boolean flag = false;
GuestConsumedInfo gci = null;
try {
long consumedId = Long.parseLong(consumedidTextField.getText());
GuestConsumedInfo demo = getAGuestConsumedInfo(consumedidTextField
.getText());
String guestName = guestnameTextField.getText().trim();
String roomNumber = roomnumberTextField.getText().trim();
long guestId = Long.parseLong(guestidTextField.getText());
// 计算出消费时间并进行处理,不足半小时按照半小时计算,超过半小时按照一个小时计算
String guestCheckInTime = guestcheckintimeTextField.getText();
String[] Intemp = guestCheckInTime.split(" ");//将时间设置成2008-07-24 15:23:23的格式
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 = guestcheckouttimeTextField.getText();
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.YES_OPTION);
} else {
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 goodsConsumedMoney = demo.getGoodsConsumedMoney();
// System.out.println(consumedTime);
String consumedTypeName = consumedtypenameComboBox
.getSelectedItem().toString().trim();
// 押金只能为整数
int deposit = Integer.parseInt(depositTextField.getText());
double rebate = getRebate(consumedTypeName);
// 房间费用 = 折扣比例 * 处理过的消费时间 * 房间每小时费用
int roomMoney = (int) (rebate * consumedtime * Integer
.parseInt(roompriceTextField.getText().trim()));
// 总费用 = 房间费用 + 商品消费额
double fee = roomMoney + goodsConsumedMoney;
rebateTextField.setText(String.valueOf(rebate));
feeTextField.setText(String.valueOf(roomMoney));
gci = new GuestConsumedInfo(consumedId, guestName, roomNumber,
guestId, guestCheckInTime, guestCheckOutTime,
consumedTime, goodsConsumedMoney, roomMoney,
consumedTypeName, deposit, rebate, fee);
// 在数据库中更新消费记录
flag = new GuestConsumedDao().updateGuestConsumedInfo(gci);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return flag;
}
private double getRebate(String consumedTypeName) {
double rebate = new ConsumedTypeSettingDao()
.getRebate(consumedTypeName);
return rebate;
}
private JTextField getRebateTextField() {
if (rebateTextField == null) {
rebateTextField = new JTextField();
rebateTextField
.setBounds(new java.awt.Rectangle(310, 405, 100, 30));
rebateTextField.setEditable(false);
}
return rebateTextField;
}
private JTextField getFeeTextField() {
if (feeTextField == null) {
feeTextField = new JTextField();
feeTextField.setBounds(new java.awt.Rectangle(310, 450, 100, 30));
feeTextField.setEditable(false);
}
return feeTextField;
}
// 取得所有的消费类型信息
private Vector getAllKindsOfConsumedType() {
Vector v = new ConsumedTypeSettingDao().getConsumedTypeInfo();
return v;
}
// 通过消费流水号取得相应的宾客消费信息记录
private static GuestConsumedInfo getAGuestConsumedInfo(String value) {
return new GuestConsumedDao().getAGuestConsumedInfo(value);
}
// 通过房间号取得相应的房间信息
private static Room getARoom(String value) {
Room r = null;
r = new RoomSettingDao().getARoom(value);
return r;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton eventbutton = (JButton) e.getSource();
if (eventbutton.getText().trim().equals("修改确定")) {
if (checkInputValue()) {
if (setGuestConsumedInfo()) {
JOptionPane.showMessageDialog(null, "修改已成功", "提示信息",
JOptionPane.WARNING_MESSAGE);
}
}
}
}
// 该窗口所有输入信息的约束
private boolean checkInputValue() {
// boolean flag = false;
Check check = new Check();
if (check.checkInputIsNull(guestnameTextField.getText())) {
JOptionPane.showMessageDialog(null, "宾客姓名不能为空", "提示信息",
JOptionPane.YES_OPTION);
guestnameTextField.requestFocus();
return false;
}
if (check.checkIsContainNumber(guestnameTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "宾客姓名不能包含数字", "提示信息",
JOptionPane.YES_OPTION);
guestnameTextField.requestFocus();
return false;
}
if (check.checkIdCard(guestidTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "宾客身份证号码不合法,必须是18位数字", "提示信息",
JOptionPane.YES_OPTION);
guestidTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(guestcheckouttimeTextField.getText())) {
JOptionPane.showMessageDialog(null, "结账时间不能为空", "提示信息",
JOptionPane.YES_OPTION);
guestcheckouttimeTextField.requestFocus();
return false;
}
if (!check.checkDateFormatIsLegal(guestcheckouttimeTextField.getText())) {
JOptionPane.showMessageDialog(null, "结账时间只能是2008-04-07 00:12:25格式",
"提示信息", JOptionPane.YES_OPTION);
guestcheckouttimeTextField.requestFocus();
return false;
}
if (check.checkInputIsNull(depositTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "押金不能为空", "提示信息",
JOptionPane.YES_OPTION);
depositTextField.requestFocus();
return false;
}
if (!check.checkIsContainCharactor(depositTextField.getText().trim())) {
JOptionPane.showMessageDialog(null, "押金不能包含有字母", "提示信息",
JOptionPane.YES_OPTION);
depositTextField.requestFocus();
return false;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -