internal void Add(int pluno, int lineno, Decimal lineQuantity, Decimal lineAmount) { Hugin.POS.Common.IProduct p = Promotion.FindProductByLabel(pluno); if (lineAmount > 0) { soldItems.Rows.Add(lineno, pluno, int.Parse(p.Category), lineQuantity, lineAmount, 0m, 0); } else { DataRow[] rows = soldItems.Select(String.Format("Plu = '{0}' And Quantity > 0", pluno)); if (rows.Length > 0) { decimal quantity = Math.Abs(lineQuantity); foreach (DataRow row in rows) { decimal rowUnitPrice = Math.Round((decimal)row["Amount"] / (decimal)row["Quantity"], 2); decimal apliedQuantity = Math.Min((decimal)row["Quantity"], quantity); row["Quantity"] = (decimal)row["Quantity"] - apliedQuantity; row["Amount"] = (decimal)row["Amount"] - Math.Round(apliedQuantity * rowUnitPrice, 2); quantity -= apliedQuantity; if (quantity <= 0) { break; } } } else { Settings.Log("Ýptal Ürün\nPromosyon Hatasý"); } } }
public decimal TotalAmount() { decimal subtotal = (decimal)SoldItem.Instance().Compute("Sum(Amount) - Sum(DiscountAmount)", ""); if (base.GiftProductQuantity > 0) { Hugin.POS.Common.IProduct p = Promotion.FindProductByLabel(base.GiftProductLabelNo); int giftRatio = (int)(subtotal / base.requiredAmount); subtotal = p.UnitPrice * Math.Min(SoldItem.Instance().LineTotal(base.GiftProductLabelNo), giftRatio); } return(subtotal); }