23.05.2011, 10:45 | #1 |
Участник
|
Удаление договора
Есть ситуация:
1. Создан договор №1 в модуле Расчеты с поставщиками и переведен в статус "Действует" 2. Создана закупка, в которой указали договор №1 3. Перевели договор в статус "Не оформлен". Теперь договор спокойно можно удалить. Хотя RContractTable в DeleteActions прописано: PurchTable: Restricted Как можно запретить удаление договора, если он указан в закупке? Не смотря на статус. Версия Ax 3.0 SP5 |
|
23.05.2011, 10:52 | #2 |
Ищущий знания...
|
похожая тема, возможно поможет.
Снова вопрос по DeleteAction
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
23.05.2011, 11:13 | #3 |
северный Будда
|
Я бы лучше запретил откат статуса для договора, уже указанного в закупках.
__________________
С уважением, Вячеслав |
|
23.05.2011, 12:16 | #4 |
Участник
|
Цитата:
Сообщение от lev
похожая тема, возможно поможет.
Снова вопрос по DeleteAction X++: public boolean validateDelete() { boolean ret; ret = super(); if (ret && this.RContractStatus == RcontractStatus::Active && this.RContractStatus == RcontractStatus::Passive) // добавил сам ret = false; return ret; } |
|
23.05.2011, 12:20 | #5 |
Участник
|
|
|
23.05.2011, 12:27 | #6 |
Ищущий знания...
|
ну тогда самый простой вариант написать селект firstonly по PurchTable, и если вдруг какая запись нашлась, то запретить удаление (throw error или ещё как, дело ваше )
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
23.05.2011, 13:24 | #7 |
Мрачный тип
|
1) Убить в таблице PurchTable из Relation на RContractTable ограничения на поле RContractStatus таблицы RContractTable
2) В форме PurchTable на поле RContractAccount источника данных PurchTable переопределить lookup() c ограниченим, идентичным изначальному Relation 3) В форме PurchCreateOrder - аналогично п.2 Проблема вся в убого сделанном Relation - он заточен только под lookup(), про DeleteAction его создатели забыли (срабатывает только по договорам в статусе "действует")
__________________
Мы летаем, кружимся, нагоняем ужасы ... Последний раз редактировалось TasmanianDevil; 23.05.2011 в 13:33. |
|
23.05.2011, 14:07 | #8 |
северный Будда
|
Переопределять lookup недостаточно - выбрать из выпадающего не тот договор не смогут, а вот вписать руками - запросто
Напишите exist на PurchTable по номеру договора и вызывайте его при откате договора. Если возвращает true - значит, откатывать нельзя, потому что договор фигурирует в закупке
__________________
С уважением, Вячеслав Последний раз редактировалось pitersky; 23.05.2011 в 14:13. |
|