| Server IP : 138.197.176.125 / Your IP : 216.73.216.41 Web Server : Apache/2.4.41 (Ubuntu) System : Linux SuiteCRM-8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/vt7multiuserassignment.crmtiger.es/modules/CTMultiUserAssignment/ |
Upload File : |
<?php
/*+**********************************************************************************
* The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
************************************************************************************/
include_once 'modules/Vtiger/CRMEntity.php';
class CTMultiUserAssignment extends Vtiger_CRMEntity {
var $table_name = 'vtiger_ctmultiuserassignment';
var $table_index= 'ctmultiuserassignmentid';
/**
* Mandatory table for supporting custom fields.
*/
var $customFieldTable = Array('vtiger_ctmultiuserassignmentcf', 'ctmultiuserassignmentid');
/**
* Mandatory for Saving, Include tables related to this module.
*/
var $tab_name = Array('vtiger_crmentity', 'vtiger_ctmultiuserassignment', 'vtiger_ctmultiuserassignmentcf');
/**
* Mandatory for Saving, Include tablename and tablekey columnname here.
*/
var $tab_name_index = Array(
'vtiger_crmentity' => 'crmid',
'vtiger_ctmultiuserassignment' => 'ctmultiuserassignmentid',
'vtiger_ctmultiuserassignmentcf'=>'ctmultiuserassignmentid');
/**
* Mandatory for Listing (Related listview)
*/
var $list_fields = Array (
/* Format: Field Label => Array(tablename, columnname) */
// tablename should not have prefix 'vtiger_'
'CTMultiUserAssignment No' => Array('ctmultiuserassignment', 'ctmultiuserassignment_no'),
'Assigned To' => Array('crmentity','smownerid')
);
var $list_fields_name = Array (
/* Format: Field Label => fieldname */
'CTMultiUserAssignment No' => 'ctmultiuserassignment_no',
'Assigned To' => 'assigned_user_id',
);
// Make the field link to detail view
var $list_link_field = 'ctmultiuserassignment_no';
// For Popup listview and UI type support
var $search_fields = Array(
/* Format: Field Label => Array(tablename, columnname) */
// tablename should not have prefix 'vtiger_'
'CTMultiUserAssignment No' => Array('ctmultiuserassignment', 'ctmultiuserassignment_no'),
'Assigned To' => Array('vtiger_crmentity','assigned_user_id'),
);
var $search_fields_name = Array (
/* Format: Field Label => fieldname */
'CTMultiUserAssignment No' => 'ctmultiuserassignment_no',
'Assigned To' => 'assigned_user_id',
);
// For Popup window record selection
var $popup_fields = Array ('ctmultiuserassignment_no');
// For Alphabetical search
var $def_basicsearch_col = 'ctmultiuserassignment_no';
// Column value to use on detail view record text display
var $def_detailview_recname = 'ctmultiuserassignment_no';
// Used when enabling/disabling the mandatory fields for the module.
// Refers to vtiger_field.fieldname values.
var $mandatory_fields = Array('ctmultiuserassignment_no','assigned_user_id');
var $default_order_by = 'ctmultiuserassignment_no';
var $default_sort_order='ASC';
/**
* Invoked when special actions are performed on the module.
* @param String Module name
* @param String Event Type
*/
function vtlib_handler($moduleName, $eventType) {
global $adb;
if($eventType == 'module.postinstall') {
// TODO Handle actions after this module is installed.
$this->updateSettings();
} else if($eventType == 'module.disabled') {
// TODO Handle actions before this module is being uninstalled.
} else if($eventType == 'module.preuninstall') {
// TODO Handle actions when this module is about to be deleted.
} else if($eventType == 'module.preupdate') {
// TODO Handle actions before this module is updated.
} else if($eventType == 'module.postupdate') {
// TODO Handle actions after this module is updated.
}
}
private function updateSettings() {
$adb = PearDatabase::getInstance();
$adb->pquery("CREATE TABLE IF NOT EXISTS ctmulti_user_assignment (
id int(11) NOT NULL AUTO_INCREMENT,
fieldlabel varchar(100) DEFAULT NULL,
sourcemodule varchar(100) DEFAULT NULL,
fieldname varchar(100) DEFAULT NULL,
teammmebers varchar(100) DEFAULT NULL,
defaultgroup varchar(100) DEFAULT NULL,
active varchar(100) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;");
$adb->pquery("CREATE TABLE IF NOT EXISTS ctmulti_user_assignment_record (
recordid int(11) DEFAULT NULL,
userid varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
$adb->pquery("CREATE TABLE IF NOT EXISTS `ctmulti_user_assignment_groupname` (
`groupname` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;");
$getentity =$adb->pquery("SELECT * FROM vtiger_ws_entity WHERE name = ?", array('CTMultiUserAssignment'));
if($adb->num_rows($getentity) != 1){
$seq = $adb->pquery("SELECT * FROM vtiger_ws_entity_seq", array());
$id = $adb->query_result($seq, 0, 'id');
$seq = $id + 1;
$adb->pquery("INSERT INTO vtiger_ws_entity (id, name, handler_path, handler_class, ismodule) VALUES ($seq, 'CTMultiUserAssignment', 'include/Webservices/VtigerModuleOperation.php', 'VtigerModuleOperation', '1')");
}
$linkto = 'index.php?module=CTMultiUserAssignment&parent=Settings&view=SettingsView';
$result1=$adb->pquery('SELECT 1 FROM vtiger_settings_field WHERE name=?',array('Multi User Assignment'));
if($adb->num_rows($result1)){
$adb->pquery('UPDATE vtiger_settings_field SET name=?, iconpath=?, description=?, linkto=? WHERE name=?',array('Multi User Assignment', '', '', $linkto, 'Multi User Assignment'));
}else{
$fieldid = $adb->getUniqueID('vtiger_settings_field');
$blockid = getSettingsBlockId('LBL_OTHER_SETTINGS');
$seq_res = $adb->pquery("SELECT max(sequence) AS max_seq FROM vtiger_settings_field WHERE blockid = ?", array($blockid));
if ($adb->num_rows($seq_res) > 0) {
$cur_seq = $adb->query_result($seq_res, 0, 'max_seq');
if ($cur_seq != null) $seq = $cur_seq + 1;
}
$adb->pquery('INSERT INTO vtiger_settings_field(fieldid, blockid, name, iconpath, description, linkto, sequence) VALUES (?,?,?,?,?,?,?)', array($fieldid, $blockid, 'Multi User Assignment' , '', '', $linkto, $seq));
}
$handlerQuery = $adb->pquery("SELECT * FROM vtiger_eventhandlers WHERE handler_class = 'CTMultiUserAssignmentHandler'");
$rows = $adb->num_rows($handlerQuery);
if($rows == 0){
$handlerId = $adb->getUniqueId('vtiger_eventhandlers');
$adb->pquery("insert into vtiger_eventhandlers
(eventhandler_id, event_name, handler_path, handler_class, cond, is_active, dependent_on)
values (?,?,?,?,?,?,?)", array($handlerId, 'vtiger.entity.aftersave', 'modules/CTMultiUserAssignment/CTMultiUserAssignmentHandler.php', 'CTMultiUserAssignmentHandler', '', '1', '[]'));
}
$widgetType = 'HEADERSCRIPT';
$widgetName = 'CTMultiUserAssignment';
$link = 'layouts/v7/modules/CTMultiUserAssignment/resources/CTMultiUserAssignment.js';
$module = Vtiger_Module::getInstance('CTMultiUserAssignment');
if($module) {
$module->addLink($widgetType, $widgetName, $link);
}
}
}