就是不能拆包装销售。比如一箱香烟要一包包的卖,一箱里面有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. 使用NoSQL Manager for MongoDBclient连接mongodb

    1.安装NoSQL Manager for MongoDB 下载地址:http://www.mongodbmanager.com/download 2.打开client,选server-new mon ...

  2. Atitit.软件开发的几大规则,法则,与原则。。。attilax总结

    Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计 ...

  3. Atitit.遍历图像像素点rgb java attilax总结

    Atitit.遍历图像像素点rgb java attilax总结 1. 遍历像素点 1 2. 提取一行 1 3. Rgb分量提取 2 4. 其他读取像素 3 5. --code 5 6. 参考 6 1 ...

  4. Atitit.ati  str  字符串增强api

    Atitit.ati  str  字符串增强api 1. java StringUtils方法全览 分类: Java2011-11-30 17:22 8194人阅读 评论(2) 收藏 举报 javas ...

  5. Android Studio怎样import module(针对非gradle)

    相同的,非gradle编译的project和gradle编译的在import module上相同有一些差别. 包含操作上,显示上的一些差别,曾经的文章中,仅仅要没有标注"非gradle&qu ...

  6. JSON 常用数据转换

    #endregion #region Json字符串转换为DataTable 实例方法 public DataTable JsonToDataTable(json) { DataTable dt= T ...

  7. 发现一个nginx LUA开发Web App的框架

    nginx是个好东西, nginx的openrtsy发行版本更是个好东西. 今天又发现个好东西 :Moochine MOOCHINE - 一个简单的轻量级的web framework, 基于ngx_O ...

  8. opencv读取图像输入到tensorflow模型中进行运算【cpp】

    void TransformMatToTensor(const cv::Mat &image, Tensor &input_tensor, int input_width, int i ...

  9. Dubbo—Zookeeper的典型应用

    1.Zookeeper 作为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 H ...

  10. 加密web.config中的邮件配置mailSettings

    加密: 在命令提示符下键入: aspnet_regiis -pef connectionStrings 要加密的web.config完整路经 演示样例:C:\Program Files (x86)\M ...