public Decimal AdicionarRegSolicitudesingreso(DateTime FECHA_R,
            String APELLIDOS,
            String NOMBRES,
            String TIP_DOC_IDENTIDAD,
            String NUM_DOC_IDENTIDAD,
            String CIU_CEDULA,
            String LIB_MILITAR,
            String CAT_LIC_COND,
            String DIR_ASPIRANTE,
            String SECTOR,
            String CIU_ASPIRANTE,
            String TEL_ASPIRANTE,
            String SEXO,
            DateTime FCH_NACIMIENTO,
            String ID_GRUPOS_PRIMARIOS,
            int ID_FUENTE,
            String CONDUCTO,
            int NIV_EDUCACION,
            String E_MAIL,
            int ID_AREASINTERES,
            Decimal ASPIRACION_SALARIAL,
            String EXPERIENCIA,
            Decimal ID_OCUPACION,
            String NUCLEO_FORMACION,
            String TALLA_CAMISA,
            String TALLA_PANTALON,
            String TALLA_ZAPATOS,
            int ESTRATO,
            int NRO_HIJOS,
            Boolean C_FMLIA,
            String CEL_ASPIRANTE,
            String ESTADO_CIVIL,
            Int32 ID_PAIS,
            String TIPO_VIVIENDA,
            String FUENTE_CONOCIMIENTO,
            List<FormacionAcademica> listaFormacionAcademica,
            List<ExperienciaLaboral> listaExperiencia,
            List<ComposicionFamiliar> listaComposicionFamiliar,
            String RH)
        {
            Boolean correcto = true;

            Decimal ID_SOLICITUD = 0;

            Conexion conexion = new Conexion(Empresa);
            conexion.IniciarTransaccion();

            try
            {
                ID_SOLICITUD = AdicionarRegistroRegSolicitudIngreso(FECHA_R, APELLIDOS, NOMBRES, TIP_DOC_IDENTIDAD, NUM_DOC_IDENTIDAD, CIU_CEDULA, LIB_MILITAR, CAT_LIC_COND, DIR_ASPIRANTE, SECTOR, CIU_ASPIRANTE, TEL_ASPIRANTE, SEXO, FCH_NACIMIENTO, ID_GRUPOS_PRIMARIOS, ID_FUENTE, CONDUCTO, NIV_EDUCACION, E_MAIL, ID_AREASINTERES, ASPIRACION_SALARIAL, EXPERIENCIA, ID_OCUPACION, NUCLEO_FORMACION, TALLA_CAMISA, TALLA_PANTALON, TALLA_ZAPATOS, ESTRATO, NRO_HIJOS, C_FMLIA, CEL_ASPIRANTE, ESTADO_CIVIL, ID_PAIS, TIPO_VIVIENDA, FUENTE_CONOCIMIENTO, RH, conexion);

                if (ID_SOLICITUD <= 0)
                {
                    conexion.DeshacerTransaccion();
                    correcto = false;
                    ID_SOLICITUD = 0;
                }
                else
                {
                    hojasVida _hoja = new hojasVida(Empresa, Usuario);

                    DataTable tablaEntrevista = _hoja.ObtenerSelRegEntrevistasPorIdSolicitud(ID_SOLICITUD, conexion);

                    if (_hoja.MensajeError != null)
                    {
                        conexion.DeshacerTransaccion();
                        correcto = false;
                        ID_SOLICITUD = 0;
                    }
                    else
                    {
                        Decimal ID_ENTREVISTA;

                        if (tablaEntrevista.Rows.Count <= 0)
                        {
                            ID_ENTREVISTA = _hoja.AdicionarSelRegEntrevistas(ID_SOLICITUD, FECHA_R, "Ninguna", "Ninguna", "Ninguna", "Ninguna", conexion);

                            if (ID_ENTREVISTA <= 0)
                            {
                                conexion.DeshacerTransaccion();
                                correcto = false;
                                ID_SOLICITUD = 0;
                                ID_ENTREVISTA = 0;
                            }
                        }
                        else
                        {
                            DataRow filaEntrevista = tablaEntrevista.Rows[0];
                            ID_ENTREVISTA = Convert.ToDecimal(filaEntrevista["REGISTRO"]);
                        }

                        if (correcto == true)
                        {
                            if (_hoja.ActualizarFormacionAcademicaEntrevistado(ID_ENTREVISTA, listaFormacionAcademica, conexion) == false)
                            {
                                conexion.DeshacerTransaccion();
                                correcto = false;
                                ID_SOLICITUD = 0;
                            }
                            else
                            {
                                if (_hoja.ActualizarExperienciaLaboralEntrevistado(ID_ENTREVISTA, listaExperiencia, conexion) == false)
                                {
                                    conexion.DeshacerTransaccion();
                                    correcto = false;
                                    ID_SOLICITUD = 0;
                                }
                                else
                                {
                                    if (_hoja.ActulizarComposicionFamiliarEntrevista(ID_ENTREVISTA, listaComposicionFamiliar, conexion) == false)
                                    {
                                        conexion.DeshacerTransaccion();
                                        correcto = false;
                                        ID_SOLICITUD = 0;
                                    }
                                }
                            }
                        }
                    }
                }

                if (correcto == true)
                {
                    conexion.AceptarTransaccion();
                }
            }
            catch (Exception ex)
            {
                correcto = false;
                MensajeError = ex.Message;
                ID_SOLICITUD = 0;
            }
            finally
            {
                conexion.Desconectar();
            }

            return ID_SOLICITUD;
        }