|
![]() |
#1 |
Moderator
|
![]()
Доброе утро! С переходом на Добрый день!
![]() Изначально вопрос -- как программно понять что сработал DeleteAction? И сама задача: при попытке удалить складские журналы, они теперь не удаляются а меняют свой статус и их можно видеть в своей форме (стандартная таблица, стандарттная форма для складских журналов). Как перегрузить delete у inventJournalTable понятно, непонятно как перекрыть deleteAction на inventJournalTrans!? Почему не перекрыть метод delete на inventJournalTrans -- потому что он может вызываться из многих других мест, а при этом запрещать удаление я думаю неправильно. Почему в delete InventJournalTrans не оперировать статусом InventJournalTable (InventJournalType: ![]() Вот на этом остановился.. |
|
![]() |
#2 |
Участник
|
а разве delete action вызывается если не вызывать super в delete? раз вы хотите отменить удаление в журнале надо просто
X++: void delete() { //вместо super(); this.markAsDeleted(); } |
|
![]() |
#3 |
Moderator
|
Даа, действительно!
![]() ![]() Спасибо! |
|
![]() |
#4 |
Member
|
Странная постановка задачи. Похожа на анекдот про студента, пальму и обезьяну.
По-моему, вам просто нужно уничтожить delete action. А то какая-то фигня получается. Delete action есть, а данные не удаляются. Для чего вы хотите оставить delete action?
__________________
С уважением, glibs® |
|
![]() |
#5 |
Moderator
|
![]()
Спасибо! Действительно.
Причины, две: 1. Сейчас тестирую, и если придется откатывать назад, то хотелось бы иметь минимум изменений. 2. Будет одна форма на которой хотелось бы стандартным способом удалять журналы (форма с журналами помеченными на удаление). А вцелом согласен, хорошо бы удалить. |
|
![]() |
#6 |
Administrator
|
Смотрите как сделано стандартное аннулирование заказов.
Впрочем, вам уже и рассказали как.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
![]() |
#7 |
Moderator
|
Стандартное анулирование заказов -- это переписывание заказа в новую таблицы (SalesTableDelete и SalesLineDelete, возможно еще куда). Но при анулировании складских журналов можно поступить хитрее, с минимальным программированием и получением максимально удобного функционала -- изменить статус журнала.
Написать надо: новый статус, перекрыть delete в заголовке журнала, и menuItem который вызывает стандартную форму, в которой будут отображаться анулированные журналы. В этой форме добавим кнопочку восстановить, которая возвращает прежний статус и кнопочку для удаления журнала. И все. Подвоха пока не вижу. Разве что периоически удалять ненужные анулированные журналы. |
|
![]() |
#8 |
Administrator
|
В контексте данной задачи разницы нет. Я Вам предложил посмотреть, как работают с Delete Action между заказом и его строчками.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
![]() |
#9 |
Moderator
|
Да, интересно. Спасибо!
При удалении заголовка, в цикле удаляются строки, перед удалением создаются в SalesTableDelete. PHP код:
|
|