Ejemplo n.º 1
0
        public async Task <IActionResult> MinhasEncomendasDetalhe(Guid encomendaId)
        {
            var encomenda = await _encomendaService.ObterPorId(encomendaId);

            string nomePontoVenda = await _empresaService.ObterNomeEmpresa(encomenda.PontoVendaId);

            var model = new EncomendaDetalheViewModel
            {
                Id                = encomenda.Id,
                DataPedido        = encomenda.DataPedido,
                NotaFiscal        = encomenda.NotaFiscal ?? " - ",
                NumeroPedido      = encomenda.NumeroPedido,
                PontoVendaNome    = nomePontoVenda,
                PontoVendaId      = encomenda.PontoVendaId,
                PermiteMovimentar = encomenda.PontoVendaPodeMovimentar(),
                Movimentacao      = encomenda.GetHistoria()?
                                    .Select(x => new EncomendaHistoriaViewModel
                {
                    EncomendaId   = x.EncomendaId,
                    Nome          = x.TipoMovimento.GetDescription(),
                    DataMovimento = x.DataCadastro
                }),
                MovimentosPermitidos = encomenda
                                       .ObterMovimentosPermitidos(TipoEmpresa.PontoRetirada)
                                       .Select(x => new SelectListItem(text: x.GetDescription(), value: x.ToString()))
            };

            return(View("PontoRetiradaDetalhe", model));
        }
        public async Task <IActionResult> GetById([FromRoute] Guid encomendaId)
        {
            try
            {
                var response = await _encomendaService.ObterPorId(encomendaId);

                if (response == null)
                {
                    _logger.LogWarning($"Encomenda {encomendaId} nao encontrada");
                    return(NotFound());
                }

                return(Ok(new EncomendaResponse
                          (
                              response.Id,
                              response.DataPedido,
                              response.NumeroPedido,
                              response.NotaFiscal,
                              response.GetHistoria()?.Select(h => new EncomendaHistoriaResponse(h.DataCadastro, h.TipoMovimento.GetDescription()))
                          )));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }