Bueno... tampoco es la mejor manera de hacer lo que pretendes.
Por ejemplo:
- ¿Usas la variable $end?
- ¿Todos los números deben tener 5 ceros delante? O sea 000001, 000002, ... 00000157, ..., 0000015884... Me parece que si es un código, debería mantenerse el número en 6 cifras. O sea 000001, 000002, ... , 000157, 015884.
Acá te dejo un ejemplo un poco más sencillo:
Código PHP:
<?
$CurRef = "tn00029-23-02-2006";
// Si no usas la variable $end, no la definas
list($start) = explode("-", $CurRef);
// Le quitamos el "tn" para que quede sólo el número
$numero_actual = (int)substr($start, 2);
// Le sumamos 1
$numero_que_sigue = $numero_actual + 1;
// Le agregamos suficientes ceros para que siempre tenga 5 cifras
$numero_con_ceros = sprintf("%05s", $numero_que_sigue );
// Rearmamos la cadena
$GetRefNumber = "tn".$numero_con_ceros ."-"."23-02-2006";
echo $GetRefNumber;
Obvio que el "23-02-06" que agrego al final, deberás cambiarlo por $NDAY (ya que la tienes).
Y esto lo desmenucé para poder explicarlo línea a línea con mayor facilidad... hay líneas que podrían juntarse.
Saludos