Exemple #1
0
        public PriceInfo GetPrice(CatalogItemEntity catalogItem, string login)
        {
            ContragentItemEntity contragentItem = GetContagent(login);
            PriceInfo            result         = GetPrice(catalogItem, contragentItem);

            return(result);
        }
Exemple #2
0
        private PriceInfo GetPrice(CatalogItemEntity catalogItem, ContragentItemEntity contragentItem)
        {
            var result = new PriceInfo();

            if (catalogItem != null && contragentItem != null)
            {
                TypeOfPriceItemEntity typeOfPrice = GetTypeOfPrice(catalogItem, contragentItem);
                result = GetPrice(catalogItem, typeOfPrice);
                decimal rate = GetRate(catalogItem, contragentItem);
                result.Price += result.Price + rate / 100;
            }

            return(result);
        }
Exemple #3
0
        private PriceTypeNomenclatureGroupContragentEntity GetPriceTypeNomenclatureGroup(
            CatalogItemEntity catalogItem, ContragentItemEntity contragentItem)
        {
            PriceTypeNomenclatureGroupContragentEntity priceTypeNomenclatureGroupContragent = null;
            NomenclatureGroupEntity nomenclatureGroup = catalogItem.NomenclatureGroup;

            if (nomenclatureGroup != null && contragentItem.PriceTypeNomenclatureGroups != null)
            {
                priceTypeNomenclatureGroupContragent =
                    contragentItem
                    .PriceTypeNomenclatureGroups.FirstOrDefault(
                        x => x.NomenclatureGroupItem.Id == nomenclatureGroup.Id);
            }

            return(priceTypeNomenclatureGroupContragent);
        }
Exemple #4
0
        private PriceTypePriceGroupContragentEntity GetPriceTypePriceGroup(
            CatalogItemEntity catalogItem, ContragentItemEntity contragentItem)
        {
            PriceTypePriceGroupContragentEntity priceTypePriceGroup = null;

            PriceGroupItemEntity priceGroup = catalogItem.PriceGroup;

            if (priceGroup != null && contragentItem.PriceTypePriceGroups != null)
            {
                priceTypePriceGroup =
                    contragentItem
                    .PriceTypePriceGroups.FirstOrDefault(x => x.PriceGroupItem.Id == priceGroup.Id);
            }

            return(priceTypePriceGroup);
        }
Exemple #5
0
        private decimal GetRate(CatalogItemEntity catalogItem, ContragentItemEntity contragentItem)
        {
            decimal rate = 0;

            if (contragentItem.Discounts != null)
            {
                DiscountsContragentEntity discount =
                    contragentItem.Discounts.FirstOrDefault(x => x.CatalogItem.Id == catalogItem.Id);

                if (discount != null)
                {
                    rate = discount.Rate;
                }
            }

            return(rate);
        }
Exemple #6
0
        private TypeOfPriceItemEntity GetTypeOfPrice(CatalogItemEntity catalogItem, ContragentItemEntity contragentItem)
        {
            TypeOfPriceItemEntity typeOfPrice = null;

            PriceTypeNomenclatureGroupContragentEntity priceTypeNomenclatureGroupContragent =
                GetPriceTypeNomenclatureGroup(catalogItem, contragentItem);

            if (priceTypeNomenclatureGroupContragent != null)
            {
                typeOfPrice = priceTypeNomenclatureGroupContragent.TypeOfPriceItem;
            }
            else
            {
                PriceTypePriceGroupContragentEntity priceTypePriceGroup =
                    GetPriceTypePriceGroup(catalogItem, contragentItem);

                if (priceTypePriceGroup != null)
                {
                    typeOfPrice = priceTypePriceGroup.TypeOfPriceItem;
                }
            }

            return(typeOfPrice);
        }