- 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.
86 lines
3.6 KiB
PHP
86 lines
3.6 KiB
PHP
<?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.
|
|
*************************************************************************************/
|
|
|
|
class Reports_Save_Action extends Vtiger_Save_Action {
|
|
|
|
public function requiresPermission(\Vtiger_Request $request) {
|
|
$permissions = parent::requiresPermission($request);
|
|
$permissions[] = array('module_parameter' => 'module', 'action' => 'DetailView', 'record_parameter' => 'record');
|
|
return $permissions;
|
|
}
|
|
|
|
public function checkPermission(Vtiger_Request $request) {
|
|
parent::checkPermission($request);
|
|
|
|
$record = $request->get('record');
|
|
if ($record) {
|
|
$reportModel = Reports_Record_Model::getCleanInstance($record);
|
|
if (!$reportModel->isEditable()) {
|
|
throw new AppException(vtranslate('LBL_PERMISSION_DENIED'));
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public function process(Vtiger_Request $request) {
|
|
$moduleName = $request->getModule();
|
|
|
|
$record = $request->get('record');
|
|
$reportModel = new Reports_Record_Model();
|
|
$reportModel->setModule('Reports');
|
|
if(!empty($record) && !$request->get('isDuplicate')) {
|
|
$reportModel->setId($record);
|
|
}
|
|
|
|
$reporttype = $request->get('reporttype');
|
|
if(empty($reporttype)) $reporttype='tabular';
|
|
$reportModel->set('reportname', $request->get('reportname'));
|
|
$reportModel->set('folderid', $request->get('reportfolderid'));
|
|
$reportModel->set('description', $request->get('reports_description'));
|
|
$reportModel->set('reporttype', $reporttype);
|
|
|
|
$reportModel->setPrimaryModule($request->get('primary_module'));
|
|
|
|
$secondaryModules = $request->get('secondary_modules');
|
|
$secondaryModules = implode(':', $secondaryModules);
|
|
$reportModel->setSecondaryModule($secondaryModules);
|
|
|
|
$reportModel->set('selectedFields', $request->get('selected_fields'));
|
|
$reportModel->set('sortFields', $request->get('selected_sort_fields'));
|
|
$reportModel->set('calculationFields', $request->get('selected_calculation_fields'));
|
|
|
|
$reportModel->set('standardFilter', $request->get('standard_fiter'));
|
|
$reportModel->set('advancedFilter', $request->get('advanced_filter'));
|
|
$reportModel->set('advancedGroupFilterConditions', $request->get('advanced_group_condition'));
|
|
$reportModel->set('members', $request->get('members'));
|
|
|
|
$reportModel->save();
|
|
|
|
//Scheduled Reports
|
|
$scheduleReportModel = new Reports_ScheduleReports_Model();
|
|
$scheduleReportModel->set('scheduleid', $request->get('schtypeid'));
|
|
$scheduleReportModel->set('schtime', date('H:i', strtotime($request->get('schtime'))));
|
|
$scheduleReportModel->set('schdate', $request->get('schdate'));
|
|
$scheduleReportModel->set('schdayoftheweek', $request->get('schdayoftheweek'));
|
|
$scheduleReportModel->set('schdayofthemonth', $request->get('schdayofthemonth'));
|
|
$scheduleReportModel->set('schannualdates', $request->get('schannualdates'));
|
|
$scheduleReportModel->set('reportid', $reportModel->getId());
|
|
$scheduleReportModel->set('recipients', $request->get('recipients'));
|
|
$scheduleReportModel->set('isReportScheduled', $request->get('enable_schedule'));
|
|
$scheduleReportModel->set('specificemails', $request->get('specificemails'));
|
|
$scheduleReportModel->set('fileformat', $request->get('fileformat'));
|
|
$scheduleReportModel->saveScheduleReport();
|
|
//END
|
|
|
|
$loadUrl = $reportModel->getDetailViewUrl();
|
|
header("Location: $loadUrl");
|
|
}
|
|
}
|