Files
crm.clientright.ru/check_document.php

126 lines
4.9 KiB
PHP
Raw Normal View History

<?php
/**
* Скрипт для проверки документа в CRM
*/
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'config.inc.php';
require_once 'include/database/PearDatabase.php';
global $adb;
if (!$adb) {
$adb = PearDatabase::getInstance();
}
$recordId = 397217;
echo "=== Проверка документа ID: $recordId ===\n\n";
// 1. Проверка в vtiger_notes
$query1 = "SELECT n.*, e.deleted, e.smownerid, e.setype
FROM vtiger_notes n
LEFT JOIN vtiger_crmentity e ON e.crmid = n.notesid
WHERE n.notesid = ?";
$result1 = $adb->pquery($query1, array($recordId));
if ($adb->num_rows($result1) > 0) {
$row1 = $adb->fetchByAssoc($result1, -1, false);
echo "✅ Документ найден в vtiger_notes:\n";
echo " - Title: " . (isset($row1['title']) ? $row1['title'] : 'N/A') . "\n";
echo " - Filename: " . (isset($row1['filename']) ? $row1['filename'] : 'N/A') . "\n";
echo " - Filelocationtype: " . (isset($row1['filelocationtype']) ? $row1['filelocationtype'] : 'N/A') . "\n";
echo " - Deleted: " . (isset($row1['deleted']) ? $row1['deleted'] : 'N/A') . "\n";
echo " - Owner: " . (isset($row1['smownerid']) ? $row1['smownerid'] : 'N/A') . "\n";
echo " - Setype: " . (isset($row1['setype']) ? $row1['setype'] : 'N/A') . "\n";
echo " - Все поля: " . print_r($row1, true) . "\n\n";
} else {
echo "❌ Документ НЕ найден в vtiger_notes!\n\n";
}
// 2. Проверка в vtiger_attachments
$query2 = "SELECT a.*, sar.crmid
FROM vtiger_attachments a
LEFT JOIN vtiger_seattachmentsrel sar ON sar.attachmentsid = a.attachmentsid
WHERE sar.crmid = ?";
$result2 = $adb->pquery($query2, array($recordId));
if ($adb->num_rows($result2) > 0) {
echo "✅ Вложения найдены:\n";
while ($row2 = $adb->fetchByAssoc($result2)) {
echo " - AttachmentsID: " . ($row2['attachmentsid'] ?? 'N/A') . "\n";
echo " - Name: " . ($row2['name'] ?? 'N/A') . "\n";
echo " - Storedname: " . ($row2['storedname'] ?? 'N/A') . "\n";
echo " - Path: " . ($row2['path'] ?? 'N/A') . "\n";
echo " - Type: " . ($row2['type'] ?? 'N/A') . "\n";
echo " - Size: " . ($row2['size'] ?? 'N/A') . "\n";
// Проверка существования файла
if (isset($row2['path']) && isset($row2['attachmentsid']) && isset($row2['storedname'])) {
$filePath = $row2['path'] . $row2['attachmentsid'] . '_' . $row2['storedname'];
if (file_exists($filePath)) {
echo " - ✅ Файл существует: $filePath\n";
echo " - Размер файла: " . filesize($filePath) . " байт\n";
} else {
echo " - ❌ Файл НЕ существует: $filePath\n";
}
}
echo "\n";
}
} else {
echo "❌ Вложения НЕ найдены!\n\n";
}
// 3. Проверка в vtiger_notescf (кастомные поля)
$query3 = "SELECT * FROM vtiger_notescf WHERE notesid = ?";
$result3 = $adb->pquery($query3, array($recordId));
if ($adb->num_rows($result3) > 0) {
$row3 = $adb->fetchByAssoc($result3);
echo "✅ Кастомные поля найдены:\n";
foreach ($row3 as $key => $value) {
if ($key !== 'notesid' && !empty($value)) {
echo " - $key: $value\n";
}
}
echo "\n";
} else {
echo "⚠️ Кастомные поля не найдены (это нормально)\n\n";
}
// 4. Проверка S3 ключа (если filelocationtype = 'E')
if (isset($row1['filelocationtype']) && $row1['filelocationtype'] == 'E') {
$query4 = "SELECT cf_* FROM vtiger_notescf WHERE notesid = ?";
$result4 = $adb->pquery($query4, array($recordId));
if ($adb->num_rows($result4) > 0) {
$row4 = $adb->fetchByAssoc($result4);
echo "📦 Проверка S3 хранилища:\n";
foreach ($row4 as $key => $value) {
if (strpos($key, 's3') !== false || strpos($key, 'S3') !== false) {
echo " - $key: $value\n";
}
}
echo "\n";
}
}
// 5. Проверка связей
$query5 = "SELECT rel.*, e.setype
FROM vtiger_crmentityrel rel
LEFT JOIN vtiger_crmentity e ON e.crmid = rel.relcrmid
WHERE rel.crmid = ? OR rel.relcrmid = ?";
$result5 = $adb->pquery($query5, array($recordId, $recordId));
if ($adb->num_rows($result5) > 0) {
echo "🔗 Связи документа:\n";
while ($row5 = $adb->fetchByAssoc($result5)) {
echo " - " . $row5['module'] . " (" . $row5['crmid'] . ") ↔ " . $row5['relmodule'] . " (" . $row5['relcrmid'] . ")\n";
}
echo "\n";
} else {
echo "⚠️ Связи не найдены\n\n";
}
echo "=== Проверка завершена ===\n";