public IActionResult AddPedidoCliente([FromBody] PedidoClienteDTO pedidoClienteDTO)
        {
            //se pasan los pedidos diarios a una variable local en forma de arreglo
            var pedidos = pedidoClienteDTO.PedidoDiarioDTO.ToArray();
            //se declara una lista de pedidosDiarios para guardar
            //los pedidos diarios con id que se vayan generando
            List <PedidoDiario> listaPedido = new List <PedidoDiario>();
            //se declara un pedido semanal nuevo
            PedidoSemanal ps = new PedidoSemanal();
            //se Itera la lista de pedidos diarios para guardarlos con GUID
            //se declara un pedido diario nuevo

            Producto p = new Producto();

            foreach (var pedido in pedidos)
            {
                PedidoDiario pd = new PedidoDiario(new Guid(), pedido.NumBolsas, pedido.NumDia);
                //pd.IdPedidoDiario = Guid.NewGuid();

                //var prodBD = _context.ProductosInventario.FirstOrDefault(p => p.IdProductoInventario == productoPedidoDTO.IdProductoInventario);
                //se asignan los valores del DTO (sin id) al pedido diario (con ID auto generada)
                var Guid = new Guid(pedido.IdProducto);
                pd.Producto = _context.Productos
                              .Include(c => c.Cliente)
                              .FirstOrDefault(pr => pr.IdProducto == Guid)
                ;
                //pd.NumBolsas = pedido.NumBolsas;
                //pd.NumDia = pedido.NumDia;
                //se agregan los pedidos diarios a la lista
                listaPedido.Add(pd);
            }
            ps.FechaInicioSemana = pedidoClienteDTO.FechaI;
            ps.FechaFinSemana    = pedidoClienteDTO.FechaF;
            ps.LstPedidosDiario  = listaPedido;
            _context.PedidoSemanal.Add(ps);
            _context.SaveChanges();

            return(new OkObjectResult(new RespuestaServidor
            {
                Exitoso = true, MensajeError = string.Empty
            }
                                      ));
        }
        public string Incluir(PedidoClienteDTO pedidoCliente, string idCliente)
        {
            List <ProdutoPedido> listProdutoPedido = new List <ProdutoPedido>();


            var clienteResult = _clienteService.ObterPorIdAsync(idCliente);

            if (clienteResult.Result == null)
            {
                throw new BusinessException("Cliente não localizado");
            }

            var idPedido = Guid.NewGuid().ToString();
            var pedido   = (new Pedido {
                ClienteId = idCliente, Data_cadastro = DateTime.Today, Id = idPedido, Status_entrega = "Pendente"
            });

            if (listProdutoPedido.Count > 0)
            {
                throw new BusinessException("Nenhum produto foi informado");
            }

            foreach (var produto in pedidoCliente.Produto)
            {
                var produtoResult = _produtoService.ObterPorIdAsync(produto.Id);
                if (produtoResult.Result == null)
                {
                    throw new BusinessException("Produto não localizado");
                }

                listProdutoPedido.Add(new ProdutoPedido {
                    PedidoId = idPedido, ProdutoId = produto.Id
                });
            }
            var retorno = _pedidoService.Adicionar(pedido);

            _produtoPedidoService.AdicionarLista(listProdutoPedido);

            return(pedidoCliente.ClienteId);
        }
Exemple #3
0
        public async Task <IHttpActionResult> InserirPedido(PedidoClienteDTO pedidoCliente, string idCliente)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                _pedidoApplication.Incluir(pedidoCliente, idCliente);

                return(new BusinessResult("Pedido inserido", HttpStatusCode.Created, true));
            }

            catch (ApplicationException ex)
            {
                return(new BusinessResult(ex.Message, HttpStatusCode.BadRequest));
            }

            catch (Exception ex)
            {
                return(new BusinessResult(ex.Message, HttpStatusCode.InternalServerError));
            }
        }