Preinscripción de aspirante extranjera

Buenos días,
Estamos en la versión 3.21.3 de Preinscripción y desde el área de alumnos nos plantean el siguiente problema cuando una alumna extranjera quiere preinscribirse:
Su cédula de identidad es 1.xxx.xxx.xxx (mil millones) y el sistema solo permite que la identificación sea inferior a 100 millones.
¿Cómo resolvemos la situación?
Saludos
Marcela

Hola Marcela, buen día!
Creemos que el inconveniente se encuentra al no seleccionar bien el tipo de documento.
Si quieren cargar el documento de identidad de un país deben seleccionar dicho país como emisor del documento y después seleccionar la opción de DNI que corresponde a ese país.
En la base de datos pueden configurar con qué nombre aparezca según el país emisor y también indicarle su propia regla de validación.
Les compartimos un foro en donde se habla respecto de esto: Error al modificar documento de un extranjero, no admite guiones, ni puntos.

Saludos!

Buenos días Ariana,
En este caso seleccionamos Nacionalidad:Extranjero, País emisor: Colombia y Tipo de Documento: Cédula de Ciudadanía que es lo que presenta el aspirante.
Te adjunto imagen.


También observo que en la tabla mdp_tipos_documentos no se encuentra Cédula de Ciudadanía

Hola Marcela!
Vemos que si son correctos los datos que está seleccionando la persona; esa cédula de identidad entonces debe corresponder al tipo de documento 0.

Si se fijan en la tabla mdp_tipo_documento_pais van a ver que para Colombia ese tipo de documento 0 lo tienen con el nombre de “Cédula de Identidad”. En esa misma tabla van a ver que hay un campo que se llama exp_regular_validacion. Este campo es la expresión regular para validar el ingreso del número de documento. Solo se registra esta expresión regular si difiere para el país respecto de la expresión de regularidad por defecto del tipo de documento. Es decir, es la regla que indica que tipo de controles se va exigir sobre lo que se ingrese en dicho campo.

En este caso es posible que no tenga un valor registrado y por eso esté utilizando las mismas reglas que se usan para el DNI argentino (que sería la expresión regular por defecto). Deberían crear y adjuntarle la regla que corresponde a la cédula de identidad colombiana.

Saludos!

Hola Ariana,
Lo que hicimos fue agregar una expresión regular en la tabla mdp_tipo_documento_pais para el país Colombia y el tipo_documento = 0, según lo que te entendí.
El problema es que sigue validando que sea menor a 100 millones, porque dicha validación está en el código para el tipo de documento = 0.
En el archivo form_datos_principales.php en la siguiente función realiza la validación:

  function validar_nro_documento()
        {
                $entidad_tipo_doc = g3::entidad('tipos_documentos_pais')->get_entidad($this->datos['pais_documento']."_".$this->datos['tipo_documento']);

                // Validaci�n en base a la expresi�n regular
                $valido = true;
                $exp_reg= '/' . $entidad_tipo_doc['exp_regular_validacion'] . '/';
                if (!preg_match($exp_reg, $this->datos['nro_documento'])) {
                        // Documento inv�lido seg�n la expresi�n regular
                        $valido = false;
                        $this->agregar_error('nro_documento', $entidad_tipo_doc['exp_regular_mensaje']);
                }

                switch ($this->datos['tipo_documento']) {
                        case comunes::TIPO_DOCUMENTO_DNI:
                                // Valida que el DNI sea mayor a 1 mill�n y menor a 100 millones.
                                if (($this->datos['nro_documento'] < comunes::NRO_DOCUMENTO_DNI_DNT_MIN) || ($this->datos['nro_documento'] > comunes::NRO_DOCUMENTO_DNI_DNT_MAX)) {
                                        $mensaje = kernel::traductor()->trans('nro_documento.dni.error');
                                        $this->agregar_error('nro_documento', $mensaje);
                                        $valido = false;
                                }
                                break;
                        case comunes::TIPO_DOCUMENTO_CUIL_CUIT:
                                // Valida que el CUIL/CUIT sea valido.
                                if (!comunes::validarCUIT($this->datos['nro_documento'])) {
                                        $mensaje = kernel::traductor()->trans('nro_documento.cuil.error');
                                        $this->agregar_error('nro_documento', $mensaje);
                                        $valido = false;
                                }
                                break;
                }

                return $valido;
        }

La validación la hace en función a dos constantes NRO_DOCUMENTO_DNI_DNT_MIN y NRO_DOCUMENTO_DNI_DNT_MAX ambas están en el archivo comunes.php
Entiendo que cambiar el valor de la constante NRO_DOCUMENTO_DNI_DNT_MAX no sería correcto porque permitiría un DNI argentino mayor a 100 millones.
¿Será que debo agregar otro registro en la tabla mdp_tipo_documento_pais para Colombia donde el tipo_documento no sea 0?

Saludos

Hola Marcela!
Claro, lo que tienen que hacer es agregar otro registro en la tabla mdp_tipo_documento_pais para Colombia donde el tipo_documento no sea 0.

Saludos!