Buenos dias muchachos:
Estoy validando en el modelo. Tengo una tabla con el campo Cuit. el mismo
esta declarado como integer(11).
en el modelo, en las validaciones tengo:
'cuit'=> array(
'rule' => array('CPcuitValido'),
'message' => 'Cuit invalido.'
)
y la funcion declarada mas abajo que dice:
function CPcuitValido( $cuit ) {
$esCuit=false;
if ( strlen($cuit) <> 11) { // si to estan todos los
digitos
$esCuit=false;
} else
{
$x=$i=$dv=0;
// Multiplico los dígitos.
$vec[0] = (substr($cuit, 0, 1)) * 5;
$vec[1] = (substr($cuit, 1, 1)) * 4;
$vec[2] = (substr($cuit, 2, 1)) * 3;
$vec[3] = (substr($cuit, 3, 1)) * 2;
$vec[4] = (substr($cuit, 4, 1)) * 7;
$vec[5] = (substr($cuit, 5, 1)) * 6;
$vec[6] = (substr($cuit, 6, 1)) * 5;
$vec[7] = (substr($cuit, 7, 1)) * 4;
$vec[8] = (substr($cuit, 8, 1)) * 3;
$vec[9] = (substr($cuit, 9, 1)) * 2;
// Suma cada uno de los resultado.
for( $i = 0;$i<=9; $i++) {
$x += $vec[$i];
}
$dv = (11 - ($x % 11)) % 11;
if ($dv == (substr($cuit, 10, 1)) ) {
$esCuit=true;
}
}
return( $esCuit );
}
Hasta aca todo bien. elproblema es que cuando ejecuto me da siempre cuit
invalido. Se queda en la linea
if ( strlen($cuit) <> 11),
y el navegador muestra una advertencia:
strlen() expects parameter 1 to be string, array given.
Como que recibio una matriz en vez de un string o un int. Aclaro q ya
probe en la BD cambiarle el tipo a cuit por string.
y cuando dejo que la funcion pase el if (por ej lo pongo
if ( strlen($cuit) = 11) igual en vez de dsitinto, para q pase la
condicion,
me da un error fatal
Fatal error: Can't use function return value in write context in
C:\xampp\htdocs\PRUEBA\app\models\contribuyente.php on line 71
La linea 71, es precisamente la del bendito If.....
si alguien me puede dar una mano de por que la funcion me toma una
matriz.. hace 3 dias q vengo dando vueltas con esto.
desde ya muchas gracias y saludos
Pablo
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a
[email protected]
Para tener acceso a más opciones, visita el grupo en
http://groups.google.com/group/cakephp-es?hl=es.