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


Счётчик времени выполнения задачи


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

#1 evgenk

    Новичок

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

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

Пытался найти, но вроде никто ничего подобного не спрашивал ещё. Было бы удобно внутри задач сделать счётчик подсчета затраченного на работу времени типа старт-пауза-завершить. Как только исполнитель нажимает на старт - счётчик начинает отсчитывать время, пауза - останавливает - завершить - сохраняет время выполнения этой задачи.

Вот вариация на тему: http://braintimer.com/

Как можно такое сделать? И можно ли вообще такое сделать?

#2 CbCoder

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

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

Отправлено 14 Апрель 2016 - 17:31

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

#3 evgenk

    Новичок

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

Отправлено 14 Апрель 2016 - 17:41

Лично я от программирования далёк. Возможно найдётся какой-нибудь энтузиаст в помощь? :)

#4 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 14 Апрель 2016 - 19:55

вот так?

Прикрепленные изображения

  • Прикрепленное изображение: Работа по задаче.png


#5 evgenk

    Новичок

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

Отправлено 18 Апрель 2016 - 18:19

Просмотр сообщенияAntonKravchenko (14 Апрель 2016 - 19:55) писал:

вот так?
Нужен именно таймер с кнопками старт - пауза - стоп с записью времени в задачу. Т.е. например исполнитель работает по времени. Делает задачу - нажал на старт, пошёл делать кофе себе, нажал на паузу, вернулся опять нажал на старт. Сделал задачу, нажал на стоп - время сохранилось в задачу. Вот примерно как-то так.

#6 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 18 Апрель 2016 - 18:27

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

Код кнопки "Начать":
if ($line['Начало'] == '0000-00-00 00:00:00') {
  $line['Начало'] = date("Y-m-d H:i:s");
}

if ($line['Статус'] == "Подготовка") {
	// создаём первую работу по заявке
  $data['Задача'] = $line['ID'];
  insert_query($data, "Работа по задаче");
  $line['Статус'] = "В работе";
}

Код кнопки "Пауза":

if ($line['Статус'] == "В работе") {
  data_update(330, EVENTS_ENABLE, array("f5620" => date("Y-m-d H:i:s")), "`f5610`='",$line['ID'],"' AND `f5620`='0000-00-00 00:00:00'");
  $line['Статус'] = "Пауза";
}

код кнопки "Продолжить":

if ($line['Статус'] == "Пауза") {
	// создаём очередную работу по заявке
  $data['Задача'] = $line['ID'];
  insert_query($data, "Работа по задаче");
  $line['Статус'] = "В работе";
} 


код кнопки "Закончить":

if ($line['Статус'] == "Пауза" || $line['Статус'] == "В работе") {
  data_update(330, EVENTS_ENABLE, array("f5620" => date("Y-m-d H:i:s")), "`f5610`='",$line['ID'],"' AND `f5620`='0000-00-00 00:00:00'");
  $line['Статус'] = "Выполнена";
  if ($line['Завершение'] == '0000-00-00 00:00:00') {
	$line['Завершение'] = date("Y-m-d H:i:s");
  }
}

Сообщение отредактировал AntonKravchenko: 18 Апрель 2016 - 18:32


#7 evgenk

    Новичок

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

Отправлено 18 Апрель 2016 - 18:30

Ух ты :) Попробую сделать . Я только сейчас увидел кнопки справа, не обратил на них внимание сначала.

#8 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 18 Апрель 2016 - 18:33

и правами доступа запретите ручное добавление строк в подтаблицу "работа по задаче", и настройте видимость кнопок в задаче в зависимости от её состояния

#9 evgenk

    Новичок

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

Отправлено 18 Апрель 2016 - 18:36

Просмотр сообщенияAntonKravchenko (18 Апрель 2016 - 18:33) писал:

и правами доступа запретите ручное добавление строк в подтаблицу "работа по задаче", и настройте видимость кнопок в задаче в зависимости от её состояния
получается если нужны ещё комментарии по задаче - их надо в отдельную подтаблицу? Одна подтаблица с комментариями по задаче и вторая со счетчиком времени. Правильно я понимаю?

#10 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 18 Апрель 2016 - 18:46

иначе. В подтаблице "Работа по задаче" есть поле "Комментарии", которое доступно для редактирования в выполняемой в текущий момент работе. Туда я и пишу комментарии по этой работе

#11 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 18 Апрель 2016 - 18:46

вот так

Прикрепленные изображения

  • Прикрепленное изображение: Снимок.PNG


#12 evgenk

    Новичок

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

Отправлено 18 Апрель 2016 - 18:50

А мы в комментариях часто ещё переписываемся в плане уточнения каких-то пунктов задачи, пишем вопросы, если что-то не понятно, просим сдвинуть срок выполнения задачи если нужно и прочее. Т.е. много вариантов когда нужен просто комментарий без подсчёта времени. А в вашем примере получается что комментарий жестко привязан к счетчику времени.

#13 AntonKravchenko

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

  • Пользователи
  • PipPipPip
  • 152 сообщений
  • Пол:Мужчина
  • Город:Нижний Новгород

Отправлено 18 Апрель 2016 - 18:54

в Вашем случае тогда удобнее 2 подтаблицы

#14 evgenk

    Новичок

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

Отправлено 18 Апрель 2016 - 18:55

Да, плюс ко всему не все задачи считаем по часам. Поэтому точно две таблицы. ok попробую сделать, появится вопросы(а я почти уверен что появятся) - отпишу. Спасибо большое за помощь!





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

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