diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 07bc0dd481b..94119fbee5c 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -393,7 +393,7 @@ if (empty($reshook) && $action == 'add') $moreparam = ''; if ($user->id != $object->userownerid) $moreparam = "filtert=-1"; // We force to remove filter so created record is visible when going back to per user view. - //Create reminder + //Create reminders if ($addreminder == 'on'){ $actionCommReminder = new ActionCommReminder($db); @@ -639,9 +639,51 @@ if (empty($reshook) && $action == 'update') $categories = GETPOST('categories', 'array'); $object->setCategories($categories); + $object->loadReminders(); + if (!empty($object->reminders)) + { + foreach ($object->reminders as $reminder) + { + $reminder->delete($user); + } + $object->reminders = array(); + } + + //Create reminders + if ($addreminder == 'on'){ + $actionCommReminder = new ActionCommReminder($db); + + $dateremind = dol_time_plus_duree($datep, -$offsetvalue, $offsetunit); + + $actionCommReminder->dateremind = $dateremind; + $actionCommReminder->typeremind = $remindertype; + $actionCommReminder->offsetunit = $offsetunit; + $actionCommReminder->offsetvalue = $offsetvalue; + $actionCommReminder->status = $actionCommReminder::STATUS_TODO; + $actionCommReminder->fk_actioncomm = $object->id; + if ($remindertype == 'email') $actionCommReminder->fk_email_template = $modelmail; + + // the notification must be created for every user assigned to the event + foreach ($object->userassigned as $userassigned) + { + $actionCommReminder->fk_user = $userassigned['id']; + $res = $actionCommReminder->create($user); + + if ($res <= 0){ + // If error + $langs->load("errors"); + $error = $langs->trans('ErrorReminderActionCommCreation'); + setEventMessages($error, null, 'errors'); + $action = 'create'; $donotclearsession = 1; + break; + } + } + } + unset($_SESSION['assignedtouser']); - $db->commit(); + if (!$error) $db->commit(); + else $db->rollback(); } else { setEventMessages($object->error, $object->errors, 'errors'); $db->rollback(); @@ -1673,38 +1715,78 @@ if ($id > 0) print '
| '.$langs->trans("Reminders").' | ';
-
if (count($object->reminders) > 0) {
- if (count($object->reminders) > 0) {
- $tmpuserstatic = new User($db);
+ $checked = 'checked';
+ $keys = array_keys($object->reminders);
+ $firstreminderId = array_shift($keys);
- foreach ($object->reminders as $actioncommreminderid => $actioncommreminder) {
- print $TRemindTypes[$actioncommreminder->typeremind];
- if ($actioncommreminder->fk_user > 0) {
- $tmpuserstatic->fetch($actioncommreminder->fk_user);
- print ' ('.$tmpuserstatic->getNomUrl(0, '', 0, 0, 16).')';
- }
- print ' - '.$actioncommreminder->offsetvalue.' '.$TDurationTypes[$actioncommreminder->offsetunit];
- if ($actioncommreminder->status == $actioncommreminder::STATUS_TODO) {
- print ' - ';
- print $langs->trans("NotSent");
- print ' ';
- } elseif ($actioncommreminder->status == $actioncommreminder::STATUS_DONE) {
- print ' - ';
- print $langs->trans("Done");
- print ' ';
- }
- print ' '; - } - } + $actionCommReminder = $object->reminders[$firstreminderId]; + + } + else + { + $checked = ''; + $actionCommReminder = new ActionCommReminder($db); + $actionCommReminder->offsetvalue = 10; + $actionCommReminder->offsetunit = 'i'; + $actionCommReminder->typeremind = 'email'; } + print ' | ||
| '.$langs->trans("AddReminder").' | |||
| '.$langs->trans("ReminderTime").' | '; + print ''; + print ' | ||
| '.$langs->trans("TimeType").' | '; + print $form->selectTypeDuration('offsetunit', $actionCommReminder->offsetunit); + print ' | ||
| '.$langs->trans("ReminderType").' | '; + print $form->selectarray('selectremindertype', $TRemindTypes, $actionCommReminder->typeremind); + print ' | ||
| '.$langs->trans("EMailTemplates").' | '; + print $form->selectModelMail('actioncommsend', 'actioncomm_send', 1); print ' | ||