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