Знакомая проблема: пользователи хотят видеть красиво пронумерованные документы.
За годы работы так и не сформировал единого подхода к преобразованию "непонятного" ID в "красивые циферки".
Есть такие реализации, может что подойдет:
1. Считаем порядок по счетчику, который сбрасываем в начале года. Легко реализуется. Минусы: при удалении элементов будут "дыры" в последовательности, что не нравится пользователям.
2. Считаем порядок динамически по дате добавления/утверждения записи. Легко реализуется. Минусы: при редактировании даты, добавлении документов "задним числом" нумерация поедет, что тоже не нравится пользователям.
3. Рассчитывать следующий номер документа исходя из номера последнего сохраненного (N+1). Обычно работает в паре с возможностью изменения номера руками (администратором ИС, например) - сбрасываем ответственность за нумерацию на пользователей. Полно подводных камней: от необходимости реализовать "сместить все на единичку с такого-то документа" до "нумерация поехала, исправьте".
Если запретить манипуляции с датами и удалением документов, то сбрасываемый счетчик очень хорошо себя показывает. Но это практически нереально - без манипуляций обойтись...