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

📄 addorderdlg.cpp

📁 手机话费程序
💻 CPP
字号:
// AddOrderDlg.cpp : implementation file
//

#include "stdafx.h"
#include "mphonequery.h"
#include "AddOrderDlg.h"
#include "MPhoneQueryView.h"
#include "MainFrm.h"
#include "AddConfirmDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAddOrderDlg dialog


CAddOrderDlg::CAddOrderDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAddOrderDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddOrderDlg)
	m_strAddMoney = _T("");
	m_strAddPhoneNo = _T("");
	m_strAdminId = _T("");
	m_strAdminName = _T("");
	//}}AFX_DATA_INIT
}


void CAddOrderDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddOrderDlg)
	DDX_Text(pDX, IDC_ORDER_ADDMONEY, m_strAddMoney);
	DDX_Text(pDX, IDC_ORDER_ADDPHONENO, m_strAddPhoneNo);
	DDX_Text(pDX, IDC_ORDER_ADMINID, m_strAdminId);
	DDX_Text(pDX, IDC_ORDER_ADMINNAME, m_strAdminName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddOrderDlg, CDialog)
	//{{AFX_MSG_MAP(CAddOrderDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddOrderDlg message handlers

void CAddOrderDlg::OnOK() 
{
	// TODO: Add extra validation here
	CAddConfirmDlg delConf;
	delConf.DoModal();

	CMPhoneQueryView* pView = (CMPhoneQueryView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
	if ( !(pView ->m_bAddConfirm) )
	{
		return;
	}

	UpdateData(true);
	
	m_strAdminId.TrimRight(" ");
    m_strAdminName.TrimRight(" ");
	m_strAddMoney.TrimRight(" ");
	m_strAddPhoneNo.TrimRight(" ");
	
	
	// 确定所有输入有效
	CString sWarning="";
	if ( m_strAddMoney == "" )        
	{
		sWarning = _T("充值金额");
	}
    else if ( m_strAddPhoneNo == "" )
	{
		sWarning = _T("手机号码");
	}
	    
	if ( "" != sWarning ) 
	{
		sWarning += _T("不能为空");
	    AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
	    return;
	}	

	_variant_t strQuery, Holder;

	// 确认已有该手机的纪录
	strQuery = "select * from phone where phone_no = '"+m_strAddPhoneNo+"'";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	int iCount = theApp.m_pADOSet ->GetRecordCount();
	if ( iCount == 0 )
	{
	    AfxMessageBox(_T("手机号码输入有错!没有该手机的纪录"), MB_ICONEXCLAMATION);
	    return;
	}

	//计算出该手机现有的余额
	theApp.m_pADOSet ->MoveFirst();
	Holder = theApp.m_pADOSet ->GetCollect("balance");
	CString strBalance = (char*)(_bstr_t)Holder;
	double dBalance = atof(strBalance);
	double dMoney   = atof(m_strAddMoney);
	dBalance       += dMoney;
	Holder			= dBalance;
	strBalance      = (char*)(_bstr_t)Holder;

	// 计算出该条纪录的编号;
	strQuery = "select Max(order_id) as maxorderid from [order]";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	theApp.m_pADOSet ->MoveFirst();
	Holder	= theApp.m_pADOSet ->GetCollect("maxorderid");

	int		iOrderId = Holder.vt == VT_NULL ? 1 : Holder.intVal + 1;
	char    cOrderId[20];
	_itoa( iOrderId, cOrderId, 10);
	CString strOrderId = (const char*) cOrderId;

	// 获得该手机所对应的编号
	strQuery = "select phone_id from phone where phone_no = '"+m_strAddPhoneNo+"'";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	theApp.m_pADOSet ->MoveFirst();
	Holder = theApp.m_pADOSet ->GetCollect("phone_id");
	CString strPhoneId = (char*)(_bstr_t)Holder;

    strQuery = "insert [order] (order_id, phone_id, staff_id, money, balance) \
	         	values ('"+strOrderId+"', '"+strPhoneId+"',\
				'"+m_strAdminId+"',CAST('"+m_strAddMoney+"' AS money), CAST('"+strBalance+"' AS money))";
	
	if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
	{
		strQuery = "update phone set phone.balance = CAST('"+strBalance+"' AS money) \
			where phone_no = '"+m_strAddPhoneNo+"'";
		if (theApp.ADOExecute(theApp.m_pADOSet, strQuery))
		{
			AfxMessageBox(_T("添加记录成功!"), MB_ICONINFORMATION);
		
			// 清空输入数据
			m_strAdminId = m_strAdminName = m_strAddMoney = m_strAddPhoneNo = "";
			UpdateData(false);
		}
		else
		{
			AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION);
		}

	}
	else 
	{
		AfxMessageBox(_T("添加记录失败!"), MB_ICONEXCLAMATION);
	}

	
	// Refresh RoomType List
	pView->RefreshOrder();

	CDialog::OnOK();
}

BOOL CAddOrderDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_strAdminName = theApp.m_strCurAdminName;
	m_strAdminId   = theApp.m_strCurAdminID;

	((CEdit*)GetDlgItem(IDC_ORDER_ADDPHONENO))->SetLimitText(50);
    ((CEdit*)GetDlgItem(IDC_ORDER_ADDMONEY))->SetLimitText(10);
	
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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