Проект

Общее

Профиль

Действия

Улучшение #1847

открыто

Расчет пени

Добавил(а) Сергей Потапов около 1 года назад. Обновлено 10 месяца назад.

Статус:
Решена
Приоритет:
Нормальный
Дата начала:
25.04.2024
Срок завершения:
20.05.2024 (опоздание около 11 месяца)
Готовность:

100%

Оценка временных затрат:

Описание

Расчет пени
1. Должно быть реализовано в процедуре sql и процедура расчета пени нужна на postgresql.
2. Правила расчета пени есть в «гугле» и в реализованном виде в двух процедурах
Spr..peni_dolg – плохой пример использующий циклы
Spr..peni_dolg_details – пример без циклов (на части кода касающегося ПИР можно не смотреть)
3. Текущие процедуры рассчитывают пени каждый раз полностью по новому по запросу сразу на все дни. Данный принцип устаревший и не подходит.
Главное отличие нового расчета - пени должны храниться в базе.
При запуске расчета должна доначисляется сумма новой просрочки.
Также логично, что начисления постепенно уменьшаются на сумму оплаты, просто надо убедиться, что код этому не противоречит.
4. За основу данных временно можно взять начисления как они берутся в Spr..peni_dolg_details либо как они есть в ISJKHRSTO..Accruals. В дальнейшем структура таблиц, скорее всего, поменяется.
Основной смысл в том, что нужно учитывать начисления в разрезе: доп. построек, поставщиков, услуг, упр. компаний (в данный момент УК не учитываются нигде).
Например, в Spr..peni_dolg этого не делается, в Spr..peni_dolg_details это делается частично.
Также, так как структура таблиц может измениться хранить пени можно пока во временной таблице.
5. Нужен механизм исключения периодов расчета пени, пример – ковидные времена. Можно посмотреть, как реализовано в выше указанных процедурах.
В такие периоды не только не происходит расчет пени, они исчезают из графика как будто этих дней не существовало, т.е. просрочка предыдущих периодов не увеличивается на эти дни.
6. В коде не должно быть циклов замедляющих выполнение кода.
Postgresql говорят есть но я не проверял. Ниже то, что мне дали, если будут вопросы или это не подходит нужно говорить Славе или лучше Стасу, либо пока что поставить свой.
Таблицы с начислениями придётся скопировать.

Что дал Слава:
По postgresql:
Как вариант можно через pgadmin
postgresql+psycopg2://postgres:159357@localhost/general
По линуксу если нужен:
Интерфейса нет, доступ через ssh
Ip - 172.16.11.111
Логин - site
Пароль - gup1234561596321

Действия

Экспортировать в Atom PDF