/// <summary> /// Clear manual discount of particular type from sales line. /// </summary> /// <param name="salesLine">Sales line containing discount line.</param> /// <param name="manualDiscountType">Type of manual discount.</param> internal static void ClearManualDiscountLinesOfType(SalesLine salesLine, ManualDiscountType manualDiscountType) { if (salesLine == null) { throw new ArgumentNullException("salesLine"); } // Consider calculable lines only. Ignore voided or return-by-receipt lines. var allDiscounts = salesLine.DiscountLines.ToList(); salesLine.DiscountLines.Clear(); foreach (DiscountLine discountLine in allDiscounts) { if (!(discountLine.DiscountLineType == DiscountLineType.ManualDiscount && discountLine.ManualDiscountType == manualDiscountType)) { salesLine.DiscountLines.Add(discountLine); } } }
/// <summary> /// Clear manual discount of particular type from transaction. /// </summary> /// <param name="transaction">Transaction containing the discount.</param> /// <param name="manualDiscountType">Type of manual discount.</param> internal static void ClearManualDiscountLinesOfType(SalesTransaction transaction, ManualDiscountType manualDiscountType) { if (transaction == null) { throw new ArgumentNullException("transaction"); } // Consider calculable lines only. Ignore voided or return-by-receipt lines. foreach (var line in transaction.PriceCalculableSalesLines) { ClearManualDiscountLinesOfType(line, manualDiscountType); } }