/// <summary> /// Inicia uma nova instância da classe <see cref="ConverterCadastroAtualizacaoParaEstoqueFiscal"/>. /// </summary> /// <param name="cadastro">O DTO de cadastro, enviado para o endpoint.</param> /// <param name="atual">O estoque do produto atual (opcional), para que sejam aproveitados os valores, se necessário.</param> public ConverterCadastroAtualizacaoParaEstoqueFiscal( CadastroAtualizacaoFiscalDto cadastro, Data.Model.ProdutoLoja atual = null) { this.cadastro = cadastro; this.estoque = new Lazy <Data.Model.ProdutoLoja>(() => { var destino = atual ?? new Data.Model.ProdutoLoja(); this.ConverterDtoParaModelo(destino); return(destino); }); }
public IHttpActionResult AlterarEstoqueFiscal(int idProduto, int idLoja, [FromBody] CadastroAtualizacaoFiscalDto dadosParaAlteracao) { using (var sessao = new GDATransaction()) { try { var validacao = this.ValidarExistenciaIdProdutoIdLoja(sessao, idProduto, idLoja); if (validacao != null) { return(validacao); } var estoque = ProdutoLojaDAO.Instance.GetElement(sessao, (uint)idLoja, (uint)idProduto); if (estoque == null) { return(this.NaoEncontrado($"Estoque de produto não encontrado.")); } estoque = new ConverterCadastroAtualizacaoParaEstoqueFiscal(dadosParaAlteracao, estoque) .ConverterParaEstoque(); sessao.BeginTransaction(); ProdutoLojaDAO.Instance.AtualizaEstoque(sessao, estoque); sessao.Commit(); return(this.Aceito("Estoque do produto atualizado com sucesso!")); } catch (Exception ex) { sessao.Rollback(); return(this.ErroValidacao("Erro ao atualizar estoque do produto.", ex)); } } }