public JsonResult Salvar(CotacaoMaterialInformarVm cotacaoInformarVm) { try { var idCotacao = _atualizadorDeCotacao.AtualizarCotacao(cotacaoInformarVm); return(Json(new { Sucesso = true, IdCotacao = idCotacao })); } catch (Exception ex) { return(Json(new { Sucesso = false, Mensagem = ex.Message })); } }
public int AtualizarCotacao(CotacaoMaterialInformarVm cotacaoInformarVm) { try { _unitOfWork.BeginTransaction(); var processoDeCotacao = (ProcessoDeCotacaoDeMaterial)_processosDeCotacao.BuscaPorId(cotacaoInformarVm.IdProcessoCotacao).Single(); CondicaoDePagamento condicaoDePagamento = _condicoesDePagamento.BuscaPeloCodigo(cotacaoInformarVm.CodigoCondicaoPagamento); Incoterm incoterm = _incoterms.BuscaPeloCodigo(cotacaoInformarVm.CodigoIncoterm).Single(); var cotacao = processoDeCotacao.InformarCotacao(cotacaoInformarVm.CodigoFornecedor, condicaoDePagamento, incoterm, cotacaoInformarVm.DescricaoIncoterm); _processosDeCotacao.Save(processoDeCotacao); _unitOfWork.Commit(); return(cotacao.Id); } catch (Exception) { _unitOfWork.RollBack(); throw; } }
public AtualizadorDeCotacaoTests() { _unitOfWorkMock = CommonMocks.DefaultUnitOfWorkMock(); _processoDeCotacao = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialComCotacaoDoFornecedor(); _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 id) => { _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once()); _unitOfWorkMock.Verify(x => x.Commit(), Times.Never()); }); _processosDeCotacaoMock.Setup(x => x.Single()) .Returns(_processoDeCotacao); _incotermsMock = new Mock <IIncoterms>(MockBehavior.Strict); _incotermsMock.Setup(x => x.BuscaPeloCodigo(It.IsAny <string>())) .Returns(_incotermsMock.Object) .Callback((string codigo) => { _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once()); _unitOfWorkMock.Verify(x => x.Commit(), Times.Never()); _incotermRetorno = Incoterm.Codigo == codigo ? Incoterm : null; }); _incotermsMock.Setup(x => x.Single()) .Returns(() => _incotermRetorno); _condicoesDePagamentoMock = new Mock <ICondicoesDePagamento>(MockBehavior.Strict); _condicoesDePagamentoMock.Setup(x => x.BuscaPeloCodigo(It.IsAny <string>())) .Returns((string codigo) => codigo == CondicaoDePagamento.Codigo ? CondicaoDePagamento : null) .Callback((string codigo) => { _unitOfWorkMock.Verify(x => x.BeginTransaction(), Times.Once()); _unitOfWorkMock.Verify(x => x.Commit(), Times.Never()); }); _atualizadorDeCotacao = new AtualizadorDeCotacaoDeMaterial(_unitOfWorkMock.Object, _processosDeCotacaoMock.Object, _incotermsMock.Object, _condicoesDePagamentoMock.Object); _cotacaoAtualizarVm = new CotacaoMaterialInformarVm() { IdProcessoCotacao = _processoDeCotacao.Id, CodigoFornecedor = _processoDeCotacao.FornecedoresParticipantes.First().Fornecedor.Codigo, CodigoCondicaoPagamento = CondicaoDePagamento.Codigo, CodigoIncoterm = Incoterm.Codigo, DescricaoIncoterm = "Desc Incoterm", }; _cotacaoItemAtualizarVm = new CotacaoMaterialItemInformarVm { IdProcessoCotacao = _processoDeCotacao.Id, IdCotacao = 0, IdProcessoCotacaoItem = _processoDeCotacao.Itens.First().Id, Preco = 110, Mva = 0, QuantidadeDisponivel = 150, Impostos = new CotacaoImpostosVm { IcmsAliquota = 17, IcmsValor = 12, IcmsStAliquota = 0, IcmsStValor = 0, IpiAliquota = 5, IpiValor = 4, PisCofinsAliquota = 3 }, ObservacoesDoFornecedor = "observações do fornecedor", PrazoDeEntrega = DateTime.Today.AddDays(15).ToShortDateString() }; }