private Decimal actualizarTutelaConArchivoPeticion(Decimal ID_TUTELA,
            DateTime FECHA_R,
            DateTime FECHA_NOTIFICACION,
            DateTime FECHA_PLAZO_CONTESTA,
            DateTime FECHA_CONTESTACION,
            String PETICION,
            Byte[] ARCHIVO_PETICION,
            String ARCHIVO_PETICION_EXTENSION,
            Int32 ARCHIVO_PETICION_TAMANO,
            String ARCHIVO_PETICION_TYPE,
            String FALLO,
            String RESULTADO_FALLO,
            Decimal RESPONSABLE,
            Decimal ID_EMPRESA,
            Decimal REGISTRO_CONTRATO,
            String CONSIDERACIONES)
        {
            Int32 actualizados = 0;
            String sql = null;
            String informacion = null;
            Boolean ejecutar = true;
            Boolean ejecutadoCorrectamente = true;

            tools _tools = new tools();

            sql = "usp_con_reg_tutelas_actualizar_con_archivo_peticion ";

            #region validaciones
            sql += ID_TUTELA + ", ";
            informacion += "ID_TUTELA = '" + ID_TUTELA + "', ";

            sql += "'" + FECHA_R.ToString("u") + "', ";
            informacion += "FECHA_R = '" + FECHA_R.ToString("u") + "', ";

            sql += "'" + FECHA_NOTIFICACION.ToString("u") + "', ";
            informacion += "FECHA_NOTIFICACION = '" + FECHA_NOTIFICACION.ToString("u") + "', ";

            sql += "'" + FECHA_PLAZO_CONTESTA.ToString("u") + "', ";
            informacion += "FECHA_PLAZO_CONTESTA = '" + FECHA_PLAZO_CONTESTA.ToString("u") + "', ";

            if (FECHA_CONTESTACION == new DateTime())
            {
                sql += "NULL, ";
                informacion += "FECHA_CONTESTACION = 'NULL', ";
            }
            else
            {
                sql += "'" + FECHA_CONTESTACION.ToString("u") + "', ";
                informacion += "FECHA_CONTESTACION = '" + FECHA_CONTESTACION.ToString("u") + "', ";
            }

            if (String.IsNullOrEmpty(PETICION) == false)
            {
                sql += "'" + PETICION + "', ";
                informacion += "PETICION = '" + PETICION + "', ";
            }
            else
            {
                sql += "NULL, ";
                informacion += "PETICION = 'NULL', ";
            }

            if (ARCHIVO_PETICION != null)
            {
                sql += "'[DATOS_BINARIOS]', ";
                informacion += "ARCHIVO_PETICION = '[DATOS_BINARIOS]', ";

                sql += "'" + ARCHIVO_PETICION_EXTENSION + "', ";
                informacion += "ARCHIVO_PETICION_EXTENSION = '" + ARCHIVO_PETICION_EXTENSION + "', ";

                sql += ARCHIVO_PETICION_TAMANO.ToString() + ", ";
                informacion += "ARCHIVO_PETICION_TAMANO = '" + ARCHIVO_PETICION_TAMANO.ToString() + "', ";

                sql += "'" + ARCHIVO_PETICION_TYPE + "', ";
                informacion += "ARCHIVO_PETICION_TYPE = '" + ARCHIVO_PETICION_TYPE + "', ";
            }
            else
            {
                sql += "NULL, ";
                informacion += "ARCHIVO_PETICION = 'NULL', ";

                sql += "NULL, ";
                informacion += "ARCHIVO_PETICION_EXTENSION = 'NULL', ";

                sql += "NULL, ";
                informacion += "ARCHIVO_PETICION_TAMANO = 'NULL', ";

                sql += "NULL, ";
                informacion += "ARCHIVO_PETICION_TYPE = 'NULL', ";
            }

            if (String.IsNullOrEmpty(FALLO) == false)
            {
                sql += "'" + FALLO + "', ";
                informacion += "FALLO = '" + FALLO + "', ";
            }
            else
            {
                sql += "NULL, ";
                informacion += "FALLO = 'NULL', ";
            }

            if (String.IsNullOrEmpty(RESULTADO_FALLO) == false)
            {
                sql += "'" + RESULTADO_FALLO + "', ";
                informacion += "RESULTADO_FALLO = '" + RESULTADO_FALLO + "', ";
            }
            else
            {
                sql += "NULL, ";
                informacion += "RESULTADO_FALLO = 'NULL', ";
            }

            if (RESPONSABLE != 0)
            {
                sql += "'" + RESPONSABLE + "', ";
                informacion += "RESPONSABLE = '" + RESPONSABLE + "', ";
            }
            else
            {
                MensajeError = "El campo ABOGADO RESPONSABLE no puede ser vacio.";
                ejecutar = false;
            }

            if (ID_EMPRESA != 0)
            {
                sql += ID_EMPRESA + ", ";
                informacion += "ID_EMPRESA = '" + ID_EMPRESA + "', ";
            }
            else
            {
                MensajeError = "El campo ID_EMPRESA no puede ser vacio.";
                ejecutar = false;
            }

            if (REGISTRO_CONTRATO != 0)
            {
                sql += REGISTRO_CONTRATO + ", ";
                informacion += "REGISTRO_CONTRATO = '" + REGISTRO_CONTRATO + "', ";
            }
            else
            {
                MensajeError = "El campo REGISTRO_CONTRATO no puede ser vacio.";
                ejecutar = false;
            }

            if (String.IsNullOrEmpty(CONSIDERACIONES) == false)
            {
                sql += "'" + CONSIDERACIONES + "', ";
                informacion += "CONSIDERACIONES = '" + CONSIDERACIONES + "', ";
            }
            else
            {
                sql += "NULL, ";
                informacion += "CONSIDERACIONES = 'NULL', ";
            }

            sql += "'" + Usuario + "'";
            informacion += "USU_MOD = '" + Usuario + "'";

            #endregion validaciones

            if (ejecutar)
            {
                Conexion conexion = new Conexion(Empresa);
                conexion.IniciarTransaccion();
                try
                {
                    #region actualizar tutelas
                    actualizados = conexion.ExecuteNonQueryParaActualizarTutelaConArchivoPeticion(ID_TUTELA, FECHA_R, FECHA_NOTIFICACION, FECHA_PLAZO_CONTESTA, FECHA_CONTESTACION, PETICION, ARCHIVO_PETICION, ARCHIVO_PETICION_EXTENSION, ARCHIVO_PETICION_TAMANO, ARCHIVO_PETICION_TYPE, FALLO, RESULTADO_FALLO, RESPONSABLE, ID_EMPRESA, REGISTRO_CONTRATO, CONSIDERACIONES, Usuario);
                    #endregion adicionar tutelas

                    #region auditoria
                    if (actualizados > 0)
                    {
                        auditoria _auditoria = new auditoria(Empresa);
                        if (!(_auditoria.Adicionar(Usuario, tabla.CON_REG_TUTELAS, tabla.ACCION_ACTUALIZAR, sql, informacion, conexion)))
                        {
                            conexion.DeshacerTransaccion();
                            MensajeError = "ERROR: Al intentar ingresar la auditoría.";
                            ejecutadoCorrectamente = false;
                        }
                        else
                        {
                            conexion.AceptarTransaccion();
                        }
                    }
                    else
                    {
                        conexion.DeshacerTransaccion();
                        MensajeError = "ERROR: intenatar actualizar en la bd la tutela.";
                        ejecutadoCorrectamente = false;
                    }
                    #endregion auditoria
                }
                catch (Exception e)
                {
                    conexion.DeshacerTransaccion();
                    MensajeError = e.Message;
                    ejecutadoCorrectamente = false;
                }
                finally
                {
                    conexion.Desconectar();
                }
            }

            if (ejecutadoCorrectamente)
            {
                return actualizados;
            }
            else
            {
                return 0;
            }
        }