void Anular() { string res; bool anular = true; if (string.IsNullOrWhiteSpace(txtRazon.Text)) { anular = false; dxErrorProvider1.SetError(txtRazon, "ESTE CAMPO ES OBLIGATORIO"); } if (anular) { if (XtraMessageBox.Show("¿ANULAR DOCUMENTO?", Configuraciones.Configuraciones.NombreDelSistema, MessageBoxButtons.YesNo) != DialogResult.No) { MAnularOperacion objAnular = new MAnularOperacion(); objAnular.Codito = codigo; objAnular.IdTiendaDestino = id_tienda_destino; objAnular.IdTienda = Configuraciones.Configuraciones.idtienda; objAnular.IdTipoDeDocumento = id_tipo_documento; objAnular.IdEncabezado = id_encabezado; objAnular.Opcion = 0; List <MAnularOperacionDetalle> listaEliminar = new List <MAnularOperacionDetalle>(); for (int i = 0; i < gridViewDetalle.DataRowCount; i++) { MAnularOperacionDetalle objDetalle = new MAnularOperacionDetalle(); objDetalle.IdEncabezado = id_encabezado; objDetalle.IdTienda = Configuraciones.Configuraciones.idtienda; objDetalle.IdDetalle = Convert.ToInt32(gridViewDetalle.GetRowCellValue(i, "id_movimiento_det")); objDetalle.IdProducto = Convert.ToInt32(gridViewDetalle.GetRowCellValue(i, "idproducto")); objDetalle.IdBodega = Convert.ToInt32(gridViewDetalle.GetRowCellValue(i, "id_bodega")); objDetalle.Cantidad = Convert.ToInt32(gridViewDetalle.GetRowCellValue(i, "cantidad")); objDetalle.Opcion = 0; objDetalle.Opcion = id_tipo_documento; listaEliminar.Add(objDetalle); } res = ControllerAnulaciones.AnularOperacion(objAnular, listaEliminar); if (res == "OK") { this.Close(); } else { XtraMessageBox.Show("ERROR AL REALIZAR LA OPERACIÓN " + res); } } } }
public static string AnularOperacion(MAnularOperacion encabezado, List <MAnularOperacionDetalle> detalle) { string rpta = ""; MProcedimiento objProc = new MProcedimiento(); MExecute objExcute = new MExecute(); try { objProc.NombreProcedimiento = "SPUpdate_AnularDocumentos"; objProc.Parametros.Add(new MParametro { Nombre = "@codigo", Valor = encabezado.Codito, Tipo = DbType.Int64, Out = false }); objProc.Parametros.Add(new MParametro { Nombre = "@id_encabezado", Valor = encabezado.IdEncabezado, Tipo = DbType.Int64, Out = false }); objProc.Parametros.Add(new MParametro { Nombre = "@id_tienda", Valor = encabezado.IdTienda, Tipo = DbType.Int64, Out = false }); objProc.Parametros.Add(new MParametro { Nombre = "@id_documento", Valor = encabezado.IdTipoDeDocumento, Tipo = DbType.Int64, Out = false }); objProc.Parametros.Add(new MParametro { Nombre = "@opcion", Valor = encabezado.Opcion, Tipo = DbType.Int64, Out = false }); objExcute.IniciarTran(); rpta = objExcute.UpsertTransaction(objProc); if (detalle != null) { if (rpta.Equals("OK")) { foreach (MAnularOperacionDetalle item in detalle) { MProcedimiento objProc1 = new MProcedimiento(); objProc1.NombreProcedimiento = "SPUpdate_AnularDocumentosDetalle"; objProc1.Parametros.Add(new MParametro { Nombre = "@id_encabezado", Valor = item.IdEncabezado, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@id_tienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@id_detalle", Valor = item.IdDetalle, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@id_producto", Valor = item.IdProducto, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@id_bodega", Valor = item.IdBodega, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@cantidad", Valor = item.Cantidad, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@opcion", Valor = item.Opcion, Tipo = DbType.Int32, Out = false }); objProc1.Parametros.Add(new MParametro { Nombre = "@id_documento", Valor = item.IdDocumento, Tipo = DbType.Int32, Out = false }); rpta = objExcute.UpsertTransaction(objProc1); if (!rpta.Equals("OK")) { break; } } } } if (rpta.Equals("OK")) { objExcute.TranasctionCommit(); } else { objExcute.TranasctionRollback(); } } catch (Exception) { throw; } finally { objExcute.cerrarConexionTransaccion(); } return(rpta); }