Здравствуйте. ИМХО, ошибка в Вашем расчете.
С 21.06.12 по 20.06.15 три полностью отработанных года. По 36 дней отпуска, значит, положено 36*3=108 дней.
Период с 21.06.15 по 17.07.15 составляет более половины месяца, значит, еще 36/12*1=3 дня отпуска. Итого получается, что всего за период работы работник заработал 111 дней очередного оплачиваемого отпуска.
Из них отгулял 36+14+22+17=89 дней. Осталось 111-89=22 дня, как программа и считает...
Может, были какие-то периоды, которые в стаж для отпуска не входят?Напомню, что очередной отпуск в стаж входит.
Цитата: В стаж работы, дающий право на ежегодный основной оплачиваемый отпуск, включаются:время фактической работы;время, когда работник фактически не работал, но за ним в соответствии с трудовым законодательством и иными нормативными правовыми актами, содержащими нормы трудового права, коллективным договором, соглашениями, локальными нормативными актами, трудовым договором сохранялось место работы (должность),в том числе время ежегодного оплачиваемого отпуска, нерабочие праздничные дни, выходные дни и другие предоставляемые работнику дни отдыха;