Имеется самописный движок системы, в нем есть несколько точек где происходит подсчет зарплаты основанный на данных телефонии. Результатом расчетов является HTML отображение, либо PDF документ, либо результирующая сумма для других блоков логики.
Подскажите какими паттернами можно реализовать эту логику таким образом, чтоб все расчеты происходили в одной точке кода, а в зависимости от необходимости мы получили этот результат в HTML, либо PDF, либо просто результирующую цифру.
Логика подсчета неоднозначная, это не просто выборка из одной таблицы, а и математические вычисления над длительностью с применением других параметров, плюс выборка идет в несколько этапов из разных таблиц, что не позволяет получить в расчете цифру и просто обернуть ее в HTML или в PDF, необходимо и листинг выбранных строк произвести.