Files
crm.clientright.ru/include/Webservices/RelatedModuleMeta.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

88 lines
2.9 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.
*
*********************************************************************************/
/**
* Description of RelatedModuleMeta
* TODO to add and extend a way to track many-many and many-one relationships.
* @author MAK
*/
class RelatedModuleMeta {
private $module;
private $relatedModule;
private $CAMPAIGNCONTACTREL = 1;
private $PRODUCTQUOTESREL = 2;
private $PRODUCTINVOICEREL = 3;
private $PRODUCTPURCHASEORDERREL = 4;
private function __construct($module, $relatedModule) {
$this->module = $module;
$this->relatedModule = $relatedModule;
}
/**
*
* @param <type> $module
* @param <type> $relatedModule
* @return RelatedModuleMeta
*/
public static function getInstance($module, $relatedModule) {
return new RelatedModuleMeta($module, $relatedModule);
}
public function getRelationMeta() {
$campaignContactRel = array('Campaigns','Contacts');
$productInvoiceRel = array('Products','Invoice');
$productQuotesRel = array('Products','Quotes');
$productPurchaseOrder = array('Products','PurchaseOrder');
if(in_array($this->module, $campaignContactRel) && in_array($this->relatedModule,
$campaignContactRel)) {
return $this->getRelationMetaInfo($this->CAMPAIGNCONTACTREL);
}
if(in_array($this->module, $productInvoiceRel) && in_array($this->relatedModule,
$productInvoiceRel)) {
return $this->getRelationMetaInfo($this->PRODUCTINVOICEREL);
}
if(in_array($this->module, $productQuotesRel) && in_array($this->relatedModule,
$productQuotesRel)) {
return $this->getRelationMetaInfo($this->PRODUCTQUOTESREL);
}
if(in_array($this->module, $productPurchaseOrder) && in_array($this->relatedModule,
$productPurchaseOrder)) {
return $this->getRelationMetaInfo($this->PRODUCTPURCHASEORDERREL);
}
}
private function getRelationMetaInfo($relationId) {
switch($relationId) {
case $this->CAMPAIGNCONTACTREL: return array(
'relationTable' => 'vtiger_campaigncontrel',
'Campaigns' => 'campaignid',
'Contacts' => 'contactid'
);
case $this->PRODUCTINVOICEREL: return array(
'relationTable' => 'vtiger_inventoryproductrel',
'Products' => 'productid',
'Invoice' => 'id'
);
case $this->PRODUCTQUOTESREL: return array(
'relationTable' => 'vtiger_inventoryproductrel',
'Products' => 'productid',
'Quotes' => 'id'
);
case $this->PRODUCTPURCHASEORDERREL: return array(
'relationTable' => 'vtiger_inventoryproductrel',
'Products' => 'productid',
'PurchaseOrder' => 'id'
);
}
}
}
?>