程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 商店管理系統源代碼(三)

商店管理系統源代碼(三)

編輯:C++入門知識

[cpp]
#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); 
    } 

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


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved