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


баг в вычислении - поле дата не пустое


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

#1 oknik

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

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

Отправлено 13 Октябрь 2017 - 13:40

Есть вычисление, которое раньше нормально работало, но сейчас не правильно делает проверку - "поле 'Дата продления' не пустое?"
Условие - изменение поля "Дата продления" (но при этом вычисление почему то срабатывает при добавлении записи, при этом при добавлении записи поле "Дата продления" не заполняется)

$line['Дата продления'] - тип дата
$line['Статус']="ОК" тип список

if ($line['Дата продления']!="" and $line['Статус']=="Купить на нас")
$line['Статус']="ОК";

В итоге всегда после добавления записи срабатывает $line['Статус']="ОК";
других вычислений которые могут это делать нет, да и если вычисление выключаю, все нормально, статус остается тем который выбран при добавлении.

Я уж думаю может что то изменилось вобще глобально? Типа нельзя теперь так проверять пустоту поля тип "Дата", и надо как то по другому?

#2 CbCoder

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

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

Отправлено 13 Октябрь 2017 - 15:53

Так его никогда нельзя было так проверять. Пустая дата хранится в БД как "0000-00-00 00:00:00", именно на это значение и надо проверять. Вероятно, путаете с текстовыми полями.

#3 oknik

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

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

Отправлено 13 Октябрь 2017 - 17:01

да, так теперь работает, благодарю! )

но раньше работало с ""
только на этой неделе перестало.
ей богу именно так и было, и все работало.

и еще можно вопрос сразу что бы для себя уточнить, да и может как раз кому то пригодится тоже.
вопрос: можете написать как правильно делать проверку для разных типов полей - если нужна проверка не заполненного (пустого) значения у полей тип:
связь
список
текст
число
дата
файл
изображение
пользователь
группа

и для каждого типа поля мини инструкция как к нему обращаться при вычислениях

Сообщение отредактировал oknik: 13 Октябрь 2017 - 17:09


#4 CbCoder

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

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

Отправлено 13 Октябрь 2017 - 17:49

Цитата

но раньше работало с ""
только на этой неделе перестало

Ну может тип поля сменили. Поля с типом дата всегда были такие, ничего не менялось никогда в этом плане.

Цитата

вопрос: можете написать как правильно делать проверку для разных типов полей - если нужна проверка не заполненного (пустого) значения у полей тип

На всех прекрасно сработает "", либо напрямую, либо с автопреобразованием типа (для чисел и связи), только дата является исключением.

#5 maksbazhin

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений
  • Пол:Мужчина

Отправлено 14 Декабрь 2017 - 09:50

Здравствуйте.
Не буду плодить темы про баги.
При простейшем вычислении:
$date_protokola=$line['Дата протокола'];
$SelectDate = date('d.m.Y', strtotime($date_protokola));
$line['Протокол'] = "№ ".$line['Номер протокола']."от ".$SelectDate;

Исходные поля ($line['Дата протокола'], $line['Номер протокола']) очищаются, что за ерунда?

#6 CbCoder

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

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

Отправлено 14 Декабрь 2017 - 13:05

Не должны они никак очищаться в данном вычислении. Возможно в другом месте очищаются. Попробуйте поиграть с отключением вычислений, если 100% будете уверены что причина именно в этом коде - отправляйте заявку в техподдержку.

#7 maksbazhin

    Участник

  • Пользователи
  • PipPip
  • 27 сообщений
  • Пол:Мужчина

Отправлено 14 Декабрь 2017 - 15:30

В действительности они оказываются не очищаются, проблема в правах доступа ставлю доступ в режиме таблицы и просмотра, только к полю протокол, поля дата и номер доступны только в режиме редактирования, поле протокол в режиме редактирования не доступно. И как получилось если просмотр зарыт, то редактирование не доступно, т. е. скрытие полей надо (можно) определять не доступом, а через JS.
Может кому поможет.





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

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