Example #1
0
        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);
        }
Example #2
0
        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
        }