Foxtable(狐表)用户栏目专家坐堂 → [求助]一个普遍的核心问题,出库单入库单保存后如何更新其它单据


  共有2032人关注过本帖树形打印复制链接

主题:[求助]一个普遍的核心问题,出库单入库单保存后如何更新其它单据

帅哥哟,离线,有人找我吗?
zhangqinyun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
[求助]一个普遍的核心问题,出库单入库单保存后如何更新其它单据  发帖心情 Post By:2016/10/12 19:34:00 [只看该作者]

学了狐表好几年了,这个思路问题一直没找到答案。

想给自家工厂做个多人操作的ERP系统。

1.如何处理出库入库单据保存后,相关数据(采购单,销售单)的更新
2.如何保证即时库存的准确性

例如:仓库收到100个物料A,做采购入库单。

操作:1.SQL命令 保存库存明细。
         2.SQL命令 在库存表 物料A行的即时库存列+100。
         3.SQL命令 在采购单表 对应采购单的已入库列中+100,如果已入库数量>=采购数量,关闭采购明细。

这里我用了数据库事务回滚,保证一次执行所有数据。

但是这个方案即时库存可能还是不准确。是否要加一列期初余额,用期初余额+本期入库-本期出库=实际库存 定期来调整即时库存。

请各位大神帮帮忙,我不是专业出生,谢谢
                            
[此贴子已经被作者于2016/10/12 19:45:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 20:40:00 [只看该作者]

你的不准确具体是指什么?

如果是指产生库存数据丢失,那是代码逻辑有问题。否则使用事务的情况下一般不会出现这种情况。

如果是指库存数量变化和查询之间的不实时,这种情况基本很难避免。

 回到顶部
帅哥哟,离线,有人找我吗?
zhangqinyun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2016/10/12 20:44:00 [只看该作者]

因为很多人都说即时库存直接加减很容易出错,需要用有效入库-有效出库来调整

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/12 21:07:00 [只看该作者]

事务和逻辑合理就不会出错。

见过的一种做法是,在相关表增加一个标志列
操作时,开启事务,在操作前先查询并更新这个标志值,表示占用状态,如果全部为可操作并更新成功,才开始进行库存操作,这样就会产生行级写锁,保证一个产品只能有一个连接进行更新。但是不影响查询,只不过查询到的只是事务开启之前的数据。
更新完库存后把标志列置为空闲状态,然后提交事务。

这种情况需要快速处理,不能有太多费时的逻辑处理,一般都是扔到存储过程中,整个事务保持在毫秒级,才不会阻塞其它并发处理。

 回到顶部