Personalización nuevo código cliente (get_new_codigo() de cliente.php).
Antes que nada, indicar que no tengo mucha idea de programación. Sólo hago apaños así que puedo haberme equivocado en cualquier tontería.
Queremos empezar a usar un código cliente que empiece por el código de país ("ES" para España, "PT" para Portugal, "CN" para China, etc). De tal manera que sea, por ejemplo ES0000, ES0001, ES0002, etc.
Bien, hasta ahora usábamos un código personalizado que sólo era un cadena de 6 números y la personalización funcionaba bien.
$codclientes = $this->db->select("SELECT ".$this->db->sql_to_int('codcliente')." AS cod FROM ".$this->table_name." ORDER BY cod ASC;");
if($codclientes)
{
foreach($codclientes as $n)
{
if( intval($n['cod']) > $num)
{
$encontrado = TRUE;
break;
}
else
$num++;
}
}
else
{
return sprintf('%06s', intval($num));
}
}
if($encontrado)
{
return sprintf('%06s', intval($num));
}
else
{
if ($num<$max)
{
return sprintf('%06s', intval($num));
}
else
{
return sprintf('%06s','NO_HAY');
}
}
Ahora bien, ahora, para poder contar necesito extraer las dos primeras letras y quedarme con los números, para eso he sustituido
intval($n['cod']) > $num
por
intval(substr($n['cod'],-4)) > $num
, en vez de devolverme 1 para ES0001, siempre devuelve 0, dándome siempre el mismo código ES0000. Curiosamente si pongo
intval(substr("ES0001",-4)) > $num
, el resultado es correcto e igual a 1.
¿Alguna sugerencia?
Muchas gracias.