C# 简易POS零售系统架构设计源码(4)
PosTerminal.cs
C# Code:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Windows.Forms;
namespace CSFramework.Tech2011.PosTerminal
{
/// <summary>
/// 收银台管理类
/// 收银终端设备:PosTerminal
/// </summary>
public class PosTerminal
{
private IMonitor _Monitor = null; //收银台监视器
private IPrinter _Printer = null; //小票打印机
private ICashier _Cashier = null; //钱箱
private IStockDataView _StockDataShow = null;//已输入货品清单
public IMonitor PosMonitor { get { return _Monitor; } }
public IPrinter PosPrinter { get { return _Printer; } }
public ICashier PosCashier { get { return _Cashier; } }
public IStockDataView PosStockDataView { get { return _StockDataShow; } }
/// <summary>
/// 创建一个收银台管理类
/// </summary>
public PosTerminal(ICashier cashier, IMonitor monitor, IPrinter printer, IStockDataView stockDataView)
{
_Monitor = monitor;
_Printer = printer;
_Cashier = cashier;
_StockDataShow = stockDataView;
}
public bool Pay(decimal amount)
{
decimal rcv = this._StockDataShow.GetReceivableAmount();
if (amount > rcv)
{
_Cashier.OpenDoor(); //打开钱箱
_Cashier.AcceptMoney(amount); //收钱
_Cashier.CloseDoor();//关闭钱箱
_StockDataShow.Clear(); //收款收毕清空货品列表,重新启动收钱任务
_Monitor.ShowMessage("Thank you!", "已收:" amount.ToString());
_Printer.Print("Thanks!");
return true;
}
else
{
_Monitor.ShowMessage("not enough money!", "应收:" rcv.ToString());
return false;
}
}
/// <summary>
/// 检查系统/硬件连接
/// </summary>
public void CheckSystem()
{
if (_Monitor != null)
_Monitor.ShowMessage("Welcome!", "");
if (_Printer != null)
_Printer.Print("Test Printer.... ok!");
if (_Cashier != null) //检查钱箱
{
_Cashier.AcceptMoney(0);
_Cashier.OpenDoor();
_Cashier.CloseDoor();
}
}
public void PrintStockInfo(Stock stock)
{
if (_Printer != null)
_Printer.Print(stock.Name " Price: " stock.Price.ToString());
}
/// <summary>
/// 当输入一个货品,要显示当前货品名称及应收金额
/// </summary>
public void ShowStockInfo(Stock stock)
{
decimal amt = _StockDataShow.GetReceivableAmount();
_Monitor.ShowMessage(stock.Name " Price: " stock.Price.ToString(), "应收:" amt.ToString());
}
/// <summary>
/// 输入货品
/// </summary>
public void AddStock(Stock stock, int qty)
{
this.PosStockDataView.AddStock(stock, qty); //加入货品队列
this.PrintStockInfo(stock); //打印小票
this.ShowStockInfo(stock); //显示货品
}
/// <summary>
/// 重置收银台
/// </summary>
public void Reset()
{
_Monitor.Reset();
_Cashier.Reset();
_Printer.Reset();
_StockDataShow.Clear();
CheckSystem();
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Windows.Forms;
namespace CSFramework.Tech2011.PosTerminal
{
/// <summary>
/// 收银台管理类
/// 收银终端设备:PosTerminal
/// </summary>
public class PosTerminal
{
private IMonitor _Monitor = null; //收银台监视器
private IPrinter _Printer = null; //小票打印机
private ICashier _Cashier = null; //钱箱
private IStockDataView _StockDataShow = null;//已输入货品清单
public IMonitor PosMonitor { get { return _Monitor; } }
public IPrinter PosPrinter { get { return _Printer; } }
public ICashier PosCashier { get { return _Cashier; } }
public IStockDataView PosStockDataView { get { return _StockDataShow; } }
/// <summary>
/// 创建一个收银台管理类
/// </summary>
public PosTerminal(ICashier cashier, IMonitor monitor, IPrinter printer, IStockDataView stockDataView)
{
_Monitor = monitor;
_Printer = printer;
_Cashier = cashier;
_StockDataShow = stockDataView;
}
public bool Pay(decimal amount)
{
decimal rcv = this._StockDataShow.GetReceivableAmount();
if (amount > rcv)
{
_Cashier.OpenDoor(); //打开钱箱
_Cashier.AcceptMoney(amount); //收钱
_Cashier.CloseDoor();//关闭钱箱
_StockDataShow.Clear(); //收款收毕清空货品列表,重新启动收钱任务
_Monitor.ShowMessage("Thank you!", "已收:" amount.ToString());
_Printer.Print("Thanks!");
return true;
}
else
{
_Monitor.ShowMessage("not enough money!", "应收:" rcv.ToString());
return false;
}
}
/// <summary>
/// 检查系统/硬件连接
/// </summary>
public void CheckSystem()
{
if (_Monitor != null)
_Monitor.ShowMessage("Welcome!", "");
if (_Printer != null)
_Printer.Print("Test Printer.... ok!");
if (_Cashier != null) //检查钱箱
{
_Cashier.AcceptMoney(0);
_Cashier.OpenDoor();
_Cashier.CloseDoor();
}
}
public void PrintStockInfo(Stock stock)
{
if (_Printer != null)
_Printer.Print(stock.Name " Price: " stock.Price.ToString());
}
/// <summary>
/// 当输入一个货品,要显示当前货品名称及应收金额
/// </summary>
public void ShowStockInfo(Stock stock)
{
decimal amt = _StockDataShow.GetReceivableAmount();
_Monitor.ShowMessage(stock.Name " Price: " stock.Price.ToString(), "应收:" amt.ToString());
}
/// <summary>
/// 输入货品
/// </summary>
public void AddStock(Stock stock, int qty)
{
this.PosStockDataView.AddStock(stock, qty); //加入货品队列
this.PrintStockInfo(stock); //打印小票
this.ShowStockInfo(stock); //显示货品
}
/// <summary>
/// 重置收银台
/// </summary>
public void Reset()
{
_Monitor.Reset();
_Cashier.Reset();
_Printer.Reset();
_StockDataShow.Clear();
CheckSystem();
}
}
}
//来源:C/S框架网(www.csframework.com) QQ:1980854898
参考文档:
C# 简易POS零售系统架构设计源码(5)
C# 简易POS零售系统架构设计源码(3)
C# 简易POS零售系统架构设计源码(1)
C# 简易POS零售系统架构设计源码(2)
CSFramework.EF.PostgreSql数据库组件 PostgreSql数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
CSFramework WebApi开发框架集成PostgreSql数据库及测试报告|C/S开发框架
Postman工具设置Bearer Token与调试WebApi接口|C/S开发框架
DevExpressV22:RepositoryItemComboBox的QueryPopUp事件无法动态加载数据项
DevExpress开发技巧高级篇:双击RepositoryItemPictureEdit组件自动弹出菜单
GIT报错:Could not get HEAD hash. libgit2 returned:repository path "xx" is not owned by current user
DevExpress 实时打印表格内容(PrintableComponentLink/CompositeLink组件使用)
使用RepositoryItemMemoExEdit显示大文本内容
饰品店面销售管理系统POS系统详细设计说明书doc文档下载|软件文档
HTTP|POST提交数据:ContentType=application/x|www|form|urlencoded 内容格式|C#源码
HTTP|POST提交数据:ContentType=application/json 内容格式|C#源码
C# 简易POS零售系统架构设计源码(5)
C# 简易POS零售系统架构设计源码(3)
C# 简易POS零售系统架构设计源码(1)
C# 简易POS零售系统架构设计源码(2)
CSFramework.EF.PostgreSql数据库组件 PostgreSql数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
CSFramework WebApi开发框架集成PostgreSql数据库及测试报告|C/S开发框架
Postman工具设置Bearer Token与调试WebApi接口|C/S开发框架
DevExpressV22:RepositoryItemComboBox的QueryPopUp事件无法动态加载数据项
DevExpress开发技巧高级篇:双击RepositoryItemPictureEdit组件自动弹出菜单
GIT报错:Could not get HEAD hash. libgit2 returned:repository path "xx" is not owned by current user
DevExpress 实时打印表格内容(PrintableComponentLink/CompositeLink组件使用)
使用RepositoryItemMemoExEdit显示大文本内容
饰品店面销售管理系统POS系统详细设计说明书doc文档下载|软件文档
HTTP|POST提交数据:ContentType=application/x|www|form|urlencoded 内容格式|C#源码
HTTP|POST提交数据:ContentType=application/json 内容格式|C#源码
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
