public void QuandoConsultoRequisicoesDisponiveisParaUmProcessoDeCotacaoListaAsRequisicoesQueJaEstaoAssociadasAoProcessoETambemAsQueNaoEstaoAssociadasANenhumOutroProcesso() { //Cria duas requisições de compra: 1 e 2 //Cria um processo de cotação 1 e associa a requisição 1 com este processo //Salva os registros //Depois consultar novamente as requisições para o processo 1: deve listar as requisiões 1 e 2 RemoveQueries.RemoverRequisicoesDeCompraCadastradas(); RequisicaoDeCompra requisicao1 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); RequisicaoDeCompra requisicao2 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); var processo1 = new ProcessoDeCotacaoDeMaterial(); processo1.AdicionarItem(requisicao1); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicao1); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicao2); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo1); var consultaRequisicao = ObjectFactory.GetInstance <IConsultaRequisicaoDeCompra>(); var kendoGridVm = consultaRequisicao.Listar(DefaultObjects.ObtemPaginacaoDefault(), new RequisicaoDeCompraFiltroVm(processo1.Id)); Assert.AreEqual(2, kendoGridVm.QuantidadeDeRegistros); }
public void QuandoUmaRequisicaoDeCompraJaGerouUmProcessoDeCotacaoNaoApareceMaisDisponivelParaOutrosProcessos() { //Cria duas requisições de compra: 1 e 2 //Cria um processo de cotação e associa a requisição 1 com este processo //Cria um novo processo de cotação, salva e Lista as requisições para este processo. A requisição ' não deve aparecer. RemoveQueries.RemoverRequisicoesDeCompraCadastradas(); RequisicaoDeCompra requisicao1 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); RequisicaoDeCompra requisicao2 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); var processo1 = new ProcessoDeCotacaoDeMaterial(); processo1.AdicionarItem(requisicao1); var processo2 = new ProcessoDeCotacaoDeMaterial(); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicao2); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo1); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo2); var consultaRequisicao = ObjectFactory.GetInstance <IConsultaRequisicaoDeCompra>(); var kendoGridVm = consultaRequisicao.Listar(DefaultObjects.ObtemPaginacaoDefault(), new RequisicaoDeCompraFiltroVm(processo2.Id)); Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros); var requisicaoDeCompraVm = kendoGridVm.Registros.Cast <RequisicaoDeCompraVm>().Single(); Assert.AreEqual(requisicao2.Numero, requisicaoDeCompraVm.NumeroRequisicao); Assert.AreEqual(requisicao2.NumeroItem, requisicaoDeCompraVm.NumeroItem); }
public void QuandoConsultaForneceedoresDeVariosProdutosRetornaListaDeTodosOFornecedoresVinculadosAosProdutosSemRepetir() { //cenário: dois produtos, três fornecedores distintos. Sendo que um dos fornecedores está vinculado a ambos produtos. //Os outros dois fornecedores, cada um está vinculado a um produto. //Deve retornar uma lista com 3 fornecedores, sem repetir o fornecedor que está compartilhado com os dois produtos. Produto produto1 = DefaultObjects.ObtemProdutoPadrao(); Produto produto2 = DefaultObjects.ObtemProdutoPadrao(); Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedorCompartilhado = DefaultObjects.ObtemFornecedorPadrao(); produto1.AdicionarFornecedores(new List <Fornecedor> { fornecedor1, fornecedorCompartilhado }); produto2.AdicionarFornecedores(new List <Fornecedor> { fornecedor2, fornecedorCompartilhado }); DefaultPersistedObjects.PersistirProduto(produto1); DefaultPersistedObjects.PersistirProduto(produto2); var consultaProduto = ObjectFactory.GetInstance <IConsultaProduto>(); PaginacaoVm paginacaoVm = DefaultObjects.ObtemPaginacaoDefault(); KendoGridVm kendoGridVm = consultaProduto.FornecedoresDosProdutos(paginacaoVm, new [] { produto1.Codigo, produto2.Codigo }); Assert.AreEqual(3, kendoGridVm.QuantidadeDeRegistros); IList <FornecedorCadastroVm> registros = kendoGridVm.Registros.Cast <FornecedorCadastroVm>().ToList(); Assert.IsTrue(registros.Any(x => x.Codigo == fornecedor1.Codigo)); Assert.IsTrue(registros.Any(x => x.Codigo == fornecedor2.Codigo)); Assert.IsTrue(registros.Any(x => x.Codigo == fornecedorCompartilhado.Codigo)); }
public void ConsigoListarAsRequisicoesDeCompra() { RemoveQueries.RemoverRequisicoesDeCompraCadastradas(); RequisicaoDeCompra requisicao1 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); RequisicaoDeCompra requisicao2 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicao1); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicao2); var consultaRequisicao = ObjectFactory.GetInstance <IConsultaRequisicaoDeCompra>(); var kendoGridVm = consultaRequisicao.Listar(DefaultObjects.ObtemPaginacaoDefault(), new RequisicaoDeCompraFiltroVm(10)); Assert.AreEqual(2, kendoGridVm.QuantidadeDeRegistros); }
public void QuandoConsultaEficienciaNegociacaoRetornaEficienciaDosProcessosFechados() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); //cria dois compradores Usuario comprador1 = DefaultObjects.ObtemCompradorDeSuprimentos(); Usuario comprador2 = DefaultObjects.ObtemCompradorDeSuprimentos(); //cria um processo aberto e um fechado para o comprador1 ProcessoDeCotacaoDeMaterial processo11 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador1); var cotacaoMaterial11 = processo11.InformarCotacao(processo11.FornecedoresParticipantes.Single().Fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "incoterm 2"); var cotacaoItem11 = cotacaoMaterial11.InformarCotacaoDeItem(processo11.Itens.Single(), 100, 0, 50, DateTime.Today.AddDays(5), "obs11"); cotacaoItem11.InformarImposto(Enumeradores.TipoDeImposto.Icms, 12); cotacaoItem11.InformarImposto(Enumeradores.TipoDeImposto.Ipi, 10); cotacaoItem11.InformarImposto(Enumeradores.TipoDeImposto.PisCofins, 9); var processoDeCotacaoItem11 = (ProcessoDeCotacaoDeMaterialItem)processo11.Itens.Single(); //cotacaoItem11.Atualizar(95,50,"obs11"); cotacaoItem11.Selecionar(50); processo11.Fechar(); ProcessoDeCotacaoDeMaterial processo12 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador1); //cria um processo aberto e um fechado para o comprador2 ProcessoDeCotacaoDeMaterial processo21 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador2); var cotacaoMaterial21 = processo21.InformarCotacao(processo21.FornecedoresParticipantes.Single().Fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "incoterm 2"); var cotacaoItem21 = cotacaoMaterial21.InformarCotacaoDeItem(processo21.Itens.Single(), 110, 0, 50, DateTime.Today.AddDays(5), "obs21"); cotacaoItem21.InformarImposto(Enumeradores.TipoDeImposto.Icms, 12); cotacaoItem21.InformarImposto(Enumeradores.TipoDeImposto.Ipi, 10); cotacaoItem21.InformarImposto(Enumeradores.TipoDeImposto.PisCofins, 9); cotacaoItem21.Atualizar(99, 50, "obs21"); cotacaoItem21.Selecionar(50); processo21.Fechar(); var processoDeCotacaoItem21 = (ProcessoDeCotacaoDeMaterialItem)processo21.Itens.Single(); ProcessoDeCotacaoDeMaterial processo22 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador2); DefaultPersistedObjects.PersistirProcessosDeCotacaoDeMaterial(new List <ProcessoDeCotacaoDeMaterial> { processo11, processo12, processo21, processo22 }); var consulta = ObjectFactory.GetInstance <IConsultaEficienciaDeNegociacao>(); KendoGridVm kendoGridVm = consulta.ConsultarResumo(DefaultObjects.ObtemPaginacaoDefault(), new EficienciaNegociacaoFiltroVm()); //retorna um registro para cada comprador Assert.AreEqual(3, kendoGridVm.QuantidadeDeRegistros); var eficiencias = kendoGridVm.Registros.Cast <EficienciaDeNegociacaoResumoVm>().ToList(); var eficienciaDoComprador1 = eficiencias.Single(x => x.Comprador == comprador1.Nome); Assert.AreEqual(processo11.Id, eficienciaDoComprador1.IdProcessoCotacao); Assert.AreEqual(processoDeCotacaoItem11.Id, eficienciaDoComprador1.IdProcessoCotacaoItem); Assert.AreEqual(cotacaoItem11.ProcessoDeCotacaoItem.Produto.Descricao, eficienciaDoComprador1.Produto); Assert.AreEqual(processoDeCotacaoItem11.RequisicaoDeCompra.Numero, eficienciaDoComprador1.NumeroDaRequisicao); Assert.AreEqual(processoDeCotacaoItem11.RequisicaoDeCompra.NumeroItem, eficienciaDoComprador1.NumeroDoItem); Assert.AreEqual(0, eficienciaDoComprador1.ValorDeEficiencia); Assert.AreEqual(0, eficienciaDoComprador1.PercentualDeEficiencia); var eficienciaDoComprador2 = eficiencias.Single(x => x.Comprador == comprador2.Nome); Assert.AreEqual(processo21.Id, eficienciaDoComprador2.IdProcessoCotacao); Assert.AreEqual(processoDeCotacaoItem21.Id, eficienciaDoComprador2.IdProcessoCotacaoItem); Assert.AreEqual(cotacaoItem21.ProcessoDeCotacaoItem.Produto.Descricao, eficienciaDoComprador2.Produto); Assert.AreEqual(processoDeCotacaoItem21.RequisicaoDeCompra.Numero, eficienciaDoComprador2.NumeroDaRequisicao); Assert.AreEqual(processoDeCotacaoItem21.RequisicaoDeCompra.NumeroItem, eficienciaDoComprador2.NumeroDoItem); Assert.AreEqual(550, eficienciaDoComprador2.ValorDeEficiencia); Assert.AreEqual(10, eficienciaDoComprador2.PercentualDeEficiencia); var eficienciaTotal = eficiencias.Single(x => x.Produto == "TOTAL"); Assert.IsNotNull(eficienciaTotal); Assert.AreEqual(550, eficienciaTotal.ValorDeEficiencia); Assert.AreEqual((decimal)5.24, eficienciaTotal.PercentualDeEficiencia); }