Уникальный статус у одной записей сущности
- mailarn
- Инвестор
- Сообщения: 142
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Уникальный статус у одной записей сущности
Есть сущность и поле Выпадающий список, условно со значениями Да/Нет
Надо что бы в любой записи сущности при изменении на "Да", у записи, где в тот момент "Да", менялось на "Нет"
Т.е. Во всей сущности только одна запись может быть со значением Да.
На форуме обсуждалось подобное но только со вложенными сущностями.
Видимо надо делать автоматизацией - выполнить php скрипт.
Поделитесь кодом пожалуйста )
Надо что бы в любой записи сущности при изменении на "Да", у записи, где в тот момент "Да", менялось на "Нет"
Т.е. Во всей сущности только одна запись может быть со значением Да.
На форуме обсуждалось подобное но только со вложенными сущностями.
Видимо надо делать автоматизацией - выполнить php скрипт.
Поделитесь кодом пожалуйста )
Создание отраслевых решений на базе CRM Руководитель https://webus.pro
-
- Сообщения: 391
- Зарегистрирован: 03 мар 2022, 21:40
- Имя: Alex
- Откуда: Россия
- Контактная информация:
Re: Уникальный статус у одной записей сущности
А делал нечто подобное. То есть, у меня было так:mailarn писал(а): ↑23 май 2023, 17:24 Есть сущность и поле Выпадающий список, условно со значениями Да/Нет
Надо что бы в любой записи сущности при изменении на "Да", у записи, где в тот момент "Да", менялось на "Нет"
Т.е. Во всей сущности только одна запись может быть со значением Да.
На форуме обсуждалось подобное но только со вложенными сущностями.
Видимо надо делать автоматизацией - выполнить php скрипт.
Поделитесь кодом пожалуйста )
Если в записях где-то стоит галка Да, то в других записях ее нельзя поставить и выводиться сообщение, что в записи № такая-то уже отмечено, снимите ее и будет счастье.
Если такое интересное - могу посмотреть.
- mailarn
- Инвестор
- Сообщения: 142
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Re: Уникальный статус у одной записей сущности
Мне желательно автоматизацией. В одной записи переключил на "Да", все остальные записи "Нет"
Создание отраслевых решений на базе CRM Руководитель https://webus.pro
Re: Уникальный статус у одной записей сущности
Вот костыль. Простите за убожество, но если никто ничего не предлагает...
Нам понадобится такое же количество полей "Ajax запрос" сколько и логических полей.
Изменение логических полей в форме.
Нам понадобится такое же количество полей "Ajax запрос" сколько и логических полей.
Изменение логических полей в форме.
Код: Выделить всё
// скрыть поле ajax
echo '<script>$(".form-group-1073").hide()</script>';
// поле в форме
$var1 = [1074];
if($var1 == 'true') {
echo '<script>$("#fields_1075").val("false");
$("#fields_1076").val("false");
$("#fields_1077").val("false");
$("#fields_1078").val("false");
</script>';
}
Код: Выделить всё
// скрыть поле ajax
echo '<script>$(".form-group-1079").hide()</script>';
// поле в форме
$var2 = [1075];
if($var2 == 'true') {
echo '<script>$("#fields_1074").val("false");
$("#fields_1076").val("false");
$("#fields_1077").val("false");
$("#fields_1078").val("false");
</script>';
}
Код: Выделить всё
// скрыть поле ajax
echo '<script>$(".form-group-1080").hide()</script>';
// поле в форме
$var3 = [1076];
if($var3 == 'true') {
echo '<script>$("#fields_1074").val("false");
$("#fields_1075").val("false");
$("#fields_1077").val("false");
$("#fields_1078").val("false");
</script>';
}
Код: Выделить всё
// скрыть поле ajax
echo '<script>$(".form-group-1081").hide()</script>';
// поле в форме
$var4 = [1077];
if($var4 == 'true') {
echo '<script>$("#fields_1074").val("false");
$("#fields_1075").val("false");
$("#fields_1076").val("false");
$("#fields_1078").val("false");
</script>';
}
Код: Выделить всё
// скрыть поле ajax
echo '<script>$(".form-group-1082").hide()</script>';
// поле в форме
$var5 = [1078];
if($var5 == 'true') {
echo '<script>$("#fields_1074").val("false");
$("#fields_1075").val("false");
$("#fields_1076").val("false");
$("#fields_1077").val("false");
</script>';
}
Re: Уникальный статус у одной записей сущности
Аааа, кажется я не правильно понял исходный вопрос. Значения не в форме менять надо...
Изменение логического поля во всех записях кроме текущей. Если так, то вот:
Поле "Ajax запрос". При выборе в логическом поле текущей записи значения "Да", все остальные записи перепишутся значением "Нет":
Изменение логического поля во всех записях кроме текущей. Если так, то вот:
Поле "Ajax запрос". При выборе в логическом поле текущей записи значения "Да", все остальные записи перепишутся значением "Нет":
Код: Выделить всё
// скрыть поле ajax с номером 1083
echo '<script>$(".form-group-1083").hide()</script>';
// YY - номер сущности
$log = [XXX]; // логическое поле которое мы отслеживаем
$item_id = $_GET['item_id']; // получаем id текущей записи
if($log == 'true') {
db_query("UPDATE `app_entity_YY` SET `field_XXX` = 'false' WHERE `id` != {$item_id} AND `field_XXX` = 'true'");
}
Последний раз редактировалось tehnos 24 май 2023, 08:46, всего редактировалось 3 раза.
- mailarn
- Инвестор
- Сообщения: 142
- Зарегистрирован: 18 июн 2021, 10:33
- Имя: Антон
- Откуда: Екатеринбург
- Контактная информация:
Re: Уникальный статус у одной записей сущности
Логика понятна, но синтаксис не нравится. Ладно, разбираться буду
Создание отраслевых решений на базе CRM Руководитель https://webus.pro
Re: Уникальный статус у одной записей сущности
Простите, накосячил с полем [id].
В ajax полях его надо вот так звать:
Поправил предыдущий пост.
В ajax полях его надо вот так звать:
Код: Выделить всё
$item_id = $_GET['item_id'];
- Fait
- Инвестор
- Сообщения: 743
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Уникальный статус у одной записей сущности
Думаю, автор имел ввиду не про AJAX, а чтобы так было: поставил галочку в текущей записи - и где-то в другой записи, где эта галочка была, она отключилась автоматически.
Если я правильно понимаю, то вот этот код нужно назначить на автоматизацию с типом срабатывания "После изменения записи":
77 - id сущности
777 - id поля с флажком
Если используется список, то всё аналогично происходит, только код такой будет:
77 - id сущности
777 - id поля со списком
44 - id значения поля "Нет"
55 - id значения поля "Да"
Если я правильно понимаю, то вот этот код нужно назначить на автоматизацию с типом срабатывания "После изменения записи":
Код: Выделить всё
$item_id = [id];
$flag = [777];
if ($flag == 'true') {
db_query('update app_entity_77 set field_777="false" where id<>'.$item_id);
}
777 - id поля с флажком
Если используется список, то всё аналогично происходит, только код такой будет:
Код: Выделить всё
$item_id = [id];
$f_list = [777];
if ($f_list == 55) {
db_query('update app_entity_77 set field_777=44 where id<>'.$item_id);
}
777 - id поля со списком
44 - id значения поля "Нет"
55 - id значения поля "Да"
-
- Сообщения: 2411
- Зарегистрирован: 14 окт 2020, 09:13
- Имя: Ruslan
- Откуда: Moscow
- Контактная информация:
Re: Уникальный статус у одной записей сущности
в обоих кодах лучше после where добавить условие выборки значения полей со значением "да"! так как смысла менять все записи нет, в некоторых же будет и так значение "нет"!Fait писал(а): ↑24 май 2023, 02:38 Думаю, автор имел ввиду не про AJAX, а чтобы так было: поставил галочку в текущей записи - и где-то в другой записи, где эта галочка была, она отключилась автоматически.
Если я правильно понимаю, то вот этот код нужно назначить на автоматизацию с типом срабатывания "После изменения записи":77 - id сущностиКод: Выделить всё
$item_id = [id]; $flag = [777]; if ($flag == 'true') { db_query('update app_entity_77 set field_777="false" where id<>'.$item_id); }
777 - id поля с флажком
Если используется список, то всё аналогично происходит, только код такой будет:77 - id сущностиКод: Выделить всё
$item_id = [id]; $f_list = [777]; if ($f_list == 55) { db_query('update app_entity_77 set field_777=44 where id<>'.$item_id); }
777 - id поля со списком
44 - id значения поля "Нет"
55 - id значения поля "Да
Например: если у вас их там 25000, потом будут жалобы на тормаза и вылеты)
Re: Уникальный статус у одной записей сущности
Согласен. Добавил в свой пост условие, что меняем только трушные записи.
Да и php скрипт в автоматизацию при изменении записи - более логично конечно.
Для автоматизации:
Да и php скрипт в автоматизацию при изменении записи - более логично конечно.
Для автоматизации:
Код: Выделить всё
$log = [XXX]; // логическое поле которое мы отслеживаем
if($log == 'true') {
db_query("UPDATE `app_entity_YY` SET `field_XXX` = 'false' WHERE `id` != [id] AND `field_XXX` = 'true'");
}