商店管理系统源代码(三)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多店进销存管理系统源码 开发环境为Visual Studio 2010,数据库为SQL2008R2,使用.net 4.0开发。采用ASP.NET MVC3.0+三层架构模式 源码描述: 一、源码特点 1、 在你入库,出库,采购等操作时候,添加商品或者选择商品时候支持强大回车事件,比如:选择入库商品之后,可以通过tab,->,<-,Enter在商品表格自由的移动。很大提高入库,出库,采购,调拨工作效率。 2、 并且强大的商品档案管理,促销计划管理 ,零售管理,会员管理,供应商管理,库存管理,权限管理,报表统计功能。 3、 提供了零售统计,采购日汇总,采购月汇总,采购类别汇总,采购品牌汇总,采购供应商汇总,采购明细汇总,库存成本查询,出入库明细出入库汇总,出入库月汇总,强大报表功能。 4、 支持强大终端POS对接功能。 5、 支持强大多门店管理功能。 6、 相应模块都有导入,导出,打印功能 二、菜单功能 1、基础数据 商品类别 商品品牌 商品单位 商品档案 门店管理 2、零售管理 零售终端管理 销售设置 营业员 零售商品流水 收银流水 零售日汇总 零售月汇总 零售品牌汇总 零售毛利分析 营业员提成 营业员提成明细 零售类别汇总 3、 促销管理 促销计划 当前促销查询 促销销售汇总 促销销售明细 4、会员管理 会员类别 会员资料 积分设置 礼品管理 积分兑换 会员消费明细 会员积分明细 会员储值明细 5、采购管理 供应商档案 采购设置 采购订单 采购收货 采购退货 6、库存管理 商品入库 商品出库 调拨单 库存盘点 连锁设置 采购日汇总 采购月汇总 采购类别汇总 采购品牌汇总 采购供应商汇总 采购明细汇总 库存成本查询 出入库明细 出入库汇总 出入库月汇总 商品调拨明细 7、系统权限管理 用户维护 角色维护 角色菜单权限设置 菜单维护 网站日志

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值