private bool HasChanged(DiscountGroup item) { using (var ctx=new CokeDataContext(Con)) { var group = ctx.tblDiscountGroup.FirstOrDefault(p => p.id == item.Id); if (group == null) return true; if (!string.IsNullOrEmpty(item.Name) && !string.IsNullOrEmpty(group.Name) && item.Name.ToLower() != group.Name.ToLower()) return true; if (!string.IsNullOrEmpty(item.Code) && !string.IsNullOrEmpty(group.Code) && item.Code.ToLower() != group.Code.ToLower()) return true; return (group.Code != item.Code || group.Name != item.Name); } }
public ProductGroupDiscount CreateProductGroupDiscount(DiscountGroup DiscountGroup,ProductRef ProductRef, decimal discountRate, DateTime effectiveDate, DateTime endDate, bool isQuantity,decimal quantity) { if (ProductRef.ProductId == Guid.Empty) throw new ArgumentException("Invalid product"); if (DiscountGroup.Id == Guid.Empty) throw new ArgumentException("Invalid outlet"); ProductGroupDiscount pgd = new ProductGroupDiscount(Guid.NewGuid()) { GroupDiscount = new DiscountGroup (DiscountGroup.Id) }; pgd.Product = new ProductRef {ProductId = ProductRef.ProductId}; pgd.DiscountRate = discountRate; pgd.EffectiveDate = effectiveDate; pgd.EndDate = endDate; pgd.IsByQuantity = isQuantity; pgd.Quantity = quantity; pgd._Status = EntityStatus.New; return pgd; }
private IEnumerable<ProductGroupDiscount> ConstructDomainEntities(IEnumerable<ProductDiscountGroupImport> entities) { var productGroupDiscounts = new List<ProductGroupDiscount>(); foreach (var importentity in entities) { decimal rate = Convert.ToDecimal((importentity.DiscountValue / 100)); var product = ObjectFactory.GetInstance<IProductDiscountGroupMapper>().GetProduct(importentity.ProductCode); if (product != null && !string.IsNullOrEmpty(importentity.DiscontGroupCode)) { var tblD = ObjectFactory.GetInstance<CokeDataContext>().tblDiscountGroup.FirstOrDefault(p => p.Code.ToLower() == importentity.DiscontGroupCode.ToLower()); DiscountGroup discountGroup = null; if (tblD == null) { try { ObjectFactory.GetInstance<IDiscountGroupRepository>().Save(new DiscountGroup(Guid.NewGuid()) { Name = importentity. DiscontGroupCode, Code = importentity. DiscontGroupCode }); discountGroup = ObjectFactory.GetInstance<IGroupDiscountMapper>().FindByCode( importentity.DiscontGroupCode); } catch { } } else { discountGroup = new DiscountGroup(tblD.id); } var currentPGroupDiscount =ObjectFactory.GetInstance<CokeDataContext>().tblProductDiscountGroup.FirstOrDefault( p => p.DiscountGroup == discountGroup.Id && p.tblProductDiscountGroupItem.Any(n => n.ProductRef == product.id)); if (currentPGroupDiscount != null) { if(CanUpdate(currentPGroupDiscount,product.id,rate)) { var item = currentPGroupDiscount.tblProductDiscountGroupItem.FirstOrDefault( p => p.ProductRef == product.id); if (item != null) { item.DiscountRate = rate; item.EffectiveDate = DateTime.Now; item.IM_DateLastUpdated = DateTime.Now; ObjectFactory.GetInstance<IProductDiscountGroupMapper>().Update(item); updatedItems++; } } } else { var currentProductGroupDiscount = ObjectFactory.GetInstance<IProductDiscountGroupFactory>().CreateProductGroupDiscount( discountGroup, new ProductRef() {ProductId = product.id}, rate, DateTime.Now, DateTime.Now.AddMonths(12), false, 0); productGroupDiscounts.Add(currentProductGroupDiscount); } } else { if (!_failedProductCodes.Any(p => p.Equals(importentity.ProductCode, StringComparison.CurrentCultureIgnoreCase))) { _failedProductCodes.Add(importentity.ProductCode); } } } return productGroupDiscounts; }
public DiscountGroupDTO Map(DiscountGroup discountGroup) { if (discountGroup == null) return null; return Mapper.Map<DiscountGroup, DiscountGroupDTO>(discountGroup); }
private ValidationResultInfo Validate(DiscountGroup discountGroup) { return _discountGroupRepository.Validate(discountGroup); }
private DiscountGroup Map(DiscountGroupImport discountGroupImport) { var exists = Queryable.FirstOrDefault(_context.tblDiscountGroup, p => p.Code == discountGroupImport.Code); Guid id = exists != null ? exists.id : Guid.NewGuid(); var discountGroup = new DiscountGroup(id); discountGroup.Name = discountGroupImport.Name; discountGroup.Code = discountGroupImport.Code; return discountGroup; }
public static DiscountGroup Map(this tblDiscountGroup discountGroup) { DiscountGroup dg = new DiscountGroup(discountGroup.id) { Name = discountGroup.Name, Code = discountGroup.Code }; dg._SetDateCreated(discountGroup.IM_DateCreated); dg._SetDateLastUpdated(discountGroup.IM_DateLastUpdated); dg._SetStatus((EntityStatus)discountGroup.IM_Status); return dg; }
void DoLoad() { using (StructureMap.IContainer c = NestedContainer) { Config config = GetConfigParams(); DistributorRoutes.Clear(); var route = new Route(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.route.default") /* "--Please Select A Route --"*/ }; SelectedRoute = route; DistributorRoutes.Add(route); //should only get for current distributor Region region =null; if(config.AppId == Core.VirtualCityApp.Agrimanagr) region = ((Hub) Using<ICostCentreRepository>(c).GetById(Using<IConfigService>(c).Load().CostCentreId)). Region; else if(config.AppId == Core.VirtualCityApp.Ditributr) region = ((Distributor) Using<ICostCentreRepository>(c).GetById(Using<IConfigService>(c).Load().CostCentreId)). Region; Using<IRouteRepository>(c).GetAll().Where(q => q.Region.Id == region.Id) .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorRoutes.Add(n)); DistributorOutletCategories.Clear(); var outletCategory = new OutletCategory(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.category.default") /*"--Please Select an Outlet--"*/ }; SelectedOutletCategory = outletCategory; DistributorOutletCategories.Add(outletCategory); Using<IOutletCategoryRepository>(c).GetAll() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorOutletCategories.Add(n)); DistributorOutletType.Clear(); var outletType = new OutletType(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.type.default") /*"--Please Select an Outlet Type--"*/ }; SelectedOutletType = outletType; DistributorOutletType.Add(outletType); Using<IOutletTypeRepository>(c).GetAll().OrderBy(n => n.Name).ToList().ForEach(n => DistributorOutletType.Add(n)); DistributorProductPricingTier.Clear(); var ppt = new ProductPricingTier(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.tier.default") /* "--Please Select Product Pricing Tier--"*/ }; SelectedProductPricingTier = ppt; DistributorProductPricingTier.Add(ppt); Using<IProductPricingTierRepository>(c).GetAll() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorProductPricingTier.Add(n)); VATClasses.Clear(); var vatClass = new VATClass(Guid.Empty) { VatClass = GetLocalText("sl.outlet.edit.vatclass.default") /*"--NONE--"*/ }; SelectedVATRate = vatClass; VATClasses.Add(vatClass); Using<IVATClassRepository>(c).GetAll().OrderBy(n => n.VatClass).ToList().ForEach(n => VATClasses.Add(n)); DiscountGroups.Clear(); var discountGroup = new DiscountGroup(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.discgp") /*"--NONE--"*/ }; SelectedDiscountGroup = discountGroup; DiscountGroups.Add(discountGroup); Using<IDiscountGroupRepository>(c).GetAll().OrderBy(n => n.Name).ToList().ForEach(n => DiscountGroups.Add(n)); ShippingAddresses.Clear(); DeletedAddresses.Clear(); } }
public void LoadById(Guid id) { if (id == Guid.Empty) { InitializeBlank(); } else { using (StructureMap.IContainer c = NestedContainer) { outlet = Using<ICostCentreRepository>(c).GetById(id) as Outlet; if (outlet == null) { InitializeBlank(); } else { PageTitle = GetLocalText("sl.outlet.edit.editing.title"); // "Edit Outlet"; Id = outlet.Id; Name = outlet.Name; OutletCode = outlet.CostCentreCode; Latitude = outlet.Latitude; Longitude = outlet.Longitude; IsApproved = outlet._Status ==EntityStatus.Active; CanApprove = !IsApproved; //load all items to combos DistributorRoutes.Clear(); var route = new Route(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.route.default") /* "--Please Select A Route --"*/ }; DistributorRoutes.Add(route); Using<IRouteRepository>(c).GetAll() .ToList() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorRoutes.Add(n)); try { SelectedRoute = DistributorRoutes.FirstOrDefault(n => n.Id == outlet.Route.Id); } catch { //route deactivated! SelectedRoute = route; } DistributorOutletCategories.Clear(); Using<IOutletCategoryRepository>(c).GetAll() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorOutletCategories.Add(n)); SelectedOutletCategory = DistributorOutletCategories.FirstOrDefault(n => n.Id == outlet.OutletCategory.Id); DistributorOutletType.Clear(); Using<IOutletTypeRepository>(c).GetAll() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorOutletType.Add(n)); SelectedOutletType = DistributorOutletType.FirstOrDefault(n => n.Id == outlet.OutletType.Id); DistributorProductPricingTier.Clear(); Using<IProductPricingTierRepository>(c).GetAll() .OrderBy(n => n.Name) .ToList() .ForEach(n => DistributorProductPricingTier.Add(n)); var ppt = new ProductPricingTier(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.tier.default") /* "--Please Select Product Pricing Tier--"*/ }; DistributorProductPricingTier.Add(ppt); try { SelectedProductPricingTier = DistributorProductPricingTier.FirstOrDefault( n => n.Id == outlet.OutletProductPricingTier.Id); } catch { SelectedProductPricingTier = ppt; } VATClasses.Clear(); var vatClass = new VATClass(Guid.Empty) { VatClass = GetLocalText("sl.outlet.edit.vatclass.default") /*"--NONE--"*/ }; VATClasses.Add(vatClass); Using<IVATClassRepository>(c).GetAll().OrderBy(n => n.VatClass).ToList().ForEach(n => VATClasses.Add(n)); try { SelectedVATRate = VATClasses.First(n => n.Id == outlet.VatClass.Id); } catch { SelectedVATRate = vatClass; } DiscountGroups.Clear(); var discountGroup = new DiscountGroup(Guid.Empty) { Name = GetLocalText("sl.outlet.edit.discgp") /*"--NONE--"*/ }; SelectedDiscountGroup = discountGroup; DiscountGroups.Add(discountGroup); Using<IDiscountGroupRepository>(c).GetAll().OrderBy(n => n.Name).ToList().ForEach(n => DiscountGroups.Add(n)); try { SelectedDiscountGroup = DiscountGroups.First(n => n.Id == outlet.DiscountGroup.Id); } catch { SelectedDiscountGroup = discountGroup; } LoadShipToAddress(); } } } }
protected Guid AddDiscountGroup(string Name, string code) { DiscountGroup svd = new DiscountGroup(Guid.NewGuid()) { Name = Name, Code = code, }; svd._SetStatus(EntityStatus.Active); return _discountGroupRepository.Save(svd); }
protected Guid AddProductGroupDiscount(DiscountGroup group, ProductRef productRef, decimal rate, DateTime effDate, DateTime endDate) { ProductGroupDiscount svd = _productDiscountGroupFactory.CreateProductGroupDiscount(group, productRef, rate, effDate, endDate,false,0); svd._SetStatus(EntityStatus.Active); return _productDiscountGroupRepository.Save(svd); }
private void AssertDiscountGroup(DiscountGroup discountGroupX, DiscountGroup discountGroupY) { Assert.IsNotNull(discountGroupX); Assert.AreEqual(discountGroupX.Code, discountGroupY.Code); Assert.AreEqual(discountGroupX.Name, discountGroupY.Name); Assert.AreEqual(discountGroupX._Status, discountGroupY._Status); }
private SaleProduct[] ConstructProducts(IEnumerable<ProductImport> entities) { var temp = new List<SaleProduct>(); var defaultSupplier = ObjectFactory.GetInstance<ISupplierRepository>().GetAll(true).FirstOrDefault(p => p.Name != null && p.Name.Equals("default")); if (defaultSupplier == null) { defaultSupplier = new Supplier(Guid.NewGuid()) { Name = "default", Code = "default", Description = "default" }; try { ObjectFactory.GetInstance<ISupplierRepository>().Save(defaultSupplier); } catch { } } var validEntities = entities.Where(p => p.Description != null && !p.Description.ToLower().Contains("discontinued")); foreach (var entity in validEntities) { var product = ObjectFactory.GetInstance<IProductRepository>().GetByCode(entity.ProductCode, true) as SaleProduct; bool isNew = false; if(product==null) { product = new SaleProduct(Guid.NewGuid()); isNew = true; } #region brand var allBrands = ObjectFactory.GetInstance<IProductBrandRepository>().GetAll(true).ToList(); var brand = allBrands .FirstOrDefault( p => p.Code != null && p.Code.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase) || p.Name != null && p.Name.Equals(entity.BrandCode, StringComparison.CurrentCultureIgnoreCase) ); if (string.IsNullOrEmpty(entity.BrandCode)) brand = allBrands.FirstOrDefault(p => p.Code != null && p.Code == "default"); if (brand == null) { brand = allBrands.FirstOrDefault(p => p.Code != null && p.Code == "default") ?? new ProductBrand(Guid.NewGuid()) { Code = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode, Name = string.IsNullOrEmpty(entity.BrandCode) ? "default" : entity.BrandCode, Supplier = defaultSupplier }; try { ObjectFactory.GetInstance<IProductBrandRepository>().Save(brand); } catch { } } product.Brand = brand; #endregion #region Product Type var productType = ObjectFactory.GetInstance<IProductTypeRepository>().GetAll(true).FirstOrDefault( p => p.Code != null && p.Code.Equals(entity.ProductTypeCode, StringComparison.CurrentCultureIgnoreCase) || p.Code!= null &&p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase) || p.Name != null && p.Name.Equals("default", StringComparison.CurrentCultureIgnoreCase)); if (productType == null) { productType = new ProductType(Guid.NewGuid()) { Name = string.IsNullOrEmpty(entity.ProductTypeCode) ? "default" : entity.ProductTypeCode, Code = string.IsNullOrEmpty(entity.ProductTypeCode) ? "default" : entity.ProductTypeCode, Description = string.IsNullOrEmpty(entity.ProductTypeCode) ? "default" : entity.ProductTypeCode }; try { ObjectFactory.GetInstance<IProductTypeRepository>().Save(productType); }catch { } } product.ProductType = productType; #endregion #region Packaging type var allPackagingTypes = ObjectFactory.GetInstance<IProductPackagingTypeRepository>().GetAll(true).ToList(); ProductPackagingType packagingType = null; if (string.IsNullOrEmpty(entity.PackagingTypeCode)) packagingType = allPackagingTypes.FirstOrDefault(p => p.Name != null && p.Name == "default"); else { packagingType = allPackagingTypes.FirstOrDefault( p => p.Code != null && p.Code.Equals(entity.PackagingTypeCode, StringComparison.CurrentCultureIgnoreCase)); } if(packagingType==null) { packagingType =allPackagingTypes.FirstOrDefault(p => p.Name != null && p.Name == "default")?? new ProductPackagingType(Guid.NewGuid()) { Name = string.IsNullOrEmpty(entity.PackagingTypeCode) ? "default" : entity.PackagingTypeCode, Code = string.IsNullOrEmpty(entity.PackagingTypeCode) ? "default" : entity.PackagingTypeCode, Description = string.IsNullOrEmpty(entity.PackagingTypeCode) ? "default" : entity.PackagingTypeCode }; try { ObjectFactory.GetInstance<IProductPackagingTypeRepository>().Save(packagingType); } catch { } } product.PackagingType = packagingType; #endregion #region Packaging var packagings = ObjectFactory.GetInstance<IProductPackagingRepository>().GetAll(true).ToList(); ProductPackaging packaging; if(string.IsNullOrEmpty(entity.PackagingCode)) packaging = packagings.FirstOrDefault( p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase)); else { packaging = packagings.FirstOrDefault( p => p.Code != null && p.Code.Equals(entity.PackagingCode, StringComparison.CurrentCultureIgnoreCase)); } if(packaging==null) { packaging = packagings.FirstOrDefault( p => p.Code != null && p.Code.Equals("default", StringComparison.CurrentCultureIgnoreCase)) ?? new ProductPackaging(Guid.NewGuid()) { Name = string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode, Code = string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode, Description = string.IsNullOrEmpty(entity.PackagingCode) ? "default" : entity.PackagingCode }; try { ObjectFactory.GetInstance<IProductPackagingRepository>().Save(packaging); }catch { } } product.Packaging = packaging; #endregion #region VAT VATClass productVat; var productVats = ObjectFactory.GetInstance<IVATClassRepository>().GetAll(true).ToList(); if(string.IsNullOrEmpty(entity.VATClass)) productVat= productVats.FirstOrDefault(p => p.VatClass != null && p.VatClass.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase)); else { productVat = productVats.FirstOrDefault( p => p.VatClass != null && p.VatClass.Equals(entity.VATClass, StringComparison.CurrentCultureIgnoreCase) || p.Name != null && p.Name.Equals(entity.VATClass, StringComparison.CurrentCultureIgnoreCase)); } if(productVat==null) { var viatItem = new VATClass.VATClassItem(Guid.NewGuid()) { EffectiveDate = DateTime.Now, Rate = 0, }; productVat = productVats.FirstOrDefault( p => p.VatClass != null && p.VatClass.Equals("defaultVAT", StringComparison.CurrentCultureIgnoreCase)) ?? new VATClass(Guid.NewGuid()) { Name = string.IsNullOrEmpty(entity.VATClass) ? "defaultVAT" : entity.VATClass, VatClass = string.IsNullOrEmpty(entity.VATClass) ? "defaultVAT" : entity.VATClass, }; productVat.VATClassItems.Add(viatItem); try { ObjectFactory.GetInstance<IVATClassRepository>().Save(productVat); }catch { } } product.VATClass = productVat; #endregion #region Flavour var allFlavors = ObjectFactory.GetInstance<IProductFlavourRepository>().GetAll(true).ToList(); ProductFlavour flavor; if (string.IsNullOrEmpty(entity.ProductFlavourCode)) flavor = allFlavors.FirstOrDefault( p => p.Code != null && p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase)); else { flavor=allFlavors.FirstOrDefault(p => p.Code != null && p.Code == entity.ProductFlavourCode); } if(flavor==null) { flavor = allFlavors.FirstOrDefault( p => p.Code != null && p.Code.Equals("defaultflavor", StringComparison.CurrentCultureIgnoreCase)) ?? new ProductFlavour(Guid.NewGuid()) { Name = string.IsNullOrEmpty(entity.ProductFlavourCode) ? "defaultflavor" : entity.ProductFlavourCode, Code = string.IsNullOrEmpty(entity.ProductFlavourCode) ? "defaultflavor" : entity.ProductFlavourCode, Description = string.IsNullOrEmpty(entity.ProductFlavourCode) ? "defaultflavor" : entity.ProductFlavourCode, ProductBrand = product.Brand }; try { ObjectFactory.GetInstance<IProductFlavourRepository>().Save(flavor); } catch (Exception ex) { FileUtility.LogError(ex.Message); } } product.Flavour = flavor; #endregion #region Discount Group if(!string.IsNullOrEmpty(entity.DiscountGroup)) { DiscountGroup discountGroup = ObjectFactory.GetInstance<IGroupDiscountMapper>().FindByCode(entity.DiscountGroup); if(discountGroup==null) { discountGroup = new DiscountGroup(Guid.NewGuid()) { Code = entity.DiscountGroup.Trim(), Name = entity.DiscountGroup.Trim(), _Status = EntityStatus.Active }; try { ObjectFactory.GetInstance<IGroupDiscountMapper>().Insert(discountGroup); }catch(Exception ex) { FileUtility.LogError(ex.Message); } } } #endregion product.ProductCode = entity.ProductCode; product.ExFactoryPrice = entity.ExFactoryPrice; product.Description = entity.Description; UpdateDefaultTierPricing(product.Id, product.ExFactoryPrice, product.ExFactoryPrice); if (isNew || HasProductChanged(product)) temp.Add(product); } return temp.ToArray(); }