Комментарии
#1
Отправлено 14 Август 2013 - 12:31
Возник такой вопрос) У контрагента есть подтаблица, куда менеджеры вписывают свои комментарии. Можно ли сделать так:
13 августа в 11.00 например создал коммент, а когда наступает следующий день-14 августа, он этот коммент уже не может редактировать?
#2
Отправлено 14 Август 2013 - 13:53
#3
Отправлено 14 Август 2013 - 21:26
#4
Отправлено 15 Август 2013 - 07:47
Как сделать, чтобы комменты мог писать только тот, кто прописан в карточке контрагента?..
#5
Отправлено 15 Август 2013 - 09:33
#6
Отправлено 15 Август 2013 - 09:38
Так можно?
if ($line['Менеджер']=$line['Название']['Менеджер']) удалить добавленную записьНе знаю как удаление прописать)
И можно ли так сравнивать поля с типом "Пользователь"?
#7
Отправлено 15 Август 2013 - 10:45
delete_query("Контрагенты", "`id`=8");Это удаление с указанием конкретного значения,а как мне прописать?
#8
Отправлено 15 Август 2013 - 10:49
delete_query("Контрагенты", "`id`=$ID");
#9
Отправлено 15 Август 2013 - 11:03
if ($line['Менеджер']=$line['Название']['Менеджер']) delete_query("Комментарии", "`id`=$ID");Все,так получилось)) Спасибо)просто до этого чуть-чуть (и это слабо сказано) протупила..и удалила все комменты) Поэтому уточняю тут)
#10
Отправлено 15 Август 2013 - 14:00
В таблице комментариев есть поле "Сотрудник", которое заполняется полем "Менеджер" из контрагентов (поле типа связь).
http://take.ms/hmGah1
Как я предполагаю-новую запись создаю в подтаблице-это поле заполняется автоматически сразу. Что я вижу: http://take.ms/kh0lo то есть поле пустое.
Соответственно у меня не работает и вычисление, которое должно удалять те записи, где поле Сотрудник не равно полю Выписал (поле сотрудник-связь с полем менеджер контрагента, а выписал-текущий пользователь)
Вычисление:
if ($line['Выписал']!==$line['Сотрудник']['ID'])
delete_query("Комментарии", "`id`=$ID");
Сообщение отредактировал Dinara: 15 Август 2013 - 14:01
#11
Отправлено 15 Август 2013 - 14:19
Во-вторых, зачем вообще создавать это поле? Если можно сравнивать напрямую с Менеджером из Контрагентов, т.к. поле связи в подтаблице для этого уже есть:
if ($line['Выписал']!==$line['Компания']['Менеджер'])
'Компания' - это то самое уже существующее поле связи с Контрагентом в Комментариях. Создавать еще одно поле связи с той же самой записью никакого смысла нет.
#12
Отправлено 16 Август 2013 - 08:53
Мысль такая-есть поле "Группа доступа сотрудника" в контрагентах и "Текущая группа доступа" в подтаблице (комментарии). Текущая группа доступа-заполняется текущим значением.
И вот, если эта текущая группа доступа не равна группе доступа сотрудника-удалять запись.
if (($line['Текущая группа доступа']==867) and (($line['Компания']['Группа доступа сотрудника']==867) or ($line['Компания']['Группа доступа сотрудника']==801) or ($line['Компания']['Группа доступа сотрудника']==2))) { insert_query("Комментарии", "`id`=$ID"); } else { delete_query("Комментарии", "`id`=$ID"); }
Условие выполнения-при сохранении в таблице
1. По условию если ГД=867 и в таблице контрагента группы равны прописанным-добавлять значение. Но, пользователь с ГД 867 не может добавить коммент.
2. Под админом пытаюсь добавить запись-удаляется..хотя условие то только для группы 867
Попыталась по другому
if (($line['Текущая группа доступа']==867) and ($line['Компания']['Группа доступа сотрудника']!==801)) delete_query("Комментарии", "`id`=$ID");Все равно не то,что нужно..
Пользователь под группой 867 добавляет запись, группа доступа сотрудника не равна 801-удаляет, если равна-тоже удаляет..
Если прописать не id группы,а название-тогда вообще никакой реакции системы похоже нет)
if (($line['Текущая группа доступа']=="Руководитель ОП") and ($line['Компания']['Группа доступа сотрудника']!=="Менеджеры ОП (Фомин)")) delete_query("Комментарии", "`id`=$ID");
Сообщение отредактировал Dinara: 16 Август 2013 - 09:51
#13
Отправлено 16 Август 2013 - 10:22
#14
Отправлено 16 Август 2013 - 10:24
Да вот пришлось..Оказалось, что тут все намного глубже должно быть,нежели я думала вначале)
#15
Отправлено 16 Август 2013 - 10:31
if (($line['Текущая группа доступа']=='867') and (($line['Компания']['Группа доступа сотрудника']=='867') or ($line['Компания']['Группа доступа сотрудника']=='801') or ($line['Компания']['Группа доступа сотрудника']=='2'))) { insert_query("Комментарии", "`id`=$ID"); } else { delete_query("Комментарии", "`id`=$ID"); }Такой код поле "Комментарии" вообще не дает к заполнению..
А если пользователь с вообще другой группой будет заполнять-удаляются комменты.(
Сообщение отредактировал Dinara: 16 Август 2013 - 10:34
#16
Отправлено 16 Август 2013 - 10:56
if (($line['Менеджер']!==$line['Название']['Менеджер']) and ($line['Текущая группа доступа']=='801')) delete_query("Комментарии", "`id`=$ID");То есть если менеджер в комментах не равен менеджеру в контарагентах и группа этого менеджера равно 801,то удалять.
Ок,еси менеджер не равен-удаляет, но если менеджер равен и группа доступа 801-все равно удаляет!..
#17
Отправлено 16 Август 2013 - 10:56
insert_query("Комментарии", "`id`=$ID");
Вот это вообще чушь. Мало того, что добавлять запись не нужно, т.к. она уже сама добавилась, когда вы нажали на "Добавить запись", так и сам код неверный. Уберите тот кусок нафиг.
У вас условие только на удаление должно быть, для каких групп запрещено добавление - у тех удалять запись.
#18
Отправлено 16 Август 2013 - 10:58
!==
Не используйте никогда эту конструкцию, она для эксклюзивных случаев. Обычное "не равно" - это "!=", без второго "=".
#19
Отправлено 16 Август 2013 - 11:14
if (($line['Менеджер']!=$line['Название']['Менеджер']) and ($line['Текущая группа доступа']=='801')) delete_query("Комментарии", "`id`=$ID");Даже если убрать второе = все равно код не срабатывает. Менеджер равен менеджеру, группа доступа равно 801,а удаляет. А должно удалять только в том случае, если менеджер не равен менеджеру и группа доступа равно 801.. (тут тоже удаляет)
#20
Отправлено 16 Август 2013 - 11:35
$line['Название']
Насколько помню, у вас там поле связи Комментариев с Контрагентами - это "Компания", я же выше про него писал:
if ($line['Выписал']!==$line['Компания']['Менеджер'])
Откуда поле "Название" то взялось? Его вроде вообще нет в Комментариях. Естественно, что в таком случае оно всегда будет не равно Менеджеру
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных