Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 混搭折扣代码建议_Vb.net - Fatal编程技术网

Vb.net 混搭折扣代码建议

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 代码应该处理的情

我需要关于如何实施的建议。我有两件物品:收据和折扣。出纳扫描项目并添加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