Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }
Пример #4
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #11
0
        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);
        }
Пример #12
0
        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);
        }
Пример #14
0
        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);
        }
Пример #16
0
        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));
        }
Пример #18
0
        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);
        }
Пример #20
0
        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);
        }
Пример #21
0
        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);
        }