Files
crm.clientright.ru/modules/Workflow2/lib/Workflow/FrontendWorkflows.php
Fedor ac7467f0b4 Major CRM updates: AI Assistant, Court Status API, S3 integration improvements, and extensive file storage system
- 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.
2025-10-16 11:17:21 +03:00

101 lines
3.2 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: Stefan
* Date: 12.11.2016
* Time: 23:58
*/
namespace Workflow;
class FrontendWorkflows
{
public static function getAll() {
$adb = \PearDatabase::getInstance();
$sql = "SELECT
vtiger_wf_frontendtrigger.*,
vtiger_wf_settings.module_name,
vtiger_wf_settings.title
FROM vtiger_wf_frontendtrigger
INNER JOIN vtiger_wf_settings ON (vtiger_wf_settings.id = vtiger_wf_frontendtrigger.workflow_id)
ORDER BY vtiger_wf_settings.id";
$result = $adb->query($sql);
$workflows = array();
while($row = $adb->fetch_array($result)) {
$moduleName = getTranslatedString($row["module_name"], $row["module_name"]);
//$row =
$workflows[$moduleName][] = $row;
}
return $workflows;
}
public static function getAllActive() {
$adb = \PearDatabase::getInstance();
$sql = "SELECT
vtiger_wf_frontendtrigger.*,
vtiger_wf_settings.module_name,
vtiger_wf_settings.title
FROM vtiger_wf_frontendtrigger
INNER JOIN vtiger_wf_settings ON (vtiger_wf_settings.id = vtiger_wf_frontendtrigger.workflow_id)
WHERE vtiger_wf_frontendtrigger.active = 1 AND vtiger_wf_settings.active = 1
ORDER BY vtiger_wf_settings.id";
$result = $adb->query($sql, true);
$workflows = array();
while($row = $adb->fetch_array($result)) {
$workflows[] = $row;
}
return $workflows;
}
private $_id = null;
public function __construct($id) {
$this->_id = intval($id);
}
public function remove() {
VtUtils::pquery('DELETE FROM vtiger_wf_frontendtrigger WHERE id = ?', array($this->_id));
}
public function getData() {
$adb = \PearDatabase::getInstance();
$sql = 'SELECT
vtiger_wf_frontendtrigger.*,
vtiger_wf_settings.module_name,
vtiger_wf_settings.title
FROM vtiger_wf_frontendtrigger
INNER JOIN vtiger_wf_settings ON (vtiger_wf_settings.id = vtiger_wf_frontendtrigger.workflow_id)
WHERE vtiger_wf_frontendtrigger.id = '.$this->_id;
$result = $adb->query($sql);
$return = $adb->fetchByAssoc($result);
$return['fields'] = explode(',', $return['fields']);
$return['condition'] = VtUtils::json_decode(html_entity_decode($return['condition']));
return $return;
}
public function setActive($active) {
$adb = \PearDatabase::getInstance();
$sql = 'UPDATE vtiger_wf_frontendtrigger SET `active` = ? WHERE id = ?';
$adb->pquery($sql, array($active, $this->_id));
}
public function update($data) {
$adb = \PearDatabase::getInstance();
$sql = 'UPDATE vtiger_wf_frontendtrigger SET `active` = ?, `pageload` = ?, `fields` = ?, `condition` = ? WHERE id = ?';
$adb->pquery($sql, array($data['active'], $data['pageload'], implode(',', $data['fields']), VtUtils::json_encode($data['condition']), $this->_id));
}
}