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

📄 deskdlg.cpp

📁 该源码的前台用C++编写
💻 CPP
字号:
// DeskDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MenuManage.h"
#include "DeskDlg.h"
#include "PayDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CMenuManageApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CDeskDlg dialog


CDeskDlg::CDeskDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDeskDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDeskDlg)
	m_nOrderDeskNumber = 0;
	m_nOrderFoodNumber = 0;
	m_nOrderRebate = 100;
	m_nOrderFoodAcount = 1;
 	//}}AFX_DATA_INIT
}


void CDeskDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDeskDlg)
	DDX_Control(pDX, IDC_DATAGRID_FOOD, m_dbFood);
	DDX_Text(pDX, IDC_ORDER_DESK_NUMBER, m_nOrderDeskNumber);
	DDX_Text(pDX, IDC_ORDER_FOOD_NUM, m_nOrderFoodNumber);
	DDX_Text(pDX, IDC_ORDER_REBATE, m_nOrderRebate);
	DDX_Text(pDX, IDC_EDIT_FOOD_ACOUNT, m_nOrderFoodAcount);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDeskDlg, CDialog)
//{{AFX_MSG_MAP(CDeskDlg)
ON_BN_CLICKED(IDC_ORDER_BTN, OnOrderBtn)
ON_EN_UPDATE(IDC_ORDER_DESK_NUMBER, OnUpdateOrderDeskNumber)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDeskDlg message handlers

void CDeskDlg::OnOrderBtn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CString str;
	CString sql;
	if(m_nOrderDeskNumber == 0)
	{
		AfxMessageBox("请输入餐桌编号");
		return;
	}
	
	if(m_nOrderFoodNumber != 0 )
	{
		//-----根据食物编号从menu表中获取食物的价格和名称------------------------//
		str.Format("%d",m_nOrderFoodNumber);
		sql =  "SELECT * FROM MenuInfo WHERE FoodNum = "+str+" ";
		m_pRecordset_Menu.CreateInstance("ADODB.Recordset");
		m_pRecordset_Menu->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		if(m_pRecordset_Menu->GetRecordCount()==0)
		{
			
			AfxMessageBox("该菜肴编号不存在,请重新输入编号");
			return;
		}
		else
		{		
			int m_nTempPrice;
			CString m_strTempName;
			m_nTempPrice = m_pRecordset_Menu->GetCollect("FoodPrice").lVal;//食物价格
			m_strTempName = m_pRecordset_Menu->GetCollect("FoodName").bstrVal;//食物名称
			
			m_pRecordset_Menu->Close();
			//------根据餐桌号向order表中添加桌号、食物编号、价格、折扣、折后价格、名称--//
			//-----是否结帐默认为0----------------//
			str.Format("%d",m_nOrderDeskNumber);//桌子编号
			sql =  "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" ";
			m_pRecordset_Order.CreateInstance("ADODB.Recordset");
			m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
			
			m_pRecordset_Order->AddNew();
			str.Format("%d",m_nOrderDeskNumber);
			m_pRecordset_Order->PutCollect("DeskNum" ,_variant_t(str));//餐桌编号
			str.Format("%d" , m_nOrderFoodNumber);
			m_pRecordset_Order->PutCollect("FoodNum" ,_variant_t(str));//食物编号
			
			str.Format("%d",m_nTempPrice);
			m_pRecordset_Order->PutCollect("FoodSignalPrice" ,_variant_t(str));//食物单价
			
			str.Format("%d",m_nOrderFoodAcount);
			m_pRecordset_Order->PutCollect("FoodAcount" ,_variant_t(str));//食物数量
			
			m_nTempPrice *=m_nOrderFoodAcount;
			str.Format("%d",m_nTempPrice);
			m_pRecordset_Order->PutCollect("FoodPrice" ,_variant_t(str));//食物价格
			
			str.Format("%d",m_nOrderRebate);
			m_pRecordset_Order->PutCollect("FoodRebate" ,_variant_t(str));//食物折扣
			
			int m_nTempRePrice;
			m_nTempRePrice = (int)m_nTempPrice*m_nOrderRebate/100;
			str.Format("%d",m_nTempRePrice);
			
			m_pRecordset_Order->PutCollect("FoodRePrice" ,_variant_t(str));	//折后价格(小计)
			
			m_pRecordset_Order->PutCollect("FoodName" ,_variant_t(m_strTempName));//食物名称
			
			int m_nTempCheck;
			m_nTempCheck = 0;
			str.Format("%d",m_nTempCheck);
			m_pRecordset_Order->PutCollect("FoodCheck" ,_variant_t(str));//是否结帐	
			
			CString paytime;
			CTime now=CTime::GetCurrentTime();
			paytime=now.Format(_T("%Y-%m-%d %H:%M:%S"));
			m_pRecordset_Order->PutCollect("FoodTime",_variant_t(paytime));//点菜时间
			
			m_pRecordset_Order->Update();		
			m_pRecordset_Order ->Close();
			//------重新打开order表,挑选相应桌号未结帐的食物,与表格绑定--------------------------------------------//		
			str.Format("%d",m_nOrderDeskNumber);
			CString str1;
			str1.Format("%d" , 0);
			sql =  "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" ";
			m_pRecordset_Order.CreateInstance("ADODB.Recordset");
			m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
			
			m_dbFood.SetRefDataSource(NULL);
			m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order);
			m_dbFood.SetColumnHeaders(2) ;
			
			m_dbFood.Refresh();
			GetDlgItem(IDOK)->EnableWindow(TRUE); 
		}
	}
	else
	{
		AfxMessageBox("请输入菜肴编号");
		return;
	}	
}

