public void QuandoCrioUmaCotacaoParaUmItemEAdicionadoHistoricoDePreco() { ProcessoDeCotacaoDeMaterial processo = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(DefaultObjects.ObtemCompradorDeSuprimentos()); string codigoFornecedor = processo.FornecedoresParticipantes.Single().Fornecedor.Codigo; int idProcessoCotacaoItem = processo.Itens.Single().Id; CotacaoMaterial cotacao = processo.InformarCotacao(codigoFornecedor, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "inc"); var cotacaoItem = (CotacaoMaterialItem)processo.InformarCotacaoDeItem(idProcessoCotacaoItem, cotacao.Id, 100, 0, 20, DateTime.Today.AddDays(5), "obs"); Assert.AreEqual(1, cotacaoItem.HistoricosDePreco.Count); Assert.AreEqual(100, cotacaoItem.HistoricosDePreco.Single().Valor); }
public void ConsigoPersistirEConsultarUmProcessoDeCotacaoComHistoricoDePrecos() { ProcessoDeCotacaoDeMaterial processo = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(DefaultObjects.ObtemCompradorDeSuprimentos()); string codigoFornecedor = processo.FornecedoresParticipantes.Single().Fornecedor.Codigo; int idProcessoCotacaoItem = processo.Itens.Single().Id; CotacaoMaterial cotacao = processo.InformarCotacao(codigoFornecedor, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "inc"); var cotacaoItem = (CotacaoMaterialItem)processo.InformarCotacaoDeItem(idProcessoCotacaoItem, cotacao.Id, 100, 0, 20, DateTime.Today.AddDays(5), "obs"); cotacaoItem.Atualizar(95, 0, 20, DateTime.Today.AddDays(5), "obs"); Assert.AreEqual(2, cotacaoItem.HistoricosDePreco.Count); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo); var processosDeCotacaoDeMaterial = ObjectFactory.GetInstance <IProcessosDeCotacao>(); var processoConsultado = processosDeCotacaoDeMaterial.BuscaPorId(processo.Id).Single(); Assert.AreEqual(2, processoConsultado.FornecedoresParticipantes.Single().Cotacao.Itens.Single().HistoricosDePreco.Count); }
public void QuandoBuscoProcessosDeCotacaoDeUmCompradorEspecificoTodosProcessosSaoDesteComprador() { //crio dois processos de cotação: 1 para cada comprador Usuario comprador1 = DefaultObjects.ObtemUsuarioPadrao(); comprador1.AdicionarPerfil(Enumeradores.Perfil.CompradorSuprimentos); ProcessoDeCotacaoDeMaterial processoDeCotacao1 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador1); Usuario comprador2 = DefaultObjects.ObtemUsuarioPadrao(); comprador2.AdicionarPerfil(Enumeradores.Perfil.CompradorSuprimentos); ProcessoDeCotacaoDeMaterial processoDeCotacao2 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAberto(comprador2); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacao1); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacao2); var processosDeCotacaoDeMateriais = ObjectFactory.GetInstance <IProcessosDeCotacaoDeMaterial>(); IList <ProcessoDeCotacao> processosConsultados = processosDeCotacaoDeMateriais.EfetuadosPeloComprador(comprador1.Login).List(); Assert.AreEqual(1, processosConsultados.Count); Assert.AreEqual(processoDeCotacao1.Id, processosConsultados.Single().Id); }
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); }