以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 先进先出 方法应用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80914) |
-- 作者:fubblyc -- 发布时间:2016/2/10 11:40:00 -- 先进先出 方法应用 各位老师好,大家新年快乐。今天刚好有点空,把一个思考很久没弄出来的问题抛出来,请大家帮忙看看。。。不胜感激!! 本图的表名是{充值记录表},充值不同的金额有不同的折扣率,采用【先进先出】的方法,即:先后充10000元(买单折扣为A)和5000元(买单折扣为B)以及后面的其他充值面额(买单折扣为相应的扣率)。 想要实现: 根据消费金额和充值金额,自动判断当前的买单折扣。 如图,消费金额为1、4999、2000、3000的买单折扣应都为A,因为属于充值金额10000元的 而最后两行的的3000、2000的买单折扣应为B,因为属于充值金额5000元的 第一次充值之后的消费(不超过第一次充值金额)已经在充值按钮事件中判定为第一次充值金额的买单折扣。 而且在收银时已经设定买单金额不能超过【第一次的充值金额】,最后累计消费金额一定会等于【第一次充值金额】。 这样,在确定收银的按钮事件中,只要累计消费金额=【第一次充值金额】(也就是【第一次充值金额】已经被用完了,要进入【第二次充值金额】的流程),买单折扣就会更改为【第二次充值金额】的买单折扣。 现在的问题是:我现在是用第一次来判断,但是顾客可能会充值五次、二十次,我要用一个变量 n 来代替 第几次。就是这个不懂得怎么写。。。。
[此贴子已经被作者于2016/2/10 12:46:46编辑过]
|
-- 作者:jspta -- 发布时间:2016/2/10 12:44:00 -- 这种计算会比较麻烦,你可以考虑另外两种方式 1. 分不同种类的卡,每种卡对应一种折扣,这个实现就非常简单了。 2. 充值反馈,即冲1W,反馈1500,那么你一开始就把这1500直接加上去,那么每次计算的时候就不需要折扣,显示给客户的时候也就不用打折了,这样计算量也会简洁。 |
-- 作者:fubblyc -- 发布时间:2016/2/10 12:52:00 -- 谢谢 jspta 老师,太感谢你了,大过年的还麻烦你!! 你说的这两种方式,我跟你解释下,在我这里为什么不能采用:
1.用的是微信会员卡,卡号只有一个,所以没法分不同种类的卡。不过我再想如果用这种方式可以怎么变通。 2.公司领导不想采用反馈的方式,因为和员工提成有关。这个无法改变。。。。 |
-- 作者:fubblyc -- 发布时间:2016/2/10 13:30:00 -- 哦,对了,是没有办法采用两种卡。因为本来的erp系统的会员卡,一个会员就只有一个卡号。对应着一个会员卡级别,折扣级别。所以,还是只能想着怎么动态地改变。其实现在就是差怎么获取是第几次充值。 |
-- 作者:游 -- 发布时间:2016/2/10 13:45:00 -- 感觉你的表设置,不适合你的逻辑,所以你会卡在这里。
建议分开主表和明细,主表行记录 用户、充值数、余额数、折扣类型等等,每次充值,新建一行。
明细行记录 充值和消费明细,用主表行的主键做外键,更新相对应的余额
这样,每次取数据时,直接筛选 余额大于0的对应的用户的主表记录,按时间或主键排序,就可以了,剩下的计算应该不是问题。
|
-- 作者:fubblyc -- 发布时间:2016/2/10 14:12:00 -- 谢谢 游 !!看起来是一个很好的方法!!我现在试一下!! |
-- 作者:fubblyc -- 发布时间:2016/2/11 9:40:00 -- 完美解决!!谢谢 游 ,谢谢 jspta !! |