Vb.net 混搭折扣代码建议
我需要关于如何实施的建议。我有两件物品:收据和折扣。出纳扫描项目并添加receiptline对象。如果添加的ReceiptLine对象具有折扣Id,则必须在折扣对象中查找,并在验证后发出折扣。我在验证方面有问题。这里是情况,出纳扫描项目如下 接收线对象 行1项目ID 1835数量2折扣ID 23 行2项目ID 1515数量2折扣ID 23 第3行项目ID 1835数量2折扣ID 23 折扣对象Id 23 商品ID 1835购买2 ItemId 1515购买1 发行折扣$1.00 代码应该处理的情况 出纳可以按任何顺序扫描项目 项目数量可以是任意数量 仅当满足折扣对象要求时才允许折扣 如果购买两次或任何多次,那么折扣也会多次出现 我有下面的代码,不知道从那里去哪里Vb.net 混搭折扣代码建议,vb.net,Vb.net,我需要关于如何实施的建议。我有两件物品:收据和折扣。出纳扫描项目并添加receiptline对象。如果添加的ReceiptLine对象具有折扣Id,则必须在折扣对象中查找,并在验证后发出折扣。我在验证方面有问题。这里是情况,出纳扫描项目如下 接收线对象 行1项目ID 1835数量2折扣ID 23 行2项目ID 1515数量2折扣ID 23 第3行项目ID 1835数量2折扣ID 23 折扣对象Id 23 商品ID 1835购买2 ItemId 1515购买1 发行折扣$1.00 代码应该处理的情
Public Sub GetDiscount(ByVal newReceiptLine As ReceiptLine)
Dim discountId As Integer = newReceiptLine.DiscountId
Dim discountLine As ReceiptLine = Me.Find(Function(l As ReceiptLine) l.DiscountId = discountId)
If discountLine IsNot Nothing AndAlso discountLine.Discount IsNot Nothing Then
newReceiptLine.Discount = discountLine.Discount
Else
newReceiptLine.Discount = New Discount(discountId)
End If
newReceiptLine.Discount.IssueDiscount(Me)
End Sub
Public Sub IssueDiscount(ByVal receiptLines As ReceiptLines)
Dim discountLines As List(Of ReceiptLine) = receiptLines.FindAll(Function(l As ReceiptLine) l.DiscountId = _id)
For Each line As ReceiptLine In discountLines
Dim styleId As Integer = line.StyleId
Dim item As DiscountItem = _discountItems.Find(Function(i As DiscountItem) i.StyleId = styleId)
??????
Next
End Sub
我建议在一个过程中应用所有折扣。如果客户最终决定不想要第二件物品,会发生什么 如果我这样做,我会有一个ApplyDiscounts方法: 清除所有现有折扣。取消所有项目的折扣。 检查收据上的每一项。 …在折扣表中查找该商品的折扣。 …检查折扣的条件。 …如果客户收据中的条件满足: ...... 将所有参与项目标记为折扣,这样您就不会对它们进行两次计数 ...... 将折扣添加到收据中。 由于您在流程开始时清除折扣,因此每次扫描项目时都可以运行此流程。这样可以保持动态,但很容易管理 我也不会有折扣的项目。这些项目应该是独立的。折扣应该有一个商品id。这样你就可以随意添加和删除折扣方案,而不必触摸你的商品。谢谢 我在检查情况时遇到问题。折扣条件是 商品ID 1835购买2 ItemId 1515购买1 发行折扣$1.00 正如您所说,当我循环接收行时,我将检查折扣对象,然后我将验证是否有2-1835和1-1515,并发行折扣$1.00 我的代码为所有1835提供折扣,即使收据上有1-1515