WEB开发网
开发学院软件开发VC 结算信息管理模块实现代码 阅读

结算信息管理模块实现代码

 2008-11-24 19:38:52 来源:WEB开发网   
核心提示: 单击“结算”按钮,显示该房间的结算金额,结算信息管理模块实现代码(2),并将结算信息添加到结算信息表中,代码如下:void CCheckDlg::OnCalBtn(){UpdateData(TRUE);CString sql,str,str1;int price;/

单击“结算”按钮,显示该房间的结算金额,并将结算信息添加到结算信息表中,代码如下:

  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);
  }

Tags:结算 信息 管理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接