
О лимитах операций и бюджете 3
Учитывая то, что изменения в фактическое исполнение лимита вносятся при вводе/редактировании
операций, то логика обработки операции (после нажатия кнопки <<Ok>>) должна содержать
следующую логику:
Программа перебирает все активированные лимиты, если лимит содержит один из реквизитов
текущей операции (счет, статья, агент, проект, и т.д. введенным классификаторам)
или лимит содержит родительское значение одного из реквизитов текущей операции,
то программа сравнивает валюту лимита, если она совпадает с валютой операции,
то программа уменьшает/увеличивает фактическое исполнение по лимиту.
В случае, если валюта операции и валюта лимита не совпадает, то программа проводит
конвертацию по курсам валют и уменьшает/увеличивает фактическое исполнение по
лимиту.
После отражения фактического исполнения лимита, программа сравнивает его с плановым
значением, в случае если происходит превышение установленного лимита, то программа
<<выставляет флаг>>.
После обработки текущего лимита, программа продолжает обработку всех оставшихся
активированных, но пока не обработанных лимитов.
После обработки всех активированных лимитов программа проводит проверку <<выставленного
<<Один или более лимитов превышены>>. Уведомление может выдаваться в статусной
строке (допустим красным цветом) или информационным сообщением (MessageBox),
вариант со статусной строкой предпочтительнее.
При переходе на закладку <<Лимиты>>, превышающие лимиты выделяются (например,
помечаются цветом).
При запуске ввода/ редактирования операции значение <<выставленного флага>> устанавливается
в значение <<опущен>>.