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 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)); }
public void NaoEPossivelAbrirOProcessoDeCotacaoSeADataLimiteDeRetornoNaoEstiverPreenchida() { RequisicaoDeCompra requisicaoDeCompra = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = requisicaoDeCompra.GerarProcessoDeCotacaoDeMaterial(); processoDeCotacaoDeMaterial.Abrir(DefaultObjects.ObtemUsuarioPadrao()); }
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)); }
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); }
public void NaoEPermitidoAbrirProcessoDeCotacaoSemItens() { ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado(); processoDeCotacao.AdicionarFornecedor(DefaultObjects.ObtemFornecedorPadrao()); processoDeCotacao.RemoverItem(processoDeCotacao.Itens.First()); processoDeCotacao.Abrir(DefaultObjects.ObtemUsuarioPadrao()); }
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); }
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); }
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); }
public void QuandoAdicionarItemEmUmProcessoDeCotacaoARequisicaoDeCompraFicaVinculadaAoItem() { RequisicaoDeCompra requisicaoDeCompra = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado(); Assert.IsFalse(requisicaoDeCompra.GerouProcessoDeCotacao); processoDeCotacao.AdicionarItem(requisicaoDeCompra); Assert.IsTrue(requisicaoDeCompra.GerouProcessoDeCotacao); }
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); }
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); }
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"); }
public void NaoEPermitidoAdicionarSelecionarUmaRequisicaoDeCompraBloqueadaParaUmProcessoDeCotacao() { RequisicaoDeCompra requisicaoDeCompra = DefaultObjects.ObtemRequisicaoDeCompraPadrao(); requisicaoDeCompra.Bloquear(); ProcessoDeCotacaoDeMaterial processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialAtualizado(); processoDeCotacao.AdicionarItem(requisicaoDeCompra); }
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)); }
public void QuandoAdicionaMaisDeUmaVezOMesmoFornecedorEsteApareceNaListaApenasUmaUnicaVez() { var fornecedor1 = DefaultObjects.ObtemFornecedorPadrao(); ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado(); processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor1); processoDeCotacaoDeMaterial.AdicionarFornecedor(fornecedor1); Assert.AreEqual(1, processoDeCotacaoDeMaterial.FornecedoresParticipantes.Count); }
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); }