⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guestcheckoutframe.java

📁 一个KTV管理系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -