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