#if !defined(AFX_SALESBILL_H__E95A758E_1C5A_442D_91F0_BA25EF86E146__INCLUDED_)
#define AFX_SALESBILL_H__E95A758E_1C5A_442D_91F0_BA25EF86E146__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SalesBill.h : header file
//
/
// CSalesBill dialog
#include "MyButton.h"
class CSalesBill : public CDialog
{
private:
CBitmapButton bitmapButton;
// Construction
public:
CSalesBill(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CSalesBill)
enum { IDD = IDD_SALESBILLDLG };
CMyButton m_btnCommoditySearch;
CMyButton m_btnCommodityResearch;
CListCtrl m_ctrlListMain;
CString m_strBillDate;
CString m_strBiller;
CString m_strNote;
CString m_strSerchCode;
float m_fltSalePrice;
int m_iNum;
float m_fltAmount;
CString m_strClient;
CString m_strBillCode;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSalesBill)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CSalesBill)
virtual BOOL OnInitDialog();
afx_msg void OnBill();
afx_msg void OnSave();
afx_msg void OnUpdate();
afx_msg void OnDelete();
afx_msg void OnAccount();
afx_msg void OnExit();
afx_msg void OnClientfind();
afx_msg void OnCommodityserch();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SALESBILL_H__E95A758E_1C5A_442D_91F0_BA25EF86E146__INCLUDED_)
// SalesBill.cpp : implementation file
//
#include "stdafx.h"
#include "SalesManagementSystem.h"
#include "SalesManagementSystemDlg.h"
#include "SalesBill.h"
#include "ADOConn.h"
#include "MyTime.h"
#include "DiagLog.h"
#include "DlgAll.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/
// CSalesBill dialog
CSalesBill::CSalesBill(CWnd* pParent /*=NULL*/)
: CDialog(CSalesBill::IDD, pParent)
{
//{{AFX_DATA_INIT(CSalesBill)
m_strBillDate = _T("");
m_strBiller = _T("");
m_strNote = _T("");
m_strSerchCode = _T("");
m_fltSalePrice = 0.0f;
m_iNum = 0;
m_fltAmount = 0.0f;
m_strClient = _T("");
m_strBillCode = _T("");
//}}AFX_DATA_INIT
}
void CSalesBill::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSalesBill)
DDX_Control(pDX, IDC_COMMODITYSERCH, m_btnCommoditySearch);
DDX_Control(pDX, IDC_LISTCOMMODITY, m_ctrlListMain);
DDX_Text(pDX, IDC_BILLDATE, m_strBillDate);
DDX_Text(pDX, IDC_BILLER, m_strBiller);
DDX_Text(pDX, IDC_NOTE, m_strNote);
DDX_Text(pDX, IDC_SERCHCODE, m_strSerchCode);
DDX_Text(pDX, IDC_SALEPRICE, m_fltSalePrice);
DDX_Text(pDX, IDC_NUM, m_iNum);
DDX_Text(pDX, IDC_AMOUNT, m_fltAmount);
DDX_Text(pDX, IDC_CLIENT, m_strClient);
DDX_Text(pDX, IDC_BILLCODE, m_strBillCode);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSalesBill, CDialog)
//{{AFX_MSG_MAP(CSalesBill)
ON_BN_CLICKED(IDC_BILL, OnBill)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_UPDATE, OnUpdate)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_ACCOUNT, OnAccount)
ON_BN_CLICKED(IDC_CLIENTFIND, OnClientfind)
ON_BN_CLICKED(IDC_COMMODITYSERCH, OnCommodityserch)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/
// CSalesBill message handlers
BOOL CSalesBill::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_btnCommoditySearch.SetXIcon(IDI_ICONSERCH);
//CBitmapButton bitmapButton;
//bitmapButton.LoadBitmaps(IDB_BITMAP1, IDB_BITMAP1);
bitmapButton.AutoLoad(IDC_BUTTON2, this);
bitmapButton.LoadBitmaps(IDI_ICONSERCH, IDB_BITMAP3);
//bitmapButton.SubclassDlgItem(IDC_COMMODITYSERCH, this);
bitmapButton.SizeToContent();
m_ctrlListMain.InsertColumn(0, "条形码", LVCFMT_CENTER, 100);
m_ctrlListMain.InsertColumn(1, "名称", LVCFMT_CENTER, 100);
m_ctrlListMain.InsertColumn(2, "标准", LVCFMT_CENTER, 100);
m_ctrlListMain.InsertColumn(3, "单位", LVCFMT_CENTER, 50);
m_ctrlListMain.InsertColumn(4, "价格", LVCFMT_CENTER, 50);
m_ctrlListMain.InsertColumn(5, "库存", LVCFMT_CENTER, 50);
m_ctrlListMain.InsertColumn(6, "数量", LVCFMT_CENTER, 50);
m_ctrlListMain.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);
return TRUE;
// return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSalesBill::OnBill()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CMyTime myTime;
m_strBillCode = myTime.GetSimpleString();
m_strBillDate = myTime.GetDateString(FALSE);
m_strClient = "";
m_strNote = "";
m_fltSalePrice = 0;
m_iNum = 0;
m_fltAmount = 0;
UpdateData(FALSE);
}
void CSalesBill::OnSave()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
POSITION pos;
int index;
CString strNum, strPrice;
strNum.Format(_T("%d"), m_iNum);
strPrice.Format(_T("%f"), m_fltSalePrice);
pos = m_ctrlListMain.GetFirstSelectedItemPosition();
index = m_ctrlListMain.GetNextSelectedItem(pos);
m_fltAmount = m_fltAmount - atof(m_ctrlListMain.GetItemText(index, 4)) * atoi(m_ctrlListMain.GetItemText(index, 6));
m_ctrlListMain.SetItemText(index, 6, strNum);
m_ctrlListMain.SetItemText(index, 4, strPrice);
m_fltAmount = m_fltAmount + atof(m_ctrlListMain.GetItemText(index, 4)) * atoi(m_ctrlListMain.GetItemText(index, 6));
UpdateData(FALSE);
}
void CSalesBill::OnUpdate()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString strSQL, strTemp;
CADOConn adoSaleBill, adoSaleCommodity, adoStoreInfo, adoIntegral;
strSQL = "INSERT INTO SaleBill VALUES ('";
strSQL = strSQL + m_strBillCode + "', '";
strSQL = strSQL + m_strBillDate + "', '";
strSQL = strSQL + m_strBiller + "', '";
strSQL = strSQL + m_strClient + "', '";
strSQL = strSQL + m_strNote + "')";
adoSaleBill.ExecuteSQL(strSQL);
for(int i = 0; i < m_ctrlListMain.GetItemCount(); i++)
{
strSQL = "INSERT INTO SaleCommodity VALUES ('";
strSQL = strSQL + m_strBillCode + "', '";
strSQL = strSQL + m_ctrlListMain.GetItemText(i, 0) + "', '";
strSQL = strSQL + m_ctrlListMain.GetItemText(i, 4) + "', '";
strSQL = strSQL + m_ctrlListMain.GetItemText(i, 6) + "')";
adoSaleCommodity.ExecuteSQL(strSQL);
int num = atoi(m_ctrlListMain.GetItemText(i, 5)) - atoi(m_ctrlListMain.GetItemText(i, 6));
strSQL = "UPDATE StoreInfo SET num = '";
strTemp.Format(_T("%d"), num);
strSQL = strSQL + strTemp + "' WHERE barcode = '";
strSQL = strSQL + m_ctrlListMain.GetItemText(i, 0) + "'";
adoStoreInfo.ExecuteSQL(strSQL);
}
strSQL = "SELECT * FROM Integral WHERE cardcode = '";
strSQL = strSQL + m_strClient + "'";
adoIntegral.Open(strSQL);
if (!adoIntegral.adoEOF())
{
strSQL = "UPDATE Integral SET totalintegral = '";
strTemp.Format(_T("%0.2f"), m_fltAmount + atoi(adoIntegral.GetItemString(1)));
strSQL = strSQL + strTemp + "', remainderintegral = '";
strTemp.Format(_T("%0.2f"), m_fltAmount + atoi(adoIntegral.GetItemString(3)));
strSQL = strSQL + strTemp + "' WHERE cardcode = '";
strSQL = strSQL + m_strClient + "'";
adoIntegral.ExecuteSQL(strSQL);
}
else
{
strSQL = "INSERT INTO Integral VALUES ('";
strSQL = strSQL + m_strClient + "', '";
strTemp.Format(_T("%d"), m_fltAmount);
strSQL = strSQL + strTemp + "', '0', '";
strSQL = strSQL + strTemp + "')";
adoIntegral.ExecuteSQL(strSQL);
}
}
void CSalesBill::OnDelete()
{
// TODO: Add your control notification handler code here
POSITION pos;
int index;
CADOConn adoSaleBill;
CString strSQL;
pos = m_ctrlListMain.GetFirstSelectedItemPosition();
index = m_ctrlListMain.GetNextSelectedItem(pos);
strSQL = "DELETE * FROM SaleBill WHERE SaleBill.salecode ='";
strSQL = strSQL + m_ctrlListMain.GetItemText(index, 0) + "'";
adoSaleBill.ExecuteSQL(strSQL);
m_fltAmount = m_fltAmount - atof(m_ctrlListMain.GetItemText(index, 4)) * atoi(m_ctrlListMain.GetItemText(index, 6));
m_ctrlListMain.DeleteItem(index);
}
void CSalesBill::OnAccount()
{
// TODO: Add your control notification handler code here
m_strBillCode = "";
m_strBillDate = "";
m_strClient = "";
m_strNote = "";
m_fltSalePrice = 0;
m_iNum = 0;
m_ctrlListMain.DeleteAllItems();
UpdateData(FALSE);
}
void CSalesBill::OnClientfind()
{
// TODO: Add your control notification handler code here
CADOConn adoFind;
CDlgAll dlgAll;
dlgAll.strTitle = "客户信息";
dlgAll.strSQL = "SELECT * FROM ClientInfo";
dlgAll.intKey = 0;
if (dlgAll.DoModal() == IDOK)
{
m_strClient = dlgAll.strKey;
UpdateData(FALSE);
}
}
void CSalesBill::OnCommodityserch()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CADOConn adoFind;
CDlgAll dlgAll;
CString strSQL;
strSQL = "SELECT CommodityInfo.barcode, CommodityInfo.name, CommodityInfo.standard, ";
strSQL = strSQL + "CommodityInfo.unit, StoreInfo.saleprice, StoreInfo.num FROM CommodityInfo INNER JOIN StoreInfo ON ";
strSQL = strSQL + "CommodityInfo.barcode = StoreInfo.barcode WHERE CommodityInfo.barcode = '";
strSQL = strSQL + m_strSerchCode + "' OR CommodityInfo.commoditycode = '";
strSQL = strSQL + m_strSerchCode + "' OR CommodityInfo.spellcode = '";
strSQL = strSQL + m_strSerchCode + "'";
dlgAll.strTitle = "商品基本信息";
dlgAll.strSQL = strSQL;
dlgAll.intKey = 0;
if (dlgAll.DoModal() == IDOK)
{
strSQL = "SELECT CommodityInfo.barcode, CommodityInfo.name, CommodityInfo.standard, ";
strSQL = strSQL + "CommodityInfo.unit, StoreInfo.saleprice, StoreInfo.num FROM CommodityInfo INNER JOIN StoreInfo ON ";
strSQL = strSQL + "CommodityInfo.barcode = StoreInfo.barcode WHERE CommodityInfo.barcode = '";
strSQL = strSQL + dlgAll.strKey + "'";
adoFind.Open(strSQL);
//adoFind.InitList(&m_ctrlListMain);
adoFind.FillList(&m_ctrlListMain);
m_ctrlListMain.SetItemText(0, 6, "1");
m_fltSalePrice = atof(m_ctrlListMain.GetItemText(0, 4));
m_iNum = 1;
m_fltAmount = m_fltAmount + m_iNum * m_fltSalePrice;
UpdateData(FALSE);
}
}
商店管理系统源代码(三)
最新推荐文章于 2013-04-12 15:37:20 发布