📄 guestcheckoutframe.java
字号:
package view.mainframe.guestconsumed.guestcheckoutframe;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
import view.mainframe.MainFrame;
import vo.GoodsConsumedInfo;
import vo.GuestConsumedInfo;
import vo.Room;
import common.checkinputvalue.Check;
import common.currenttime.JLabelTime1;
import dao.consumeddao.GoodsConsumedDao;
import dao.consumeddao.GuestConsumedDao;
import dao.roomsetting.RoomSettingDao;
public class GuestCheckOutFrame extends JFrame implements ActionListener {
private static GuestCheckOutFrame instance = null;
File file = null;
JFileChooser filechooser = new JFileChooser();
JTextPane text = new JTextPane();
private JPanel jContentPane = null;
private JPanel guestConsumedPanel = null;
private JPanel goodsConsumedPanel = null;
private JScrollPane goodsScrollPane = null;
private JTable goodsConsumedTable = null;
private JLabel goodsConsumedMoneyLabel = null;
private JLabel goodsConsumedMoney = null;
private JLabel roomNumberLabel = null;
private JLabel consumedIdLabel = null;
private JLabel checkInTimeLabel = null;
private JLabel checkOutTimeLabel = null;
private JLabel roomPriceLabel = null;
private JLabel depositLabel = null;
private JLabel consumedTypeNameLabel = null;
private JLabel consumedTimeLabel = null;
private JLabel rebateLabel = null;
private JLabel guestNameLabel = null;
private JLabel guestIdLabel = null;
private JLabel feeLabel = null;
private JLabel roomMoneyLabel = null;
private JTextField roomNumberTextField = null;
private JTextField guestNameTextField = null;
private JTextField guestIdTextField = null;
private JTextField consumedIdTextField = null;
private JTextField checkInTimeTextField = null;
private JTextField roomPriceTextField = null;
private JTextField consumedTypeNameTextField = null;
private JTextField consumedTimeTextField = null;
private JTextField rebateTextField = null;
private JTextField roomMoneyTextField = null;
private JTextField depositTextField = null;
private JTextField feeTextField = null;
private JLabel getMoneyLabel = null;
private JTextField getMoneyTextField = null;
private JLabel gotMoneyLabel = null;
private JTextField gotMoneyTextField = null;
private JLabel returnMoneyLabel = null;
private JTextField returnMoneyTextField = null;
// 商品消费总额
private static double gdam = 0;
// 消费流水号
private static String rOO = null;
private JLabel checkOutLabel = null;
private JButton checkOutButton = null;
private JButton okkButton = null;
private JLabel gcotLabel = null;
private JButton jButtonExport = null;
// 通过消费流水号判断是否存在相应的商品消费信息记录
private boolean hasGoodsConsumedInfo(String value) {
return new GoodsConsumedDao().hasGoodsConsumedInfo(value);
}
// 通过房间号取得相应的房间信息
private static Room getARoom(String value) {
Room r = null;
r = new RoomSettingDao().getARoom(value);
return r;
}
// 通过消费流水号取得相应的宾客消费信息记录
private static GuestConsumedInfo getAGuestConsumedInfo(String value) {
return new GuestConsumedDao().getAGuestConsumedInfo(value);
}
// 通过消费流水号取得相应的商品消费信息记录
private Vector getGoodsConsumedInfo(String value) {
Vector v = new GoodsConsumedDao().getGoodsConsumedInfo(value);
return v;
}
// 单子模式,参数为房间号
public static GuestCheckOutFrame getInstance(String roomNumber) {
Room r = getARoom(roomNumber);
gdam = 0d;
// 消费流水号初始化
rOO = String.valueOf(r.getConsumedId());
if (instance == null) {
instance = new GuestCheckOutFrame();
}
instance.checkOutLabel.setVisible(true);
instance.gcotLabel.setText("");
instance.checkOutButton.setEnabled(true);
// 初始化界面相关的TextField信息
instance.rOO = String.valueOf(r.getConsumedId());
instance.roomNumberTextField.setText(r.getRoomNumber().trim());
instance.roomPriceTextField.setText(String.valueOf(r.getRoomPrice()));
GuestConsumedInfo gci = getAGuestConsumedInfo(String.valueOf(
r.getConsumedId()).trim());
instance.guestIdTextField.setText(String.valueOf(gci.getGuestId()));
instance.guestNameTextField.setText(gci.getGuestName());
instance.checkInTimeTextField.setText(gci.getGuestCheckInTime());
instance.consumedIdTextField.setText(String
.valueOf(gci.getConsumedId()));
instance.rebateTextField.setText(String.valueOf(gci.getRebate()));
instance.consumedTimeTextField.setText(gci.getConsumedTime());
instance.roomMoneyTextField.setText(String.valueOf(gci.getRoomMoney()));
instance.depositTextField.setText(String.valueOf(gci.getDeposit()));
instance.consumedTypeNameTextField.setText(gci.getConsumedTypeName()
.trim());
instance.goodsConsumedTable = instance.getGoodsConsumedTable();
instance.goodsConsumedMoney.setText(String.valueOf(gdam));
instance.feeTextField
.setText(String.valueOf(gdam + gci.getRoomMoney()));
gci.setGoodsConsumedMoney(gdam);
gci.setFee(gdam + gci.getRoomMoney());
instance.getMoneyTextField.setText(String.valueOf((gdam + gci
.getRoomMoney())
- gci.getDeposit()));
instance.setVisible(true);
return instance;
}
// 更新房间信息
private boolean updateRoomInfo(Room r) {
return new RoomSettingDao().updateRoomInfo(r);
}
/**
* This is the default constructor
*/
private GuestCheckOutFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(623, 632);
this.setContentPane(getJContentPane());
this.setTitle("宾客结账");
setWindowLocation(this);
this.setResizable(false);
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
GuestCheckOutFrame temp = (GuestCheckOutFrame) e.getWindow();
temp.setVisible(false);
temp.dispose();
temp.gotMoneyTextField.setText("");
temp.returnMoneyTextField.setText("");
// 更新主界面的数据
MainFrame.getInstance().refresh();
}
});
}
// 设置窗口为居中位置
private void setWindowLocation(Window w) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension windowSize = w.getSize();
w.setBounds((int) (screenSize.getWidth() - windowSize.getWidth()) / 2,
(int) (screenSize.getHeight() - windowSize.getHeight()) / 2,
(int) windowSize.getWidth(), (int) windowSize.getHeight());
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
returnMoneyLabel = new JLabel();
returnMoneyLabel
.setBounds(new java.awt.Rectangle(360, 510, 75, 40));
returnMoneyLabel.setText("找零");
gotMoneyLabel = new JLabel();
gotMoneyLabel.setBounds(new java.awt.Rectangle(360, 459, 75, 40));
gotMoneyLabel.setText("实收金额");
getMoneyLabel = new JLabel();
getMoneyLabel.setBounds(new java.awt.Rectangle(360, 408, 75, 40));
getMoneyLabel.setText("应收金额");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getGuestConsumedPanel(), null);
jContentPane.add(getGoodsConsumedPanel(), null);
jContentPane.add(getMoneyLabel, null);
jContentPane.add(getGetMoneyTextField(), null);
jContentPane.add(gotMoneyLabel, null);
jContentPane.add(getGotMoneyTextField(), null);
jContentPane.add(returnMoneyLabel, null);
jContentPane.add(getReturnMoneyTextField(), null);
jContentPane.add(getCheckOutButton(), null);
jContentPane.add(getOkkButton(), null);
jContentPane.add(getJButtonExport(), null);
}
return jContentPane;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getGuestConsumedPanel() {
if (guestConsumedPanel == null) {
gcotLabel = new JLabel();
gcotLabel.setBounds(new java.awt.Rectangle(400, 120, 150, 30));
gcotLabel.setText("");
checkOutLabel = new JLabelTime1("");
checkOutLabel.setBounds(new java.awt.Rectangle(400, 120, 150, 30));
roomMoneyLabel = new JLabel();
roomMoneyLabel.setBounds(new java.awt.Rectangle(285, 220, 90, 30));
roomMoneyLabel.setText("包间费");
feeLabel = new JLabel();
feeLabel.setBounds(new java.awt.Rectangle(400, 270, 60, 30));
feeLabel.setForeground(new java.awt.Color(210, 0, 0));
feeLabel.setText("总费用");
guestIdLabel = new JLabel();
guestIdLabel.setBounds(new java.awt.Rectangle(15, 120, 80, 30));
guestIdLabel.setText("宾客身份证号");
guestNameLabel = new JLabel();
guestNameLabel.setBounds(new java.awt.Rectangle(15, 70, 80, 30));
guestNameLabel.setText("宾客姓名");
rebateLabel = new JLabel();
rebateLabel.setBounds(new java.awt.Rectangle(15, 270, 80, 30));
rebateLabel.setText("折扣比例");
consumedTimeLabel = new JLabel();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -