Exemplo n.º 1
0
        public async Task CreateOrUpdate_Update_Success(
            Vendor pVendorInput,
            Vendor pVendorResult,
            [Frozen] IBlue10AsyncClient pBlue10AsyncCLient,
            VendorService pVendorService)
        {
            // Setup services
            pBlue10AsyncCLient.EditVendorAsync(Arg.Any <Vendor>()).Returns(pVendorResult);

            // Test
            var fResult = await pVendorService.CreateOrUpdate(pVendorInput);

            // Validate
            pBlue10AsyncCLient.Received(1);
            await pBlue10AsyncCLient.Received().EditVendorAsync(Arg.Is <Vendor>(x => x.Equals(pVendorInput)));

            fResult.Should().BeOfType <BaseResultModel <Vendor> >();
            fResult.ErrorMessage.Should().BeNull();
            fResult.Object.Should().Be(pVendorResult);
        }
Exemplo n.º 2
0
        public async void PurchaseOrderHeadersByVendorID_Not_Exists()
        {
            var mock = new ServiceMockFacade <IVendorRepository>();

            mock.RepositoryMock.Setup(x => x.PurchaseOrderHeadersByVendorID(default(int), It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult <List <PurchaseOrderHeader> >(new List <PurchaseOrderHeader>()));
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            List <ApiPurchaseOrderHeaderResponseModel> response = await service.PurchaseOrderHeadersByVendorID(default(int));

            response.Should().BeEmpty();
            mock.RepositoryMock.Verify(x => x.PurchaseOrderHeadersByVendorID(default(int), It.IsAny <int>(), It.IsAny <int>()));
        }
Exemplo n.º 3
0
        public async void ByAccountNumber_Not_Exists()
        {
            var mock = new ServiceMockFacade <IVendorRepository>();

            mock.RepositoryMock.Setup(x => x.ByAccountNumber(It.IsAny <string>())).Returns(Task.FromResult <Vendor>(null));
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            ApiVendorResponseModel response = await service.ByAccountNumber(default(string));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.ByAccountNumber(It.IsAny <string>()));
        }
Exemplo n.º 4
0
        public async void Get_null_record()
        {
            var mock = new ServiceMockFacade <IVendorRepository>();

            mock.RepositoryMock.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult <Vendor>(null));
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            ApiVendorResponseModel response = await service.Get(default(int));

            response.Should().BeNull();
            mock.RepositoryMock.Verify(x => x.Get(It.IsAny <int>()));
        }
Exemplo n.º 5
0
 public async Task addVendor()
 {
     VendorService service = new VendorService();
     var           model   = new AddVendorModel()
     {
         Title       = "test",
         UserId      = Guid.NewGuid(),
         MainImage   = "test.jpg",
         CategoryId  = 10,
         Lng         = 51.2063269,
         Lat         = 35.6140752,
         PhoneNumber = "09123135143",
         Description = "توضیحات",
         Facilities  = new List <int>()
         {
             1, 2
         }
     };
     await service.AddVendor(model);
 }
Exemplo n.º 6
0
        public async Task <ActionResult> EditStand(int standId, int expoId)
        {
            var standsViewModel = new StandsViewModel();

            switch (Properties.Settings.Default.GetDataFrom)
            {
            case "db":
                break;

            case "Json":
                var stand = await standsService.GetStandAsync(expoId, standId);

                standsViewModel = new StandsViewModel
                {
                    Title          = "Изменение стенда",
                    AddButtonTitle = "Сохранить",
                    RedirectUrl    = Url.Action("DetailsOfExpo", "Expos", new { _idExpo = expoId }),
                    standId        = stand.standId,
                    expoId         = stand.expoId,
                    description    = stand.description,
                    statusId       = stand.statusId,
                    vendorId       = stand.vendorId,
                    hall           = stand.hall
                };
                IVendorService vendorService = new VendorService(new Repository.VendorRepository());
                IEnumerable <VendorFromJson.Vendor> vendors = await vendorService.getVendorsAsync();

                List <SelectListItem> ObjItem = new List <SelectListItem>();
                foreach (var vendor in vendors)
                {
                    ObjItem.Add(new SelectListItem()
                    {
                        Text = vendor.vendorName, Value = vendor.vendorId.ToString(), Selected = stand.vendorId == stand.vendorId
                    });
                }
                standsViewModel.vendorCombo = ObjItem;
                break;
            }

            return(View(standsViewModel));
        }
Exemplo n.º 7
0
        public ActionResult Search(int vendorId, string number)
        {
            if (vendorId == 0)
            {
                return(NotFound());
            }
            var vendor = VendorService.GetByPK(vendorId);

            if (vendor == null)
            {
                return(NotFound());
            }
            var model = new ExamSearchVM {
                Vendor = vendor,
                Number = number,
                Exams  = number.IsEmpty()
                                        ? new List <Exam>()
                                        : ExamService.GetAll(x => x.Vendor_ID == vendorId && x.Exam_TC.Contains(number) && x.Available).Take(20).ToList()
            };

            return(View(model));
        }
Exemplo n.º 8
0
        public virtual MainPageVM Get()
        {
            var sections =
                SectionService.GetAll().IsActive().Where(s => s.ForMainPage)
                .ByWebOrder().ToList();


            var professions = ProfessionService.GetAll().IsActive()
                              .Where(p => p.ForMainPage).ToList()
                              .OrderBy(x => StringUtils.IsBasicLetter(x.Name.First())).ThenBy(x => x.Name).ToList();
            var vendors = VendorService.GetAll().IsActive()
                          .Where(p => p.ForMainPage).ByWebOrder().ToList();
            var products = ProductService.GetAll().IsActive()
                           .Where(p => p.ForMainPage).ToList().OrderBy(x => x.Name).ToList();
            var siteterms = SiteTermService.GetAll().IsActive()
                            .Where(p => p.ForMainPage).ToList().OrderBy(x => x.Name).ToList();

            VideoService.LoadWith(x => x.VideoCategory);
            var videos = VideoService.GetAll(x =>
                                             x.CategoryId == VideoCategories.CoursePresentation)
                         .OrderByDescending(x => x.UpdateDate).Take(3).ToList();

            return
                (new MainPageVM
            {
                Professions = professions,
                Vendors = vendors,
                Sections = sections,
                Products = products,
                Banners = BannerService.GetBanner(CommonConst.SiteRoot + "/")
                          .ShufflePriority(x => x.Priority),
                News = NewsService.GetAllForMain().ToList(),
                SiteTerms = siteterms,
                Videos = videos,
                Documents = CertTypeService
                            .GetAll(c => CertTypes.ForMain.Contains(c.UrlName)).ToList(),
                About = SimplePageService.GetAll().BySysName(SimplePages.MainPage)
            });
        }
Exemplo n.º 9
0
        public async void Delete()
        {
            var mock  = new ServiceMockFacade <IVendorRepository>();
            var model = new ApiVendorRequestModel();

            mock.RepositoryMock.Setup(x => x.Delete(It.IsAny <int>())).Returns(Task.CompletedTask);
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            ActionResponse response = await service.Delete(default(int));

            response.Should().NotBeNull();
            mock.RepositoryMock.Verify(x => x.Delete(It.IsAny <int>()));
            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Verify(x => x.ValidateDeleteAsync(It.IsAny <int>()));
        }
Exemplo n.º 10
0
        public async void Create()
        {
            var mock  = new ServiceMockFacade <IVendorRepository>();
            var model = new ApiVendorRequestModel();

            mock.RepositoryMock.Setup(x => x.Create(It.IsAny <Vendor>())).Returns(Task.FromResult(new Vendor()));
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            CreateResponse <ApiVendorResponseModel> response = await service.Create(model);

            response.Should().NotBeNull();
            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Verify(x => x.ValidateCreateAsync(It.IsAny <ApiVendorRequestModel>()));
            mock.RepositoryMock.Verify(x => x.Create(It.IsAny <Vendor>()));
        }
Exemplo n.º 11
0
        public async void All()
        {
            var mock    = new ServiceMockFacade <IVendorRepository>();
            var records = new List <Vendor>();

            records.Add(new Vendor());
            mock.RepositoryMock.Setup(x => x.All(It.IsAny <int>(), It.IsAny <int>())).Returns(Task.FromResult(records));
            var service = new VendorService(mock.LoggerMock.Object,
                                            mock.RepositoryMock.Object,
                                            mock.ModelValidatorMockFactory.VendorModelValidatorMock.Object,
                                            mock.BOLMapperMockFactory.BOLVendorMapperMock,
                                            mock.DALMapperMockFactory.DALVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLProductVendorMapperMock,
                                            mock.DALMapperMockFactory.DALProductVendorMapperMock,
                                            mock.BOLMapperMockFactory.BOLPurchaseOrderHeaderMapperMock,
                                            mock.DALMapperMockFactory.DALPurchaseOrderHeaderMapperMock);

            List <ApiVendorResponseModel> response = await service.All();

            response.Should().HaveCount(1);
            mock.RepositoryMock.Verify(x => x.All(It.IsAny <int>(), It.IsAny <int>()));
        }
Exemplo n.º 12
0
        public object Format(PrintTemplate template, PrintTemplateItem item, OrderReturn or)
        {
            string vendorName = "";
            var    ss         = or.GoodsInfo.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);

            if (ss.Length > 0)
            {
                vendorName = ss[0];
            }
            if (string.IsNullOrWhiteSpace(vendorName))
            {
                return("");
            }
            var vens = ServiceContainer.GetService <VendorService>().GetVendorAddress_InCach(vendorName);

            if (string.IsNullOrWhiteSpace(vens))
            {
                return("");
            }
            var door = VendorService.FormatVendorDoor(vens);

            return(door);
        }
        /// <summary>
        ///     Initializes a new instance of the class.
        /// </summary>
        public RegistrationApiController()
        {
            _context = new AllTheSameDbContext();

            _vendorCredentialService = new VendorCredentialService(new UnitOfWork(_context),
                                                                   new VendorCredentialRepository(_context));
            _industryService     = new IndustryService(new UnitOfWork(_context), new IndustryRepository(_context));
            _organizationService = new OrganizationService(new UnitOfWork(_context),
                                                           new OrganizationRepository(_context));
            _orgTypeService      = new OrgTypeService(new UnitOfWork(_context), new OrgTypeRepository(_context));
            _vendorService       = new VendorService(new UnitOfWork(_context), new VendorRepository(_context));
            _vendorTypeService   = new VendorTypeService(new UnitOfWork(_context), new VendorTypeRepository(_context));
            _vendorAdminService  = new VendorAdminService(new UnitOfWork(_context), new VendorAdminRepository(_context));
            _vendorWorkerService = new VendorWorkerService(new UnitOfWork(_context),
                                                           new VendorWorkerRepository(_context));
            _vendorCredDocumentService = new VendorCredDocumentService(new UnitOfWork(_context),
                                                                       new VendorCredDocumentRepository(_context));

            _addressService = new AddressService(new UnitOfWork(_context), new AddressRepository(_context));

            //var vendorCredentialList = _context.VendorCredentials;
            //var industryList = _context.Industries;
            //var organizationList = _context.Organizations;
            //var orgTypeList = _context.OrgTypes;
            //var vendorList = _context.Vendors;
            //var vendorTypeList = _context.VendorTypes;
            //var vendorAdminList = _context.VendorAdmins;
            //var vendorWorkerList = _context.VendorWorkers;
            //var vendorCredDocumentList = _context.VendorCredDocuments;

            //var addressList = _context.Addresses;

            //var c = Repository<Person>.Instance.Count;
            //var c2 = Repository<Person>.Instance.Count;
            //var s = new ServiceProxy<Person,IPersonRepository>().Count;
        }
Exemplo n.º 14
0
 public ProductController(ProductService productService, VendorService vendorService)
 {
     _productService = productService;
     _vendorService  = vendorService;
 }
        public Dictionary <int?, DatabaseModel.Vendor> GetActiveVendors(Dictionary <int?, Customer> allActiveCustomers, VendorService vendorService, RecurringInvoices.Frequency paymentFrequency)
        {
            var activeVendors = vendorService.GetByPaymentFrequency(paymentFrequency)
                                .Where(x => allActiveCustomers.ContainsKey(x.QuickBooksOnlineId))
                                .ToDictionary(x => x.QuickBooksOnlineId);

            return(activeVendors);
        }
        private void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            if (this.OrderReturns.Count < 1)
            {
                MessageBox.Show("没有需要打印的数据");
                return;
            }

            try
            {
                string printer = LocalConfigService.GetValue(SystemNames.CONFIG_PRINTER_A4, "");
                if (string.IsNullOrWhiteSpace(printer))
                {
                    throw new Exception("请在系统配置里面,配置要使用的打印机");
                }

                if (MessageBox.Show("是否使用打印机:" + printer + Environment.NewLine + "打印?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes)
                {
                    return;
                }

                var           pd            = PrintUtil.GetPrinter(printer);
                VendorService vs            = ServiceContainer.GetService <VendorService>();
                var           goodsCountDoc = new OrderReturnOutPrintDocument();

                List <GoodsCount> counts = new List <GoodsCount>();
                foreach (var item in this.OrderReturns)
                {
                    string[] infos = item.Source.GoodsInfo.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
                    if (infos.Length < 4)
                    {
                        MessageBox.Show("退货信息不正确,请检查:" + item.Source.Id);
                        continue;
                    }
                    var vendor = vs.GetByAll(infos[0], "", "", "", 0, 0).First;
                    if (vendor == null)
                    {
                        vendor = vs.GetByAll(infos[0] + infos[1], "", "", "", 0, 0).First;
                    }

                    if (vendor == null)
                    {
                        MessageBox.Show("退货信息厂家找不到,请检查:" + item.Source.Id);
                        continue;
                    }

                    GoodsCount count = null;
                    if (infos.Length >= 5)
                    {
                        count = counts.FirstOrDefault(
                            obj => obj.Vendor == VendorService.FormatVendorName(infos[0]) && obj.Number == infos[1] &&
                            obj.Edtion == infos[2] && obj.Color == infos[3] && obj.Size == infos[4]);
                    }
                    else
                    {
                        count = counts.FirstOrDefault(
                            obj => obj.Vendor == VendorService.FormatVendorName(infos[0]) && obj.Number == infos[1] &&
                            obj.Color == infos[2] && obj.Size == infos[3]);
                    }

                    if (count == null)
                    {
                        count = new GoodsCount
                        {
                            Vendor       = infos[0].Trim(),
                            Number       = infos[1].Trim(),
                            Money        = (int)(item.Source.GoodsMoney / item.Source.Count),
                            Count        = 0,
                            FirstPayTime = item.Source.ProcessTime,
                        };

                        if (infos.Length >= 5)
                        {
                            count.Edtion = infos[2].Trim();
                            count.Color  = infos[3].Trim();
                            count.Size   = infos[4].Trim();
                        }
                        else
                        {
                            count.Edtion = "";
                            count.Color  = infos[2].Trim();
                            count.Size   = infos[3].Trim();
                        }
                        count.Address = vendor.MarketAddressShort;
                        count.Vendor  = VendorService.FormatVendorName(count.Vendor);
                        counts.Add(count);
                    }
                    foreach (var c in counts.Where(obj => obj.Vendor == count.Vendor && obj.Number == count.Number &&
                                                   obj.Edtion == count.Edtion))
                    {
                        //取消最大金额值
                        if (c.Money < count.Money)
                        {
                            c.Money = count.Money;
                        }
                        else
                        {
                            count.Money = c.Money;
                        }
                    }

                    if (count.FirstPayTime >= item.Source.ProcessTime)
                    {
                        count.FirstPayTime = item.Source.ProcessTime;
                    }

                    count.Count += item.Source.Count;
                }
                IComparer <GoodsCount> comparer = new OrderGoodsCountSortByDoor();
                counts.Sort(comparer); //拿货地址
                counts.Sort(comparer); //货号
                counts.Sort(comparer); //版本
                counts.Sort(comparer); //颜色
                counts.Sort(comparer); //尺码
                goodsCountDoc.PageSize = new Size(793, 1122.24);
                goodsCountDoc.SetGoodsCount(counts.ToArray());
                pd.PrintDocument(goodsCountDoc, "退货统计");
                foreach (var item in this.OrderReturns)
                {
                    this.OrderReturnService.Update(item.Source);
                }
                MessageBox.Show("打印完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "打印出错");
            }
        }
Exemplo n.º 17
0
 public VendorController(VendorService vendorService)
 {
     _vendorService = vendorService;
 }
Exemplo n.º 18
0
 public LoginController(VendorService vendorService, CustomerService customerService)
 {
     _vendorService   = vendorService;
     _customerService = customerService;
 }
Exemplo n.º 19
0
 public VendorController()
 {
     _vendorService     = new VendorService();
     _vendortypeService = new VendorTypeService();
 }
Exemplo n.º 20
0
 public GoodsReportController(GoodsItemService objGoodsItemService, VendorService ObjVendorService, Vendor ObjGoods)
 {
     this.ObjVendorService    = ObjVendorService;
     this.objGoodsItemService = objGoodsItemService;
     this.context             = BeanContext.GetInstance();
 }
        public async Task AddVendor(CreateVendorRequest Vendor)
        {
            await VendorService.AddNewVendorAsync(Vendor);

            await ModalInstance.CloseAsync();
        }
 public async Task Refresh()
 {
     Vendors = await VendorService.GetAllVendorsAsync();
 }
Exemplo n.º 23
0
 public VendorServiceTests()
 {
     mockRepository = new Mock <IVendorRepository>();
     service        = new VendorService(mockRepository.Object);
 }
Exemplo n.º 24
0
 public vendorController(VendorService VendorService)
 {
     _vendorService = VendorService;
 }
Exemplo n.º 25
0
 public VendorController(VendorService <VendorViewModel, Vendor> vendorService)
 {
     _vendorService = vendorService;
 }
Exemplo n.º 26
0
 public PreventiveMaintenanceController(SiteService siteService, PlantService plantService, LineService lineService, MachineService machineService, UserService userService, PreventiveMaintenanceService pmServices, UserAssignmentsService uaServices, PreventiveWorkDescriptionService pwdServices, PreventiveReviewHistoryService prhServices, ScheduleTypeService pstServices, VendorCategoryService vcServices, VendorService vendorServices)
 {
     this._siteService    = siteService;
     this._plantService   = plantService;
     this._lineService    = lineService;
     this._machineService = machineService;
     this._userService    = userService;
     this._pmServices     = pmServices;
     this._uaServices     = uaServices;
     this._pwdServices    = pwdServices;
     this._prhServices    = prhServices;
     this._pstServices    = pstServices;
     this._vcServices     = vcServices;
     this._vendorServices = vendorServices;
 }
Exemplo n.º 27
0
 public ItemController(ItemsServices ItemsService, VendorService vendorServices)
 {
     this._ItemsService   = ItemsService;
     this._vendorServices = vendorServices;
 }
Exemplo n.º 28
0
 public HomeController()
 {
     this.treeService   = new TreeService(this.Logger, this.User);
     this.vendorService = new VendorService(this.Logger, this.User);
 }
        public void VendorServiceConstructorTest()
        {
            VendorService target = new VendorService();

            Assert.IsNotNull(target);
        }
Exemplo n.º 30
0
        private void btnQuery_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                long shopId = this.cbbShops.SelectedItem == null ? 0 : (this.cbbShops.SelectedItem as Shop).Id;
                var  scs    = ServiceContainer.GetService <OrderGoodsService>().GetSaleCount(shopId, this.cbbOrderTypes.GetSelectedEnum <OrderType>(), this.cbbTimeType.SelectedIndex, this.dpStart.Value.Value, this.dpEnd.Value.Value, 0, 0).Datas.ToArray();
                //订单信息金额汇总
                List <SaleInfo> sis = new List <SaleInfo>();
                //根据一个订单包含多个子订单重新计算每一双鞋子应该的价格,根据比例
                var ordersGroupById = scs.GroupBy(obj => obj.OrderId).Where(obj => obj.Count() > 1).ToArray();
                foreach (var or in ordersGroupById)
                {
                    float total = or.Select(obj => obj.Count * obj.PopPrice).Sum();
                    foreach (var o in or)
                    {
                        o.PopSellerGetMoney = o.PopSellerGetMoney * o.Count * o.PopPrice / total;
                    }
                }

                SaleCount[] targetScs = null;
                //左下分析,有货号,则分析商品SKU卖出情况
                string vendor  = this.tbVendorName.Text.Trim();
                string goodsId = this.tbGoodsId.Text.Trim();

                //根据商品编号查询
                if (string.IsNullOrWhiteSpace(goodsId) == false)
                {
                    targetScs = scs.Where(obj => obj.GoodsId.ToString() == goodsId).ToArray();
                    float total = targetScs.Select(obj => obj.PopSellerGetMoney).Sum();
                    int   count = targetScs.Length;
                    this.FillSaleMoneyInfo(targetScs);

                    //左下统计SKU详情
                    var skuGroup = targetScs.GroupBy(obj => obj.Color + ":" + obj.Size + "," + obj.Edtion);
                    this.dgvCountInfo2.ItemsSource = skuGroup
                                                     .Select(obj => new SaleCountInfo
                    {
                        VendorName   = obj.Key,
                        Count        = obj.Count(),
                        SaleMoney    = obj.Select(o => o.PopSellerGetMoney).Sum(),
                        PerSaleMoney = obj.Select(o => o.PopSellerGetMoney).Sum() * 100F / total
                    }).OrderByDescending(obj => obj.PerSaleMoney).ToArray();

                    //右下统计每日销售占比
                    List <SaleCountInfo> scis = new List <SaleCountInfo>();
                    var dateGroup             = targetScs
                                                .GroupBy(obj => this.cbbTimeType.SelectedIndex == 0
                            ? obj.PopPayTime.Date
                            : obj.DeliveryTime.Date).ToArray();
                    foreach (var dg in dateGroup)
                    {
                        SaleCountInfo sc =
                            new SaleCountInfo
                        {
                            VendorName = dg.Key.ToString("yyyy-MM-dd"),
                            Number     = string.Join(",", dg.Select(obj => obj.Number).Distinct()),
                            Count      = dg.Count(),
                            SaleMoney  = dg.Select(obj => obj.PopSellerGetMoney).Sum()
                        };
                        var matchScs = scs.Where(obj => (this.cbbTimeType.SelectedIndex == 0
                                                            ? obj.PopPayTime.Date
                                                            : obj.DeliveryTime.Date) == dg.Key);
                        sc.PerCount     = sc.Count * 100F / matchScs.Count();
                        sc.PerSaleMoney = sc.SaleMoney * 100F / matchScs.Select(obj => obj.PopSellerGetMoney).Sum();
                        scis.Add(sc);
                    }
                    this.dgvGoodsInfo.ItemsSource = scis.OrderByDescending(obj => obj.VendorName).ToArray();
                }
                else if (string.IsNullOrWhiteSpace(vendor) == false)
                {
                    targetScs = scs.Where(obj => VendorService.FormatVendorName(obj.Vendor) ==
                                          VendorService.FormatVendorName(vendor)).ToArray();
                    float total = targetScs.Select(obj => obj.PopSellerGetMoney).Sum();
                    int   count = targetScs.Length;
                    //厂家查询
                    this.FillSaleMoneyInfo(targetScs);
                    //左下统计货号卖出详情
                    var numberGroup = targetScs.GroupBy(obj => obj.Number).ToArray();
                    this.dgvCountInfo2.ItemsSource = numberGroup
                                                     .Select(obj => new SaleCountInfo
                    {
                        VendorName   = obj.Key,
                        Number       = obj.Key,
                        Count        = obj.Count(),
                        SaleMoney    = obj.Select(o => o.PopSellerGetMoney).Sum(),
                        PerCount     = obj.Count() * 100F / count,
                        PerSaleMoney = obj.Select(o => o.PopSellerGetMoney).Sum() * 100F / total
                    }).OrderByDescending(obj => obj.PerSaleMoney).ToArray();

                    //右下统计每日销售占比
                    List <SaleCountInfo> scis = new List <SaleCountInfo>();
                    var dateGroup             = targetScs
                                                .GroupBy(obj => this.cbbTimeType.SelectedIndex == 0
                            ? obj.PopPayTime.Date
                            : obj.DeliveryTime.Date).ToArray();
                    foreach (var dg in dateGroup)
                    {
                        SaleCountInfo sc =
                            new SaleCountInfo
                        {
                            VendorName = dg.Key.ToString("yyyy-MM-dd"),
                            Number     = string.Join(",", dg.Select(obj => obj.Number).Distinct()),
                            Count      = dg.Count(),
                            SaleMoney  = dg.Select(obj => obj.PopSellerGetMoney).Sum()
                        };
                        var matchScs = scs.Where(obj => (this.cbbTimeType.SelectedIndex == 0
                                                            ? obj.PopPayTime.Date
                                                            : obj.DeliveryTime.Date) == dg.Key);
                        sc.PerCount     = sc.Count * 100F / matchScs.Count();
                        sc.PerSaleMoney = sc.SaleMoney * 100F / matchScs.Select(obj => obj.PopSellerGetMoney).Sum();
                        scis.Add(sc);
                    }
                    this.dgvGoodsInfo.ItemsSource = scis.OrderByDescending(obj => obj.VendorName).ToArray();
                }
                else
                {
                    targetScs = scs;
                    //所有
                    this.FillSaleMoneyInfo(targetScs.ToArray());
                    float total = targetScs.Select(obj => obj.PopSellerGetMoney).Sum();
                    int   count = targetScs.Length;
                    //左下统计厂家占比
                    var vGroup = targetScs.GroupBy(obj => VendorService.FormatVendorName(obj.Vendor)).ToArray();
                    this.dgvCountInfo2.ItemsSource = vGroup
                                                     .Select(obj => new SaleCountInfo
                    {
                        VendorName   = obj.Key,
                        SaleMoney    = obj.Select(o => o.PopSellerGetMoney).Sum(),
                        Count        = obj.Count(),
                        Number       = "",
                        PerCount     = obj.Count() * 100.0F / count,
                        PerSaleMoney = (100.0F * obj.Select(o => o.PopSellerGetMoney).Sum() / total)
                    }).OrderByDescending(obj => obj.PerSaleMoney).ToArray();
                    //右下统计商品销售占比
                    var gGroup = targetScs.GroupBy(obj => obj.GoodsId).ToArray();
                    this.dgvGoodsInfo.ItemsSource = gGroup
                                                    .Select(obj => new SaleCountInfo
                    {
                        VendorName   = obj.First().Vendor,
                        Number       = string.Join(",", obj.Select(o => o.Number).Distinct()),
                        Count        = obj.Count(),
                        SaleMoney    = obj.Select(o => o.PopSellerGetMoney).Sum(),
                        PerCount     = obj.Count() * 100F / count,
                        PerSaleMoney = obj.Select(o => o.PopSellerGetMoney).Sum() * 100F / total
                    }).OrderByDescending(obj => obj.PerSaleMoney).ToArray();
                }
                var ordersGroupByState = targetScs.GroupBy(obj => obj.State).OrderBy(obj => obj.Key).ToArray();
                foreach (var ogroup in ordersGroupByState)
                {
                    sis.Add(new SaleInfo
                    {
                        State     = EnumUtil.GetEnumValueDescription(ogroup.Key),
                        Count     = ogroup.Select(obj => obj.OrderId).Distinct().Count(),
                        SaleMoney = ogroup.Select(obj => obj.PopSellerGetMoney).Sum(),
                        CostMoney = ogroup.Select(obj => obj.ERPOrderGoodsMoney * obj.Count +
                                                  obj.ERPOrderDeliveryMoney +
                                                  obj.PopSellerGetMoney * GetCommissionPer(obj.ShopId)).Sum()
                    });
                }
                this.dgvCountInfo.ItemsSource = sis;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }