怎么解决出库日期小于入库日期的问题?

dennisberg1234 2012-05-21 09:32:50

这是入库表

这是出库表

这是物品表,stock为库存。


现在有一个问题,比如说物品表第一个库存为12,然后昨20号售出12个,则库存为0。今天再在入库界面入库10个,则入库表会增加一条记录,intime为系统时间。
但是如果我今天21号把系统时间改为20号,应该库存为0,不能售出,但是现在应为21号入库有库存了,系统便无法判定。

这个逻辑问题应该怎么解决呢?是不是数据库结构要加点什么?
...全文
832 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimh 2012-05-21
  • 打赏
  • 举报
回复
库存管理很成熟了,关键是批号,每个产品都要按批号来处理,出货的时候按先进先出的顺序,那一批货先进仓则先出去,绝对不会出现进货时间大于出货时间的问题。
xuqing19830921 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

有几套方案:
1.可以让系统时间不能被修改,具体如何设置百度好了,记得可以通过修改注册表得到。写个批处理,部署在需要存储的机器上。
2.可以捕获系统时间修改的消息,然后修改数据,捕获的方法看连接。
http://jackyxfl.blog.163.com/blog/static/164134150201122442354880/

从系统时间修改方面的话……
[/Quote]
但从数据库的结构来说,你这没问题,如果要改,你干脆别以时间为唯一索引啦,或一个自定义的唯一索引,第三方没法修改的
你这就是不行
dennisberg1234 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

你出库判断的是 库存数量字段 有当然可以售出了。像你说的应该判断不能小于当前时间的库存。

感觉是不是想法有问题啊?
[/Quote]
比如说我系统时间是21号,库存为0,入库了12个
再把系统时间改成20号,明明库存应该为0,但是现在库存为12,可以售出

所以说是不是数据库结构要做修改?
EnForGrass 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
这是入库表

这是出库表

这是物品表,stock为库存。


现在有一个问题,比如说物品表第一个库存为12,然后昨20号售出12个,则库存为0。今天再在入库界面入库10个,则入库表会增加一条记录,intime为系统时间。
但是如果我今天21号把系统时间改为20号,应该库存为0,不能售出,但是现在应为21号入库有库存了,系统便无法判定。

这个逻辑问题应该怎么解决呢?是不是数据……
[/Quote]
那是查询的sql语句没写对,就是改成20号,获得系统时间也只会查出20号的数据
dennisberg1234 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

有几套方案:
1.可以让系统时间不能被修改,具体如何设置百度好了,记得可以通过修改注册表得到。写个批处理,部署在需要存储的机器上。
2.可以捕获系统时间修改的消息,然后修改数据,捕获的方法看连接。
http://jackyxfl.blog.163.com/blog/static/164134150201122442354880/
[/Quote]
从系统时间修改方面的话有点治标不治本啊。最好从编程方面或者数据库结构方面做修改。。
Change_L 2012-05-21
  • 打赏
  • 举报
回复
你出库判断的是 库存数量字段 有当然可以售出了。像你说的应该判断不能小于当前时间的库存。

感觉是不是想法有问题啊?
xuqing19830921 2012-05-21
  • 打赏
  • 举报
回复
有几套方案:
1.可以让系统时间不能被修改,具体如何设置百度好了,记得可以通过修改注册表得到。写个批处理,部署在需要存储的机器上。
2.可以捕获系统时间修改的消息,然后修改数据,捕获的方法看连接。
http://jackyxfl.blog.163.com/blog/static/164134150201122442354880/
dennisberg1234 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

可以这样判断啊,如果现在售出的话,获得现在的时间,然后同数据库中的库存表相比较,如果库存大于0,则售出,否则的话,则不售出。
[/Quote]
比如说我系统时间是21号,库存为0,入库了12个
再把系统时间改成20号,明明库存应该为0,但是现在库存为12,可以售出
你这个判断方法不对吧
梦世界 2012-05-21
  • 打赏
  • 举报
回复
可以这样判断啊,如果现在售出的话,获得现在的时间,然后同数据库中的库存表相比较,如果库存大于0,则售出,否则的话,则不售出。
dennisberg1234 2012-05-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

第一张表名字看不清,是库存表?
[/Quote]
第一张是入库表啊,intime就是记录入库日期
@信心 2012-05-21
  • 打赏
  • 举报
回复
第一张表名字看不清,是库存表?

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