Назначить ответственным пользователя по условию

Все вопросы/проблемы по установке и использовании.
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Назначить ответственным пользователя по условию

Сообщение SalahievFR »

Подскажите, пожалуйста, где моя ошибка в коде.
План такой: нужно , чтобы при изменении статуса в поле Пользователи назначался человек, который поменял статус.
Вот код.

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

$manager_id = [current_user_id];
$entity_id = 215; // ИД сущности КЛИЕНТЫ 
$item_id = [id]; // ИД записи, в которой нужно изменить ответственного
$id_status = [225]; // ИД статуса сделки в форме
$id_statusnew = db_query("SELECT field_225 FROM app_entity_25 WHERE id=". $item_id);; // текущий ИД статуса сделки

// переменная для обновления поля
if ($id_status != $id_statusnew) {
$data = [
  'field_451' => $manager_id, // Значение поля, которое нужно поставить
];

// Команда обновления записи
items::update_by_id($entity_id,$item_id,$data);
  }
Аватара пользователя
alena
Сообщения: 51
Зарегистрирован: 08 ноя 2022, 09:38
Имя: Алена
Откуда: Московская область
Организация: ООО Пилкингтон Гласс

Re: Назначить ответственным пользователя по условию

Сообщение alena »

$entity_id = 215; // ИД сущности КЛИЕНТЫ
чисто визуально на 1й взгляд - а вы тут скобки не забыли? может [215]?
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

alena писал(а): 07 июн 2023, 14:33 $entity_id = 215; // ИД сущности КЛИЕНТЫ
чисто визуально на 1й взгляд - а вы тут скобки не забыли? может [215]?
Спасибо, Вы правильно подметили, скобки забыл. Но после проставления скобок код перестал выполняться. Ошибка выходит.


Warning: Illegal offset type in isset or empty in /home/c76141/klaus-auto-corp.ru/www/includes/classes/items/items.php on line 1516

Warning: Cannot modify header information - headers already sent by (output started at /home/c76141/klaus-auto-corp.ru/www/includes/classes/items/items.php:1516) in /home/c76141/klaus-auto-corp.ru/www/includes/functions/urls.php on line 14
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

Я так понимаю этой командой нельзя менять назначенного пользователя?

items::update_by_id($entity_id,$item_id,$data);
Аватара пользователя
alena
Сообщения: 51
Зарегистрирован: 08 ноя 2022, 09:38
Имя: Алена
Откуда: Московская область
Организация: ООО Пилкингтон Гласс

Re: Назначить ответственным пользователя по условию

Сообщение alena »

ну, примерно вот так наверное надо, я кусок вырезала, остальное не меняла, у вас ошибка т.к. вы запрос не разобрали db_fetch_array:

$id_statusnew = db_query("SELECT field_225 as sss FROM app_entity_25 WHERE id=". [id]); // текущий ИД статуса сделки

$info = db_fetch_array($id_statusnew);
$sss = $info['sss'];

// переменная для обновления поля
if ($id_status != $sss) {
$data = [
'field_451' => $manager_id, // Значение поля, которое нужно поставить
];

насчет вашего апдейта не знаю, я лично напрямую обновляю, могу вам скинуть пример как я назначаю пользователя-начальника на каждую новую создаваемую задачу в автоматизации

(если что, я не профи =)) могу запросто ошибаться)
Последний раз редактировалось alena 07 июн 2023, 15:42, всего редактировалось 1 раз.
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

Решил проблему с обновлением назначенного пользователя. Вот код.

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

$manager_id = [current_user_id];
$entity_id = 215; // ИД сущности КЛИЕНТЫ 
$item_id = [id]; // ИД записи, в которой нужно изменить статус
$id_status = [225]; // ИД статуса сделки в форме
$id_statusnew = db_query("SELECT field_225 FROM app_entity_25 WHERE id=". $item_id);; // текущий ИД статуса сделки

if ($id_status != $id_statusnew) {
// Команда обновления записи
db_query("update app_entity_25 set field_451={$manager_id} where id={$item_id}");  
  }
Но данный код не понимает, что нужно менять назначенного пользователя только при изменении статуса. При редактировании независимо от того меняется статус или нет все равно переназначается пользователь. Подскажите, пожалуйста, как это исправить.
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

alena писал(а): 07 июн 2023, 15:41 ну, примерно вот так наверное надо, я кусок вырезала, остальное не меняла, у вас ошибка т.к. вы запрос не разобрали db_fetch_array:

$id_statusnew = db_query("SELECT field_225 as sss FROM app_entity_25 WHERE id=". [id]); // текущий ИД статуса сделки

$info = db_fetch_array($id_statusnew);
$sss = $info['sss'];

// переменная для обновления поля
if ($id_status != $sss) {
$data = [
'field_451' => $manager_id, // Значение поля, которое нужно поставить
];

насчет вашего апдейта не знаю, я лично напрямую обновляю, могу вам скинуть пример как я назначаю пользователя-начальника на каждую новую создаваемую задачу в автоматизации

(если что, я не профи =)) могу запросто ошибаться)


Вот это я не до конца понимаю. Что делают эти строки?

$info = db_fetch_array($id_statusnew);
$sss = $info['sss'];
Аватара пользователя
alena
Сообщения: 51
Зарегистрирован: 08 ноя 2022, 09:38
Имя: Алена
Откуда: Московская область
Организация: ООО Пилкингтон Гласс

Re: Назначить ответственным пользователя по условию

Сообщение alena »

Насколько я помню теорию db_query возвращает не единичное значение, а некий интерфейс, из которого уже путем парсинга нужно раздобыть значения... Но это лучше погуглить, я нормально не объясню)) $sss в моем примере - это тот ваш новый статус, который я и извлекла из db_query
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

alena писал(а): 07 июн 2023, 16:21 Насколько я помню теорию db_query возвращает не единичное значение, а некий интерфейс, из которого уже путем парсинга нужно раздобыть значения... Но это лучше погуглить, я нормально не объясню)) $sss в моем примере - это тот ваш новый статус, который я и извлекла из db_query
Понял. В моем случае нет привязки к определенному статусу, а просто к изменению.
Аватара пользователя
SalahievFR
Сообщения: 387
Зарегистрирован: 22 янв 2023, 10:14
Имя: Фанис Салахиев
Откуда: Россия Казань
Контактная информация:

Re: Назначить ответственным пользователя по условию

Сообщение SalahievFR »

Подскажите, пожалуйста, что изменить в этом коде, чтобы новый пользователь назначался только если статус изменился в форме?

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

// ИД пользователя, который редактирует запись
$manager_id = [current_user_id];
// ИД сущности КЛИЕНТЫ
$entity_id = [215];
// ИД записи, в которой нужно изменить статус
$item_id = [id];
// ИД статуса клиента в форме
$id_status = [225];
// ИД текущего статуса
$id_statusnew = db_query("SELECT field_225 FROM app_entity_25 WHERE id=". $item_id);;
// условие ЕСЛИ СТАТУС ИЗМЕНИЛИ
if ($id_status != $id_statusnew) {
// Команда назначения нового пользователя
db_query("update app_entity_25 set field_451={$manager_id} where id={$item_id}");  
  }
Ответить