public Decimal AdicionarCalificacionYDetallesParaUnProceso(Decimal ID_PROVEEDOR, Decimal TOTAL_CALIFICACION, String OBSERVACIONES, String TIPO_PROCESO, String APROBADO, DateTime FECHA, String CONTROL_ACTUALIZACION_ESTADO_PROVEEDOR, List<calificacionProveedores> listaCriteriosEvaluados, Byte[] ARCHIVO, Int32 ARCHIVO_TAMANO, String ARCHIVO_EXTENSION, String ARCHIVO_TYPE) { Decimal ID_CALIFICACION = 0; Decimal ID_DETALLE = 0; Decimal ID_DOCUMENTO_EVALUACION = 0; Boolean verificador = true; Conexion conexion = new Conexion(Empresa); conexion.IniciarTransaccion(); try { ID_CALIFICACION = AdicionarAlmCalificacionProveedor(ID_PROVEEDOR, TOTAL_CALIFICACION, OBSERVACIONES, TIPO_PROCESO, APROBADO, FECHA, CONTROL_ACTUALIZACION_ESTADO_PROVEEDOR, conexion); if (ID_CALIFICACION <= 0) { conexion.DeshacerTransaccion(); ID_CALIFICACION = 0; } else { foreach (calificacionProveedores calificacionCriterio in listaCriteriosEvaluados) { ID_DETALLE = AdicionarAlmDetalleCalificacion(calificacionCriterio.ID_CRITERIO, ID_CALIFICACION, calificacionCriterio.CALFICACION, conexion); if (ID_DETALLE <= 0) { conexion.DeshacerTransaccion(); ID_CALIFICACION = 0; verificador = false; break; } } if (verificador == true) { if (ARCHIVO != null) { ID_DOCUMENTO_EVALUACION = Convert.ToDecimal(conexion.ExecuteEscalarParaAdicionaDocumentoCalificacionProveedor(ID_CALIFICACION, TIPO_PROCESO, ARCHIVO, ARCHIVO_EXTENSION, ARCHIVO_TAMANO, ARCHIVO_TYPE, Usuario)); if (ID_DOCUMENTO_EVALUACION <= 0) { conexion.DeshacerTransaccion(); ID_CALIFICACION = 0; verificador = false; } } } } if (verificador == true) { conexion.AceptarTransaccion(); } } catch { conexion.DeshacerTransaccion(); ID_CALIFICACION = 0; } finally { conexion.Desconectar(); } return ID_CALIFICACION; }