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 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 QuandoFiltraPorUsuariosSemSenhaTodosUsuariosRetornadosNaoPossuemSenha() { RemoveQueries.RemoverUsuariosCadastrados(); Usuario usuario1 = DefaultObjects.ObtemUsuarioPadrao(); usuario1.CriarSenha("123456"); Usuario usuario2 = DefaultObjects.ObtemUsuarioPadrao(); Usuario usuario3 = DefaultObjects.ObtemUsuarioPadrao(); DefaultPersistedObjects.PersistirUsuario(usuario1); DefaultPersistedObjects.PersistirUsuario(usuario2); DefaultPersistedObjects.PersistirUsuario(usuario3); UnitOfWorkNh.Session.Clear(); var usuarios = ObjectFactory.GetInstance <IUsuarios>(); IList <Usuario> usuariosSelecionados = usuarios.SemSenha().List(); Assert.AreEqual(2, usuariosSelecionados.Count); foreach (var usuarioSelecionado in usuariosSelecionados) { Assert.IsNull(usuarioSelecionado.Senha); } }
public void QuandoConsultarFornecedoresNaoVinculadosAoProdutoNenhumDosFornecedoresRetornadosEstaVinculadoAoProduto() { RemoveQueries.RemoverProdutosCadastrados(); RemoveQueries.RemoverFornecedoresCadastrados(); Session.BeginTransaction(); var produto = DefaultObjects.ObtemProdutoPadrao(); //CRIA 4 FORNECEDORES var fornecedor01 = DefaultObjects.ObtemFornecedorPadrao(); var fornecedor02 = DefaultObjects.ObtemFornecedorPadrao(); var fornecedor03 = DefaultObjects.ObtemFornecedorPadrao(); var fornecedor04 = DefaultObjects.ObtemFornecedorPadrao(); //VINCULA FORNECEDORES 1 E 2 AO PRODUTO. OS FORNECEDORES 3 E 4 NÃO SERÃO VINCULADOS produto.AdicionarFornecedores(new List <Fornecedor> { fornecedor01, fornecedor02 }); Session.Save(produto); Session.Save(fornecedor03); Session.Save(fornecedor04); Session.Transaction.Commit(); UnitOfWorkNh.Session.Clear(); var fornecedores = ObjectFactory.GetInstance <IFornecedores>(); fornecedores.FornecedoresNaoVinculadosAoProduto(produto.Codigo); Assert.AreEqual(2, fornecedores.Count()); IList <Fornecedor> fornecedoresNaoVinculados = fornecedores.List(); Assert.AreEqual(1, fornecedoresNaoVinculados.Count(x => x.Codigo == fornecedor03.Codigo)); Assert.AreEqual(1, fornecedoresNaoVinculados.Count(x => x.Codigo == fornecedor04.Codigo)); }
public void ConsultaListagemDeProcessosRetornaObjetoEsperado() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado(); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial); var consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>(); KendoGridVm kendoGridVm = consultaProcesso.Listar(new PaginacaoVm() { Page = 1, PageSize = 10, Take = 10 }, new ProcessoCotacaoFiltroVm()); Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros); ProcessoCotacaoMaterialListagemVm processoListagem = kendoGridVm.Registros.Cast <ProcessoCotacaoMaterialListagemVm>().First(); Assert.AreEqual(processoDeCotacaoDeMaterial.Id, processoListagem.Id); //Assert.AreEqual(processoDeCotacaoDeMaterial.Itens.First().Produto.Codigo, processoListagem.CodigoMaterial); Assert.AreEqual(processoDeCotacaoDeMaterial.Itens.First().Produto.Descricao, processoListagem.Material); //Assert.AreEqual(1000, processoListagem.Quantidade); Assert.AreEqual("Não Iniciado", processoListagem.Status); Assert.IsNotNull(processoDeCotacaoDeMaterial.DataLimiteDeRetorno); Assert.AreEqual(processoDeCotacaoDeMaterial.DataLimiteDeRetorno.Value.ToShortDateString(), processoListagem.DataTermino); }
public void QuandoConsultaQuotasEmUmaDeterminadaDataRetornaListaDeQuotasDeTodosOsFornecedoresDaquelaData() { RemoveQueries.RemoverQuotasCadastradas(); Quota quota = DefaultObjects.ObtemQuotaDeCarregamento(); DefaultPersistedObjects.PersistirQuota(quota); var consultaQuota = ObjectFactory.GetInstance <IConsultaQuota>(); IList <QuotaConsultarVm> quotas = consultaQuota.QuotasDaData(quota.Data); Assert.AreEqual(1, quotas.Count); }
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 FiltrarUmProcessoDeCotacaoPorStatusRetornaProcessoEsperado() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); ProcessoDeCotacaoDeMaterial processoDeCotacao1 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado(); ProcessoDeCotacaoDeMaterial processoDeCotacao2 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialFechado(); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacao1); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacao2); var processosDeCotacao = ObjectFactory.GetInstance <IProcessosDeCotacao>(); IList <ProcessoDeCotacao> processosConsultados = processosDeCotacao.FiltraPorStatus(Enumeradores.StatusProcessoCotacao.NaoIniciado).List(); Assert.AreEqual(1, processosConsultados.Count()); Assert.AreEqual(Enumeradores.StatusProcessoCotacao.NaoIniciado, processosConsultados.First().Status); }
public void RepositorioDoProcessoDeCotacaoDeMateriasContemApenasProcessosDeCotacaoDeMaterial() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); //crio dois processos de cotação (um de frete e um de materiais) e persisto ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado(); ProcessoDeCotacaoDeFrete processoDeCotacaoDeFrete = DefaultObjects.ObtemProcessoDeCotacaoDeFrete(); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacaoDeFrete); //listo todos os processsos do repositório: deve retornar apenas o processo de cotação de material var processosDeCotacaoDeMaterias = ObjectFactory.GetInstance <IProcessosDeCotacaoDeMaterial>(); var todosProcessos = processosDeCotacaoDeMaterias.List(); Assert.AreEqual(1, todosProcessos.Count); Assert.IsInstanceOfType(todosProcessos.Single(), typeof(ProcessoDeCotacaoDeMaterial)); }
public void ConsultaProcessoRetornaObjetoEsperado() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado(); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial); var consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>(); ProcessoCotacaoMaterialCadastroVm processoCotacaoMaterialCadastroVm = consultaProcesso.ConsultaProcesso(processoDeCotacaoDeMaterial.Id); Assert.AreEqual(processoDeCotacaoDeMaterial.Id, processoCotacaoMaterialCadastroVm.Id); //Assert.AreEqual(processoDeCotacaoDeMaterial.Itens.First().Produto.Codigo,processoCotacaoMaterialCadastroVm.CodigoMaterial); Assert.IsTrue(processoDeCotacaoDeMaterial.DataLimiteDeRetorno.HasValue); Assert.AreEqual(processoDeCotacaoDeMaterial.DataLimiteDeRetorno.Value.ToShortDateString(), processoCotacaoMaterialCadastroVm.DataLimiteRetorno); Assert.AreEqual("Não Iniciado", processoCotacaoMaterialCadastroVm.DescricaoStatus); Assert.AreEqual("Requisitos do Processo de Cotação de Materiais", processoCotacaoMaterialCadastroVm.Requisitos); }
public void ConsigoFiltrarQuotaPorTerminal() { RemoveQueries.RemoverQuotasCadastradas(); Quota quota1 = DefaultObjects.ObtemQuotaDeDescarregamentoParaTerminalEspecifico("1000"); Quota quota2 = DefaultObjects.ObtemQuotaDeDescarregamentoParaTerminalEspecifico("2000"); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota2); var quotas = ObjectFactory.GetInstance <IQuotas>(); IList <Quota> quotasConsultadas = quotas.DoTerminal("1000").List(); Assert.AreEqual(1, quotasConsultadas.Count()); var quotaConsultada = quotasConsultadas.First(); Assert.AreEqual("1000", quotaConsultada.CodigoTerminal); }
public void ConsultaPrevistoRealizadoFiltraPorFornecedorCorretamente() { //cria duas quotas, dois fornecedores. Os fornecedores tem agendamentos nas duas quotas. //Apenas uma das quotas de cada fornecedor está realizada. RemoveQueries.RemoverQuotasCadastradas(); Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao(); var quota1 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor1, "1000", DateTime.Today.AddDays(1), 100); var quota2 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor1, "1000", DateTime.Today.AddDays(2), 200); var quota3 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor2, "1000", DateTime.Today.AddDays(1), 150); var quota4 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor2, "1000", DateTime.Today.AddDays(2), 250); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota2); DefaultPersistedObjects.PersistirQuota(quota3); DefaultPersistedObjects.PersistirQuota(quota4); AgendamentoDeCarregamento agendamento1 = quota1.InformarAgendamento(new AgendamentoDeCarregamentoCadastroVm { Placa = "IOQ3434", Peso = 30 }); AgendamentoDeCarregamento agendamento2 = quota4.InformarAgendamento(new AgendamentoDeCarregamentoCadastroVm { Placa = "IOQ3435", Peso = 250 }); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota4); quota1.RealizarAgendamento(agendamento1.Id); quota4.RealizarAgendamento(agendamento2.Id); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota4); var consultaQuotaRelatorio = ObjectFactory.GetInstance <IConsultaQuotaRelatorio>(); IList <QuotaPlanejadoRealizadoVm> quotas = consultaQuotaRelatorio.PlanejadoRealizado( new RelatorioAgendamentoFiltroVm { CodigoTerminal = "1000", CodigoFornecedor = fornecedor1.Codigo }); Assert.AreEqual(1, quotas.Count); }
public void QuandoFiltroRequisicoesAtivasTodasRequisicaoRetornadasEstaoAtivas() { RemoveQueries.RemoverRequisicoesDeCompraCadastradas(); RequisicaoDeCompra requisicaoDeCompra1 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); RequisicaoDeCompra requisicaoDeCompra2 = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); requisicaoDeCompra2.Bloquear(); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicaoDeCompra1); DefaultPersistedObjects.PersistirRequisicaoDeCompra(requisicaoDeCompra2); var requisicoesDeCompra = ObjectFactory.GetInstance <IRequisicoesDeCompra>(); var requisicoesAtivas = requisicoesDeCompra.SomenteAtivas().List(); Assert.AreEqual(1, requisicoesAtivas.Count); Assert.AreEqual(requisicaoDeCompra1.Id, requisicoesAtivas.Single().Id); }
public void QuandoFiltraSomenteFornecedoresQueNaoSaoDeTransporteTodosFornecedoresListadosNaoSaoDeTransporte() { RemoveQueries.RemoverFornecedoresCadastrados(); Fornecedor naoTransportadora = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor transportadora = DefaultObjects.ObtemTransportadoraPadrao(); DefaultPersistedObjects.PersistirFornecedor(naoTransportadora); DefaultPersistedObjects.PersistirFornecedor(transportadora); UnitOfWorkNh.Session.Clear(); var fornecedores = ObjectFactory.GetInstance <IFornecedores>(); IList <Fornecedor> naoTransportadoras = fornecedores.RemoveTransportadoras().List(); Assert.AreEqual(1, naoTransportadoras.Count); Assert.IsFalse(naoTransportadoras.First().Transportadora); }
public void FiltrarUmProcessoDeCotacaoPorDescricaoDoProdutoRetornaProcessoEsperado() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); Produto produto1 = DefaultObjects.ObtemProdutoPadrao(); ProcessoDeCotacaoDeFrete processoDeCotacao1 = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComProdutoEspecifico(produto1); Produto produto2 = DefaultObjects.ObtemProdutoPadrao(); ProcessoDeCotacaoDeFrete processoDeCotacao2 = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComProdutoEspecifico(produto2); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao1); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao2); UnitOfWorkNh.Session.Clear(); var processosDeCotacao = ObjectFactory.GetInstance <IProcessosDeCotacao>(); IList <ProcessoDeCotacao> processosConsultados = processosDeCotacao.DescricaoDoProdutoContendo(produto2.Descricao).List(); Assert.AreEqual(1, processosConsultados.Count()); Assert.AreEqual(produto2.Descricao, processosConsultados.First().Itens.First().Produto.Descricao); }
public void ConsigoFiltrarQuotasAPartirDeUmaData() { RemoveQueries.RemoverQuotasCadastradas(); var dataDoFiltro = DateTime.Today; Quota quotaAntesDoPeriodo = DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(dataDoFiltro.AddDays(-1)); Quota quotaNoPeriodo = DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(dataDoFiltro); Quota quotaDePoisDoPeriodo = DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(dataDoFiltro.AddDays(1)); DefaultPersistedObjects.PersistirQuota(quotaAntesDoPeriodo); DefaultPersistedObjects.PersistirQuota(quotaNoPeriodo); DefaultPersistedObjects.PersistirQuota(quotaDePoisDoPeriodo); var quotas = ObjectFactory.GetInstance <IQuotas>(); IList <Quota> quotasConsultadas = quotas.APartirDe(dataDoFiltro).List(); Assert.AreEqual(2, quotasConsultadas.Count); Assert.IsTrue(quotasConsultadas.Any(x => x.Data == dataDoFiltro)); Assert.IsTrue(quotasConsultadas.Any(x => x.Data == dataDoFiltro.AddDays(1))); }
public void QuandoConsultarFornecedoresNaoVinculadosRetornaListaDeFornecedores() { RemoveQueries.RemoverFornecedoresCadastrados(); Produto produto = DefaultObjects.ObtemProdutoPadrao(); Fornecedor fornecedor01 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor02 = DefaultObjects.ObtemFornecedorPadrao(); produto.AdicionarFornecedores(new List <Fornecedor> { fornecedor01, fornecedor02 }); Fornecedor fornecedor03 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor04 = DefaultObjects.ObtemFornecedorPadrao(); DefaultPersistedObjects.PersistirProduto(produto); DefaultPersistedObjects.PersistirFornecedor(fornecedor03); DefaultPersistedObjects.PersistirFornecedor(fornecedor04); UnitOfWorkNh.Session.Clear(); var consultaFornecedores = ObjectFactory.GetInstance <IConsultaFornecedor>(); var paginacaoVm = new PaginacaoVm() { Page = 1, PageSize = 10, Take = 10 }; var filtro = new FornecedorDoProdutoFiltro() { CodigoDosProdutos = new[] { produto.Codigo } }; var kendoGridVm = consultaFornecedores.FornecedoresNaoVinculadosAoProduto(paginacaoVm, filtro); Assert.AreEqual(2, kendoGridVm.QuantidadeDeRegistros); var viewModels = kendoGridVm.Registros.Cast <FornecedorCadastroVm>().ToList(); Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor03.Codigo)); Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor04.Codigo)); }
public void QuandoConsultaFornecedoresNaoVinculadosAUmaListaDeProdutosNenhumDosFornecedoresRetornadosEstaVinculadoAAlgumProdutoDaLista() { RemoveQueries.RemoverProdutosCadastrados(); RemoveQueries.RemoverFornecedoresCadastrados(); //cenário: //três fornecedores e três produtos: Os fornecedores 1 e 2 estão ligados aos produtos 1 e 2. Já o fornecedor 3 está ligado ao produto 3 . //vou passsar na lista de produtos, apenas os produtos 1 e 2. Deve retornar na lista de fornecedores apenas o fornecedor 3, que embora //esteja ligado ao produto 3, não está ligado a nenhum dos produtos da lista (1, 2). Produto produto1 = DefaultObjects.ObtemProdutoPadrao(); Produto produto2 = DefaultObjects.ObtemProdutoPadrao(); Produto produto3 = DefaultObjects.ObtemProdutoPadrao(); Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor3 = DefaultObjects.ObtemFornecedorPadrao(); produto1.AdicionarFornecedores(new List <Fornecedor> { fornecedor1 }); produto2.AdicionarFornecedores(new List <Fornecedor> { fornecedor2 }); produto3.AdicionarFornecedores(new List <Fornecedor> { fornecedor3 }); DefaultPersistedObjects.PersistirProduto(produto1); DefaultPersistedObjects.PersistirProduto(produto2); DefaultPersistedObjects.PersistirProduto(produto3); var fornecedores = ObjectFactory.GetInstance <IFornecedores>(); IList <Fornecedor> fornecedoresNaoVinculados = fornecedores.FornecedoresNaoVinculadosAosProdutos(new[] { produto1.Codigo, produto2.Codigo }).List(); Assert.AreEqual(1, fornecedoresNaoVinculados.Count); Assert.IsTrue(fornecedoresNaoVinculados.Any(x => x.Codigo == fornecedor3.Codigo)); }
public void QuandoConsultaListagemDeUmProcessoQueNaoPossuiItensRetornaObjetoEsperado() { RemoveQueries.RemoverProcessosDeCotacaoCadastrados(); var processoDeCotacaoDeMaterial = new ProcessoDeCotacaoDeMaterial(); processoDeCotacaoDeMaterial.Atualizar(DateTime.Today, "requisitos"); DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial); var consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>(); KendoGridVm kendoGridVm = consultaProcesso.Listar(new PaginacaoVm() { Page = 1, PageSize = 10, Take = 10 }, new ProcessoCotacaoFiltroVm()); Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros); ProcessoCotacaoMaterialListagemVm processoListagem = kendoGridVm.Registros.Cast <ProcessoCotacaoMaterialListagemVm>().First(); Assert.AreEqual(processoDeCotacaoDeMaterial.Id, processoListagem.Id); Assert.AreEqual("Sem Materiais", processoListagem.Material); Assert.AreEqual("Não Iniciado", processoListagem.Status); Assert.IsNotNull(processoDeCotacaoDeMaterial.DataLimiteDeRetorno); Assert.AreEqual(processoDeCotacaoDeMaterial.DataLimiteDeRetorno.Value.ToShortDateString(), processoListagem.DataTermino); }
public void ConsultaPrevistoRealizadoPorDataRetornaOsValoresAgrupadosCorretamente() { //cria duas quotas, dois fornecedores. Os fornecedores tem agendamentos nas duas quotas. //Apenas uma das quotas de cada fornecedor está realizada. RemoveQueries.RemoverQuotasCadastradas(); Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao(); Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao(); var quota1 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor1, "1000", DateTime.Today.AddDays(1), 100); var quota2 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor1, "1000", DateTime.Today.AddDays(2), 200); var quota3 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor2, "1000", DateTime.Today.AddDays(1), 150); var quota4 = new Quota(Enumeradores.MaterialDeCarga.Farelo, fornecedor2, "1000", DateTime.Today.AddDays(2), 250); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota2); DefaultPersistedObjects.PersistirQuota(quota3); DefaultPersistedObjects.PersistirQuota(quota4); AgendamentoDeCarregamento agendamento1 = quota1.InformarAgendamento(new AgendamentoDeCarregamentoCadastroVm { Placa = "IOQ3434", Peso = 30 }); AgendamentoDeCarregamento agendamento2 = quota4.InformarAgendamento(new AgendamentoDeCarregamentoCadastroVm { Placa = "IOQ3435", Peso = 250 }); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota4); quota1.RealizarAgendamento(agendamento1.Id); quota4.RealizarAgendamento(agendamento2.Id); DefaultPersistedObjects.PersistirQuota(quota1); DefaultPersistedObjects.PersistirQuota(quota4); var consultaQuotaRelatorio = ObjectFactory.GetInstance <IConsultaQuotaRelatorio>(); IList <QuotaPlanejadoRealizadoPorDataVm> quotas = consultaQuotaRelatorio.PlanejadoRealizadoPorData( new RelatorioAgendamentoFiltroVm { CodigoTerminal = "1000" }); Assert.AreEqual(4, quotas.Count); //Assert Fornecedor 1 - Dia 1 QuotaPlanejadoRealizadoPorDataVm planejadoRealizadoFornecedor1 = quotas .First(x => x.NomeDoFornecedor == fornecedor1.Codigo + " - " + fornecedor1.Nome && x.Data == DateTime.Today.AddDays(1).ToShortDateString()); Assert.AreEqual(fornecedor1.Codigo + " - " + fornecedor1.Nome, planejadoRealizadoFornecedor1.NomeDoFornecedor); Assert.AreEqual("1000", planejadoRealizadoFornecedor1.CodigoTerminal); Assert.AreEqual(quota1.FluxoDeCarga.Descricao(), planejadoRealizadoFornecedor1.FluxoDeCarga); Assert.AreEqual(100, planejadoRealizadoFornecedor1.Quota); Assert.AreEqual(30, planejadoRealizadoFornecedor1.PesoRealizado); //Assert Fornecedor 1 - Dia 2 planejadoRealizadoFornecedor1 = quotas .First(x => x.NomeDoFornecedor == fornecedor1.Codigo + " - " + fornecedor1.Nome && x.Data == DateTime.Today.AddDays(2).ToShortDateString()); Assert.AreEqual(fornecedor1.Codigo + " - " + fornecedor1.Nome, planejadoRealizadoFornecedor1.NomeDoFornecedor); Assert.AreEqual("1000", planejadoRealizadoFornecedor1.CodigoTerminal); Assert.AreEqual(quota1.FluxoDeCarga.Descricao(), planejadoRealizadoFornecedor1.FluxoDeCarga); Assert.AreEqual(200, planejadoRealizadoFornecedor1.Quota); Assert.AreEqual(0, planejadoRealizadoFornecedor1.PesoRealizado); //Assert Fornecedor 2 - Dia 1 QuotaPlanejadoRealizadoVm planejadoRealizadoFornecedor2 = quotas .First(x => x.NomeDoFornecedor == fornecedor2.Codigo + " - " + fornecedor2.Nome && x.Data == DateTime.Today.AddDays(1).ToShortDateString()); Assert.AreEqual(fornecedor2.Codigo + " - " + fornecedor2.Nome, planejadoRealizadoFornecedor2.NomeDoFornecedor); Assert.AreEqual("1000", planejadoRealizadoFornecedor2.CodigoTerminal); Assert.AreEqual(quota1.FluxoDeCarga.Descricao(), planejadoRealizadoFornecedor2.FluxoDeCarga); Assert.AreEqual(150, planejadoRealizadoFornecedor2.Quota); Assert.AreEqual(0, planejadoRealizadoFornecedor2.PesoRealizado); //Assert Fornecedor 2 - Dia 2 planejadoRealizadoFornecedor2 = quotas .First(x => x.NomeDoFornecedor == fornecedor2.Codigo + " - " + fornecedor2.Nome && x.Data == DateTime.Today.AddDays(2).ToShortDateString()); Assert.AreEqual(fornecedor2.Codigo + " - " + fornecedor2.Nome, planejadoRealizadoFornecedor2.NomeDoFornecedor); Assert.AreEqual("1000", planejadoRealizadoFornecedor2.CodigoTerminal); Assert.AreEqual(quota1.FluxoDeCarga.Descricao(), planejadoRealizadoFornecedor2.FluxoDeCarga); Assert.AreEqual(250, planejadoRealizadoFornecedor2.Quota); Assert.AreEqual(250, planejadoRealizadoFornecedor2.PesoRealizado); }
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); }