public void Guardar()
        {
            OrdenCompra o = new OrdenCompra();
            o.IdOrden = idOrden;
            o.IdAlmacen = 4;
            o.LstProducto = Lst;
            o.MedioPago = EstadoSelected;
            o.Observaciones = Observaciones;
            o.FechaSinAtencion = FechaAtencion;
            o.Proveedor = Prov;

                if (Validar(o))
                {

                    OrdenCompraSQL oSQL = new OrdenCompraSQL();
                    OrdenCompraxProductoSQL opSQL = new OrdenCompraxProductoSQL();

                    if (esNuevo)
                    {

                        o.Estado = 2;

                        oSQL.Agregar(o);

                        int id = new UtilesSQL().ObtenerMaximoID("OrdenCompra", "idOrden");

                        foreach (ProductoxOrdenCompra oc in o.LstProducto)
                        {
                            oc.IdOrden = id;
                            opSQL.Agregar(oc);

                        }

                        MessageBox.Show("Se Generó Exitosamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        if (model != null)
                        {
                            model.Buscar();
                        }

                        this.TryClose();

                    }
                    else
                    {
                        o.Estado = estado;

                        oSQL.Actualizar(o);

                        if (o.Estado == 1)
                        {
                            opSQL.Eliminar(o);
                            foreach (ProductoxOrdenCompra oc in o.LstProducto)
                            {
                                oc.IdOrden = idOrden;
                                opSQL.Agregar(oc);

                            }

                            DialogResult result = MessageBox.Show("Está trabajando con un BORRADOR , desea EMITIRLO? ", "AVISO", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                            if (result == DialogResult.Yes)
                            {
                                o.Estado = 2;
                                oSQL.Actualizar(o);
                                MessageBox.Show("Se EMITIÓ adecuadamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            }
                        }
                        else
                        {

                            foreach (ProductoxOrdenCompra oc in o.LstProducto)
                            {
                                oc.IdOrden = idOrden;
                                opSQL.Actualizar(oc);
                                MessageBox.Show("Se Editó adecuadamente la Orden de Compra", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Information);

                            }

                        }

                        if (model != null)
                        {
                            model.Buscar();
                        }
                        this.TryClose();

                    }

                }
        }