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);
        }
Beispiel #2
0
        public int?AtualizarProcesso(ProcessoDeCotacaoAtualizarVm atualizacaoDoProcessoDeCotacaoVm)
        {
            try
            {
                ProcessoDeCotacaoDeMaterial processoDeCotacao;
                _unitOfWork.BeginTransaction();
                if (atualizacaoDoProcessoDeCotacaoVm.Id.HasValue)
                {
                    processoDeCotacao = (ProcessoDeCotacaoDeMaterial)_processosDeCotacao.BuscaPorId(atualizacaoDoProcessoDeCotacaoVm.Id.Value).Single();
                }
                else
                {
                    processoDeCotacao = new ProcessoDeCotacaoDeMaterial();
                }

                processoDeCotacao.Atualizar(atualizacaoDoProcessoDeCotacaoVm.DataLimiteRetorno, atualizacaoDoProcessoDeCotacaoVm.Requisitos);
                _processosDeCotacao.Save(processoDeCotacao);
                _unitOfWork.Commit();
                return(processoDeCotacao.Id);
            }
            catch (Exception)
            {
                _unitOfWork.RollBack();
                throw;
            }
        }
        public void RetornaListaComTodosFornecedoresParticipantesDoProcessoDeCotacao()
        {
            //crio um processo de cotação de materiais
            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processoDeCotacao.Atualizar(DateTime.Today.AddDays(4), "req");

            Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor3 = DefaultObjects.ObtemFornecedorPadrao();

            processoDeCotacao.AdicionarFornecedor(fornecedor1);
            processoDeCotacao.AdicionarFornecedor(fornecedor2);
            processoDeCotacao.AdicionarFornecedor(fornecedor3);

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacao);

            var consulta = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>();

            FornecedorVm[] fornecedores = consulta.ListarFornecedores(processoDeCotacao.Id);

            Assert.AreEqual(3, fornecedores.Count());

            Assert.IsTrue(fornecedores.Any(x => x.Codigo == fornecedor1.Codigo && x.Nome == fornecedor1.Nome));
            Assert.IsTrue(fornecedores.Any(x => x.Codigo == fornecedor2.Codigo && x.Nome == fornecedor2.Nome));
            Assert.IsTrue(fornecedores.Any(x => x.Codigo == fornecedor3.Codigo && x.Nome == fornecedor3.Nome));
        }
Beispiel #4
0
        public void NaoEPossivelAbrirOProcessoDeCotacaoSeADataLimiteDeRetornoNaoEstiverPreenchida()
        {
            RequisicaoDeCompra          requisicaoDeCompra          = DefaultObjects.ObtemRequisicaoDeCompraPadrao();
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = requisicaoDeCompra.GerarProcessoDeCotacaoDeMaterial();

            processoDeCotacaoDeMaterial.Abrir(DefaultObjects.ObtemUsuarioPadrao());
        }
Beispiel #5
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);
        }
        public void QuandoConsultoUmaCotacaoDoFornecedorQueJaFoiPreenchidaRetornaOsDadosEsperados()
        {
            ProcessoDeCotacaoDeMaterial processo = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
            Fornecedor fornecedor = processo.FornecedoresParticipantes.First().Fornecedor;
            var        cotacao    = processo.InformarCotacao(fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(),
                                                             DefaultObjects.ObtemIncotermPadrao(),
                                                             "Desc Incoterm");
            var processoCotacaoItem = processo.Itens.First();

            cotacao.InformarCotacaoDeItem(processoCotacaoItem, 100, 120, 12, DateTime.Today.AddMonths(1), "observacoes");


            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo);

            var consulta = ObjectFactory.GetInstance <IConsultaCotacaoDoFornecedor>();
            CotacaoMaterialCadastroVm vm = consulta.ConsultarCotacaoDeMaterial(processo.Id, fornecedor.Codigo);

            Assert.IsNotNull(vm);
            Assert.AreEqual(processo.Id, vm.IdProcessoCotacao);
            Assert.AreEqual(cotacao.Id, vm.IdCotacao);

            Assert.AreEqual(cotacao.CondicaoDePagamento.Codigo, vm.CodigoCondicaoPagamento);
            Assert.AreEqual(cotacao.Incoterm.Codigo, vm.CodigoIncoterm);
            Assert.AreEqual("Desc Incoterm", vm.DescricaoIncoterm);
            Assert.AreEqual(fornecedor.Codigo, vm.CodigoFornecedor);
            Assert.IsTrue(processo.DataLimiteDeRetorno.HasValue);
            Assert.AreEqual(processo.DataLimiteDeRetorno.Value.ToShortDateString(), vm.DataLimiteDeRetorno);

            Assert.AreEqual("Aberto", vm.Status);
        }
        public void QuandoInformoImpostosDeUmaCotacaoRetornaOsDadosDosImpostos()
        {
            ProcessoDeCotacaoDeMaterial processo = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
            Fornecedor fornecedor = processo.FornecedoresParticipantes.First().Fornecedor;
            var        cotacao    = processo.InformarCotacao(fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(),
                                                             DefaultObjects.ObtemIncotermPadrao(), "Desc Incoterm");

            var itemDoProcesso = (ProcessoDeCotacaoDeMaterialItem)processo.Itens.First();

            RequisicaoDeCompra requisicaoDeCompra = itemDoProcesso.RequisicaoDeCompra;

            var cotacaoItem = cotacao.InformarCotacaoDeItem(itemDoProcesso, 100, 120, 12, DateTime.Today.AddMonths(1), "observacoes");

            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.Icms, 1);
            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.IcmsSubstituicao, 11);
            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.Ipi, 21);
            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.PisCofins, 3);

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo);

            var consulta         = ObjectFactory.GetInstance <IConsultaCotacaoDoFornecedor>();
            CotacaoImpostosVm vm = consulta.ConsultarCotacaoDeItemDeMaterial(processo.Id, fornecedor.Codigo, requisicaoDeCompra.Numero, requisicaoDeCompra.NumeroItem).Impostos;

            Assert.AreEqual(1, vm.IcmsAliquota);
            Assert.AreEqual(1, vm.IcmsValor);
            Assert.AreEqual(11, vm.IcmsStAliquota);
            Assert.AreEqual(11, vm.IcmsStValor);
            Assert.AreEqual(21, vm.IpiAliquota);
            Assert.AreEqual(21, vm.IpiValor);
            Assert.AreEqual(3, vm.PisCofinsValor);
            Assert.AreEqual(3, vm.PisCofinsAliquota);
        }
        public void QuandoConsultaProcessosDeCotacaoDeUmDeterminadoFornecedorNaoConsideraOsProcessosNaoIniciados()
        {
            //crio um fornecedor e adiciono ele em uma cotação aberta e uma não iniciada
            Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();

            ProcessoDeCotacaoDeMaterial processoDeCotacao1 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();
            ProcessoDeCotacaoDeMaterial processoDeCotacao2 = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();

            processoDeCotacao1.AdicionarFornecedor(fornecedor1);
            processoDeCotacao1.Abrir(DefaultObjects.ObtemUsuarioPadrao());

            processoDeCotacao2.AdicionarFornecedor(fornecedor1);

            DefaultPersistedObjects.PersistirProcessosDeCotacaoDeMaterial(new List <ProcessoDeCotacaoDeMaterial>()
            {
                processoDeCotacao1, processoDeCotacao2
            });

            var consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>();
            //consulta filtrando pelo fornecedor
            KendoGridVm kendoGridVm = consultaProcesso.Listar(new PaginacaoVm()
            {
                Page = 1, PageSize = 10, Take = 10
            },
                                                              new ProcessoCotacaoFiltroVm()
            {
                CodigoFornecedor = fornecedor1.Codigo
            });

            Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros);
            var viewModels = kendoGridVm.Registros.Cast <ProcessoCotacaoMaterialListagemVm>().ToList();

            //verifico que está retornado apenas o processo que foi aberto
            Assert.IsNotNull(viewModels.First(x => x.Id == processoDeCotacao1.Id));
        }
Beispiel #9
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);
        }
        public void ConsigoPersistirEConsultarUmProcessoDeCotacaoComImpostosNasCotacoes()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();

            Fornecedor fornecedor = DefaultObjects.ObtemFornecedorPadrao();

            processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor);

            processoDeCotacaoDeMaterial.Abrir(DefaultObjects.ObtemUsuarioPadrao());
            var cotacao             = processoDeCotacaoDeMaterial.InformarCotacao(fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "inc");
            var processoCotacaoItem = processoDeCotacaoDeMaterial.Itens.First();
            var cotacaoItem         = cotacao.InformarCotacaoDeItem(processoCotacaoItem, 100, 120, 100, DateTime.Today.AddMonths(1), "obs fornec");

            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.Icms, 17);
            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.Ipi, 5);

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial);

            var processosDeCotacaoDeMaterial = ObjectFactory.GetInstance <IProcessosDeCotacao>();

            Console.WriteLine("Consultando Cotacao - INICIO");
            var     processoConsultado = (ProcessoDeCotacaoDeMaterial)processosDeCotacaoDeMaterial.BuscaPorId(processoDeCotacaoDeMaterial.Id).Single();
            Cotacao cotacaoConsultada  = processoConsultado.FornecedoresParticipantes.First().Cotacao;

            Assert.AreEqual(2, cotacaoConsultada.Itens.First().Impostos.Count);
            Console.WriteLine("Consultando Cotacao - FIM");
        }
        public static ProcessoDeCotacaoDeMaterial ObtemProcessoDeCotacaoDeMaterialAtualizado()
        {
            ProcessoDeCotacaoDeMaterial processo = ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processo.Atualizar(DateTime.Today.AddDays(10), "Requisitos do Processo de Cotação de Materiais");
            return(processo);
        }
        public void QuandoConsultoUmaCotacaoDoFornecedorParaUmItemQueJaFoiPreenchidaRetornaOsDadosEsperados()
        {
            ProcessoDeCotacaoDeMaterial processo = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
            Fornecedor fornecedor = processo.FornecedoresParticipantes.First().Fornecedor;
            var        cotacao    = processo.InformarCotacao(fornecedor.Codigo, DefaultObjects.ObtemCondicaoDePagamentoPadrao(),
                                                             DefaultObjects.ObtemIncotermPadrao(),
                                                             "Desc Incoterm");
            var processoCotacaoItem = processo.Itens.First();
            var cotacaoItem         = cotacao.InformarCotacaoDeItem(processoCotacaoItem, 100, 120, 12, DateTime.Today.AddMonths(1), "observacoes");

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processo);

            var consulta       = ObjectFactory.GetInstance <IConsultaCotacaoDoFornecedor>();
            var itemDoProcesso = (ProcessoDeCotacaoDeMaterialItem)processo.Itens.First();
            RequisicaoDeCompra requisicaoDeCompra = itemDoProcesso.RequisicaoDeCompra;

            CotacaoMaterialItemCadastroVm vm = consulta.ConsultarCotacaoDeItemDeMaterial(processo.Id, fornecedor.Codigo, requisicaoDeCompra.Numero, requisicaoDeCompra.NumeroItem);

            Assert.IsNotNull(vm);

            Assert.AreEqual(processo.Id, vm.IdProcessoCotacao);
            Assert.AreEqual(cotacao.Id, vm.IdCotacao);
            Assert.AreEqual(cotacaoItem.Id, vm.IdCotacaoItem);
            Assert.AreEqual(itemDoProcesso.Id, vm.IdProcessoCotacaoItem);

            Assert.AreEqual(itemDoProcesso.Produto.Descricao, vm.Material);
            Assert.AreEqual(itemDoProcesso.Quantidade, vm.Quantidade);
            Assert.AreEqual(itemDoProcesso.UnidadeDeMedida.Descricao, vm.UnidadeDeMedida);
            Assert.AreEqual(100, vm.ValorComImpostos);
            Assert.AreEqual(100, vm.Custo);
            Assert.AreEqual(100, vm.Preco);
            Assert.AreEqual(120, vm.Mva);
        }
Beispiel #13
0
        public void NaoEPermitidoAbrirProcessoDeCotacaoSemItens()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();

            processoDeCotacao.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao());
            processoDeCotacao.RemoverItem(processoDeCotacao.Itens.First());
            processoDeCotacao.Abrir(DefaultObjects.ObtemUsuarioPadrao());
        }
Beispiel #14
0
        public void QuandoAtualizoDadosComplementaresDeUmProcessoDeCotacaoAsPropriedadesSaoAlteradas()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processoDeCotacaoDeMaterial.Atualizar(DateTime.Today.AddDays(10), "requisitos alterados");
            Assert.AreEqual(DateTime.Today.AddDays(10), processoDeCotacaoDeMaterial.DataLimiteDeRetorno);
            Assert.AreEqual("requisitos alterados", processoDeCotacaoDeMaterial.Requisitos);
        }
Beispiel #15
0
        public void QuandoAbroOProcessoDeCotacaoOStatusPassaParaAberto()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();

            processoDeCotacaoDeMaterial.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao());
            processoDeCotacaoDeMaterial.Abrir(DefaultObjects.ObtemUsuarioPadrao());
            Assert.AreEqual(Enumeradores.StatusProcessoCotacao.Aberto, processoDeCotacaoDeMaterial.Status);
        }
        public static ProcessoDeCotacaoDeMaterial ObtemProcessoDeCotacaoDeMaterialDeMateriaPrima()
        {
            RequisicaoDeCompra          requisicaoDeCompra = ObtemRequisicaoDeMateriaPrima();
            ProcessoDeCotacaoDeMaterial processoDeCotacao  = requisicaoDeCompra.GerarProcessoDeCotacaoDeMaterial();

            processoDeCotacao.Atualizar(DateTime.Today.AddDays(10), "requisitos");
            return(processoDeCotacao);
        }
Beispiel #17
0
        public void QuandoRemovoItemDeUmProcessoDeCotacaoOVinculoEntreARequisicaoEoItemERemovido()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao  = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();
            RequisicaoDeCompra          requisicaoDeCompra = ((ProcessoDeCotacaoDeMaterialItem)processoDeCotacao.Itens.First()).RequisicaoDeCompra;

            Assert.IsTrue(requisicaoDeCompra.GerouProcessoDeCotacao);
            processoDeCotacao.RemoverItem(processoDeCotacao.Itens.First());
            Assert.IsFalse(requisicaoDeCompra.GerouProcessoDeCotacao);
        }
Beispiel #18
0
        public void QuandoAdicionarItemEmUmProcessoDeCotacaoARequisicaoDeCompraFicaVinculadaAoItem()
        {
            RequisicaoDeCompra          requisicaoDeCompra = DefaultObjects.ObtemRequisicaoDeCompraPadrao();
            ProcessoDeCotacaoDeMaterial processoDeCotacao  = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            Assert.IsFalse(requisicaoDeCompra.GerouProcessoDeCotacao);
            processoDeCotacao.AdicionarItem(requisicaoDeCompra);
            Assert.IsTrue(requisicaoDeCompra.GerouProcessoDeCotacao);
        }
Beispiel #19
0
        public void AposOProcessoDeCotacaoSerFechadoNaoEPossivelSelecionarUmFornecedor()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialFechado();
            Iva iva                   = DefaultObjects.ObtemIvaPadrao();
            int idCotacao             = processoDeCotacao.FornecedoresParticipantes.First().Cotacao.Id;
            var idProcessoCotacaoItem = processoDeCotacao.Itens.First().Id;

            processoDeCotacao.SelecionarCotacao(idCotacao, idProcessoCotacaoItem, 100, iva);
        }
Beispiel #20
0
        public void SeTentarInformarUmaCotacaoAposADataLimiteDeRetornoDeveGerarExcecao()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processoDeCotacaoDeMaterial.Atualizar(DateTime.Today.AddDays(-1), processoDeCotacaoDeMaterial.Requisitos);
            processoDeCotacaoDeMaterial.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao());
            processoDeCotacaoDeMaterial.Abrir(DefaultObjects.ObtemUsuarioPadrao());
            processoDeCotacaoDeMaterial.InformarCotacao("FORNEC0001", DefaultObjects.ObtemCondicaoDePagamentoPadrao(), new Incoterm("001", "INCOTERM 001"), "inc");
        }
        public static ProcessoDeCotacaoDeMaterial ObtemProcessoDeCotacaoDeMaterialAberto(Usuario comprador)
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = ObtemProcessoDeCotacaoDeMaterialAtualizado();
            Fornecedor fornecedor = ObtemFornecedorPadrao();

            processoDeCotacao.AdicionarFornecedor(fornecedor);
            processoDeCotacao.Abrir(comprador);
            return(processoDeCotacao);
        }
        public void QuandoCalculoBaseDeCalculoDeUmImpostoPadraoRetornaOPrecoDoItem()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialComCotacaoDoFornecedor();
            CotacaoItem cotacaoItem   = processoDeCotacao.FornecedoresParticipantes.Single().Cotacao.Itens.Single();
            var         calculador    = new CalculadorDeBaseDeCalculoPadrao();
            decimal     baseDeCalculo = calculador.Calcular(cotacaoItem);

            Assert.AreEqual(cotacaoItem.Preco, baseDeCalculo);
        }
        public void QuandoInstanciaUmFornecedorParticipanteAsPropriedadesSaoCriadasCorretamente()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();
            Fornecedor fornecedor             = DefaultObjects.ObtemFornecedorPadrao();
            var        fornecedorParticipante = processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor);

            Assert.AreEqual(processoDeCotacaoDeMaterial.Id, fornecedorParticipante.ProcessoDeCotacao.Id);
            Assert.AreEqual(fornecedor.Codigo, fornecedorParticipante.Fornecedor.Codigo);
        }
        public void QuandoACotacaoPossuiIcmsDeSubstituicaoTributariaEoCampoMvaNaoForPreenchidoDeveDispararExcecao()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
            var codigoFornecedor = processoDeCotacao.FornecedoresParticipantes.First().Fornecedor.Codigo;
            ProcessoDeCotacaoItem processoDeCotacaoItem = processoDeCotacao.Itens.First();
            var cotacao     = processoDeCotacao.InformarCotacao(codigoFornecedor, DefaultObjects.ObtemCondicaoDePagamentoPadrao(), DefaultObjects.ObtemIncotermPadrao(), "INC");
            var cotacaoItem = cotacao.InformarCotacaoDeItem(processoDeCotacaoItem, 100, null, 100, DateTime.Today, null);

            cotacaoItem.InformarImposto(Enumeradores.TipoDeImposto.IcmsSubstituicao, 17);
        }
        public static ProcessoDeCotacaoDeMaterial ObtemProcessoDeCotacaoDeMaterialComCotacaoDoFornecedor()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacao = ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
            var             codigoFornecedor      = processoDeCotacao.FornecedoresParticipantes.First().Fornecedor.Codigo;
            CotacaoMaterial cotacao               = processoDeCotacao.InformarCotacao(codigoFornecedor, ObtemCondicaoDePagamentoPadrao(), ObtemIncotermPadrao(), "Descrição do Incotem");
            var             processoDeCotacaoItem = processoDeCotacao.Itens.First();

            cotacao.InformarCotacaoDeItem(processoDeCotacaoItem, 125, 12, 100, DateTime.Today.AddMonths(1), "obs");
            return(processoDeCotacao);
        }
Beispiel #26
0
        public void SeTentarInformarUmItemDaCotacaoParaUmProcessoQueNaoEstejaAbertoDeveGerarExcecao()
        {
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialFechado();

            processoDeCotacaoDeMaterial.InformarCotacao("FORNEC0001", DefaultObjects.ObtemCondicaoDePagamentoPadrao(), new Incoterm("001", "INCOTERM 001"), "inc");
            var idCotacao             = processoDeCotacaoDeMaterial.FornecedoresParticipantes.First().Cotacao.Id;
            var idProcessoCotacaoItem = processoDeCotacaoDeMaterial.Itens.First().Id;

            processoDeCotacaoDeMaterial.InformarCotacaoDeItem(idProcessoCotacaoItem, idCotacao, 10, null, 5, DateTime.Today.AddDays(4), "obs");
        }
