/* *Propósito: Permite crear un pedido a la base de datos. *Entradas: PedidoEntidad *Salidas: Pedido */ //#Metodo: crearPedido public Pedido crearPedido(PedidoEntidad pedidos) { using (Sistema_ventasEntities contexto = new Sistema_ventasEntities()) { //pedidos.Estado = "creado"; Pedido ped = new Pedido(); ped = mapearPedidoDeEntidadesAEf(pedidos); foreach (var productoPedido in pedidos.PedidoProducto) { var pro = contexto.Producto.Where(p => p.cod_producto == productoPedido.CodProducto).FirstOrDefault(); if (pro != null) { pro.cantidad = pro.cantidad - productoPedido.Cantidad; } } contexto.Pedido.Add(ped); contexto.SaveChanges(); return ped; } }
/* *Propósito: Método que se encarga de crear un pedido en la base de datos *Entradas: object sender, RoutedEventArgs e *Salidas: void */ //#Metodo: registrarPedido private void registrarPedido_Click(object sender, RoutedEventArgs e) { pedido = new PedidoEntidad(); pedido.PedidoProducto = new ObservableCollection<PedidoProductoEntidad>(); pedido.CodNegocio = negocio.CodNegocio; pedido.CodUsuario = usuario.CodUsuario; pedido.TotalPedido = totalPedido; pedido.Fecha = DateTime.Now; pedido.PedidoProducto = pedidoCompleto; pedido.Estado = "Creado"; bl.crearPedido(pedido); int seleccionNegocio = this.lv_listadoNegocios.SelectedIndex; pedidoCompleto.Clear(); listaproductosParaPedido.Clear(); listaproductos.Clear(); listanegocios.Clear(); this.gr_CrearPedido.Visibility = System.Windows.Visibility.Hidden; this.gr_productos.Visibility = System.Windows.Visibility.Hidden; this.tb_IngresarNombreNegocio.Text = ""; totalPedido = 0; tb_totalPedido.Text = "" + totalPedido; controlRegistroPedidos(); MessageBox.Show("El pedido se registro exitosamente."); }
/* *Propósito: Permite modificar el estado de un pedido en la BD *Entradas: *Salidas: PedidoEntidad */ //#Metodo: cambiarEstadoPedido public void cambiarEstadoPedido(PedidoEntidad pedido) { using (Sistema_ventasEntities contexto = new Sistema_ventasEntities()) { var ped = contexto.Pedido.Where(p => p.cod_pedido == pedido.CodPedido).FirstOrDefault(); if (ped != null) { ped.estado = pedido.Estado; contexto.SaveChanges(); } } }
/* *Propósito: Permite mapear pedido de la BD a entidades. *Entradas: Pedido item *Salidas: PedidoEntidad */ //#Metodo: mapearPedidoDeEfAEntidades private PedidoEntidad mapearPedidoDeEfAEntidades(Pedido item) { PedidoEntidad ped = new PedidoEntidad(); ped.CodNegocio = item.cod_negocio; ped.CodPedido = item.cod_pedido; ped.CodUsuario = item.cod_usuario; ped.Fecha = item.fecha; ped.TotalPedido = (int)item.total_pedido; ped.Estado = item.estado; ped.PedidoProducto = new ObservableCollection<PedidoProductoEntidad>(); foreach (var pedidoProducto in item.PedidoProducto) { ped.PedidoProducto.Add(mapearPedidoProductoDeAeFAEntidades(pedidoProducto)); } ped.Negocio = mapearNegocioDeEfAEntidades(item.Negocio); ped.Usuario = mapearUsuarioDeEfAEntidades(item.Usuario); return ped; }
/* *Propósito: Permite mapear pedido a la BD. *Entradas: NegocioEntidad item *Salidas: Negocio */ //#Metodo: mapearPedidoDeEntidadesAEf private Pedido mapearPedidoDeEntidadesAEf(PedidoEntidad item) { Pedido ped = new Pedido(); ped.cod_negocio = item.CodNegocio; ped.cod_pedido = item.CodPedido; ped.cod_usuario = item.CodUsuario; ped.fecha = item.Fecha; ped.total_pedido = (int)item.TotalPedido; ped.estado = item.Estado; if (item.Negocio != null) { ped.Negocio = mapearNegocioDeEntidadesAef(item.Negocio); } if (item.Usuario != null) { ped.Usuario = mapearUsuarioDeEntidadesAeF(item.Usuario); } if (item.PedidoProducto != null || item.PedidoProducto.Count != 0) { foreach (var pedidoProducto in item.PedidoProducto) { ped.PedidoProducto.Add(mapearPedidoProductoDeEntidadesAeF(pedidoProducto)); } } return ped; }
/* *Propósito: Método que permite crear un pedido, utiliza la clase DAL para guardarlo en la BD. *Entradas: PedidoEntidad *Salidas: */ //#Metodo: crearPedido public void crearPedido(PedidoEntidad pedido) { DAL contexto = new DAL(); contexto.crearPedido(pedido); }
/* *Propósito: Permite leer un string en formato XML con pedidos *y los llama a DAL para gurardarlos en la BD *Entradas: xmlString *Salidas: */ //#Metodo: guardarNuevosPedidos public void guardarNuevosPedidos(string xmlString) { DAL contexto = new DAL(); //Crear el documento XML XmlDocument xml = new XmlDocument(); xml.LoadXml(xmlString); XmlNodeList pedidos = xml.FirstChild.ChildNodes; //Productos foreach (XmlNode pedidoTag in pedidos) { XmlNodeList atributosPedido = pedidoTag.ChildNodes; PedidoEntidad pedido = new PedidoEntidad(); pedido.CodPedido = Convert.ToInt32(atributosPedido.Item(0).InnerText); pedido.CodNegocio = Convert.ToInt32(atributosPedido.Item(1).InnerText); pedido.CodUsuario = Convert.ToInt32(atributosPedido.Item(2).InnerText); pedido.TotalPedido = Convert.ToInt32(atributosPedido.Item(3).InnerText); pedido.Fecha = Convert.ToDateTime(atributosPedido.Item(4).InnerText); pedido.Estado = atributosPedido.Item(5).InnerText; ObservableCollection<PedidoProductoEntidad> pedidoCompleto = new ObservableCollection<PedidoProductoEntidad>(); foreach (XmlNode productoTag in atributosPedido.Item(6).ChildNodes) { XmlNodeList atributosProducto = productoTag.ChildNodes; PedidoProductoEntidad pedidoProducto = new PedidoProductoEntidad(); pedidoProducto.CodProducto = Convert.ToInt32(atributosProducto.Item(0).InnerText); ; pedidoProducto.Cantidad = Convert.ToInt32(atributosProducto.Item(1).InnerText); pedidoCompleto.Add(pedidoProducto); } pedido.PedidoProducto = pedidoCompleto; contexto.crearPedido(pedido); } }