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

📄 guestcheckoutframe.java

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