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


Вычисление при добавлении записи


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

#1 TelecomMedia

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

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

Отправлено 13 Февраль 2016 - 13:12

Из т. "Контрагенты по доп действию создается новая запись в т. "Проекты"
При этом в т. проекты есть вычисление, которое срабатывает на изменение поля.
Проблема в том, что когда запись добавляется это приравнивается к изменению поля в записи, соответственно вычисление срабатывает в ненужный момент.
ТП посоветовала использовать следующую конструкцию: f (($_REQUEST['line'] == 'new') || ($_REQUEST['view_line_id'] == 'new') || ($event['line_id'] == 'new') || ($event['is_new_line'] == 1)) { // новая запись } else { // не новая }

Добавил ее в вычисление, получилось так:

if (($_REQUEST['line'] == 'new') || ($_REQUEST['view_line_id'] == 'new') || ($event['line_id'] == 'new') || ($event['is_new_line'] == 1)) { 
if ($line['Статус'] == 'Новая' AND $line['ТЗ в G.Docs'] == '')

{
  $line['Статус'] = 'В работе';
  $line['Дата начала работы'] = date ("Y-m-d H:i:s");
} 
}

Но проблема осталась, вычисление так и срабатывает


#2 CbCoder

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

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

Отправлено 15 Февраль 2016 - 09:22

Или вы не так поняли техподдержку, или она вас. У вас задача прямо противоположная, условие должно быть не на "равно", а на "не равно", т.е. "делать код если не равно новой записи". Плюс я не очень понял, зачем столько проверок сразу, обычно достаточно проверять $event['is_new_line'].

if (event['is_new_line'] != 1) {
if ($line['Статус'] == 'Новая' AND $line['ТЗ в G.Docs'] == '')
{
  $line['Статус'] = 'В работе';
  $line['Дата начала работы'] = date ("Y-m-d H:i:s");
}
}


#3 CbCoder

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

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

Отправлено 15 Февраль 2016 - 09:32

или (если для чего то все таки нужны дополнительные условия, как в варианте ТП):

if (($_REQUEST['line'] != 'new') && ($_REQUEST['view_line_id'] != 'new') && ($event['line_id'] != 'new') && ($event['is_new_line'] != 1)) {
if ($line['Статус'] == 'Новая' AND $line['ТЗ в G.Docs'] == '')
{
  $line['Статус'] = 'В работе';
  $line['Дата начала работы'] = date ("Y-m-d H:i:s");
}
}


#4 TelecomMedia

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

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

Отправлено 16 Февраль 2016 - 14:35

Спасибо, при добавлении записи статус не меняется, но теперь он не меняется и при срабатывании условия ( в моем случае - при изменении поля ТЗ в G.Docs ). Т.е. вычисление перестало срабатывать

#5 CbCoder

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

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

Отправлено 16 Февраль 2016 - 15:16

Если у вас первый вариант, то там опечатка у меня (знак доллара пропущен перед event):

if ($event['is_new_line'] != 1) {
if ($line['Статус'] == 'Новая' AND $line['ТЗ в G.Docs'] == '')
{
  $line['Статус'] = 'В работе';
  $line['Дата начала работы'] = date ("Y-m-d H:i:s");
}
}


#6 TelecomMedia

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

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

Отправлено 16 Февраль 2016 - 15:56

Да, это я увидел когда вычисление ошибку выдало, исправил. Но проблема не в этом

#7 CbCoder

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

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

Отправлено 16 Февраль 2016 - 16:04

Честно говоря не вижу в чем еще может быть дело... Можно еще такой вариант попробовать:

if (!$event['is_new_line']) {
if ($line['Статус'] == 'Новая' AND $line['ТЗ в G.Docs'] == '')
{
  $line['Статус'] = 'В работе';
  $line['Дата начала работы'] = date ("Y-m-d H:i:s");
}
}


#8 TelecomMedia

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

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

Отправлено 16 Февраль 2016 - 21:03

Неа( В таком варианте запись добавляется уже со статусом "В работе"

Есть смысл оформлять заявку в ТП?

#9 CbCoder

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

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

Отправлено 17 Февраль 2016 - 09:18

А предыдущую закрыли уже? Ну попробуйте.

#10 TelecomMedia

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

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

Отправлено 17 Февраль 2016 - 16:57

Она закрыта, могу открыть, уточнив, что на форуме не помогли(





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

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