logo
logo
О лимитах операций и бюджете 3 [Denis ® 25/01/2005 02:08]
Учитывая то, что изменения в фактическое исполнение лимита вносятся при вводе/редактировании операций, то логика обработки операции (после нажатия кнопки «Ok») должна содержать следующую логику:
 
Программа перебирает все активированные лимиты, если лимит содержит один из реквизитов текущей операции (счет, статья, агент, проект, и т.д. введенным классификаторам) или лимит содержит родительское значение одного из реквизитов текущей операции, то программа сравнивает валюту лимита, если она совпадает с валютой операции, то программа уменьшает/увеличивает фактическое исполнение по лимиту.
 
В случае, если валюта операции и валюта лимита не совпадает, то программа проводит конвертацию по курсам валют и уменьшает/увеличивает фактическое исполнение по лимиту.
 
После отражения фактического исполнения лимита, программа сравнивает его с плановым значением, в случае если происходит превышение установленного лимита, то программа «выставляет флаг».
 
После обработки текущего лимита, программа продолжает обработку всех оставшихся активированных, но пока не обработанных лимитов.
 
После обработки всех активированных лимитов программа проводит проверку «выставленного флага», если он «поднят», то программа уведомляет пользователя о том, что «Один или более лимитов превышены». Уведомление может выдаваться в статусной строке (допустим красным цветом) или информационным сообщением (MessageBox), вариант со статусной строкой предпочтительнее.
 
При переходе на закладку «Лимиты», превышающие лимиты выделяются (например, помечаются цветом).
 
При запуске ввода/ редактирования операции значение «выставленного флага» устанавливается в значение «опущен».