コード例 #1
0
        public void GetMargenNetoPorcentual_PORC_USD_Cliente_NULL_Producto()
        {
            // Arrange
            MarginServices           marginServices           = new MarginServices();
            ProductQuote             productQuote             = new ProductQuote();
            Product                  product                  = new Product();
            Customer                 customer                 = new Customer();
            SaleModalityCreditRating saleModalityCreditRating = new SaleModalityCreditRating();

            saleModalityCreditRating.MinimumMarginPercentage = 5;
            saleModalityCreditRating.MinimumMarginUSD        = 50;

            customer.MinimumMarginPercentage = 10;
            customer.MinimumMarginUSD        = 100;

            // Act
            MininumMarginSale mininumMarginSale = marginServices.GetMargenNetoPorcentual(productQuote, product, customer, saleModalityCreditRating);


            // Assert
            Assert.AreEqual(10, mininumMarginSale.MinimumMarginPercentage);
            Assert.AreEqual(100, mininumMarginSale.MinimumMarginUSD);
            Assert.AreEqual(mininumMarginSale.MininumMarginSourcePercentage, MarginTypes.MarginCustomer);
            Assert.AreEqual(mininumMarginSale.MininumMarginSourceUSD, MarginTypes.MarginCustomer);
        }
コード例 #2
0
 public SaleModalityCreditRatingViewModel(SaleModalityCreditRating saleModalityCreditRating)
 {
     this.SaleModalityCreditRatingID = saleModalityCreditRating.SaleModalityCreditRatingID;
     this.SaleModalityID             = saleModalityCreditRating.SaleModalityID;
     this.SaleModalityDescription    = saleModalityCreditRating.SaleModality.Description;
     this.CreditRatingID             = saleModalityCreditRating.CreditRatingID;
     this.CreditRatingDescription    = saleModalityCreditRating.CreditRating.Description;
     this.MinimumMarginPercentage    = saleModalityCreditRating.MinimumMarginPercentage;
     this.MinimumMarginUSD           = saleModalityCreditRating.MinimumMarginUSD;
 }
コード例 #3
0
ファイル: MarginServices.cs プロジェクト: smauhourat/pq
        private MaxMinimunMarginSale GetMaxMarginPercentage(ProductQuote productQuoteToAdd, Product product, Customer customer, SaleModalityCreditRating saleModalityCreditRating)
        {
            MaxMinimunMarginSale result = null;

            if ((productQuoteToAdd.MargenInput.HasValue) && (productQuoteToAdd.MargenInput >= 0))
            {
                result = new MaxMinimunMarginSale(productQuoteToAdd.MargenInput, MarginTypes.MarginInput);
                return(result);
            }

            //Producto y Cliente son NULL
            if ((product.MinimumMarginPercentage == null) && (customer.MinimumMarginPercentage == null))
            {
                if (saleModalityCreditRating != null)
                {
                    result = new MaxMinimunMarginSale(saleModalityCreditRating.MinimumMarginPercentage, MarginTypes.MarginSaleModality);
                }
                else
                {
                    result = new MaxMinimunMarginSale(0, MarginTypes.MarginUndefined);
                }

                return(result);
            }

            //
            if ((product.MinimumMarginPercentage.HasValue) && (product.MinimumMarginPercentage >= (customer.MinimumMarginPercentage.HasValue ? (decimal)customer.MinimumMarginPercentage : 0)))
            {
                result = new MaxMinimunMarginSale(product.MinimumMarginPercentage, MarginTypes.MarginProduct);
                return(result);
            }

            //
            if ((customer.MinimumMarginPercentage.HasValue) && (customer.MinimumMarginPercentage >= (product.MinimumMarginPercentage.HasValue ? (decimal)product.MinimumMarginPercentage : 0)))
            {
                result = new MaxMinimunMarginSale(customer.MinimumMarginPercentage, MarginTypes.MarginCustomer);
                return(result);
            }

            result = new MaxMinimunMarginSale(saleModalityCreditRating.MinimumMarginPercentage, MarginTypes.MarginSaleModality);

            return(result);
        }
コード例 #4
0
ファイル: MarginServices.cs プロジェクト: smauhourat/pq
        public MininumMarginSale GetMargenNetoPorcentual(ProductQuote productQuoteToAdd, Product product, Customer customer, SaleModalityCreditRating saleModalityCreditRating)
        {
            MaxMinimunMarginSale maxMarginPercentage = GetMaxMarginPercentage(productQuoteToAdd, product, customer, saleModalityCreditRating);
            MaxMinimunMarginSale maxMarginUSD        = GetMaxMarginUSD(productQuoteToAdd, product, customer, saleModalityCreditRating);

            MininumMarginSale result = new MininumMarginSale(maxMarginPercentage.MarginValue, maxMarginUSD.MarginValue, maxMarginPercentage.MarginSource, maxMarginUSD.MarginSource);

            return(result);
        }
コード例 #5
0
ファイル: MarginServices.cs プロジェクト: smauhourat/pq
        private MaxMinimunMarginSale GetMaxMarginUSD(ProductQuote productQuoteToAdd, Product product, Customer customer, SaleModalityCreditRating saleModalityCreditRating)
        {
            MaxMinimunMarginSale result = null;

            //Si viene el margen input anulo el margen USD
            if ((productQuoteToAdd.MargenInput.HasValue) && (productQuoteToAdd.MargenInput >= 0))
            {
                result = new MaxMinimunMarginSale(0, MarginTypes.MarginInput);
                return(result);
            }

            if ((product.MinimumMarginUSD == null) && (customer.MinimumMarginUSD == null))
            {
                if (saleModalityCreditRating != null)
                {
                    result = new MaxMinimunMarginSale(saleModalityCreditRating.MinimumMarginUSD, MarginTypes.MarginSaleModality);
                }
                else
                {
                    result = new MaxMinimunMarginSale(0, MarginTypes.MarginUndefined);
                }

                return(result);
            }

            if ((product.MinimumMarginUSD.HasValue) && (product.MinimumMarginUSD >= (customer.MinimumMarginUSD.HasValue ? (decimal)customer.MinimumMarginUSD : 0)))
            {
                result = new MaxMinimunMarginSale(product.MinimumMarginUSD, MarginTypes.MarginProduct);
                return(result);
            }

            if ((customer.MinimumMarginUSD.HasValue) && (customer.MinimumMarginUSD >= (product.MinimumMarginUSD.HasValue ? (decimal)product.MinimumMarginUSD : 0)))
            {
                result = new MaxMinimunMarginSale(customer.MinimumMarginUSD, MarginTypes.MarginCustomer);
                return(result);
            }

            result = new MaxMinimunMarginSale(saleModalityCreditRating.MinimumMarginUSD, MarginTypes.MarginSaleModality);

            return(result);
        }
コード例 #6
0
        public SaleModalityCreditRating CreateSaleModalityCreditRating(SaleModalityCreditRating saleModalityCreditRating)
        {
            saleModalityCreditRatingRepository.Create(saleModalityCreditRating);

            return(saleModalityCreditRating);
        }