【发布时间】:2019-12-26 07:27:41
【问题描述】:
我正在使用 C# 为一家医疗商店开发 POS 应用程序。根据商店要求,他们有两种类型的产品。
- 没有变体的产品(没有子产品,即一瓶悬浮液或婴儿食品)。
- 有变化的产品(有子产品,即一包药片-> 有 3 条 -> 每条包含 10 片)
对于有变体的产品,我有变体标准(每个产品在每个包装中都有特定数量的条带,每个条带都有特定数量的药片)。我用水平管理它们。即 A 级(用于父产品)、B 级(用于子项目,例如一包内的条)、C 级(对于一条内的单个片剂)。为了加快售罄操作,我管理了具有此类变体的产品。
根据客户行为,我想管理销售操作,如果客户购买一包药片并且该包包含 3 条并且每条进一步包含 10 片,我想在我的数据库中完全捕获此库存减少.
为此,我的 SQLServer 中有一个单独的表。该表包含两种产品(有和没有变化)。该表还包含一个名为 IsParent 的单独字段,用于跟踪产品。 IsParent 字段为没有变化的产品存储 0,为有变化的产品存储 1。该表还包含基于变体的产品的每个级别的单独字段和每个级别的单独数量字段。
假设我有 10 包 XYZ 片剂,B 级标准为 3(每包 3 条),C 级标准为 10(每条 10 片),那么我现有的库存将是这样的:
10 X 3 = 30 条
30 X 10 = 300 片
现在,如果客户从这 10 包中购买了一条,那么我如何从整个茎中减去 1 条,即 30 条?我怎样才能从整个茎中减去这 10 片(1 条),即 300 片?
到目前为止,我正在做以下手动减法:
对于 B 级(单条或两条,每条有 10 片)
decimal levelB = purchaseQuantity / levelBStandard;
decimal levelB_Qty = Math.Round((Decimal)levelB, 1);
购买数量是客户购买的数量。此数量除以 B 级标准,即 3。如果客户购买 2 条,则 2/3 = 0.66,如果客户购买 1 条,则 1/3 = 0.33。如果另一个客户从同一产品中购买一个或两个条带,那么由于小数点的原因,经过几次交易后,库存量就会变得很棘手。
如果客户购买的平板电脑少于 10 片,我也会做同样的操作,这对我来说非常棘手。我需要一些方法来管理这种库存减少,以便如果在一次销售操作中从30 strips 售罄 2 条,那么剩余库存数量将为29.34 or 29.3。后来,在同一产品的另一个销售操作中,如果另一个客户购买了单个条带,那么条带的库存量应该变为29而不是29.01,因为这个0.1给我带来了麻烦。
我也会以同样的方式管理平板电脑的库存减少。我希望有人可以帮助我提供一个简单但可靠的解决方案。任何帮助将不胜感激。
【问题讨论】:
-
让您的库存余额保持在最低
stock keeping unit。在您的情况下,它是strip或tablets如果您确实需要通过tablet出售?并且您需要在pack、strip和tablet之间保留一个转换表 -
我同意@Squirrel,所有库存系统都将根据项目维护单位转换表,并且必须在购买单位和销售单位之间进行一次转换。
标签: c# sql-server-2008 pos