结算信息管理模块实现代码
2008-11-24 19:38:52 来源:WEB开发网单击“结算”按钮,显示该房间的结算金额,并将结算信息添加到结算信息表中,代码如下:
void CCheckDlg::OnCalBtn()
{
UpdateData(TRUE);
CString sql,str,str1;
int price;
//定义记录集
_RecordsetPtr m_pRecordset_room;
str = "已满";
//sql语句:查找该客房的入住记录
sql = "select * from RoomInformation where ID = '"+m_strCheckId+"'and Status
= '"+str+"'";
//连接记录集
m_pRecordset_room.CreateInstance("ADODB.Recordset");
//打开客房信息表
m_pRecordset_room->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.
m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
if(m_pRecordset_room->GetRecordCount()!=0)
price = m_pRecordset_room->GetCollect("Price").lVal; //获取客房单价
else
{
AfxMessageBox("获取该客房信息失败,暂时不能结算!");
return;
}
//关闭记录集
m_pRecordset_room->Close();
//获取结算日期/时间
m_timeCheckD = CTime::GetCurrentDate();
m_timeCheckT = CTime::GetCurrentTime();
//计算入住时间段:10点以后结算加一天
CTimeSpan d1 = m_timeCheckD - m_timeOrderD;
int day = d1.GetDays() ;
if(m_timeCheckD.GetHour() >=10)
day +=1 ;
//折扣
float repay;
//如果是“会员”,享受8折优惠,如果是“团体”,享受9折优惠,一般散客,没有优惠
if(m_strCheckType.CompareNoCase("会员") == 0)//8折
repay = (float)0.8;
else if(m_strCheckType.CompareNoCase("团体") == 0)//9折
repay = (float)0.9;
else
repay = (float)1.0;
//计算总金额 = (用餐消费+住房消费)*入住天数*折扣率–押金
m_nCheckMoney = (int)((m_nDinner + price )*day*repay - m_nYajin);
//定义记录集
_RecordsetPtr m_pRecordset_check;
sql = "select * from CheckInfo ";
//连接记录集
m_pRecordset_check.CreateInstance("ADODB.Recordset");
//打开结算信息表
m_pRecordset_check->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.
m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
//添加新的结算记录
m_pRecordset_check->AddNew();
//添加客房编号
m_pRecordset_check->PutCollect("ID",(_variant_t)m_strCheckId);
//添加客房价格
str.Format("%d",price);
m_pRecordset_check->PutCollect("Price",(_variant_t)str);
//添加用餐金额
str.Format("%d",m_nDinner);
m_pRecordset_check->PutCollect("Dinner",(_variant_t)str);
//添加退房日期
str.Format("%d-%d-%d",m_timeCheckD.GetYear(),m_timeCheckD.GetMonth(),
m_timeCheckD.GetDay());
m_pRecordset_check->PutCollect("EndDay",(_variant_t)str);
//添加退房时间
str.Format("%d:%d:%d",m_timeCheckT.GetHour(),m_timeCheckT.GetMinute(),
m_timeCheckT.GetSecond());
m_pRecordset_check->PutCollect("EndTime",(_variant_t)str);
//添加入住天数
str.Format("%d",day);
m_pRecordset_check->PutCollect("Day",(_variant_t)str);
//添加折扣率
str.Format("%2f",repay);
m_pRecordset_check->PutCollect("Repay",(_variant_t)str);
//添加总金额
str.Format("%d",m_nCheckMoney);
m_pRecordset_check->PutCollect("Money",(_variant_t)str);
//更新记录集
m_pRecordset_check->Update();
//关闭结算记录集
m_pRecordset_check->Close();
//更新界面
UpdateData(FALSE);
}
- ››管理/var/spool/clientmqueue/下的大文件
- ››信息安全新观点 敦科尔克大撤退
- ››管理私有云,第 2 部分: 使用 WebSphere CloudBur...
- ››管理 Eclipse 环境:Eclipse 维护的神秘艺术
- ››管理私有云:WebSphere CloudBurst Appliance 命令...
- ››管理启动项 - Windows 7中的BCDEDIT命令
- ››管理Exchange 2003注意事项
- ››信息议程与“信息随需应变”
- ››管理好超级管理员帐户堵住系统漏洞
- ››管理数据中心资源池需要注意的事项
- ››信息系统安全风险评估应用:基础知识
- ››信息系统安全风险评估应用:评估过程
更多精彩
赞助商链接