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