public virtual IActionResult Cancelar([FromRoute] VendaId id, [FromBody] CancelarVenda cancelarVenda) { cancelarVenda.Numero = id.Numero; cancelarVenda.Modelo = id.Modelo; cancelarVenda.Serie = id.Serie; this.VendaService.Cancelar(cancelarVenda); return(Ok()); }
public Venda GetByID(VendaId vendaId) { var venda = this.VendaDAO.GetByID(vendaId); if (venda != null) { venda.Produtos = this.VendaProdutoDAO.GetInVenda(vendaId); venda.Servicos = this.VendaServicoDAO.GetInVenda(vendaId); venda.Parcelas = this.ContaReceberService.GetInVenda(vendaId); } return(venda); }
//Cancelar //Se uma parcela ja for dado baixa n pode, precisa cancelar a baixa //Cancelar compra, deve voltar o valor original do produto public void Cancelar(CancelarVenda cancelarVenda) { var result = this.UserDAO.PasswordSignIn(this.UserRequest.UserNome, cancelarVenda.Senha); if (!result.Succeeded) { throw new BusinessException(new { Senha = "Senha inválido" }); } var id = new VendaId() { Modelo = cancelarVenda.Modelo, Serie = cancelarVenda.Serie, Numero = cancelarVenda.Numero }; var venda = this.GetByID(id); var dataCancelamento = DateTime.Now; foreach (var parcela in venda.Parcelas) { if (parcela.DataBaixa != null) { throw new BusinessException(new { Numero = "Compra já possuir uma conta a pagar baixada." }); } parcela.DataCancelamento = dataCancelamento; parcela.UserCancelamento = UserRequest.Id.ToString(); parcela.JustificativaCancelamento = cancelarVenda.Justificativa; this.ContaReceberService.Update(parcela, false); } foreach (var produto in venda.Produtos) { var produtoDb = this.ProdutoDAO.GetByID(produto.ProdutoId); produtoDb.Quantidade += produto.Quantidade; this.ProdutoDAO.Update(produtoDb, false); } venda.DataCancelamento = dataCancelamento; venda.UserCancelamento = UserRequest.Id.ToString(); venda.JustificativaCancelamento = cancelarVenda.Justificativa; this.VendaDAO.Update(venda); }
public override string ToString() { return(VendaId.ToString()); }
public List <ContaReceber> GetInVenda(VendaId vendaId) { return(this.ContaReceberDAO.GetInVenda(vendaId)); }