Автоматизация

Все вопросы/проблемы по установке и использовании.
Ответить
mike_22
Сообщения: 3
Зарегистрирован: 17 май 2023, 12:56
Имя: Михаил
Откуда: Россия

Автоматизация

Сообщение mike_22 »

Доброго времени суток. Подскажите как можно решить данную задачу...
Есть такая схема сущностей (111.png). Создана кнопка автоматизации "Отмена Проекта" - Нужно что бы во всех вложенных сущностях (Этапы Проекта и Задачи Проекта) Статус менялся на "Отменён". Для первого вложения (Этап проекта) это сделать без проблем (222.png), а вот для "Задачи Проекта" возможности нет. Как можно выйти из данного положения?
Заранее спасибо!
Вложения
222.png
111.png
nruslan2
Сообщения: 2435
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow

Re: Автоматизация

Сообщение nruslan2 »

два варианта
-сделать явную связь между 1 и 3 сущностью (не удобно ни разу в использовании системой, но проще в настройке)
-использовать автоматизацию - код php и написать код который будет по структуре проходить и обновлять значения
mike_22
Сообщения: 3
Зарегистрирован: 17 май 2023, 12:56
Имя: Михаил
Откуда: Россия

Re: Автоматизация

Сообщение mike_22 »

Спасибо!
Первый вариант, наверное, сразу нет))) ибо действительно не удобно будет пользоваться.
Второй вариант - нужна помощь, т.к совсем не писатель кодов))))
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1197
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:

Re: Автоматизация

Сообщение Fait »

mike_22 писал(а): 17 май 2023, 13:36 Спасибо!
Первый вариант, наверное, сразу нет))) ибо действительно не удобно будет пользоваться.
Второй вариант - нужна помощь, т.к совсем не писатель кодов))))

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

$ent_1 = 55; // ID текущей сущности
$ent_2 = 77; // ID сущности 2 уровня
$ent_3 = 99; // ID сущности 3 уровня
$ent_1_f_stat = 555; // ID поля Статус в текущей сущности
$ent_1_f_stat_val = 5555; // ID значения "Отмена" в поле Статус в текущей сущности
$ent_2_f_stat = 777; // ID поля Статус в сущности 2 уровня
$ent_2_f_stat_val = 7777; // ID значения "Отмена" в поле Статус в сущности 2 уровня
$ent_3_f_stat = 999; // ID поля Статус в сущности 3 уровня
$ent_3_f_stat_val = 9999; // ID значения "Отмена" в поле Статус в сущности 3 уровня

// Если статус родительской сущности "Отмена"
if ($ent_1_f_stat == $ent_1_f_stat_val) {
	// То делаем запрос по вложенным сущностям
	$check_e2 = db_query('select * from app_entity_'.$ent_2.' where parent_item_id='.$ent_1);
	foreach ($check_e2 as $key => $value) {
		$ent2_id = $value['id'];
		// Обновляем статусы в записях сущности 2 уровня
		db_query ('update app_entity_'.$ent_2.' set field_'.$ent2_status.'='.$ent_2_f_stat_val.'where id='.$ent2_id);
		// Обновляем статусы в записях сущности 3 уровня
		db_query ('update app_entity_'.$ent_3.' set field_'.$ent3_status.'='.$ent_3_f_stat_val.'where parent_item_id='.$ent2_id);
	}
}
Заполните только значения в начале кода, заменив 55, 77, 99, 555, 777, 999, 5555, 7777, 9999 на соответствующие вашей системе значения.

Если заполните правильно, то всё сработает. Если нет, то присылайте результат, будем разбираться)
mike_22
Сообщения: 3
Зарегистрирован: 17 май 2023, 12:56
Имя: Михаил
Откуда: Россия

Re: Автоматизация

Сообщение mike_22 »

Спасибо огромное. Завтра буду пробовать!
tehnos
Сообщения: 224
Зарегистрирован: 13 сен 2021, 17:10
Имя: Евгений
Откуда: Алушта

Re: Автоматизация

Сообщение tehnos »

Вот ещё вариант:

Изменить поля записей сущности второго уровня вложенности:
в автоматизацию добавить "Выполнить PHP скрипт"

XX - номер сущности "Этапы Проекта"
YY - номер сущности "Задачи Проекта"
ZZ - номер поля со статусом
VALUE - номер статуса из настроек поля ZZ

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

$var = db_query("SELECT `id` FROM `app_entity_XX` WHERE `parent_item_id` = [id]");
while($var_arr = mysqli_fetch_assoc($var)) {
db_query("UPDATE `app_entity_YY` SET `field_ZZ` = 'VALUE' WHERE `parent_item_id` = {$var_arr['id']}");
}
Ответить