📄 bookindlg.cpp
字号:
// BookInDLG.cpp : implementation file
//
#include "stdafx.h"
#include "hotel_mis.h"
#include "BookInDLG.h"
#include "Hotel_MISView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBookInDLG dialog
CBookInDLG::CBookInDLG(CWnd* pParent /*=NULL*/)
: CDialog(CBookInDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(CBookInDLG)
m_sRoomNo = _T("");
m_sRoomType = _T("");
m_sRoomPosition = _T("");
m_sRoomPrice = _T("");
m_sRoomMemo = _T("");
m_sName = _T("");
m_sID = _T("");
m_tInDAte = COleDateTime::GetCurrentTime();
m_sDiscount = _T("");
m_sMemo = _T("");
m_sMemo2 = _T("");
//}}AFX_DATA_INIT
}
void CBookInDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBookInDLG)
DDX_CBString(pDX, IDD_BOOKIN_ROOMNO, m_sRoomNo);
DDX_Text(pDX, IDD_BOOKIN_ROOMTYPE, m_sRoomType);
DDX_Text(pDX, IDD_BOOKIN_ROOMPOSITION, m_sRoomPosition);
DDX_Text(pDX, IDD_BOOKIN_ROOMPRICE, m_sRoomPrice);
DDX_Text(pDX, IDD_BOOKIN_ROOMMEMO, m_sRoomMemo);
DDX_Text(pDX, IDD_BOOKIN_NAME, m_sName);
DDX_Text(pDX, IDD_BOOKIN_ID, m_sID);
DDX_DateTimeCtrl(pDX, IDD_BOOKIN_INDATE, m_tInDAte);
DDX_Text(pDX, IDD_BOOKIN_DISCOUNT, m_sDiscount);
DDX_Text(pDX, IDD_BOOKIN_MEMO, m_sMemo);
DDX_Text(pDX, IDD_BOOKIN_MEMO2, m_sMemo2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBookInDLG, CDialog)
//{{AFX_MSG_MAP(CBookInDLG)
ON_CBN_SELCHANGE(IDD_BOOKIN_ROOMNO, OnRoomNoSelChange)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBookInDLG message handlers
BOOL CBookInDLG::OnInitDialog()
{
CDialog::OnInitDialog();
((CEdit*)GetDlgItem(IDD_BOOKIN_NAME))->SetLimitText(20);
((CEdit*)GetDlgItem(IDD_BOOKIN_ID))->SetLimitText(18);
// TODO: Add extra initialization here
if (m_bAppend)
{
// Update Dialog Caption
SetWindowText(_T("添加订房信息"));
// Init Combobox
_variant_t strQuery, Holder;
strQuery = "select * from rooms where putup=0 or putup is NULL";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
theApp.m_pADOSet->MoveFirst();
for (int i=0; i<iCount; i++)
{
Holder = theApp.m_pADOSet->GetCollect("roomNo");
((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->InsertString(i, Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder);
// Get other onfo to display
if ( 0==i )
{
// Get RoomType
Holder = theApp.m_pADOSet->GetCollect("roomtype");
m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomposition
Holder = theApp.m_pADOSet->GetCollect("roomposition");
m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomprice
Holder = theApp.m_pADOSet->GetCollect("roomprice");
m_sRoomPrice.Format("%.2f", Holder.dblVal);
// Get roommemo
Holder = theApp.m_pADOSet->GetCollect("roommemo");
m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
}
theApp.m_pADOSet->MoveNext();
}
((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(0);
}
else
{
// Get Old ID and RoomNo
m_sOldID = m_sID;
m_sOldRoomNo = m_sRoomNo;
// Update Dialog Caption
SetWindowText(_T("修改订房信息"));
// Init Combobox
_variant_t strQuery, Holder;
CString str;
int iSel = 0;
strQuery = "select * from rooms where putup=0 or putup is NULL";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
theApp.m_pADOSet->MoveFirst();
for (int i=0; i<iCount; i++)
{
Holder = theApp.m_pADOSet->GetCollect("roomNo");
str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->InsertString(i, str);
// Get other onfo to display
if ( str==m_sRoomNo )
{
// Get RoomType
Holder = theApp.m_pADOSet->GetCollect("roomtype");
m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomposition
Holder = theApp.m_pADOSet->GetCollect("roomposition");
m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomprice
Holder = theApp.m_pADOSet->GetCollect("roomprice");
m_sRoomPrice.Format("%.2f", Holder.dblVal);
// Get roommemo
Holder = theApp.m_pADOSet->GetCollect("roommemo");
m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
iSel = i;
}
theApp.m_pADOSet->MoveNext();
}
((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(iSel);
}
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CBookInDLG::OnRoomNoSelChange()
{
// TODO: Add your control notification handler code here
UpdateData(true);
_variant_t strQuery, Holder;
strQuery = "select * from rooms where roomNO='"+m_sRoomNo+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
// Get RoomType
Holder = theApp.m_pADOSet->GetCollect("roomtype");
m_sRoomType = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomposition
Holder = theApp.m_pADOSet->GetCollect("roomposition");
m_sRoomPosition = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
// Get roomprice
Holder = theApp.m_pADOSet->GetCollect("roomprice");
m_sRoomPrice.Format("%.2f", Holder.dblVal);
// Get roommemo
Holder = theApp.m_pADOSet->GetCollect("roommemo");
m_sRoomMemo = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
UpdateData(false);
}
void CBookInDLG::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
m_sName.TrimRight(" ");
m_sID.TrimRight(" ");
m_sDiscount.TrimRight(" ");
m_sMemo.TrimLeft(" ");
m_sMemo2.TrimLeft(" ");
// Make sure all needed info is available
CString sWarning="";
if ( ""==m_sName ) sWarning=_T("顾客姓名");
else if ( ""==m_sID ) sWarning=_T("身份证号码");
else if ( ""==m_sDiscount ) sWarning=_T("折扣");
else if ( ""==m_sMemo ) sWarning=_T("密码");
if ( ""!=sWarning )
{
sWarning += _T("不能为空");
AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
return;
}
float fDiscount=atof(m_sDiscount);
if ( 0==fDiscount )
{
AfxMessageBox(_T("折扣:请输入非零数字"), MB_ICONEXCLAMATION);
return;
}
m_sDiscount.Format("%.2f", fDiscount);
if ( fDiscount>100 )
{
AfxMessageBox(_T("折扣溢出,请不要超过100"), MB_ICONEXCLAMATION);
return;
}
if ( m_sMemo2!=m_sMemo )
{
AfxMessageBox(_T("密码不一致,请重输"), MB_ICONEXCLAMATION);
return;
}
_variant_t strQuery;
// Delete Old Record
if ( !m_bAppend )
{
strQuery = "delete from bookin where customID='"+m_sOldID+"' and roomno='"+m_sOldRoomNo+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
}
// Check Record Unique
strQuery = "select * from bookin where roomno='"+m_sRoomNo+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
int iCount = theApp.m_pADOSet->GetRecordCount();
if ( 0!=iCount )
{
AfxMessageBox(_T("该房间已经登记入住!"), MB_ICONEXCLAMATION);
return;
}
// Generate Serial No.
CString sSN;
COleDateTime today = COleDateTime::GetCurrentTime();
sSN = today.Format("%y%m%d%H%M%S");
// Get Indate
CString sInDate;
sInDate = m_tInDAte.Format("%Y-%m-%d");
// Insert Record
strQuery = "insert bookin (bookno, customname, customID, roomno, indate, discount, inmemo) \
values ('"+sSN+"', '"+m_sName+"', '"+m_sID+"', '"+m_sRoomNo+"', '"+sInDate+"', "+m_sDiscount+", '"+m_sMemo+"')";
if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) )
{
if ( m_bAppend )
{
AfxMessageBox(_T("添加记录成功!"), MB_ICONINFORMATION);
// Clear All Input
m_sName=m_sID=m_sDiscount=m_sMemo="";
((CComboBox*)GetDlgItem(IDD_BOOKIN_ROOMNO))->SetCurSel(0);
UpdateData(false);
//Update Room Info
strQuery = "update rooms set putup=1 where roomNo='"+m_sRoomNo+"'";
theApp.ADOExecute(theApp.m_pADOSet, strQuery);
}
else AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION);
}
else
{
if ( m_bAppend ) AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION);
else AfxMessageBox(_T("修改记录失败!"), MB_ICONEXCLAMATION);
}
// Refresh BookIn List
strQuery = "select * from bookin where checkdate is NULL";
CHotel_MISView* p = (CHotel_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
p->RefreshBookIn(strQuery);
if (!m_bAppend) CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -