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


Контроль выполнения задания


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

#1 vilra

    Участник

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

Отправлено 09 Сентябрь 2009 - 19:15

Добрый вечер, возник еще один вопрос. При поручении задания от руководителя сотруднику есть поле дата и время выполнения задания. Чтобы у сотрудника не было возможности ставить дату и время отличающуюся от реальной даты выполнения (например, задним числом) есть желание ввести поле дата и время выполнение задания, сделать его невидимым для сотрудника и это поле должно автоматически заполниться (как при использовании типа поля - дата добавления) датой и временем редактирования задания отметками о его выполнении. Какое поле нужно создать и с каким значением. По смыслу должно быть поле дата выполнения с типом дата редактирования, но такого типа поля нет. Заранее спасибо.

#2 CbCoder

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

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

Отправлено 10 Сентябрь 2009 - 08:58

Поле с типом дата редактирования пока не предусмотрено, да оно и не совсем подходит в данном случае, т.к. должно заносится только при определенном условии, т.е. при установке отметки о выполнении. Это все вы можете запрограмировать с помощью поля типа автообновление. Создаете поле данного типа и заполняете его следующим кодом:

$table = data_table("Задания","id={ID}");
if ($table['Выполнено']) $table['Дата выполнения'] = date("Y-m-d 00:00:00");
update_table($table, "Задания","id={ID}");

#3 vilra

    Участник

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

Отправлено 10 Сентябрь 2009 - 13:41

Просмотр сообщенияРазработчик (10.9.2009, 8:58) писал:

Поле с типом дата редактирования пока не предусмотрено, да оно и не совсем подходит в данном случае, т.к. должно заносится только при определенном условии, т.е. при установке отметки о выполнении. Это все вы можете запрограмировать с помощью поля типа автообновление. Создаете поле данного типа и заполняете его следующим кодом:

$table = data_table("Задания","id={ID}");
if ($table['Выполнено']) $table['Дата выполнения'] = date("Y-m-d 00:00:00");
update_table($table, "Задания","id={ID}");

Добрый день, попробовали создать такое поле с таким текстом. Результата нет после того, как ставится отметка задание выполнено, дата в поле дата выполнения не появляется, что делать? Вопрос: с каким типом должно быть поле задание выполнено. У нас чекбокс, может ли быть в этом проблема? Заранее спасибо.

#4 CbCoder

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

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

Отправлено 10 Сентябрь 2009 - 14:12

Это всего лишь пример. Вы должны подставить в него имена реальных полей. Если вы ничего не меняли в таблице Задания, то должно быть так:

$table = data_table("Задания","id={ID}");
if ($table['Задание выполнено']) $table['Дата выполнения'] = date("Y-m-d 00:00:00");
update_table($table, "Задания","id={ID}");

#5 CbCoder

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

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

Отправлено 10 Сентябрь 2009 - 14:29

Да, еще одно уточнение. Необходимо поставить права на редактирование для созданного вами поля типа автообновление. Без этого оно не работает.

#6 CbCoder

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

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

Отправлено 10 Сентябрь 2009 - 14:42

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

$table = data_table("Задания","id={ID}");
if ($table['Дата выполнения']=="" and $table['Задание выполнено']) $table['Дата выполнения'] = date("Y-m-d 00:00:00");
if (!$table['Задание выполнено']) $table['Дата выполнения'] = "";
update_table($table, "Задания","id={ID}");


#7 vilra

    Участник

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

Отправлено 10 Сентябрь 2009 - 15:04

В принципе вроде все заработало даже с предыдущим кодом... Дата есть... только вот почему то время по "нулям" а дата правильно ставится!

#8 CbCoder

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

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

Отправлено 10 Сентябрь 2009 - 15:13

Просмотр сообщенияvilra (10.9.2009, 16:04) писал:

В принципе вроде все заработало даже с предыдущим кодом...
Все же лучше использовать новый.

Просмотр сообщенияvilra (10.9.2009, 16:04) писал:

Дата есть... только вот почему то время по "нулям" а дата правильно ставится!
А вам нужно и время? Тогда замените date("Y-m-d 00:00:00") на date("Y-m-d H:i:00")

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

#9 vilra

    Участник

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

Отправлено 10 Сентябрь 2009 - 15:34

Просмотр сообщенияРазработчик (10.9.2009, 15:13) писал:

Все же лучше использовать новый.
А вам нужно и время? Тогда замените date("Y-m-d 00:00:00") на date("Y-m-d H:i:00")

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

ок, все вроде заработало!!!
спс! огромное!

#10 DarkNight

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

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

Отправлено 17 Ноябрь 2009 - 11:27

У нас возник вопрос по версии 1.5 там не отрабатывается изменение данного поля... стояит в вычислениях
// Автопростановка даты выполнения задания
$table = data_table("Задания","id={ID}");
if ($table['Дата выполнения']=="" and $table['Задание выполнено']) $table['Дата выполнения'] = now();
if (!$table['Задание выполнено']) $table['Дата выполнения'] = "";
update_table($table, "Задания","id={ID}");

И оно не работает.... поля не меняются..

#11 CbCoder

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

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

Отправлено 17 Ноябрь 2009 - 11:55

Просмотр сообщенияDarkNight (17.11.2009, 11:27) писал:

У нас возник вопрос по версии 1.5 там не отрабатывается изменение данного поля... стояит в вычислениях
// Автопростановка даты выполнения задания
$table = data_table("Задания","id={ID}");
if ($table['Дата выполнения']=="" and $table['Задание выполнено']) $table['Дата выполнения'] = now();
if (!$table['Задание выполнено']) $table['Дата выполнения'] = "";
update_table($table, "Задания","id={ID}");

И оно не работает.... поля не меняются..
Замените код в вычислениях на следующий:

// Автопростановка даты выполнения задания
$table = data_table("Задания","id={ID}");
if ($table['Дата выполнения']=="0000-00-00 00:00:00" and $table['Задание выполнено']=="Да") $table['Дата выполнения'] = date("Y-m-d 00:00:00");
if ($table['Задание выполнено']=="Нет") $table['Дата выполнения'] = "";
update_table($table, "Задания","id={ID}");


#12 DarkNight

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

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

Отправлено 17 Ноябрь 2009 - 13:38

Все работает, еще вопрос, в таблице два поля типа "пользователь"
Сотрудник(которому дали задание) и Руководитель(который дал задание).
Вопрос в том по какому полю система будет определять кто для этой записи свой а кто чужой.
Для сотрудника - поля Принято, Назначил,Когда добавлено редактировать не нужно, а для Руководителя - поле Принято должно быть доступно для редактирования.

#13 DarkNight

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

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

Отправлено 17 Ноябрь 2009 - 13:47

И еще предложение.
При выборе, из поля ссылки на другую таблицу, сделать возможность поиска. Типа пользователь начинает набирать название и в списке отображаются те записи которые содержат то что набрал пользователь.

#14 CbCoder

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

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

Отправлено 17 Ноябрь 2009 - 13:55

Просмотр сообщенияDarkNight (17.11.2009, 13:38) писал:

Вопрос в том по какому полю система будет определять кто для этой записи свой а кто чужой.
"Своя" запись - это та которую создал текущий пользователь. Данный параметр системный и от полей в таблице не зависит.

#15 CbCoder

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

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

Отправлено 17 Ноябрь 2009 - 13:58

Просмотр сообщенияDarkNight (17.11.2009, 13:47) писал:

И еще предложение.
При выборе, из поля ссылки на другую таблицу, сделать возможность поиска. Типа пользователь начинает набирать название и в списке отображаются те записи которые содержат то что набрал пользователь.
Пока это затруднительно сделать, т.к. поле связи представляет собой стандартный html-элемент "select". Но в будущем вероятно сделаем. Скорее всего в версии 2.0





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

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