- Added comprehensive AI Assistant system (aiassist/ directory): * Vector search and embedding capabilities * Typebot proxy integration * Elastic search functionality * Message classification and chat history * MCP proxy for external integrations - Implemented Court Status API (GetCourtStatus.php): * Real-time court document status checking * Integration with external court systems * Comprehensive error handling and logging - Enhanced S3 integration: * Improved file backup system with metadata * Batch processing capabilities * Enhanced error logging and recovery * Copy operations with URL fixing - Added Telegram contact creation API - Improved error logging across all modules - Enhanced callback system for AI responses - Extensive backup file storage with timestamps - Updated documentation and README files - File storage improvements: * Thousands of backup files with proper metadata * Fix operations for broken file references * Project-specific backup and recovery systems * Comprehensive file integrity checking Total: 26,461+ files added/modified including AWS SDK, vendor dependencies, and extensive backup system.
67 lines
2.3 KiB
PHP
67 lines
2.3 KiB
PHP
<?php
|
|
/**
|
|
* Created by JetBrains PhpStorm.
|
|
* User: Stefan Warnat <support@stefanwarnat.de>
|
|
* Date: 20.09.14 23:15
|
|
* You must not use this file without permission.
|
|
*/
|
|
namespace Workflow\Plugins\RelationAddExtend;
|
|
|
|
use Workflow\VtUtils;
|
|
|
|
class RelatedLists extends \Workflow\RelationAddExtend {
|
|
protected $_hasSupport = array('add', 'query');
|
|
|
|
public function setRelatedModule($moduleName, $title) {
|
|
$this->_relatedModule = $moduleName;
|
|
$this->_title = $title;
|
|
}
|
|
public function isActive($moduleName) {
|
|
return true;
|
|
}
|
|
public function addRelatedRecord($sourceRecordId, $targetRecordId) {
|
|
$sourceModuleModel = \Vtiger_Module_Model::getInstance(\Workflow\VtUtils::getModuleNameForCRMID($targetRecordId));
|
|
$relatedModuleModel = \Vtiger_Module_Model::getInstance($this->getRelatedModule());
|
|
$relationModel = \Vtiger_Relation_Model::getInstance($sourceModuleModel, $relatedModuleModel);
|
|
|
|
$relationModel->addRelation($targetRecordId, $sourceRecordId);
|
|
|
|
return true;
|
|
}
|
|
|
|
public function getQuery($sourceId) {
|
|
$moduleSQL = VtUtils::getModuleTableSQL($this->getRelatedModule(), 'vtiger_crmentityrel.relcrmid');
|
|
|
|
$moduleSQL = 'SELECT vtiger_crmentity.crmid /* Insert Fields */ FROM vtiger_crmentityrel '.$moduleSQL.' WHERE vtiger_crmentityrel.crmid = '.$sourceId.' AND relmodule = "'.$this->_relatedModule.'"';
|
|
|
|
return $moduleSQL;
|
|
}
|
|
|
|
/**
|
|
* @param $moduleName
|
|
* @return array
|
|
*/
|
|
public static function getAvailableRelatedLists($moduleName) {
|
|
$adb = \PearDatabase::getInstance();
|
|
$sql = 'SELECT relation_id, tabid, related_tabid, label FROM vtiger_relatedlists WHERE tabid = '.getTabId($moduleName).' AND name = "get_related_list"';
|
|
$result = $adb->query($sql, true);
|
|
|
|
$items = array();
|
|
while($row = $adb->fetchByAssoc($result)) {
|
|
$relatedModule = VtUtils::getModuleName($row['related_tabid']);
|
|
|
|
/**
|
|
* @var RelatedLists $obj
|
|
*/
|
|
$obj = new self('RelList@'.$row['relation_id'].'@'.$relatedModule);
|
|
$obj->setRelatedModule('RelList@'.$row['relation_id'].'@'.$relatedModule, vtranslate($row['label'], $moduleName));
|
|
|
|
$items[] = $obj;
|
|
}
|
|
|
|
return $items;
|
|
}
|
|
|
|
}
|
|
|