Exemple #1
0
 /**
  * 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 !'));
     }
 }
Exemple #2
0
 /**
  * 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) !'));
     }
 }