Beispiel #27
0
        public void NaoEPermitidoAdicionarSelecionarUmaRequisicaoDeCompraBloqueadaParaUmProcessoDeCotacao()
        {
            RequisicaoDeCompra requisicaoDeCompra = DefaultObjects.ObtemRequisicaoDeCompraPadrao();

            requisicaoDeCompra.Bloquear();

            ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();

            processoDeCotacao.AdicionarItem(requisicaoDeCompra);
        }
Beispiel #28
0
        public void QuandoAdicionarUmFornecedorNoProcessoEsteFicaVinculadoAoProcesso()
        {
            var fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();

            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor1);

            Assert.IsNotNull(processoDeCotacaoDeMaterial.FornecedoresParticipantes.SingleOrDefault(x => x.Fornecedor.Codigo == fornecedor1.Codigo));
        }
Beispiel #29
0
        public void QuandoAdicionaMaisDeUmaVezOMesmoFornecedorEsteApareceNaListaApenasUmaUnicaVez()
        {
            var fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();

            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();

            processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor1);
            processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor1);
            Assert.AreEqual(1, processoDeCotacaoDeMaterial.FornecedoresParticipantes.Count);
        }
Beispiel #30
0
        public ProcessoDeCotacaoDeMaterialFechamentoTests()
        {
            _unitOfWorkMock         = CommonMocks.DefaultUnitOfWorkMock();
            _processosDeCotacaoMock = new Mock <IProcessosDeCotacao>(MockBehavior.Strict);
            _processosDeCotacaoMock.Setup(x => x.Save(It.IsAny <ProcessoDeCotacao>()))
            .Callback(
                (ProcessoDeCotacao processoDeCotacao) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
                Assert.IsNotNull(processoDeCotacao);
                foreach (var fornecedorParticipante in processoDeCotacao.FornecedoresParticipantes)
                {
                    Assert.IsNotNull(fornecedorParticipante);
                }
            });

            _processosDeCotacaoMock.Setup(x => x.BuscaPorId(It.IsAny <int>()))
            .Returns(_processosDeCotacaoMock.Object)
            .Callback((int idProcessoCotacao) =>
            {
                _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once());
                _unitOfWorkMock.Verify(x => x.Commit(), Times.Never());
                if (idProcessoCotacao == 10)
                {
                    _processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado();
                    _processoDeCotacao.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao());
                }
                if (idProcessoCotacao == 20)
                {
                    _processoDeCotacao   = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAbertoPadrao();
                    var codigoFornecedor = _processoDeCotacao.FornecedoresParticipantes.First().Fornecedor.Codigo;
                    var cotacao          = _processoDeCotacao.InformarCotacao(codigoFornecedor, DefaultObjects.ObtemCondicaoDePagamentoPadrao(),
                                                                              DefaultObjects.ObtemIncotermPadrao(), "inc");
                    var processoCotacaoItem = _processoDeCotacao.Itens.First();
                    var cotacaoItem         = (CotacaoMaterialItem)cotacao.InformarCotacaoDeItem(processoCotacaoItem, 150, null, 100, DateTime.Today.AddMonths(1), "obs fornec");
                    cotacaoItem.Selecionar(100, DefaultObjects.ObtemIvaPadrao());
                }
                if (idProcessoCotacao == 30)
                {
                    _processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialFechado();
                }
            });

            _processosDeCotacaoMock.Setup(x => x.Single()).Returns(() => _processoDeCotacao);

            //_geradorDeEmailMock = new Mock<IGeradorDeEmailDeFechamentoDeProcessoDeCotacao>(MockBehavior.Strict);
            //_geradorDeEmailMock.Setup(x => x.GerarEmail(It.IsAny<ProcessoDeCotacao>()));

            _comunicacaoSapMock = new Mock <IProcessoDeCotacaoDeMaterialFechamentoComunicacaoSap>(MockBehavior.Strict);
            _comunicacaoSapMock.Setup(x => x.EfetuarComunicacao(It.IsAny <ProcessoDeCotacaoDeMaterial>(), It.IsAny <ProcessoDeCotacaoDeMaterialFechamentoInfoVm>()));

            _fechamentoDeProcessoDeCotacaoService = new FechamentoDeProcessoDeCotacaoDeMaterialService(_unitOfWorkMock.Object, _processosDeCotacaoMock.Object, _comunicacaoSapMock.Object);
        }