Перейти к содержимому


Вычисление


Сообщений в теме: 7

#1 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 14 Август 2015 - 08:02

Есть вычисление, срабатывающее на изменение поля "Когда перезвонить":

$line['Важность звонка'] = '';

Проблема в том, что при редактировании записи, когда изменяется поле "Когда перезвонить" и одновременно ставится значение Да в поле "Важность звонка", срабатывает условие и Важность звонка обнуляется. Поэтому приходится сначала редактировать "Когда перезвонить", сохранять запись, а потом отдельно редактировать Важность звонка.

Как можно переписать условие, чтобы можно было редактировать оба поля одновременно?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Август 2015 - 09:13

Я что-то логики вычисления не уловил. Зачем обнулять поле, если вы все равно его вручную собираетесь заполнять? Вычислять как правило имеет смысл только нередактируемые поля.

#3 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 14 Август 2015 - 10:18

Здесь есть логика:

1. Менеджер ставит дату будущего звонка.
2. Если нужно соблюсти именно данное время (а не через час-два), то ставится параметр Да в поле "Важность звонка".
3. По этому условию срабатывает напоминание, менеджер звонит клиенту в это время. Назначает дату след. звонка.
4. Менеджер может забыть снять параметр Да в поле "Важность звонка" и тогда оно снова отобразится в напоминаниях, хотя звонок уже не имеет такой важности.

С этим уже сталкивались, поэтому и стоит вопрос обнуления этого поля.

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Август 2015 - 13:11

Вычисление для этих целей точно не подходит, т.к. оно не в состоянии выяснить, было ли в поле (в данном сеансе редактирования) преднамеренно проставлено/оставлено "Да", или его просто "забыли снять". Здесь скорее уместен JS, который обнулит поле сразу после изменения даты, и соответственно до каких-либо действий в других полях.

#5 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 14 Август 2015 - 13:13

С JS беда. Не подскажете пример такого когда?

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Август 2015 - 13:22

Если беда, то прочтите основы JS + наша документация, тут код то элементарный:

function onchange_{$one_field.id}()
{
  document.getElementById('value111').value = ""; // вместо 111 - id поля "Важность звонка"
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});


#7 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 14 Август 2015 - 13:32

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

function onchange_{$one_field.id}()
{
  document.getElementById('value111').value = ""; // вместо 111 - id поля "Важность звонка"
}
$('#value{$one_field.id}').bind('change', onchange_{$one_field.id});

Он описан в большой теме про JS: http://clientbase.ru...indpost&p=11222

#8 TelecomMedia

    Активный участник

  • Пользователи
  • PipPipPip
  • 378 сообщений

Отправлено 17 Август 2015 - 10:40

Спасибо!





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных