Menu
Welcome, Guest
Username: Password: Remember me

TOPIC: Insertar en las Cuentas y Contactos una función que calcule la letra del DNI

Insertar en las Cuentas y Contactos una función que calcule la letra del DNI 2 years 3 months ago #46920

  • mayusoruiz
  • mayusoruiz's Avatar
  • Offline
  • New Member
  • Posts: 10
  • Thank you received: 1
  • Karma: 0
Aquí dejo el código que he utilizado para poner la letra al DNI/NIF/NIE en un campo habilitado para ello en Cuentas y contactos.
function letradni(){
  $("#docidentidad_c").attr("onBlur","digitocontrol();");
}

function preparar_numero(){
   var digitos = document.getElementById("docidentidad_c").value;
   var dni = primer_digito(digitos)[1] + digitos.substring(1);
   return dni;
}

function digitocontrol(){
   var digitos = preparar_numero();
   var numero = parseInt(digitos);
   var resto = numero % 23;
   var letra = ['T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E'];
   document.getElementById('docidentidad_c').value = dni(numero.toString()) + letra[resto];
}

function dni(valor){
   var tipo_identidad = document.getElementById('cif_c').value;
   var digitos = document.getElementById("docidentidad_c").value;
   var dig1 = primer_digito(digitos);
   dig1 = dig1[0];
   switch(tipo_identidad) {
     case 'NIE':
       if (dig1 != 'X' && dig1 != 'Y' && dig1 != 'Z') {
         alert('NIE Incorrecto. Corríjalo');
       } else {
         digitos = dig1 + '0'.repeat(7-valor.toString().length) + valor;
       }
       break;
     case 'NIF':
       var digitos = "0".repeat(8-valor.toString().length) + valor;
       break;
     case 'DNI':
       var digitos = "0".repeat(8-valor.toString().length) + valor;
       break;
     default:
       var digitos = dig1 + valor;

   }   
   return digitos;
}


function primer_digito(digitos){
  switch(digitos.charAt(0)) {
      case 'X':
         dig1=['X', '0'];
         break;
      case 'Y':
         dig1=['Y', '1'];
         break;
      case 'Z':
         dig1=['Z', '2'];
         break;
      default:
         dig1=[digitos.charAt(0), digitos.charAt(0)];
  }
  return dig1;
}
The administrator has disabled public write access.

Insertar en las Cuentas y Contactos una función que calcule la letra del DNI 1 year 1 month ago #69551

  • danieltoro
  • danieltoro's Avatar
  • Offline
  • New Member
  • Posts: 1
  • Karma: 0
Hola como agregas ese código podrías explicarnos un poco más
Saludos!
The administrator has disabled public write access.

Insertar en las Cuentas y Contactos una función que calcule la letra del DNI 4 months 1 week ago #80030

  • mayusoruiz
  • mayusoruiz's Avatar
  • Offline
  • New Member
  • Posts: 10
  • Thank you received: 1
  • Karma: 0
Lo primero es crear dos campos en Accounts, o en Contacts:
- Un campo de lista que contenga NIF, DNI,CIF,NIE,PAS
- Y un campo de texto para introducir el DNI/NIE/NIF/CIF
Y si lo quieres implementar en el código de la vista de edición sólo tienes que añadir el fichero editviewdefs.php correspondiente:

..........
'field' => '30',
),
),
'includes' => <
Aquí empieza el código a introducir
array (
0 =>
array (
'file' => 'custom/js/letra_dni.js',
),
),
'javascript' => '
{literal}
<script type="text/javascript">
jQuery(function(){
//letradni
letradni();
});
</script>
{/literal}
', <
Aquí termina el código a introducir
'useTabs' => false,
'tabDefs' =>
...............

Saludos
The administrator has disabled public write access.
Moderators: disytel
Time to create page: 0.060 seconds
Powered by Kunena Forum