コード例 #1
0
        public GeneralResponse AddProductPrice(AddProductPriceRequestOld request)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                ProductPrice productPrice = new ProductPrice();
                productPrice.ID                = Guid.NewGuid();
                productPrice.CreateDate        = PersianDateTime.Now;
                productPrice.CreateEmployee    = _employeeRepository.FindBy(request.CreateEmployeeID);
                productPrice.Imposition        = request.Imposition;
                productPrice.MaxDiscount       = request.MaxDiscount;
                productPrice.Product           = this._productRepository.FindBy(request.ProductID);
                productPrice.ProductPriceTitle = request.ProductPriceTitle;
                productPrice.UnitPrice         = request.UnitPrice;
                productPrice.Note              = request.Note;
                productPrice.Discontinued      = request.Discontinued;

                productPrice.SortOrder  = GetSortOrder();
                productPrice.RowVersion = 1;

                // Validation
                if (productPrice.GetBrokenRules().Count() > 0)
                {
                    foreach (BusinessRule businessRule in productPrice.GetBrokenRules())
                    {
                        response.ErrorMessages.Add(businessRule.Rule);
                    }

                    return(response);
                }

                _productPriceRepository.Add(productPrice);
                _uow.Commit();

                ////response.success = true;
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
            }

            return(response);
        }
コード例 #2
0
        public GeneralResponse EditProductPrice(EditProductPriceRequestOld request)
        {
            GeneralResponse response     = new GeneralResponse();
            ProductPrice    productPrice = new ProductPrice();

            productPrice = _productPriceRepository.FindBy(request.ID);

            if (productPrice != null)
            {
                try
                {
                    productPrice.ModifiedDate     = PersianDateTime.Now;
                    productPrice.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID);
                    productPrice.Imposition       = request.Imposition;
                    productPrice.MaxDiscount      = request.MaxDiscount;
                    if (request.ProductID != null)
                    {
                        productPrice.Product = this._productRepository.FindBy(request.ProductID);
                    }
                    if (request.ProductPriceTitle != null)
                    {
                        productPrice.ProductPriceTitle = request.ProductPriceTitle;
                    }
                    productPrice.UnitPrice = request.UnitPrice;
                    if (request.Note != null)
                    {
                        productPrice.Note = request.Note;
                    }
                    productPrice.Discontinued = request.Discontinued;

                    if (productPrice.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("کارشناس محترم، یک کاربر همزمان با شما در حال ویرایش این رکورد است. بنابراین اطلاعات شما ذخیره نمی شود.");
                        return(response);
                    }
                    else
                    {
                        productPrice.RowVersion += 1;
                    }

                    if (productPrice.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in productPrice.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _productPriceRepository.Save(productPrice);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }
            else
            {
                response.ErrorMessages.Add("هیچ موردی جهت ویرایش وجود ندارد.");
            }
            return(response);
        }
コード例 #3
0
        public GeneralResponse EditProductPrices(IEnumerable <EditProductPriceRequest> requests, Guid ModifiedEmployeeID, Guid ProductID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                foreach (EditProductPriceRequest request in requests)
                {
                    ProductPrice productPrice = new ProductPrice();

                    #region Validate Product Price Code

                    string _errorMessag = EditValidate(request.ProductPriceCode, request.ProductPriceTitle, request.ID);

                    if (_errorMessag != "NoError")
                    {
                        response.ErrorMessages.Add(_errorMessag);
                        return(response);
                    }

                    #endregion


                    if (request.MaxDiscount > request.UnitPrice)
                    {
                        response.ErrorMessages.Add("تخفیف نمیتواند بیش از قیمت پایه باشد");
                        return(response);
                    }

                    productPrice = _productPriceRepository.FindBy(request.ID);
                    productPrice.ModifiedDate     = PersianDateTime.Now;
                    productPrice.ModifiedEmployee = _employeeRepository.FindBy(ModifiedEmployeeID);
                    productPrice.Imposition       = request.Imposition;
                    productPrice.MaxDiscount      = request.MaxDiscount;
                    productPrice.Comission        = request.Comission;
                    productPrice.Bonus            = request.Bonus;
                    if (request.ProductID != productPrice.Product.ID)
                    {
                        productPrice.Product = this._productRepository.FindBy(ProductID);
                    }
                    if (request.ProductPriceTitle != null)
                    {
                        productPrice.ProductPriceTitle = request.ProductPriceTitle;
                    }
                    productPrice.UnitPrice        = request.UnitPrice;
                    productPrice.ProductPriceCode = request.ProductPriceCode;
                    if (request.Note != null)
                    {
                        productPrice.Note = request.Note;
                    }
                    productPrice.Discontinued = request.Discontinued;

                    if (productPrice.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        productPrice.RowVersion += 1;
                    }

                    if (productPrice.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in productPrice.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _productPriceRepository.Save(productPrice);
                }
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }
コード例 #4
0
        public GeneralResponse AddProductPrices(IEnumerable <AddProductPriceRequest> requests, Guid CreateEmployeeID, Guid ProductID)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                foreach (AddProductPriceRequest request in requests)
                {
                    ProductPrice productPrice = new ProductPrice();

                    if (request.MaxDiscount > request.UnitPrice)
                    {
                        response.ErrorMessages.Add("تخفیف نمیتواند بیش از قیمت پایه باشد");
                        return(response);
                    }


                    #region Validate Product Price Code

                    string _errorMessag = AddValidate(request.ProductPriceCode, request.ProductPriceTitle);

                    if (_errorMessag != "NoError")
                    {
                        response.ErrorMessages.Add(_errorMessag);
                        return(response);
                    }

                    #endregion

                    productPrice.ID                = Guid.NewGuid();
                    productPrice.CreateDate        = PersianDateTime.Now;
                    productPrice.CreateEmployee    = _employeeRepository.FindBy(CreateEmployeeID);
                    productPrice.Imposition        = request.Imposition;
                    productPrice.MaxDiscount       = request.MaxDiscount;
                    productPrice.ProductPriceCode  = request.ProductPriceCode;
                    productPrice.Product           = this._productRepository.FindBy(ProductID);
                    productPrice.ProductPriceTitle = request.ProductPriceTitle;
                    productPrice.UnitPrice         = request.UnitPrice;
                    productPrice.Note              = request.Note;
                    productPrice.Discontinued      = request.Discontinued;
                    productPrice.Bonus             = request.Bonus;
                    productPrice.Comission         = request.Comission;
                    productPrice.SortOrder         = GetSortOrder();
                    productPrice.RowVersion        = 1;

                    // Validation
                    if (productPrice.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in productPrice.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _productPriceRepository.Add(productPrice);
                }
                _uow.Commit();
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
                if (ex.InnerException != null)
                {
                    response.ErrorMessages.Add(ex.InnerException.Message);
                }
            }

            return(response);
        }