private ProductPricingViewModel Map(ProductPricing productPricing) { ProductPricingViewModel productPricingVm = new ProductPricingViewModel(); { productPricingVm.CurrentEffectiveDate = productPricing.CurrentEffectiveDate; productPricingVm.CurrentExFactory = productPricing.CurrentExFactory; productPricingVm. CurrentSellingPrice = productPricing.CurrentSellingPrice; productPricingVm. Id = productPricing.Id; if (productPricing.ProductRef.ProductId != null) { productPricingVm.ProductId = productPricing.ProductRef.ProductId; } productPricingVm.ProductName = _productRepository.GetById(productPricing.ProductRef.ProductId).Description; if (_productRepository.GetById(productPricing.ProductRef.ProductId).Description != null) { productPricingVm.ProductName = _productRepository.GetById(productPricing.ProductRef.ProductId).Description; } productPricingVm. TierId = productPricing.Tier.Id; productPricingVm. TierName = productPricing.Tier.Name; productPricingVm.Active = productPricing._Status == EntityStatus.Active ? true : false; }; return productPricingVm; }
public ProductPricing CreateProductPricing(Guid productId, Guid tierId, decimal exFactoryPrice, decimal sellingPrice, DateTime effectiveDate) { if (effectiveDate > DateTime.Now) throw new ArgumentException("Invalid effective date, must be in the past"); if (productId == Guid.Empty) throw new ArgumentException("Invalid product"); if (tierId == Guid.Empty) throw new ArgumentException("Invalid tier"); ProductPricing p = new ProductPricing(Guid.NewGuid()) { ProductRef = new ProductRef {ProductId = productId }, Tier =new ProductPricingTier(tierId), //tier to do }; p.ProductPricingItems.Add(new ProductPricing.ProductPricingItem(Guid.NewGuid()) { EffectiveDate = effectiveDate, ExFactoryRate = exFactoryPrice, SellingPrice = sellingPrice }); return p; }
private bool HasProductPricingChanged(ProductPricing pricing) { using (var context = ObjectFactory.Container.GetNestedContainer()) { var item = context.GetInstance<IProductPricingRepository>().GetById(pricing.Id); if (item == null) return true; var currentPrice = Math.Round((decimal) item.CurrentSellingPrice, 2); var currentfactory = Math.Round((decimal) item.CurrentExFactory, 2); var pPrice = Math.Round((decimal) pricing.CurrentSellingPrice, 2); var pExF = Math.Round((decimal) pricing.CurrentExFactory, 2); if ((currentPrice != pPrice) || (currentfactory != pExF)) return true; return false; } }
private void AssertProductPricingUpdate(ProductPricing updatedProductPricing, ProductPricing productPricingToUpdate) { Assert.IsNotNull(updatedProductPricing); Assert.AreEqual(updatedProductPricing.ProductRef.ProductId.ToString(), productPricingToUpdate.ProductRef.ProductId.ToString()); Assert.AreEqual(updatedProductPricing.Tier.Id.ToString(), productPricingToUpdate.Tier.Id.ToString()); Assert.AreEqual(updatedProductPricing._Status, EntityStatus.Active); }
private void AssertProductPricing(ProductPricing productPricingX, ProductPricing productPricingY) { Assert.IsNotNull(productPricingX); Assert.AreEqual(productPricingX.ProductRef.ProductId.ToString(), productPricingY.ProductRef.ProductId.ToString()); Assert.AreEqual(productPricingX.Tier.Id.ToString(), productPricingY.Tier.Id.ToString()); }
protected ProductPricing Map(PricingImport pricingImport, List<string> mappingvalidationList ) { tblPricing exists = null; var product = Queryable.FirstOrDefault(_context.tblProduct, p => p.ProductCode == pricingImport.ProductCode); if (product == null) { mappingvalidationList.Add(string.Format((string) "Invalid Product Code {0}", (object) pricingImport.ProductCode)); } var pricingTier = _productPricingTierRepository.GetByCode(pricingImport.ProductPricingTierCode); //_context.tblPricingTier.FirstOrDefault(p => p.Code == pricingImport.ProductPricingTierCode); if (pricingTier == null) { mappingvalidationList.Add(string.Format((string) "Invalid PricingTier Code {0}", (object) pricingImport.ProductPricingTierCode)); } if(product!=null && pricingTier!=null) { exists = _context.tblPricing.FirstOrDefault(p => p.ProductRef == product.id && p.Tier == pricingTier.Id); } Guid id = exists != null ? exists.id : Guid.NewGuid(); var productPricing = new ProductPricing(id); productPricing.ProductRef =product!=null? new ProductRef { ProductId = product.id }:null; productPricing.Tier = pricingTier; var productPricingItems = new List<ProductPricing.ProductPricingItem>(); var productPricingItem = new ProductPricing.ProductPricingItem(new Guid()) { EffectiveDate = pricingImport.EffectiveDate, ExFactoryRate = pricingImport.ExFactoryRate, SellingPrice = pricingImport.SellingPrice }; productPricingItems.Add(productPricingItem); productPricing.ProductPricingItems = productPricingItems; return productPricing; }
protected ValidationResultInfo Validate(ProductPricing country) { return _productPricingRepository.Validate(country); }
private ProductPricing[] ConstructPricings(IEnumerable<ProductImport> entities) { var newpricing = new List<ProductPricing>(); var exisitingPricing = ObjectFactory.GetInstance<IProductPricingRepository>().GetAll(true).ToList(); var pricingTiers = ObjectFactory.GetInstance<IProductPricingTierRepository>().GetAll(true).ToList(); foreach (var entity in entities) { if (!string.IsNullOrEmpty(entity.ProductCode)) { var product =ObjectFactory.GetInstance<CokeDataContext>().tblProduct.FirstOrDefault( p => p.ProductCode.ToLower() == entity.ProductCode.ToLower()); if (product != null) { var pricingExist = exisitingPricing.FirstOrDefault( p => p.ProductRef.ProductId == product.id && p.Tier.Code == "KES"); bool isNew = false; if (pricingExist == null) { var tire = pricingTiers .FirstOrDefault( p => p.Code.Equals("KES", StringComparison. CurrentCultureIgnoreCase)) ?? pricingTiers.FirstOrDefault( p => p.Code != null && p.Name == "DefaultPricingTire"); if (tire == null) { tire = new ProductPricingTier(Guid.NewGuid()) { Name = "DefaultPricingTire", Code = "DefaultPricingTire", Description = "DefaultPricingTire", }; try { ObjectFactory.GetInstance<IProductPricingTierRepository>().Save(tire); } catch { } } pricingExist = new ProductPricing(Guid.NewGuid()) { ProductRef = new ProductRef() {ProductId = product.id}, Tier = tire }; isNew = true; } if(isNew) { pricingExist.ProductPricingItems .Add(new ProductPricing.ProductPricingItem(Guid.NewGuid()) { EffectiveDate = DateTime.Now, ExFactoryRate = entity.ExFactoryPrice, SellingPrice = entity.SellingPrice }); pricingExist._Status = EntityStatus.Active; newpricing.Add(pricingExist); } else if (HasProductPricingChanged(pricingExist)) { pricingExist.ProductPricingItems .Add(new ProductPricing.ProductPricingItem(Guid.NewGuid()) { EffectiveDate = DateTime.Now, ExFactoryRate = entity.ExFactoryPrice, SellingPrice = entity.SellingPrice }); pricingExist._Status = EntityStatus.Active; newpricing.Add(pricingExist); } } else { if ( !_failedImpoprts.Any( p => p.Equals(entity.ProductCode, StringComparison.CurrentCultureIgnoreCase))) { _failedImpoprts.Add(entity.ProductCode); } } } else { _failedImpoprts.Add(entity.Description); } } return newpricing.ToArray(); }
public ProductPricingItemDTO Map(ProductPricing.ProductPricingItem productPricingItem,Guid productpricingId) { if (productPricingItem == null) return null; return new ProductPricingItemDTO() { EffectiveDate = productPricingItem.EffectiveDate, DateCreated = productPricingItem._DateCreated, DateLastUpdated = productPricingItem._DateLastUpdated, ExFactoryRate = productPricingItem.ExFactoryRate, StatusId = (int)productPricingItem._Status, MasterId = productPricingItem.Id, SellingPrice = productPricingItem.SellingPrice, ProductPricingMasterId=productpricingId }; }
/*>*/ public ProductPricingDTO Map(ProductPricing productPricing) { if (productPricing == null) return null; return new ProductPricingDTO() { DateCreated = productPricing._DateCreated, DateLastUpdated = productPricing._DateLastUpdated, StatusId =(int) productPricing._Status, MasterId = productPricing.Id, ProductMasterId = productPricing.ProductRef.ProductId, ProductPricingTierMasterId=productPricing.Tier.Id, ProductPricingItems = productPricing.ProductPricingItems.Select(n => Map(n,productPricing.Id)).ToList() }; }
public static ProductPricing Map(this tblPricing pricing) { ProductPricing pr = new ProductPricing(pricing.id) { ProductRef = new ProductRef{ProductId = pricing.ProductRef}, Tier = pricing.tblPricingTier.Map() }; //chris ... set IsActive!! pr.ProductPricingItems = pricing.tblPricingItem.Select(s => { var pi = new ProductPricing.ProductPricingItem( s.id) { ExFactoryRate = s.Exfactory, SellingPrice = s.SellingPrice, EffectiveDate = s.EffecitiveDate, }; pi._SetStatus((EntityStatus)s.IM_Status); pi._SetDateCreated(s.IM_DateCreated); pi._SetDateLastUpdated(s.IM_DateLastUpdated); return pi; }).ToList(); pr._SetDateCreated(pricing.IM_DateCreated); pr._SetStatus((EntityStatus)pricing.IM_Status); pr._SetDateLastUpdated(pricing.IM_DateLastUpdated); return pr; }
private async Task<IEnumerable<ProductPricing>> ConstructPricingDomainEntities(IEnumerable<AfcoProductPricingImport> entities) { return await Task.Run(() => { var newpricing = new List<ProductPricing>(); var exisitingPricing = _productPricingRepository.GetAll(true).ToList(); var products = _productRepository.GetAll(true).ToList(); var tiers = _productPricingTierRepository.GetAll(true).ToList(); foreach (var entity in entities) { var product = products .FirstOrDefault(p => p.ProductCode.ToLower() == entity.ProductCode.ToLower()); if (product != null) { var pricingExist = exisitingPricing.FirstOrDefault( p => p.ProductRef.ProductId == product.Id && (p.Tier.Code != null && p.Tier.Code.ToLower()== "afco")); if (pricingExist == null) { var tire = tiers .FirstOrDefault( p => p.Code.Equals("Afco", StringComparison.CurrentCultureIgnoreCase)); if (tire == null) { tire = new ProductPricingTier(Guid.NewGuid()) { Name = "Afco", Code = "Afco", Description = "Afco", }; try { _productPricingTierRepository.Save(tire); } catch { } } pricingExist = new ProductPricing(Guid.NewGuid()) { ProductRef = new ProductRef() { ProductId = product.Id }, Tier = tire }; } pricingExist.ProductPricingItems .Add(new ProductPricing.ProductPricingItem(Guid.NewGuid()) { EffectiveDate = DateTime.Now, ExFactoryRate =product.ExFactoryPrice, SellingPrice = entity.SellingPrice }); newpricing.Add(pricingExist); } else { if (!_failedImpoprts.Any(p => p.Equals(entity.ProductCode,StringComparison.CurrentCultureIgnoreCase))) { _failedImpoprts.Add(entity.ProductCode); } } } return newpricing; }); }
private async Task<ImportValidationResultInfo> ValidatePricingAsync(ProductPricing pricing) { return await Task.Run(() => { var res = _productPricingRepository.Validate(pricing); return new ImportValidationResultInfo() { Results = res.Results, Entity = pricing }; }); }