После того как у сотрудника статус сменился с "Активный" на "Архивный" как можно переместить его контрагентов на другого сотрудника? (на руководителя,если группа1, то на руководителя1, если группа2-на руководителя2)...?
2
Архивные сотрудники
Автор Dinara, 14 июля 2014 17:58
Сообщений в теме: 7
#1
Отправлено 14 Июль 2014 - 17:58
#2
Отправлено 15 Июль 2014 - 08:27
Делаете запрос ко всем его контрагентам и меняете поле сотрудника. Стандартная операция же. В чем конкретно сложность?
#3
Отправлено 15 Июль 2014 - 12:18
if ($event['type']=='restore') { if ($event['changed'][919]['new']==1) { if ($line['Группа доступа']==1101) $sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE status=0 AND f6061=0 AND f839='".$line['ID']."'"; $res = mysql_query($sqlQuery); $row = mysql_fetch_array($res); $line['Сотрудник'] = 961; } }ВОт где строка с вопросом пока не могу понять как указать..мы берем все строки (*) из таблицы (42) активные строки(=0) где в поле сотрудник текущий пользователь (вот это не знаю как правильно прописать)
Сообщение отредактировал Dinara: 15 Июль 2014 - 12:22
#4
Отправлено 15 Июль 2014 - 12:52
Почему у вас такая каша то в коде со скобками и блоками? Это приводит к ошибкам в коде, т.к. очень легко запутаться. Приведите код в соответствие с рекомендацией. Просто у меня подозрение, что вы пропустили один блок скобок, и это могло отразиться на корректности кода.
#5
Отправлено 15 Июль 2014 - 13:01
меня в принципе интересует только это место, как указать сотрудник=пользователь которого переместили в архив,дальше я уже буду сама разбираться)
$sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE status=0 AND f6061=0 AND f839='".$line['ID']."'"; $res = mysql_query($sqlQuery); $row = mysql_fetch_array($res); $line['Сотрудник'] = $line['Руководитель'];То есть как в селекте верно указать не знаю(
#6
Отправлено 15 Июль 2014 - 13:39
Хотя нет,похоже что мне нужен код такого формата
$update_data['f6061'] = $line['Руководитель']; data_update(42,EVENTS_ENABLE,$update_data);Но и здесь как прописать сотрудник=пользователь?
#7
Отправлено 15 Июль 2014 - 13:57
Dinara (15 Июль 2014 - 12:18) писал:
if ($event['type']=='restore') { if ($event['changed'][919]['new']==1) { if ($line['Группа доступа']==1101) $sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE status=0 AND f6061=0 AND f839='".$line['ID']."'"; $res = mysql_query($sqlQuery); $row = mysql_fetch_array($res); $line['Сотрудник'] = 961; } }
Я от вас не отстану все таки со скобками. Вы уверены что верно скобки разместили? Может все таки имелось ввиду это:
if ($event['type']=='restore') { if ($event['changed'][919]['new']==1) { if ($line['Группа доступа']==1101) { $sqlQuery = "SELECT * FROM ".DATA_TABLE."42 WHERE status=0 AND f6061=0 AND f839='".$line['ID']."'"; $res = mysql_query($sqlQuery); $row = mysql_fetch_array($res); $line['Сотрудник'] = 961; } } }
т.к. в вашем варианте очевидно пропущен третий блок скобок (вместо него просто отступ, который сам по себе ни на что не влияет), да и другие скобки крайне странно расставлены (перед if, а не после). Если я прав, попробуйте для начала мой вариант, может хотя бы часть проблемы отпадет.
#8
Отправлено 15 Июль 2014 - 14:04
Цитата
меня в принципе интересует только это место, как указать сотрудник=пользователь которого переместили в архив,дальше я уже буду сама разбираться
А причем тут пользователь, перемещенный в архив? Вы же в начале темы писали что сотрудника перемещаете в архив? Соответственно, ищете в контрагентах все записи, где просто указан этот сотрудник. Если же там используется поле "пользователь" (например, Менеджер в стандартной), то ищете контрагентов, у которых поле пользователь равно полю пользователь из Сотрудника. Вроде все очень просто.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных