public virtual void DeleteSaleDetail(CreditSaleDetail creditSaleDetail) { #region فاکتور بسته نشده باشد if (creditSaleDetail.Sale.Closed == true) { _bussinessRules.Add(SaleBusinessRules.SaleClosed); return; } #endregion #region فاکتور برگشت از فروش نباشد if (creditSaleDetail.Sale.IsRollbackSale == true) { _bussinessRules.Add(SaleBusinessRules.ThisIsRollbackAndCantDelete); return; } #endregion // حذف آیتم مورد نظر this.CreditSaleDetails.Remove(creditSaleDetail); }
public virtual void AddSaleDetail(CreditSaleDetail creditSaleDetail) { #region اگر تخفیف از حد مجاز بیشتر بود، به اندازه حداکثر شود if (creditSaleDetail.Discount > creditSaleDetail.CreditService.MaxDiscount) { creditSaleDetail.Discount = creditSaleDetail.CreditService.MaxDiscount; } #endregion #region اگر آیتم تکراری وارد شد، فقط تعداد و تخفیف آیتم موجود آپدیت شود if (CreditSaleDetails.Contains(creditSaleDetail)) { CreditSaleDetails.FirstOrDefault(w => w == creditSaleDetail).Units += creditSaleDetail.Units; CreditSaleDetails.FirstOrDefault(w => w == creditSaleDetail).Discount += creditSaleDetail.Discount; } #endregion #region در غیر اینصورت آیتم ذخیره شود else { creditSaleDetail.Sale = this; CreditSaleDetails.Add(creditSaleDetail); } #endregion }