Страница 1 из 1

Проверка перед удалением.

Добавлено: 21 фев 2024, 10:30
imamverdiyeveldar
Добрый день, подскажите пожалуйста как можно реализовать данный функционал? Допустим есть записи, чтобы при нажатии на кнопку удалить или из "с выбранными" проводилась проверка по одному из полей записи и потом проводилось удаление в противном случае оставить не удалить.
Для чего нужно: есть сущность номенклатура, эти записи могут быть использованы в разных сущностях (продажи, приходы, возвраты и т.д.) и когда удаляешь запись тут, заходишь в приходы и видишь безымянную запись. Стандартными средствами почему то не получилось забыл почему (правила доступа хотят выпадающий список отдельный, который так же в свою очередь надо настроить на нужный статус. автостатус работает на странице записи после редактирования кажется)

В любом случае думаю можно как то проще решить данную проблему. Допустим есть поле кол-во записей в подсущности. если оно равно нулю - то можно удалить. нет если там есть запись запретить удаление или же пропустить

Re: Проверка перед удалением.

Добавлено: 21 фев 2024, 11:00
nruslan2
Использовать автоматизацию - там есть выполнить процесс перед удалением.

Re: Проверка перед удалением.

Добавлено: 21 фев 2024, 11:20
imamverdiyeveldar
nruslan2 писал(а): 21 фев 2024, 11:00 Использовать автоматизацию - там есть выполнить процесс перед удалением.
не подскажите код? как запретить удаление если поле А > 0 например

Re: Проверка перед удалением.

Добавлено: 21 фев 2024, 11:52
imamverdiyeveldar
imamverdiyeveldar писал(а): 21 фев 2024, 11:20
nruslan2 писал(а): 21 фев 2024, 11:00 Использовать автоматизацию - там есть выполнить процесс перед удалением.
не подскажите код? как запретить удаление если поле А > 0 например
хах! нашел решение самое простое:
1)запретить всем удалять запись
2)создать процесс удаления записи, выполнить php код:

$tovar = [id];

db_query("delete from app_entity_37 where id={$tovar}");
3)повесить фильтр на эту автоматизацию
и все.

Re: Проверка перед удалением.

Добавлено: 22 фев 2024, 07:56
tehnos
Удалять напрямую из базы - так себе варик.
Используйте класс:

Код: Выделить всё

items::delete($entities_id, $items_id);
В Вашем случае выглядит так:

Код: Выделить всё

$tovar = [id];
items::delete(37, $tovar);

Re: Проверка перед удалением.

Добавлено: 22 фев 2024, 08:42
imamverdiyeveldar
tehnos писал(а): 22 фев 2024, 07:56 Удалять напрямую из базы - так себе варик.
Используйте класс:

Код: Выделить всё

items::delete($entities_id, $items_id);
В Вашем случае выглядит так:

Код: Выделить всё

$tovar = [id];
items::delete(37, $tovar);
Подскажите пожалуйста в чем разница?

Re: Проверка перед удалением.

Добавлено: 22 фев 2024, 08:49
tehnos
Если удалять напрямую из БД - система не знает, что Вы что-то удаляете и не запустит соответствующие автоматизации и процессы (если они конечно есть).
Например, не отправит уведомления или не изменит автостатус или ещё что Вы там навесите на удаление записей.

Re: Проверка перед удалением.

Добавлено: 22 фев 2024, 09:11
nruslan2
в данном случаи у вас как минимум из доп таблицы значения спиков - не будут удалены данные.

воспользуйтесь советом выше использовать готовые команды.

Касательно общего способа, минус вашего варианта(отключить удаление вообще) в том, что это спецкнопка, а стандартные кнопки удаления отключены!

Re: Проверка перед удалением.

Добавлено: 22 фев 2024, 09:32
imamverdiyeveldar
Большое спасибо за информацию!!!