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());
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        //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);
        }
Beispiel #4
0
 public override string ToString()
 {
     return(VendaId.ToString());
 }
Beispiel #5
0
 public List <ContaReceber> GetInVenda(VendaId vendaId)
 {
     return(this.ContaReceberDAO.GetInVenda(vendaId));
 }