- 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.
137 lines
4.1 KiB
PHP
137 lines
4.1 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\RecordSource;
|
|
|
|
use Workflow\ComplexeCondition;
|
|
use Workflow\Preset;
|
|
use Workflow\PresetManager;
|
|
use Workflow\VtUtils;
|
|
|
|
class Condition extends \Workflow\RecordSource {
|
|
|
|
|
|
public function getSource($moduleName) {
|
|
|
|
$return = array(
|
|
'id' => 'condition',
|
|
'title' => 'get Records by Condition',
|
|
'sort' => 10,
|
|
'options' => array(
|
|
'condition' => array(
|
|
'type' => 'condition',
|
|
'label' => 'Define condition'
|
|
)
|
|
)
|
|
);
|
|
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* @param $key
|
|
* @param $value
|
|
* @param $context \Workflow\VTEntity
|
|
* @return array|void
|
|
*/
|
|
public function getQuery(\Workflow\VTEntity $context, $sortField = null, $limit = null, $includeAllModTables = false) {
|
|
require_once('modules/Workflow2/VTConditionMySql.php');
|
|
|
|
$logger = \Workflow\ExecutionLogger::getCurrentInstance();
|
|
|
|
$objMySQL = new \Workflow\ConditionMysql($this->_TargetModule, $context);
|
|
$objMySQL->setLogger($logger);
|
|
|
|
$main_module = \CRMEntity::getInstance($this->_TargetModule);
|
|
#$sqlTables = $main_module->generateReportsQuery($related_module);
|
|
|
|
$sqlCondition = $objMySQL->parse($this->_Data['recordsourcecondition']);
|
|
|
|
$sqlTables = $objMySQL->generateTables($includeAllModTables);
|
|
|
|
if(strlen($sqlCondition) > 3) {
|
|
$sqlCondition .= " AND vtiger_crmentity.deleted = 0";
|
|
} else {
|
|
$sqlCondition .= " vtiger_crmentity.deleted = 0";
|
|
}
|
|
|
|
$sqlCondition .= " GROUP BY vtiger_crmentity.crmid ";
|
|
|
|
$idColumn = $main_module->table_name.".".$main_module->table_index;
|
|
$sqlQuery = "SELECT vtiger_crmentity.crmid /* Insert Fields */ ".$sqlTables." WHERE ".(strlen($sqlCondition) > 3?$sqlCondition:"").'';
|
|
|
|
if(!empty($sortField) && $sortField != -1) {
|
|
if(is_array($sortField) && !empty($sortField[0])) {
|
|
$sortDuration = $sortField[1];
|
|
$sortField = $sortField[0];
|
|
} else {
|
|
$sortDuration = '';
|
|
}
|
|
|
|
$sortField = VtUtils::getFieldInfo($sortField, getTabId($this->_TargetModule));
|
|
|
|
if(!empty($sortField['tablename']) && !empty($sortField['columnname'])) {
|
|
$sqlQuery .= ' ORDER BY ' . $sortField['tablename'] . '.' . $sortField['columnname'] . ' ' . $sortDuration;
|
|
}
|
|
|
|
}
|
|
if(!empty($limit) && $limit != -1) {
|
|
$sqlQuery .= " LIMIT ".$limit;
|
|
}
|
|
|
|
return $sqlQuery;
|
|
}
|
|
|
|
public function beforeGetTaskform($data) {
|
|
//$presetManager = new PresetManager($this->)
|
|
}
|
|
|
|
/**
|
|
* @var null|ComplexeCondition
|
|
*/
|
|
private $_ConditionObj = null;
|
|
|
|
/**
|
|
* @return null|ComplexeCondition
|
|
*/
|
|
public function getConditionObj() {
|
|
if($this->_ConditionObj === null) {
|
|
$this->_ConditionObj = new ComplexeCondition('recordsourcecondition', array(
|
|
'toModule' => $this->_TargetModule,
|
|
'fromModule' => $this->_Task->getModuleName(),
|
|
'mode' => 'mysql',
|
|
));
|
|
|
|
$this->_ConditionObj->setCondition($this->_Data['recordsourcecondition']);
|
|
}
|
|
|
|
return $this->_ConditionObj;
|
|
}
|
|
|
|
public function getConfigHTML($data, $parameter) {
|
|
$ConditionObj = $this->getConditionObj();
|
|
return $ConditionObj->getHTMLContent();
|
|
|
|
}
|
|
public function getConfigInlineJS() {
|
|
$obj = $this->getConditionObj();
|
|
return $obj->getJavaScript();
|
|
|
|
}
|
|
public function getConfigInlineCSS() {
|
|
return '.asd { color:red; }';
|
|
}
|
|
|
|
public function filterBeforeSave($data) {
|
|
$condObj = $this->getConditionObj();
|
|
$data['recordsourcecondition'] = $condObj->getCondition($data['recordsourcecondition']);
|
|
|
|
return $data;
|
|
}
|
|
}
|
|
|
|
\Workflow\RecordSource::register('condition', '\Workflow\Plugins\RecordSource\Condition'); |