/** * event function to change the assigned to for entity for a module * The method will check the assigned to value, if its group or user * and then accordingly will change the assigned to * @param object $evctl */ function eventChangeAssignedToEntity(EventControler $evctl) { $next_page = $evctl->next_page; $record_ids = $evctl->ids; $group_transfer_opt = false; $transfer_to_user = false; $transfer_to_group = false; $module_name = $evctl->module; $module_id = $evctl->module_id; if ($evctl->group_transfer_opt == 'yes') { $group_transfer_opt = true; } if ($group_transfer_opt === true) { if ($evctl->assigned_to_selector == 'user') { $transfer_to_user = true; } elseif ($evctl->assigned_to_selector == 'group') { $transfer_to_group = true; } } else { $transfer_to_user = true; } if (($transfer_to_user === true || $transfer_to_group === true) && sizeof($record_ids) > 0) { $do_data_history = new DataHistory(); $do_feed_queue = new LiveFeedQueue(); $module = new $module_name(); if ($transfer_to_user === true) { $do_user = new User(); $do_user->getId((int) $evctl->user_selector); $new_assigned_to = $do_user->user_name; foreach ($record_ids as $id) { $feed_other_assigne = array(); $module->getId($id); $old_assigned_to = $module->assigned_to; if ($module->idgroup > 0) { $feed_other_assigne = array("related" => "group", "data" => array("key" => "oldgroup", "val" => $module->idgroup)); } $record_identifier = $this->get_entity_identifier('', '', $module); // query to change the user for the record $qry = "\n\t\t\t\t\tupdate `" . $module->getTable() . "` \n\t\t\t\t\tset `iduser` = ?\n\t\t\t\t\twhere `" . $module->primary_key . "` = ?"; $this->query($qry, array($evctl->user_selector, $id)); //qry to delete from the group rel if data exists $qry = "\n\t\t\t\t\tdelete from `" . $module->module_group_rel_table . "` \n\t\t\t\t\twhere \n\t\t\t\t\t`" . $module->primary_key . "` = ?"; $this->query($qry, array($id)); // add to data history $do_data_history->addNew(); $do_data_history->id_referrer = $id; $do_data_history->iduser = $_SESSION["do_user"]->iduser; $do_data_history->idmodule = $module_id; $do_data_history->date_modified = date("Y-m-d H:i:s"); $do_data_history->action = 'value_changes'; $do_data_history->idfields = (int) $evctl->fieldid; $do_data_history->old_value = $old_assigned_to; $do_data_history->new_value = $new_assigned_to; $do_data_history->add(); // add to feed $do_feed_queue->add_feed_queue($id, $module_id, $record_identifier, 'changed_assigned_to', $feed_other_assigne); } } elseif ($transfer_to_group === true) { $do_group = new Group(); $do_group->getId((int) $evctl->group_selector); $new_assigned_to = $do_group->group_name; foreach ($record_ids as $id) { $module->getId($id); $old_assigned_to = $module->assigned_to; if ($module->idgroup > 0) { $feed_other_assigne = array("related" => "group", "data" => array("key" => "oldgroup", "val" => $module->idgroup)); } $feed_other_assigne = array("related" => "group", "data" => array("key" => "newgroup", "val" => (int) $evctl->group_selector)); $record_identifier = $this->get_entity_identifier('', '', $module); // query to change the iduser to 0 for the record $qry = "\n\t\t\t\t\tupdate `" . $module->getTable() . "` \n\t\t\t\t\tset `iduser` = 0 \n\t\t\t\t\twhere `" . $module->primary_key . "` = ?"; $this->query($qry, array($id)); // now check if the record is already assigned to a different group then update else add a new entry $qry_check = "\n\t\t\t\t\tselect * from `" . $module->module_group_rel_table . "` \n\t\t\t\t\twhere \n\t\t\t\t\t`" . $module->primary_key . "` = ?"; $this->query($qry_check, array($id)); if ($this->getNumRows() > 0) { $qry = "\n\t\t\t\t\t\tupdate `" . $module->module_group_rel_table . "` \n\t\t\t\t\t\tset `idgroup` = ?\n\t\t\t\t\t\twhere `" . $module->primary_key . "` = ?"; $this->query($qry, array($evctl->group_selector, $id)); } else { $this->insert($module->module_group_rel_table, array($module->primary_key => $id, 'idgroup' => $evctl->group_selector)); } // add to data history $do_data_history->addNew(); $do_data_history->id_referrer = $id; $do_data_history->iduser = $_SESSION["do_user"]->iduser; $do_data_history->idmodule = $module_id; $do_data_history->date_modified = date("Y-m-d H:i:s"); $do_data_history->action = 'value_changes'; $do_data_history->idfields = (int) $evctl->fieldid; $do_data_history->old_value = $old_assigned_to; $do_data_history->new_value = $new_assigned_to; $do_data_history->add(); // add to feed $do_feed_queue->add_feed_queue($id, $module_id, $record_identifier, 'changed_assigned_to', $feed_other_assigne); } } $_SESSION["do_crm_messages"]->set_message('success', _('Data updated successfully !')); } }
/** * event function to mass update the Calendar events and set their status * @param object $evctl * @return void */ public function eventChangeEventStatus(EventControler $evctl) { $record_ids = $evctl->ids; $event_status = $evctl->event_status; if (count($record_ids) > 0) { $do_data_history = new DataHistory(); $do_feed_queue = new LiveFeedQueue(); $idfields = 0; $qry = "\n\t\t\tselect idfields from fields\n\t\t\twhere field_name = 'event_status'\n\t\t\tand table_name = 'events'\n\t\t\t"; $stmt = $this->getDbConnection()->executeQuery($qry); $data = $stmt->fetch(); $idfields = $data['idfields']; foreach ($record_ids as $id) { $this->getId($id); $record_identifier = $this->subject; $old_status = $this->event_status; $assigned_to_as_group = false; $group_id = 0; if ((int) $this->idgroup > 0) { $assigned_to_as_group = true; $group_id = (int) $this->idgroup; } $qry = "update `" . $this->getTable() . "`\n\t\t\t\tset `event_status` = ?\n\t\t\t\twhere `idevents` = ?\n\t\t\t\t"; $stmt = $this->getDbConnection()->executeQuery($qry, array($event_status, $id)); if ($old_status != $event_status) { $do_data_history->addNew(); $do_data_history->id_referrer = $id; $do_data_history->iduser = $_SESSION["do_user"]->iduser; $do_data_history->idmodule = 2; $do_data_history->date_modified = date("Y-m-d H:i:s"); $do_data_history->action = 'value_changes'; $do_data_history->idfields = $idfields; $do_data_history->old_value = $old_status; $do_data_history->new_value = $event_status; $do_data_history->add(); // add to feed $feed_other_assigne = array(); if ($assigned_to_as_group === true) { $feed_other_assigne = array("related" => "group", "data" => array("key" => "oldgroup", "val" => $group_id)); } $do_feed_queue->add_feed_queue($id, 2, $record_identifier, 'edit', $feed_other_assigne); } } $_SESSION["do_crm_messages"]->set_message('success', _('Events updated successfully !')); } else { $_SESSION["do_crm_messages"]->set_message('success', _('Missing record id(s) !')); } }