BOOL CDeskDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	// TODO: Add extra initialization here
	GetDlgItem(IDOK)->EnableWindow(FALSE); 
	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CDeskDlg::OnOK() 
{
	// TODO: Add extra validation here
	CString str,sql,str1;
	//计算总金额
	int m_nTempRePrice;
	m_nTotalPrice = 0;
	while(!m_pRecordset_Order -> adoEOF)
	{
		m_nTempRePrice=m_pRecordset_Order->GetCollect("FoodRePrice").lVal;
		m_nTotalPrice += m_nTempRePrice;
		m_pRecordset_Order->MoveNext();//指针下移	
	}	
	
	if(m_nTotalPrice>0)
		
	{//-----根据餐桌号向desk表中添加桌号、总金额、是否结帐默认为0---------//	
		int temp=0;
		str1.Format("%d",temp);
		
		str.Format("%d",m_nOrderDeskNumber);
		sql =  "SELECT * FROM DeskInfo  WHERE  DeskNum = "+str+" and DeskCheck = "+str1+"";
		m_pRecordset_Desk.CreateInstance("ADODB.Recordset");
		m_pRecordset_Desk->Open((_variant_t)sql,
			_variant_t((IDispatch *)theApp.m_pConnection,true),
			adOpenDynamic,
			adLockPessimistic,
			adCmdText);
		
		if(m_pRecordset_Desk->GetRecordCount()==0)
		{
			m_pRecordset_Desk->AddNew();
			
			str.Format("%d",m_nOrderDeskNumber);
			m_pRecordset_Desk->PutCollect("DeskNum",(_variant_t)str);
			
			str.Format("%d",m_nTotalPrice);
			m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str);
			
			temp = 0;
			str.Format("%d" , temp);
			m_pRecordset_Desk->PutCollect("DeskCheck",(_variant_t)str);
			
		}
		else	
		{
			str.Format("%d",m_nTotalPrice);
			m_pRecordset_Desk->PutCollect("DeskPrice",(_variant_t)str);	
			
		}
		m_pRecordset_Desk->Update();		
		m_pRecordset_Desk->Close();
	}
	//-----------------------------------//	
	CDialog::OnOK();
}

void CDeskDlg::OnUpdateOrderDeskNumber() //根据餐桌号自动绑定原来已点的菜
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CString str,sql;
	str.Format("%d",m_nOrderDeskNumber);
	CString str1;
	int temp=0;
	str1.Format("%d" , temp);
	sql =  "SELECT * FROM OrderInfo WHERE DeskNum = "+str+" and FoodCheck = "+str1+" ";
	m_pRecordset_Order.CreateInstance("ADODB.Recordset");
	m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
	
	m_dbFood.SetRefDataSource(NULL);
	m_dbFood.SetRefDataSource((LPUNKNOWN)m_pRecordset_Order);
	m_dbFood.SetColumnHeaders(2) ;
	
	m_dbFood.Refresh();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -