internal static FiscalArticle Substract(FiscalReceipt FR, FiscalArticle A, FiscalArticle B) { var Result = A.Clone(FR); Result.Quantity.Value = A.Quantity.Value - B.Quantity.Value; Result.PriceWithoutDiscount.Value = A.Price; Result.DiscountForPriceCurrent.Value = 0; Result.AmountWithoutDiscount.Value = A.Amount - B.Amount; Result.DiscountForAmount.Value = 0; Result.Bonuses.Value = A.Bonuses.Value - B.Bonuses.Value; return Result; }
/// <summary>ищет среди позиций чека, позицию с GoodsCode и PaymentType совпадающими с переданной и заменяет её в исходной коллекции на клон переданной</summary> public void ReplaceArticle(FiscalArticle Article) { for (int i = 0; i < Articles.Count; i++) if (Articles[i].GoodsCode == Article.GoodsCode && Articles[i].PaymentType.Value == Article.PaymentType.Value) { Articles[i] = Article.Clone(Articles[i].Fiscal); return; } throw new Exception(string.Format("Could not find Article {0} with payment type {1}", Article.GoodsCode, Article.PaymentType.Value)); //return false; }