【问题标题】:Logic to do Backordering system [closed]执行延期交货系统的逻辑[关闭]
【发布时间】:2013-03-19 19:37:37
【问题描述】:

大家好,

我目前遇到了一个逻辑问题,两天后我还没有弄清楚,因为我一直在猜测自己。这是我正在做的事情的要点。

我有一个进入网站的订单。从逻辑上讲,它已经根据库存确定了要在订单中发送多少特定商品。如果库存足够高,它会发出许多请求的物品。

但是,有一个转折点。管理员可以调整这些订单号。他们可以更改请求的金额以及发行的金额。一条规则是他们不能发出超过请求的数量(换句话说,发出

收到的请求数量为 5 件。下订单时的库存数量为 4。系统会提取库存并为订单发出库存,并为剩余的商品下订单。

数量 = 5 库存 = 4

5 - 4 = 1

问题数量 = 4

延期交货 = 1

我想出了 4 个场景来解释所有可能的变化。

1.) 管理员将数量从 5 更改为 4。由于库存仍然是 4 并且不能再高,管理员不理会发行的数量。这会导致需要删除延期交货。

2.) 管理员将数量从 5 更改为 6,仅保留已发行数量(反过来,由于库存为空)。这导致延期交货需要更新为 2。

3.) 管理员不会更改数量 (5)。管理员将发出的数量从 4 更改为 3。这会将一件物品重新添加到库存 (1) 中。这会导致延期交货量保持为 2。

4.) 管理员将数量和发行数量都更改为 4。这使库存为 0。由于库存下降到 0,因此也将缺货订单删除。

我的问题是在代码中创建逻辑来处理这个问题。我首先检查数量,看看它是否超过了原始数量。如果是这样,我检查了发行量,看它是否大于原始发行量。然后我就一直迷路。

我希望也许有人有一些想法。我真的很感谢在弄清楚这个逻辑方面的任何帮助。谢谢。

【问题讨论】:

  • 您发布的案例 3 似乎已关闭。您的意思是:3) 管理员不会更改数量 (5)。管理员将发出的数量从 4 更改为 3。这会将一件商品添加到库存 (1) 中,而延期交货仍为 1。
  • 已修复。谢谢你抓住那个。实际上,延期交货会达到 2 个。

标签: c# c#-4.0 logic


【解决方案1】:

如果已经有一个系统用于履行订单(计算已发出和延期交货的订单号),那么处理此问题的一种方法是撤消操作,应用管理员的更改并使用更改重新履行订单。

您必须在订单中添加一两个字段以说明管理员的更改,并更新订单履行系统以说明指定的发出金额。

通过这种方式,您不需要复杂的逻辑来更改已发行、延期交货等。

【讨论】:

  • 这有点道理,但这意味着我需要更新库存数量,删除记录,然后重新创建相同的记录,并将其添加到订单中。我猜想它的工作方式,但我宁愿不删除记录而不是做逻辑。
  • 也许吧,但我认为我更愿意将履行记录视为不可变的,而您真正要做的是取消一项履行并替换管理员自定义的一项。我还喜欢将实现逻辑保存在一个地方(包括管理员更改),而不是让第二个系统进行复杂的数据库更新。只是我的意见
猜你喜欢
  • 2018-07-10
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2015-03-04
相关资源
最近更新 更多