Blogia
Angel

Validar ccc con php

El Codigo de Cuenta Cliente consta de 4 numeros de entidad, 4 numeros de oficina, 2 digitos de control (el primero valida los numeros de entidad y oficina, y el segundo valida el numero de cuenta), y 10 digitos de numero de cuenta.

Necesitamosdos funciones, una que valide el numero, y otra que compruebe que el numero de control corresponde con ese numero:


function ccc_ok(&$ccc)

{

  global $digitos;

  $ccc=trim($ccc);

  $patron_ok=ereg($s="^(${digitos}{4})-?(${digitos}{4})-?([0-9 *])([0-9 *])-?($digitos{10})$",$ccc,$v);

  if (!$patron_ok)

    return false;

  $dc1=obtener_digito($v[1].$v[2]);

  $dc2=obtener_digito($v[5]);

  if ($v[3]==" " || $v[3]=="*") $v[3]=$dc1;

  if ($v[4]==" " || $v[4]=="*") $v[4]=$dc2;

  if ($v[3]==$dc1 && $v[4]==$dc2)

  {

    $ccc=$v[1].$v[2].$v[3].$v[4].$v[5];

    return true;

  } else return false;

}





function obtener_digito($valor){

  $valores = array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);

  if (strlen($valor)==8) $valor="00".$valor;

  $control = 0;

  for ($i=0; $i<10; $i++)

    $control +=$valor[$i] * $valores[$i];

  $control = 11 - ($control % 11);

  if ($control == 11) $control = 0;

  else if ($control == 10) $control = 1;

  return $control;

}

0 comentarios