コード例 #1
0
        public async Task <IActionResult> Put(int id, [FromBody] DespesaDTO dto)
        {
            if (id != dto.Id)
            {
                return(new StatusCodeResult(StatusCodes.Status400BadRequest));
            }
            if (ModelState.IsValid)
            {
                //corrige fuso horario do js
                dto.DataDaCompra = dto.DataDaCompra.AddHours(-dto.DataDaCompra.Hour);
                Usuario user = await _userManager.GetUserAsync(HttpContext.User);

                Despesa despesa = _context.Despesa.SingleOrDefault(q => q.Id == id);
                if (despesa == null)
                {
                    return(new BadRequestResult());
                }
                Item item = _context.Item.SingleOrDefault(q => q.Id == dto.Item.Id);
                if (item == null)
                {
                    ModelState.AddModelError("Item", "Item inválido");
                    return(new BadRequestObjectResult(ModelState));
                }
                double diferencaQuantidade = despesa.Quantidade - dto.Quantidade;
                despesa.Item          = item;
                despesa.Quantidade    = dto.Quantidade;
                despesa.ValorUnitario = dto.ValorUnitario;
                despesa.Usuario       = user;


                if (despesa.GetType() == typeof(DespesaAssociacao))
                {
                    DespesaAssociacao desp = (DespesaAssociacao)despesa;
                    //nenhum outro campo para atualizar
                    try
                    {
                        _context.SaveChanges();
                        return(new ObjectResult(dto));
                    }
                    catch
                    {
                        return(new BadRequestObjectResult(ModelState));
                    }
                }
                else if (despesa.GetType() == typeof(DespesaFavorecido))
                {
                    DespesaFavorecido desp = (DespesaFavorecido)despesa;

                    try
                    {
                        Favorecido f = _context.Favorecido.Single(q => q.CodFavorecido == dto.Favorecido.Id);
                        _context.SaveChanges();
                        return(new ObjectResult(dto));
                    }
                    catch
                    {
                        ModelState.AddModelError("Favorecido", "Favorecido incorreto");
                        return(new BadRequestObjectResult(ModelState));
                    }
                }
                else if (despesa.GetType() == typeof(DespesaSopa))
                {
                    DespesaSopa desp = (DespesaSopa)despesa;
                    //nenhum outro campo para atualizar
                    try
                    {
                        _context.SaveChanges();
                        //atualiza o estoque
                        if (diferencaQuantidade > 0)
                        {
                            _estoqueManager.DarSaida(user, item, diferencaQuantidade);
                        }
                        else if (diferencaQuantidade < 0)
                        {
                            _estoqueManager.DarEntrada(user, item, -diferencaQuantidade);
                        }


                        return(new ObjectResult(dto));
                    }
                    catch
                    {
                        return(new BadRequestObjectResult(ModelState));
                    }
                }

                return(new ObjectResult(dto));
            }
            else
            {
                return(new BadRequestObjectResult(ModelState));
            }
        }
コード例 #2
0
        public IActionResult Get(int id)
        {
            Despesa despesa = _context.Despesa
                              .Include(q => q.Item)
                              .Include(q => q.Usuario)
                              .SingleOrDefault(q => q.Id == id);

            if (despesa == null)
            {
                return(new NotFoundResult());
            }

            DespesaDTO dto = new DespesaDTO();

            if (despesa.GetType() == typeof(DespesaAssociacao))
            {
                dto.Id            = despesa.Id;
                dto.Descricao     = despesa.Descricao;
                dto.DataDaCompra  = despesa.DataDaCompra;
                dto.ValorUnitario = despesa.ValorUnitario;
                dto.Quantidade    = despesa.Quantidade;
                dto.Tipo          = despesa.Tipo;
                dto.Item          = new ItemDTOR()
                {
                    Id              = despesa.Item.Id,
                    Nome            = despesa.Item.Nome,
                    UnidadeDeMedida = despesa.Item.UnidadeDeMedida
                };
                dto.Usuario = new UsuarioDTOR()
                {
                    Id    = despesa.Usuario.Id,
                    Nome  = despesa.Usuario.Nome,
                    Email = despesa.Usuario.Email
                };
            }
            else if (despesa.GetType() == typeof(DespesaSopa))
            {
                dto.Id            = despesa.Id;
                dto.Descricao     = despesa.Descricao;
                dto.DataDaCompra  = despesa.DataDaCompra;
                dto.ValorUnitario = despesa.ValorUnitario;
                dto.Quantidade    = despesa.Quantidade;
                dto.Tipo          = despesa.Tipo;
                dto.Item          = new ItemDTOR()
                {
                    Id              = despesa.Item.Id,
                    Nome            = despesa.Item.Nome,
                    UnidadeDeMedida = despesa.Item.UnidadeDeMedida
                };
                dto.Usuario = new UsuarioDTOR()
                {
                    Id    = despesa.Usuario.Id,
                    Nome  = despesa.Usuario.Nome,
                    Email = despesa.Usuario.Email
                };
            }
            else if (despesa.GetType() == typeof(DespesaFavorecido))
            {
                dto.Id            = despesa.Id;
                dto.Descricao     = despesa.Descricao;
                dto.DataDaCompra  = despesa.DataDaCompra;
                dto.ValorUnitario = despesa.ValorUnitario;
                dto.Quantidade    = despesa.Quantidade;
                dto.Tipo          = despesa.Tipo;
                dto.Item          = new ItemDTOR()
                {
                    Id              = despesa.Item.Id,
                    Nome            = despesa.Item.Nome,
                    UnidadeDeMedida = despesa.Item.UnidadeDeMedida
                };
                dto.Usuario = new UsuarioDTOR()
                {
                    Id    = despesa.Usuario.Id,
                    Nome  = despesa.Usuario.Nome,
                    Email = despesa.Usuario.Email
                };

                _context.Favorecido.Where(q => q.CodFavorecido == ((DespesaFavorecido)despesa).CodFavorecido).Load();
                dto.Favorecido = new FavorecidoDTOR()
                {
                    Id      = ((DespesaFavorecido)despesa).Favorecido.CodFavorecido,
                    Apelido = ((DespesaFavorecido)despesa).Favorecido.Apelido,
                    Cpf     = ((DespesaFavorecido)despesa).Favorecido.Cpf,
                    Nome    = ((DespesaFavorecido)despesa).Favorecido.Nome
                };
            }



            this.Response.Headers.Add("totalItems", "1");
            return(new ObjectResult(dto));
        }