Если я правильно читаю, это выглядит следующим образом:
$inrno=str_pad((int)$grmNumber+1, 4, 0, STR_PAD_LEFT);
принимает значение int для $ output-> grmno.И это поле, опять же, если я интерпретирую вашу проблему напрямую, может быть оценено примерно так:
HPDO1209180001
Целочисленное значение такой строки будет равно 0. Следовательно, почему они всегда заканчиваются как0001.
Чтобы исправить это, вам нужно взять последние 4 символа строки и увеличить только это.Например:
$suffix = substr($grmNumber, -4);
$newsuffix = intval($suffix) + 1;
$irno = str_pad($newsuffix, 4, 0, STR_PAD_LEFT);
Это позволит правильно получить последние 4 цифры, добавить одну к значению и снова заполнить его нулями, которые будут добавлены в новую строку.