Files
crm.clientright.ru/modules/Workflow2/AjaxImporter.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

59 lines
1.5 KiB
PHP

<?php
require_once("autoload_wf.php");
if(!function_exists("lineCount")) {
function lineCount($file) {
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
if (fgets($handle) !== false) {
$linecount++;
}
}
fclose($handle);
return $linecount;
}
}
$data = $_SESSION["import_".$_POST["importHash"]];
if(!empty($_REQUEST["currentExecID"]) && $_REQUEST["currentExecID"] != "false") {
$task = Workflow_Queue::getQueueEntryByExecId($_REQUEST["currentExecID"]);
//error_log("run Queue:".$task["queue_id"]);
$sql = "DELETE FROM vtiger_wf_queue WHERE id = ".$task["queue_id"]."";
$adb->query($sql);
Workflow_Queue::runEntry($task);
return;
}
$context = \Workflow\VTEntity::getDummy();
$objWorkflow = new Workflow_Main($data["workflow"], false, $current_user);
$environment = array("_internal" => array("pos" => $data["position"], "file" => $data["filePath"], "total" => $data["total"], "delimiter" => $data["delimiter"], "hash" => $_REQUEST["process"]));
$context->loadEnvironment($environment);
$objWorkflow->setContext($context);
$objWorkflow->start();
$environment = $context->getEnvironment();
$_SESSION["import_".$_REQUEST["process"]]["position"] = $environment["_internal"]["pos"];
$lines = lineCount($environment["_internal"]["file"]);
$result = array("done" => $environment["_internal"]["pos"], "ready" => true);
if($environment["_internal"]["pos"] == $lines || $environment["_internal"]["finish"] === true) {
$result["ready"] = true;
}
echo json_encode($result);
?>