fix notification creation => must create for every user linked to the event
This commit is contained in:
parent
732bb70826
commit
101405b052
@ -48,7 +48,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php';
|
||||||
|
|
||||||
// Load translation files required by the page
|
// Load translation files required by the page
|
||||||
$langs->loadLangs(array("companies", "other", "commercial", "bills", "orders", "agenda"));
|
$langs->loadLangs(array("companies", "other", "commercial", "bills", "orders", "agenda", "mails"));
|
||||||
|
|
||||||
$action = GETPOST('action', 'aZ09');
|
$action = GETPOST('action', 'aZ09');
|
||||||
$cancel = GETPOST('cancel', 'alpha');
|
$cancel = GETPOST('cancel', 'alpha');
|
||||||
@ -393,7 +393,7 @@ if (empty($reshook) && $action == 'add')
|
|||||||
$moreparam = '';
|
$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.
|
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 eminder
|
//Create reminder
|
||||||
if ($addreminder == 'on'){
|
if ($addreminder == 'on'){
|
||||||
$actionCommReminder = new ActionCommReminder($db);
|
$actionCommReminder = new ActionCommReminder($db);
|
||||||
|
|
||||||
@ -401,23 +401,28 @@ if (empty($reshook) && $action == 'add')
|
|||||||
|
|
||||||
$actionCommReminder->dateremind = $dateremind;
|
$actionCommReminder->dateremind = $dateremind;
|
||||||
$actionCommReminder->typeremind = $remindertype;
|
$actionCommReminder->typeremind = $remindertype;
|
||||||
$actionCommReminder->fk_user = $user;
|
|
||||||
$actionCommReminder->offsetunit = $offsetunit;
|
$actionCommReminder->offsetunit = $offsetunit;
|
||||||
$actionCommReminder->offsetvalue = $offsetvalue;
|
$actionCommReminder->offsetvalue = $offsetvalue;
|
||||||
$actionCommReminder->status = $actionCommReminder::STATUS_TODO;
|
$actionCommReminder->status = $actionCommReminder::STATUS_TODO;
|
||||||
$actionCommReminder->fk_actioncomm = $object->id;
|
$actionCommReminder->fk_actioncomm = $object->id;
|
||||||
if ($remindertype == 'email') $actionCommReminder->fk_email_template = $modelmail;
|
if ($remindertype == 'email') $actionCommReminder->fk_email_template = $modelmail;
|
||||||
|
|
||||||
$res = $actionCommReminder->create($user);
|
// 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 ($res <= 0){
|
||||||
// If error
|
// If error
|
||||||
$error++;
|
$db->rollback();
|
||||||
$langs->load("errors");
|
$langs->load("errors");
|
||||||
$error = $langs->trans('ErrorReminderActionCommCreation').' '.$actionCommReminder->error;
|
$error = $langs->trans('ErrorReminderActionCommCreation');
|
||||||
setEventMessages($error, $actionCommReminder->errors, 'errors');
|
setEventMessages($error, null, 'errors');
|
||||||
$action = 'create'; $donotclearsession = 1;
|
$action = 'create'; $donotclearsession = 1;
|
||||||
}
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error) {
|
if ($error) {
|
||||||
@ -1236,7 +1241,7 @@ if ($action == 'create')
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#selectremindertype").click(function(){
|
$("#selectremindertype").change(function(){
|
||||||
var selected_option = $("#selectremindertype option:selected").val();
|
var selected_option = $("#selectremindertype option:selected").val();
|
||||||
if(selected_option == "email") {
|
if(selected_option == "email") {
|
||||||
$("#select_actioncommsendmodel_mail").closest("tr").show();
|
$("#select_actioncommsendmodel_mail").closest("tr").show();
|
||||||
|
|||||||
@ -1958,9 +1958,10 @@ class ActionComm extends CommonObject
|
|||||||
*
|
*
|
||||||
* @param string $type Type of reminder 'browser' or 'email'
|
* @param string $type Type of reminder 'browser' or 'email'
|
||||||
* @param int $fk_user Id of user
|
* @param int $fk_user Id of user
|
||||||
|
* @param bool $onlypast true = get only past reminder, false = get all reminders linked to this
|
||||||
* @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
|
* @return int 0 if OK, <>0 if KO (this function is used also by cron so only 0 is OK)
|
||||||
*/
|
*/
|
||||||
public function loadReminders($type = '', $fk_user = 0)
|
public function loadReminders($type = '', $fk_user = 0, $onlypast = true)
|
||||||
{
|
{
|
||||||
global $conf, $langs, $user;
|
global $conf, $langs, $user;
|
||||||
|
|
||||||
@ -1971,7 +1972,10 @@ class ActionComm extends CommonObject
|
|||||||
//Select all action comm reminders for event
|
//Select all action comm reminders for event
|
||||||
$sql = "SELECT rowid as id, typeremind, dateremind, status, offsetvalue, offsetunit, fk_user";
|
$sql = "SELECT rowid as id, typeremind, dateremind, status, offsetvalue, offsetunit, fk_user";
|
||||||
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm_reminder";
|
$sql .= " FROM ".MAIN_DB_PREFIX."actioncomm_reminder";
|
||||||
$sql .= " WHERE fk_actioncomm = ".$this->id." AND dateremind <= '".$this->db->idate(dol_now())."'";
|
$sql .= " WHERE fk_actioncomm = ".$this->id;
|
||||||
|
if ($onlypast) {
|
||||||
|
$sql .= " AND dateremind <= '".$this->db->idate(dol_now())."'";
|
||||||
|
}
|
||||||
if ($type) {
|
if ($type) {
|
||||||
$sql .= " AND typeremind ='".$this->db->escape($type)."'";
|
$sql .= " AND typeremind ='".$this->db->escape($type)."'";
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user