就是不能拆包装销售。比如一箱香烟要一包包的卖,一箱里面有50条,一条里面有10包,而是,要一包一包的卖。

解决方案:
入库的时候,记录下包装总量(自动改成数量×50),再附加2条说明字段,第一条说明是一包,第二条说明现状态没有被拆封(包装×1),且这个包装有自己的编号。
出售的时候,记录下包装销售(自动改成数量×50),再附加2条说明字段(包装×1)。一般情况下,只需要统计明细,但有时候也要统计包装数量,这样两不误。

总结:
1. 无论入库还是出售,关键还是主要记录明细。但明细相互有些区别:
属于套餐里的明细要标记为S,套餐本身标记为M,普通商品不标记。一个套餐要插入至少2次:一次是套餐本身的标记,另一次是所有的明细。
这样既可以完全按明细统计,也可以按销售项目来统计。
2. 注意,套餐里每个货物的TVA不一样,而不能是统一的TVA,所以交税的时候,必须根据明细来统计。
(这样说来,套餐入库的时候必须插入每一样东西的明细)
3. 这样一包一包卖没有问题。如果被拆箱了,那么不再有包装×1字段(要跑到进货处修改状态),而只能是散货供应。

总货物表:
1. 原因:我感觉使用触发器维护一个总货物表还是有必要的,而不是单纯的进货、出货表,然后联合统计。
因为总货物表可以表明现有的物资数量,这样才可以有选择的卖。否则根本就是瞎卖。
2. 产生规则:1)每次进货的时候生成,但是对于套餐,既要记录下包装的存货数量,也要记下存货的明细数量。
总货物表的id字段与商品表一致。
如果销售的是包装,那么既要让包装数量-1,也要让相应的明细数量减少。
多给一个按钮,表示拆箱卖货。但是餐馆卖套餐,如果可以卖,那么一定是已经配好了,所以不存在拆箱的问题。
2)如果为简化问题,那么每次也可以当场统计存货,但是速度慢。。。

最后总结:
1. 货物表最好有,否则就是瞎卖。某包装被拆了分开要卖,那么要用不同出货的按钮。
2. 入库的时候,既要入库套餐,也要入库套餐明细(虽然餐馆没有这个问题)
3. 出库的时候,既要出库套餐,也要出库套餐明细。这样各种统计都可以正确达到效果。且即使货物明细TVA不同也绝对不会出错。

MIS货物拆包销售的问题的更多相关文章

  1. C语言实现商品销售系统

    商品销售系统 #include<stdio.h> //头文件 #include<string.h> //头文件 #include<stdlib.h> //头文件 # ...

  2. SAP中寄售处理

    寄售分两种: 1, 供应商提供货物,我们销售 2,我们提供货物,寄售商销售 [@more@] 1, 供应商提供货物,我们销售 创建PO,购买寄售货物,categories维护成K,然后收货即可. 2, ...

  3. Nginx 引入线程池,提升 9 倍性能

    转载:http://blog.csdn.net/wuliusir/article/details/50760357 众所周知,NGINX 采用异步.事件驱动的方式处理连接.意味着无需对每个请求创建专门 ...

  4. 进项税额_MBA

    进项税额   目录 [显示] [编辑] 什么是进项税额 进项税额是指纳税人购进货物或应税劳务所支付或者承担的增值税税额.所说购进货物或应税劳务包括外购(含进口)货物或应税劳务.以物易物换入货物.抵偿债 ...

  5. SQL Server 查询性能优化——创建索引原则(二)

    三:索引的建立原则 一般来说,建立索引要看数据使用的场景,换句话来说哪些访问数据的SQL语句是常用的,而这些语句是否因为缺少索引(也有可能是索引过多)变的效率低下.但绝不是所有的SQL语句都要建立索引 ...

  6. SQL Server 查询性能优化——创建索引原则

    索引是什么?索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以.但是索引对于提高查询性能也不是万能的,也不是建立越多的索引 ...

  7. python-day31(正式学习)

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

  8. Python核心技术与实战——二十|assert的合理利用

    我们平时在看代码的时候,或多或少会看到过assert的存在,并且在有些code review也可以通过增加assert来使代码更加健壮.但是即便如此,assert还是很容易被人忽略,可是这个很不起眼的 ...

  9. 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

随机推荐

  1. Atitit .h5文件上传 v3

    Atitit .h5文件上传 v3 1. 上传原理1 2. V3版新特性1 3. Html1 4. Js2 5. uploadV2.js2 6. upServlet & FileUploadS ...

  2. [个人开发人员赚钱九]做一个日收入10元的APP!

    [导语]尽管讲了非常多个人开发人员的文章.但新手开发人员怎样赚自己的第一个10块钱.确是最难的事情.群里有人说都不知道干什么app赚钱.全然没有想法.而且常常问我有什么高速赚钱的方法.我仅仅能遗憾地 ...

  3. 当一个线程进入一个对象的synchronized方法A之后,其他线程是否可进入此对象的synchronized方法B?

    给出答案: 是不能的,其他线程只能访问该对象的非同步方法,同步方法则不能进入; 因为非静态方法上的synchronized修饰符要求执行方法时要获得对象的锁,如果已经进入A方法,说明对象锁已经被取

  4. C# MessageBox 消息对话框

    在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消息对话框位于System.Windows.For ...

  5. hdu 1022 Train Problem

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  6. 一次csrf配合xss的攻击实例

    xss出现在我的邮箱处 alert of payload "><script>alert(/test/)</script><" by cooki ...

  7. 描述JSP和Servlet的区别、共同点、各自应用的范围

    描述JSP和Servlet的区别.共同点.各自应用的范围 解答:JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Se ...

  8. 对hibernate的延迟加载如何理解,在实际应用中,延迟加载与session关闭的矛盾是如何处理的?

    对hibernate的延迟加载如何理解,在实际应用中,延迟加载与session关闭的矛盾是如何处理的? 解答:延迟加载就是并不是在读取的时候就把数据加载进来,而是等到使用时再加载.那么Hibernat ...

  9. RedHat Ent 6.5 64bit编译安装hadoop2.4.1

    RedHat Ent 6.5 64bit编译安装hadoop2.4.1 感谢原帖:http://blog.csdn.net/w13770269691/article/details/16883663/ ...

  10. sublime 空格 tab

    sublime强大的编辑能力非常值得推荐.在编辑python语言时,因为python用段落格式取代了常见语言中的括号,所以在写python时.会将空格和tab混淆,如此产生的错误非常是恼人. 如17, ...