Files
crm.clientright.ru/check_document.php
Fedor 01c4fe80b5 chore: snapshot current working tree changes
Save all currently accumulated repository changes as a backup snapshot for Gitea so no local work is lost.
2026-03-26 14:19:01 +03:00

126 lines
4.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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";