2. 处理收银
涉及人员:顾客、收银员。
业务规则:POS最后显示购物总额及折扣,收银员告知顾客应收总额,顾客选择支付方式,若选择刷卡支付则收银员需在POS上选择刷卡支付并由POS机向外部请求刷卡授权服务;若顾客选择现金支付并把现金递给收银员,则收银员在POS中输入实收金额,并由POS机计算并显示找续金额,收银员根据POS来找续。
用例UC2:处理收银
主要参与者:收银员
前置条件:收银员必须经过确认和认证。
后置条件:存储付款信息。准确计算购物总额。更新账务和库存信息。
主成功场景:
1. 系统显示购物总额及折扣。
2. 收银员告知顾客应收总额。
3. 顾客选择现金支付方式并向收银员递给现金。
4. 收银员向系统输入实收金额。
5. 系统计算并显示找续金额。
6. 收银员找续现金。
7. 付款完成并生成付款信息。
扩展:
*a. 系统管理员在任意时刻要求进行超控操作:
1. 系统进入系统管理员授权模式。
2. 管理员执行某一项管理员模式的操作。例如:更改商品价格等。
3. 系统回复到收银员授权模式。
*b. 系统在任意时刻失败:
为了支持恢复和更正账务处理,要保证所有交易的敏感状态和事件都能够从场景的任何一步中完全恢复。
1. 收银员重启系统,登录,请求恢复初始状态。
2. 系统重建初始状态。
2a. 系统在恢复过程中检测到异常:
1. 系统向收银员提示错误,记录此错误,并进入一个初始状态。
2. 收银员重新开始收银。
1a. 顾客告知想要取消购物:
1. 收银员取消付款。
2. 收银员取消购物单。
1b. 顾客告知向取消其中的商品:
1. 收银员取消付款。
2. 编辑购物单后再次确认付款。
3a. 顾客选择刷卡支付:
1. 收银员在系统选择刷卡支付,系统向外请求授权。
2. 收银员处理刷卡支付。
3. 顾客签名。
3b. 顾客发现现金不足:
1. 顾客选择刷卡支付。
2. 顾客自动取消购物。
2a. 收银员在系统取消支付并取消购物单。
4-6a. 收银台现金不足:
1. 收银员向经理请求补充现金。
2. 询问顾客是否可以选择刷卡支付。
3. 顾客选择取消购物。
3a. 收银员在系统取消支付并取消购物单。
4-6b. 收银台零钱不足:
1. 收银员向经理请求补充零钱。
2. 询问顾客是否可以使用等价商品兑换零钱。
3. 若是会员则询问是否可以把零钱算入会员卡中。
7a. 付款信息无法显示:
1. 向系统管理员请求帮助。
7b. 付款信息有误:
1. 向系统管理员请求超控操作更改付款信息。
简介
本文档记录了EAT IT POS所有未在用例中描述的需求。
功能性
1. EAT IT POS可支持销售统计以及报表处理,给商店经理提供某时间段的销售状况并以图形报表形式展现。
2. EAT IT POS支持系统角色的权限管理,为系统处理业务过程中的安全性增加保障。
可用性
l 顾客站在50厘米外也可看到屏幕显示器的文本。
l 避免使用一般色盲人群难以辨认的颜色。
l 支付方式可选,方便不携带现金的顾客来选择刷卡支付。
快捷、无错的销售交易处理,带给顾客方便快捷的购买体验。
可靠性
1. 可恢复性
如系统无法与外部系统通信,则可尝试利用本地解决方案加以解决。
2. 性能
需要体现快捷无错的销售交易,则我们的目标需要提高系统在进行商品输入和计算价格的速度。
可支持性
1. 可适应性
EAT IT POS在处理销售时可适应不同的业务规则。
2. 可配置性
EAT IT POS系统应该具备一定的可配置能力以适应修改网络配置、变更业务和性能等的需求。
实现约束
EAT IT POS采用Java技术的解决方案。
免费开源构件
出于成本考虑,尽可能的使用免费的Java技术开源构件。我们所使用的构件有如下:
l SSH
l Maven
l EasyUI
l JQuery
接口
重要硬件和接口
l 显示屏
l 条形码激光扫描机
l 小票打印机
l 储蓄卡/信用卡读卡器
应用的领域规则
ID |
规则 |
可变性 |
来源 |
规则1 |
会员折扣与积分规则。如下: 折扣:10%折扣额 积分:总价一元等同一个积分 |
中等 折扣额可以改变。 积分等价不可改变。 |
商店政策 |
规则2 |
积分兑换规则。 积分满500:可兑换一种指定商品 积分满1000:可兑换两种指定商品 积分满1500:可兑换三种指定商品 积分兑换后清零。 |
高 兑换的商品可根据市场受欢迎度来决定。 |
商店政策 |
规则3 |
退货规则。购买商品在一个月内可以 退货,不包括已经拆开包装的商品。 |
低 退货有期限且包装不能开封。 |
商店政策、零售商政策 |
所关注领域内的信息
1. 折扣定价
除了在“应用的领域规则”中描述的折扣规则外,还需要注意的是,折扣后的价格不能低于所有产品总的原价。
2. 信用卡和借记卡支付处理
当支付授权服务批准了信用卡或借记卡支付后,将由支付授权服务而不是买方来负责对卖方的支付。因此,对于每笔支付,卖方都需要将授权服务的未付金额记录于其相应账户下。通常,授权服务在每晚执行电子转账操作,将卖方当天的应收总额转入其账户下,同时对每笔交易扣除(少量的)服务费。
3. 商品标识:UPC、EAN、SKU、条形码和条形码读取装置
EAT IT POS要支持各种商品标识方案:UPC(通用产品代码)、EAN(欧洲物品编码)和SKU(库存单位)等。
(1)销售单(销售号,收银员,会员,销售日期)
(2)一次消费清单(编号,销售号,商品号,商品数量,价格)
(3)支付单(编号,支付号,销售号,支付方式,支付日期)
-- ---------------------------- -- Table structure for `tpayment` -- ---------------------------- DROP TABLE IF EXISTS `tpayment`; CREATE TABLE `tpayment` ( `id` varchar(255) NOT NULL, `pid` varchar(255) DEFAULT NULL, `method` varchar(255) DEFAULT NULL, `createdatetime` datetime DEFAULT NULL, `tid` varchar(255) DEFAULT NULL, `totalprice` double(255,2) DEFAULT NULL, `collection` double(255,2) DEFAULT NULL, `changes` double(255,2) DEFAULT NULL, PRIMARY KEY (`id`), KEY `tid` (`tid`), CONSTRAINT `tpayment_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `treceipt` (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for `treceipt` -- ---------------------------- DROP TABLE IF EXISTS `treceipt`; CREATE TABLE `treceipt` ( `tid` varchar(255) NOT NULL, `cashier` varchar(255) DEFAULT NULL, `date` datetime DEFAULT NULL, `vip` varchar(255) DEFAULT NULL, `state` varchar(255) DEFAULT NULL, PRIMARY KEY (`tid`), KEY `FK_bpvilvm348cg2iryu2dag0td4` (`vip`), KEY `cashier` (`cashier`), CONSTRAINT `FK_bpvilvm348cg2iryu2dag0td4` FOREIGN KEY (`vip`) REFERENCES `tvip` (`id`), CONSTRAINT `treceipt_ibfk_1` FOREIGN KEY (`cashier`) REFERENCES `tuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Table structure for `tshoplist` -- ---------------------------- DROP TABLE IF EXISTS `tshoplist`; CREATE TABLE `tshoplist` ( `id` varchar(255) NOT NULL, `tid` varchar(255) DEFAULT NULL, `goodid` varchar(255) DEFAULT NULL, `amount` int(11) DEFAULT NULL, `price` double(255,2) DEFAULT NULL, PRIMARY KEY (`id`), KEY `tid` (`tid`), KEY `FK_f5ergs475jho99949ur6mcnd` (`goodid`), CONSTRAINT `FK_f5ergs475jho99949ur6mcnd` FOREIGN KEY (`goodid`) REFERENCES `tgood` (`id`), CONSTRAINT `tshoplist_ibfk_1` FOREIGN KEY (`tid`) REFERENCES `treceipt` (`tid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;