Exemplo n.º 1
0
 public override async Task<IEnumerable<ImportEntity>> DownloadMasterdata(MasterDataCollective entity, List<string> searchTexts = null)
 {
     string entityname = "";
   switch (entity)
     {
         case MasterDataCollective.SaleProduct:
             entityname = MasterDataCollective.SaleProduct.ToString();
             break;
         case MasterDataCollective.Outlet:
             entityname = MasterDataCollective.Outlet.ToString();
             break;
     }
   var dto = await GetMasterDataAsync(entityname,searchTexts);
     return dto;
 }
        public MasterDataEnvelope BuildSalesmanRoute(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
        {
            var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
            if (_salesmanRouteRepository.GetItemUpdatedSinceDateTime(dateSince))
            {
                var sroutes = new List<SalesmanRoute>();
                if (cct != null)
                    switch (cct.CostCentreType)
                    {
                        case CostCentreType.Distributor:
                            sroutes =  _salesmanRouteRepository.GetItemUpdated(dateSince)
                                .Where(n => n.Route.Region.Id == ((Distributor) cct).Region.Id).ToList();
                            break;
                        case CostCentreType.DistributorSalesman:
                            sroutes =  _salesmanRouteRepository.GetItemUpdated(dateSince)
                                .Where(n => n.DistributorSalesmanRef.Id == cct.Id).ToList();
                            break;
                        case CostCentreType.PurchasingClerk:
                            sroutes = _salesmanRouteRepository.GetItemUpdated(dateSince)
                                .Where(n => n.DistributorSalesmanRef.Id == cct.Id).ToList();
                            break;
                    }

                envelope.masterData = sroutes.Select(n => n as MasterEntity).ToList();
            }
            return envelope;
        }
 public MasterDataEnvelope BuildProductGroupDiscount(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_productDiscountGroupRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         envelope.masterData = _productDiscountGroupRepository.GetItemUpdated(dateSince).Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
        public MasterDataEnvelope BuildTarget(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
        {
            var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
            if (_targetRepository.GetItemUpdatedSinceDateTime(dateSince))
            {
                var targets = new List<Target>();
                if (cct != null)
                    switch (cct.CostCentreType)
                    {
                        case CostCentreType.Distributor:
                        case CostCentreType.Hub:
                            var costCentreIds = _costCentreRepository.GetAll(true)
                                .Where(n => n.ParentCostCentre != null && n.ParentCostCentre.Id == cct.Id)
                                .Select(n => n.Id)
                                .ToList();
                            targets = _targetRepository.GetItemUpdated(dateSince)
                                .Where(n => n.CostCentre.Id == cct.Id || costCentreIds.Contains(n.CostCentre.Id))
                                .ToList();
                            break;
                        case CostCentreType.DistributorSalesman:
                            var dist = _costCentreRepository.GetById(cct.ParentCostCentre.Id) as Distributor;
                            var distCCIds = _costCentreRepository.GetAll(true)
                                .Where(n => n.ParentCostCentre != null && n.ParentCostCentre.Id == dist.Id)
                                .Select(n => n.Id).ToList();
                            targets = _targetRepository.GetItemUpdated(dateSince)
                               .Where(n => distCCIds.Contains(n.CostCentre.Id) || cct.Id == n.CostCentre.Id)
                               .ToList();
                            break;
                    }

                envelope.masterData = targets.Select(n => n as MasterEntity).ToList();
            }
            return envelope;
        }
 public MasterDataEnvelope BuildDistributorSalesman(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_distributorSalesmanRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         List<DistributorSalesman> ds = _distributorSalesmanRepository.GetItemUpdated(dateSince)
             .OfType<DistributorSalesman>().ToList();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                     ds = ds.Where(n => n.ParentCostCentre.Id == cct.Id).ToList();
                     break;
                 case CostCentreType.DistributorSalesman:
                     ds = ds.Where(n => n.ParentCostCentre.Id == cct.ParentCostCentre.Id).ToList();
                     break;
             }
         envelope.masterData = ds.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
 public MasterDataEnvelope BuildCentre(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_centreRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         var centres = new List<Centre>();
         var hubRoutes = new List<Route>();
         List<MasterDataAllocation> hubRouteAllocations = new List<MasterDataAllocation>();
         List<Guid> centreIds_allocated_to_hubRoutes = new List<Guid>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Hub:
                     centres = _centreRepository.GetAll(true).Where(r => r.Hub.Id == cct.Id).ToList();
                     break;
                 case CostCentreType.PurchasingClerk:
                     centres = _centreRepository.GetAll(true).ToList();
                     break;
             }
         envelope.masterData = centres.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
        private MasterBaseDTO MapResolver(MasterDataCollective masterData, MasterEntity me)
        {

            switch (masterData)
            {
                case MasterDataCollective.SaleProduct:
                    return masterDataToDTOMapping.Map(me as SaleProduct);
                case MasterDataCollective.ReturnableProduct:
                    return masterDataToDTOMapping.Map(me as ReturnableProduct);
                case MasterDataCollective.ConsolidatedProduct:
                    return masterDataToDTOMapping.Map(me as ConsolidatedProduct);
                case MasterDataCollective.PricingTier:
                    return masterDataToDTOMapping.Map(me as ProductPricingTier);
                case MasterDataCollective.Producer:
                    Producer p = me as Producer;
                    if (p == null) return null;
                    return masterDataToDTOMapping.Map(p);
                case MasterDataCollective.Country:
                    return masterDataToDTOMapping.Map(me as Country);
                case MasterDataCollective.OutletCategory:
                    return masterDataToDTOMapping.Map(me as OutletCategory);
                case MasterDataCollective.OutletType:
                    return masterDataToDTOMapping.Map(me as OutletType);
                case MasterDataCollective.Outlet:
                    return masterDataToDTOMapping.Map(me as Outlet);
                case MasterDataCollective.Pricing:
                    return masterDataToDTOMapping.Map(me as ProductPricing);
                /*case MasterDataCollective.PricingItem:
                    return masterDataToDTOMapping.Map(me as ProductPricing.ProductPricingItem);
                    break;*/
                case MasterDataCollective.ProductBrand:
                    return masterDataToDTOMapping.Map(me as ProductBrand);
                case MasterDataCollective.ProductFlavour:
                    return masterDataToDTOMapping.Map(me as ProductFlavour);
                case MasterDataCollective.ProductPackagingType:
                    return masterDataToDTOMapping.Map(me as ProductPackagingType);
                case MasterDataCollective.ProductType:
                    return masterDataToDTOMapping.Map(me as ProductType);
                case MasterDataCollective.Region:
                    return masterDataToDTOMapping.Map(me as Region);
                case MasterDataCollective.Territory:
                    return masterDataToDTOMapping.Map(me as Territory);
                case MasterDataCollective.Area://no DTO for route yet
                    return masterDataToDTOMapping.Map(me as Area);
                case MasterDataCollective.SocioEconomicStatus:
                    return masterDataToDTOMapping.Map(me as SocioEconomicStatus);
                case MasterDataCollective.VatClass:
                    return masterDataToDTOMapping.Map(me as VATClass);
                case MasterDataCollective.Distributor:
                    return masterDataToDTOMapping.Map(me as Distributor);
                case MasterDataCollective.Route:
                    return masterDataToDTOMapping.Map(me as Route);
                case MasterDataCollective.Contact:
                    return masterDataToDTOMapping.Map(me as Contact);
                case MasterDataCollective.ProductPackaging:
                    return masterDataToDTOMapping.Map(me as ProductPackaging);
                /*case MasterDataCollective.CostCentreApplication:
                    return masterDataToDTOMapping.Map(me as CostCentreApplication);*/
                case MasterDataCollective.DistributorSalesman:
                    return masterDataToDTOMapping.Map(me as DistributorSalesman);
                case MasterDataCollective.User://no DTO for user yet
                    return masterDataToDTOMapping.Map(me as User);
                case MasterDataCollective.DistributorPendingDispatchWarehouse:
                    return masterDataToDTOMapping.Map(me as DistributorPendingDispatchWarehouse);

                case MasterDataCollective.ChannelPackaging :
                    return masterDataToDTOMapping.Map(me as ChannelPackaging );
                case MasterDataCollective.Competitor :
                    return masterDataToDTOMapping.Map(me as Competitor);
                case MasterDataCollective.CompetitorProduct :
                    return masterDataToDTOMapping.Map(me as CompetitorProducts );
                case MasterDataCollective.Asset :
                    return masterDataToDTOMapping.Map(me as Asset);
                case MasterDataCollective.AssetType :
                    return masterDataToDTOMapping.Map(me as AssetType );
                case MasterDataCollective.District :
                    return masterDataToDTOMapping.Map(me as District);
                case MasterDataCollective.Province :
                    return masterDataToDTOMapping.Map(me as Province);
                case MasterDataCollective.ReorderLevel :
                    return masterDataToDTOMapping.Map(me as ReOrderLevel);
                //case MasterDataCollective.Returnables :
                //    return masterDataToDTOMapping.Map(me as Returnables);
                //case MasterDataCollective.Shells :
                //    return masterDataToDTOMapping.Map(me as Shells);
                case MasterDataCollective.TargetPeriod :
                    return masterDataToDTOMapping.Map(me as TargetPeriod);
                case MasterDataCollective.Target:
                    return masterDataToDTOMapping.Map(me as Target);
                case MasterDataCollective.ProductDiscount:
                    return masterDataToDTOMapping.Map(me as ProductDiscount);
                case MasterDataCollective.SaleValueDiscount:
                    return masterDataToDTOMapping.Map(me as SaleValueDiscount);
                case MasterDataCollective.DiscountGroup:
                    return masterDataToDTOMapping.Map(me as DiscountGroup);
                case MasterDataCollective.CertainValueCertainProductDiscount:
                    return masterDataToDTOMapping.Map(me as CertainValueCertainProductDiscount);
                case MasterDataCollective.PromotionDiscount:
                    return masterDataToDTOMapping.Map(me as PromotionDiscount);
                case MasterDataCollective.ProductGroupDiscount:
                    return masterDataToDTOMapping.Map(me as ProductGroupDiscount);
                case MasterDataCollective.FreeOfChargeDiscount:
                    return masterDataToDTOMapping.Map(me as FreeOfChargeDiscount);
                case MasterDataCollective.SalesmanRoute:
                    return masterDataToDTOMapping.Map(me as SalesmanRoute);

                case MasterDataCollective.SalesmanSupplier:
                    return masterDataToDTOMapping.Map(me as SalesmanSupplier);
                case MasterDataCollective.UserGroup:
                    return masterDataToDTOMapping.Map(me as UserGroup);
                case MasterDataCollective.UserGroupRole:
                    return masterDataToDTOMapping.Map(me as UserGroupRoles);
                case MasterDataCollective.Bank:
                    return masterDataToDTOMapping.Map(me as Bank);
                case MasterDataCollective.BankBranch:
                    return masterDataToDTOMapping.Map(me as BankBranch);
                case MasterDataCollective.Supplier:
                    return masterDataToDTOMapping.Map(me as Supplier);
               
                case MasterDataCollective.ContactType:
                    return masterDataToDTOMapping.Map(me as ContactType);
                case MasterDataCollective.AssetStatus:
                    return masterDataToDTOMapping.Map(me as AssetStatus);
                case MasterDataCollective.AssetCategory:
                    return masterDataToDTOMapping.Map(me as AssetCategory);
                case MasterDataCollective.OutletPriority:
                    return masterDataToDTOMapping.Map(me as OutletPriority);
                case MasterDataCollective.OutletVisitDay:
                    return masterDataToDTOMapping.Map(me as OutletVisitDay);
                case MasterDataCollective.TargetItem:
                    return masterDataToDTOMapping.Map(me as TargetItem);
                case MasterDataCollective.Setting:
                    return masterDataToDTOMapping.Map(me as AppSettings);
                case MasterDataCollective.RetireSetting:
                    return masterDataToDTOMapping.Map(me as RetireDocumentSetting);
                default:
                    throw new Exception("Failed to map to DTO " + masterData.ToString());
            }

        }
 public MasterDataEnvelope BuildOutletVisitDay(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_outletVisitDayRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         List<OutletVisitDay> outletdaysList = new List<OutletVisitDay>();
         List<Outlet> outlet = new List<Outlet>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                     outlet = _costCentreRepository.GetAll(false).OfType<Outlet>().Where(p => p.ParentCostCentre.Id == cct.Id).ToList();
                     outletdaysList = _outletVisitDayRepository.GetItemUpdated(dateSince).Where(n => outlet.Select(p => p.Id).Contains(n.Outlet.Id)).ToList();
                     break;
                 case CostCentreType.DistributorSalesman:
                     var salesmanroutes = _salesmanRouteRepository.GetAll(true).ToList();
                     salesmanroutes = salesmanroutes.Where(n => n.DistributorSalesmanRef.Id == cct.Id).ToList();
                     outlet = _outletRepository.GetAll().OfType<Outlet>().Where(n => salesmanroutes.Select(r => r.Route.Id).Contains(n.Route.Id)).ToList();
                     outletdaysList = _outletVisitDayRepository.GetItemUpdated(dateSince).Where(n => outlet.Select(p => p.Id).Contains(n.Outlet.Id)).ToList();
                     break;
             }
         envelope.masterData = outletdaysList.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
 public MasterDataEnvelope BuildDistributorPendingDispatchWarehouse(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_distributorPendingDispatchWarehouseRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         var entity = _distributorPendingDispatchWarehouseRepository.GetItemUpdated(dateSince);
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                 case CostCentreType.Hub:
                     entity = entity.Where(n => n.ParentCostCentre.Id == cct.Id);
                     break;
                 case CostCentreType.DistributorSalesman:
                     entity = entity.Where(n => n.ParentCostCentre.Id == cct.ParentCostCentre.Id);
                     break;
             }
         envelope.masterData = entity.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
Exemplo n.º 10
0
 public MasterDataEnvelope BuildOutlet(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     bool isAssignedoutlet = _salesmanRouteRepository.GetItemUpdatedSinceDateTime(dateSince);
     if (_outletRepository.GetItemUpdatedSinceDateTime(dateSince) || isAssignedoutlet)
     {
         List<Outlet> itier = _outletRepository.GetItemUpdated(dateSince).OfType<Outlet>().ToList();
         if (cct != null)
         {
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                 case CostCentreType.Hub:
                     itier = itier.Where(o => o.ParentCostCentre.Id == cct.Id).ToList();//cn: above code filters n returns outlets for routes assigned to salesmen only. For routes not assigned to salesmen their outltets r not returned.
                     break;
                 case CostCentreType.DistributorSalesman:
                     {
                         var salesmanroutes = _salesmanRouteRepository.GetAll(true).ToList();
                         salesmanroutes = salesmanroutes.Where(n => n.DistributorSalesmanRef.Id == cct.Id).ToList();
                         itier = itier.Where(n => salesmanroutes.Select(r => r.Route.Id).Contains(n.Route.Id)).ToList();
                         if (isAssignedoutlet)
                         {
                             var routeIds = _salesmanRouteRepository.GetItemUpdated(dateSince)
                                 .Where(s => s.DistributorSalesmanRef.Id == cct.Id)
                                 .Select(n => n.Route.Id);
                             var outlets = _outletRepository.GetAll(true).OfType<Outlet>().Where(o => routeIds.Contains(o.Id))
                              .ToList();
                             itier = itier.Union(outlets).Distinct().ToList();
                         }
                         break;
                     }
             }
         }
         envelope.masterData = itier.Select(n => n as MasterEntity).ToList();// _outletRepository.GetAll().Select(n => n as MasterEntity).ToList()
     }
     return envelope;
 }
Exemplo n.º 11
0
        public bool IsUpdated(MasterDataCollective masterdata, DateTime date)
        {
            switch (masterdata)
            {
                case MasterDataCollective.PricingTier:
                    if (_ProductPricingTierRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.User:
                    if (_userRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Area:
                    if (_areaRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ConsolidatedProduct:
                    if (_productRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Contact:
                    if (_contactRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Country:
                    if (_countryRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Distributor:
                    if (_distributorrepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.DistributorSalesman:
                    if (_distributorSalesmanRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Outlet:
                    if (_outletRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.OutletCategory:
                    if (_outletCategoryRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.OutletType:
                    if (_outletTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Pricing:
                    if (_pricingRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Producer:
                    if (_producerRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductBrand:
                    if (_productBrandRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductFlavour:
                    if (_productFlavourRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductPackaging:
                    if (_productPackagingRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductPackagingType:
                    if (_productPackagingTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductType:
                    if (_productTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Region:
                    if (_regionRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ReturnableProduct:
                    if (_productRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Route:
                    if (_routeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.SaleProduct:
                    if (_productRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.SocioEconomicStatus:
                    if (_socioEconomicStatusRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Territory:
                    if (_territoryRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.VatClass:
                    if (_vatClassRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ChannelPackaging:
                    if (_channelPackagingRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.FreeOfChargeDiscount:
                    if (_freeOfChargeDiscountRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Competitor:
                    if (_competitorRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CompetitorProduct:
                    if (_competitorProductsRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Asset:
                    if (_coolerRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.AssetType:
                    if (_coolerTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.District:
                    if (_districtRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Province:
                    if (_provinceRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ReorderLevel:
                    if (_reorderLevelRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                //case MasterDataCollective.Returnables:
                //    if (_returnablesRepository.GetItemUpdatedSinceDateTime(date))
                //        return false;
                //    break;
                //case MasterDataCollective.Shells:
                //    if (_shellsRepository.GetItemUpdatedSinceDateTime(date))
                //        return false;
                //    break;
                case MasterDataCollective.TargetPeriod:
                    if (_targetPeriodRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Target:
                    if (_targetRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.SaleValueDiscount:
                    if (_saleValueDiscountRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductDiscount:
                    if (_productDiscountRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.PromotionDiscount:
                    if (_promotionDiscountRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CertainValueCertainProductDiscount:
                    if (_certainValueCertainProductDiscountRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ProductGroupDiscount:
                    if (_productDiscountGroupRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.DiscountGroup:
                    if (_discountGroupRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;

                case MasterDataCollective.SalesmanRoute:
                    if (_salesmanRouteRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.UserGroup:
                    if (_userGroupRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.UserGroupRole:
                    if (_userGroupRolesRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Supplier:
                    if (_supplierRepository.GetItemUpdatedSinceDateTime(date))

                        return false;
                    break;
                case MasterDataCollective.ContactType:
                    if (_contactTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                
                  
                case MasterDataCollective.AssetCategory:
                    if (_assetCategoryRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.AssetStatus:
                    if (_assetStatusRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.OutletPriority:
                    if (_outletPriorityRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.OutletVisitDay:
                    if (_outletVisitDayRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.TargetItem:
                    if (_targetItemRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Setting:
                    if (_settingsRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.DistributorPendingDispatchWarehouse:
                    if (_distributorPendingDispatchWarehouseRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Bank:
                    if (_bankRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.BankBranch:
                    if (_bankBranchRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.RetireSetting:
                    if (_retireDocumentSettingRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommodityType:
                    if (_commodityTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Commodity:
                    if (_commodityRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommodityOwnerType:
                    if (_commodityOwnerTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommodityProducer:
                    if (_commodityProducerRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommoditySupplier:
                    if (_commoditySupplierRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommodityOwner:
                    if (_commodityOwnerRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Centre:
                    if (_centreRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CentreType:
                    if (_centreTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Hub:
                    if (_hubRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Store:
                    if (_storeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.FieldClerk:
                    if (_purchasingClerkRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.ContainerType:
                    if (_containerTypeRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.Vehicle:
                    if (_vehicleRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;

                case MasterDataCollective.Printer:
                case MasterDataCollective.WeighScale:
                case MasterDataCollective.SourcingContainer:
                    if (_equipmentRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                case MasterDataCollective.CommodityProducerCentreAllocation:
                case MasterDataCollective.RouteCentreAllocation:
                case MasterDataCollective.RouteCostCentreAllocation:
                case MasterDataCollective.RouteRegionAllocation:
                    if (_masterDataAllocatioRepository.GetItemUpdatedSinceDateTime(date))
                        return false;
                    break;
                default:
                    throw new Exception("Internal Error: MasterData not mapped!" + masterdata.ToString());
            }
            return true;
        }
Exemplo n.º 12
0
 public MasterDataEnvelope BuildRouteRegionAllocation(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_masterDataAllocatioRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         if (cct != null)
         {
             envelope.masterData = _masterDataAllocatioRepository
                 .GetItemUpdated(dateSince)
                 .Where(x => x.AllocationType == MasterDataAllocationType.RouteRegionAllocation)
                 .Select(n => n as MasterEntity)
                 .ToList();
         }
     }
     return envelope;
 }
Exemplo n.º 13
0
 public MasterDataEnvelope BuildVehicle(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_vehicleRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Hub:
                     envelope.masterData = _vehicleRepository.GetItemUpdated(dateSince)
                         .Select(n => n as MasterEntity)
                         .ToList();
                     break;
                 case CostCentreType.PurchasingClerk:
                     envelope.masterData = _vehicleRepository.GetItemUpdated(dateSince)
                         .Select(n => n as MasterEntity)
                         .ToList();
                     break;
             }
     }
     return envelope;
 }
Exemplo n.º 14
0
 public MasterDataEnvelope BuildFieldClerk(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_purchasingClerkRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         var costCentreIds = _costCentreRepository.GetAll(true)
             .Where(n => n.ParentCostCentre != null && n.ParentCostCentre.Id == cct.Id)
             .Distinct().Select(n => n.Id).ToList();
         var userIds = new List<Guid>();
         var clerks = new List<PurchasingClerk>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Hub:
                     userIds = _userRepository.GetAll(true)
                         .Where(n => n.CostCentre == cct.Id || costCentreIds.Contains(n.CostCentre))
                         .Select(n => n.Id)
                         .ToList();
                     clerks = _purchasingClerkRepository
                         .GetItemUpdated(dateSince)
                         .Cast<PurchasingClerk>()
                         .Where(n => n.User != null && userIds.Contains(n.User.Id))
                         .ToList();
                     break;
                 case CostCentreType.PurchasingClerk:
                     userIds = _userRepository.GetAll(true)
                         .Where(n => n.CostCentre == cct.Id || costCentreIds.Contains(n.CostCentre))
                         .Select(n => n.Id)
                         .ToList();
                     clerks = _purchasingClerkRepository
                         .GetItemUpdated(dateSince)
                         .Cast<PurchasingClerk>()
                         .Where(n => n.User != null && userIds.Contains(n.User.Id))
                         .ToList();
                     break;
             }
         envelope.masterData = clerks.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
Exemplo n.º 15
0
 public MasterDataEnvelope BuildAssetStatus(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_assetStatusRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         envelope.masterData = _assetStatusRepository.GetItemUpdated(dateSince).Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
Exemplo n.º 16
0
 public MasterDataEnvelope BuildOutletPriority(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_outletPriorityRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         List<OutletPriority> outletPriorityList = new List<OutletPriority>();
         List<Route> routes = new List<Route>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                     routes = _routeRepository.GetAll(true).Where(p => p.Region.Id == cct.Id).ToList();
                     outletPriorityList = _outletPriorityRepository.GetItemUpdated(dateSince).Where(n => routes.Select(p => p.Id).Contains(n.Route.Id)).ToList();
                     break;
                 case CostCentreType.DistributorSalesman:
                     routes = _routeRepository.GetAll(true).Where(o => _salesmanRouteRepository
                                                                                 .GetAll()
                                                                                 .Where(s => s.DistributorSalesmanRef.Id == cct.Id)
                                                                                 .Select(n => n.Route.Id)
                                                                                 .Contains(o.Id))
                          .ToList();
                     outletPriorityList = _outletPriorityRepository.GetItemUpdated(dateSince).Where(n => routes.Select(p => p.Id).Contains(n.Route.Id)).ToList();
                     break;
             }
         envelope.masterData = outletPriorityList.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
Exemplo n.º 17
0
 public MasterDataEnvelope BuildContact(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_contactRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         var contacts = new List<Contact>();
         var ccIds = new List<Guid>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Distributor:
                 case CostCentreType.Hub:
                     var relevantCostCentreIds = _costCentreRepository.GetAll(true)
                         .Where(c => (c.ParentCostCentre != null && c.ParentCostCentre.Id == cct.Id) || c.Id == cct.Id)
                         .Select(c => c.Id);
                     var relevantdUserIds =
                         _userRepository.GetAll(true).Where(u => relevantCostCentreIds.Contains(u.CostCentre)).Select(u => u.Id);
                     var requiredContactOwnerIds = relevantCostCentreIds.Union(relevantdUserIds).ToList();
                     contacts = _contactRepository.GetItemUpdated(dateSince)
                         .Where(n => requiredContactOwnerIds.Contains(n.ContactOwnerMasterId))
                         .ToList();
                     break;
                 case CostCentreType.DistributorSalesman:
                     var distId = _costCentreRepository.GetById(cct.Id).ParentCostCentre.Id;
                     ccIds = _costCentreRepository.GetAll(true)
                         .Where(n => (n.ParentCostCentre != null && n.ParentCostCentre.Id == distId)
                             || n.Id == distId || n.Id == cct.Id)
                         .Select(n => n.Id).ToList();
                     contacts = _contactRepository.GetItemUpdated(dateSince)
                         .Where(n => ccIds.Contains(n.ContactOwnerMasterId))
                         .ToList();
                     break;
                 case CostCentreType.PurchasingClerk:
                     var hubId = _costCentreRepository.GetById(cct.Id).ParentCostCentre.Id;
                     ccIds = _costCentreRepository.GetAll(true)
                         .Where(n => (n.ParentCostCentre != null && n.ParentCostCentre.Id == hubId)
                             || n.Id == hubId || n.Id == cct.Id)
                         .Select(n => n.Id).ToList();
                     contacts = _contactRepository.GetItemUpdated(dateSince)
                         .Where(n => ccIds.Contains(n.ContactOwnerMasterId))
                         .ToList();
                     break;
             }
         envelope.masterData = contacts.Select(n => n as MasterEntity).ToList();
     }
     return envelope;
 }
Exemplo n.º 18
0
        public MasterDataEnvelope BuildRoute(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
        {
            var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
            bool hasSalesmanRoutes = _salesmanRouteRepository.GetItemUpdatedSinceDateTime(dateSince);
            bool hasPurchasingClerkRoutes = false;
            bool isPurchasingClerk = cct is PurchasingClerk;
            if (isPurchasingClerk)
            {
                hasPurchasingClerkRoutes = ((PurchasingClerk) cct).PurchasingClerkRoutes.Any();
            }
            if ( _routeRepository.GetItemUpdatedSinceDateTime(dateSince) || hasSalesmanRoutes || hasPurchasingClerkRoutes)
            {
                List<Route> routes = _routeRepository.GetItemUpdated(dateSince).ToList();
                if (cct != null)
                    switch (cct.CostCentreType)
                    {
                        case CostCentreType.Distributor:
                            routes = routes.Where(n => n.Region.Id == ((Distributor)cct).Region.Id).ToList();
                            break;
                        case CostCentreType.Hub:
                            routes = routes.Where(n => n.Region.Id == ((Hub)cct).Region.Id).ToList();
                            break;
                        case CostCentreType.DistributorSalesman:
                            routes = routes.Where(o => _salesmanRouteRepository.GetAll()
                                                         .Where(s => s.DistributorSalesmanRef.Id == cct.Id)
                                                         .Select(n => n.Route.Id)
                                                         .Contains(o.Id))
                                .ToList();
                            if (hasSalesmanRoutes)
                            {
                                var routeIds = _salesmanRouteRepository.GetItemUpdated(dateSince)
                                    .Where(s => s.DistributorSalesmanRef.Id == cct.Id)
                                    .Select(n => n.Route.Id);
                                var route = _routeRepository.GetAll(true).Where(o => routeIds.Contains(o.Id)).ToList();
                                routes = routes.Union(route).Distinct().ToList();
                            }
                            break;
                        case CostCentreType.PurchasingClerk:
                            routes = routes.Where(r => 
                                _purchasingClerkRouteRepository.GetAll()
                                .Where(pcr => pcr.PurchasingClerkRef.Id == cct.Id)
                                .Select(n => n.Route.Id)
                                .Contains(r.Id))
                                .ToList();
                            if (hasPurchasingClerkRoutes)
                            {
                                var routeIds = ((PurchasingClerk) cct).PurchasingClerkRoutes.Select(n => n.Route.Id).ToList();
                                routes = _routeRepository.GetAll(true).Where(r => routeIds.Contains(r.Id)).ToList();
                            }
                            break; 
                    }

                envelope.masterData = routes.Select(n => n as MasterEntity).ToList();
            }
            return envelope;
        }
Exemplo n.º 19
0
 public MasterDataEnvelope BuildUser(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     List<User> users = _userRepository.GetItemUpdated(dateSince).ToList();
     if (cct != null)
         switch (cct.CostCentreType)
         {
             case CostCentreType.Distributor:
             case CostCentreType.Hub:
                 {
                     var costcentreid = _costCentreRepository.GetAll(true)
                         .Where(n => n.ParentCostCentre != null)
                         .Where(n => n.ParentCostCentre.Id == cct.Id)
                         .Select(x => x.Id)
                         .ToList();
                     users = users.Where(n => n.CostCentre == cct.Id || costcentreid.Contains(n.CostCentre)).ToList();
                 }
                 break;
             case CostCentreType.DistributorSalesman:
                 users = users.Where(n => n.CostCentre == cct.Id).ToList();
                 break;
         }
     envelope.masterData = users.Select(n => n as MasterEntity).ToList();
     return envelope;
 }
Exemplo n.º 20
0
 public virtual Task<IEnumerable<ImportEntity>> DownloadMasterdata(MasterDataCollective entity, List<string> searchTexts = null)
 {
    throw new NotImplementedException();
 }
Exemplo n.º 21
0
 public MasterDataEnvelope BuildCommodityOwner(DateTime dateSince, MasterDataCollective masterdata, CostCentre cct)
 {
     var envelope = new MasterDataEnvelope() { masterDataName = masterdata.ToString() };
     if (_commodityOwnerRepository.GetItemUpdatedSinceDateTime(dateSince))
     {
         var supplierIds = new List<Guid>();
         if (cct != null)
             switch (cct.CostCentreType)
             {
                 case CostCentreType.Hub:
                     supplierIds = _commoditySupplierRepository.GetAll(true)
                         .Where(n => n.ParentCostCentre.Id == cct.Id)
                         .Select(n => n.Id).ToList();
                     envelope.masterData = _commodityOwnerRepository.GetItemUpdated(dateSince)
                             .Where(n => supplierIds.Contains(n.CommoditySupplier.Id))
                             .Select(n => n as MasterEntity).ToList();
                     break;
                 case CostCentreType.PurchasingClerk:
                     var hub = _costCentreRepository.GetById(cct.ParentCostCentre.Id) as Hub;
                     supplierIds = _commoditySupplierRepository.GetAll(true)
                         .Where(n => n.ParentCostCentre.Id == hub.Id)
                         .Select(n => n.Id).ToList();
                     envelope.masterData = _commodityOwnerRepository.GetItemUpdated(dateSince)
                             .Where(n =>  supplierIds.Contains(n.CommoditySupplier.Id))
                             .Select(n => n as MasterEntity).ToList();
                     break;
             }
     }
     return envelope;
 }