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); }
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)); } }