Files
crm.clientright.ru/scripts/check_replay_comment_simple.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

105 lines
3.6 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
/**
* Упрощённая проверка комментариев (прямое подключение к БД)
* Вызов: https://crm.clientright.ru/scripts/check_replay_comment_simple.php?contact_id=392299
*/
error_reporting(E_ALL);
ini_set('display_errors', '1');
chdir(dirname(__DIR__));
require_once 'config.inc.php';
require_once 'include/database/PearDatabase.php';
$contact_id = isset($_GET['contact_id']) ? (int)$_GET['contact_id'] : 392299;
header('Content-Type: text/plain; charset=utf-8');
$adb = new PearDatabase();
$q = $adb->pquery(
"SELECT m.modcommentsid, m.commentcontent, m.related_to, m.channel, m.customer, m.userid,
e.smownerid, e.deleted, e.setype, e.createdtime
FROM vtiger_modcomments m
INNER JOIN vtiger_crmentity e ON e.crmid = m.modcommentsid
WHERE m.related_to = ?
ORDER BY m.modcommentsid DESC
LIMIT 10",
array($contact_id)
);
echo "Комментарии для contact_id={$contact_id}:\n";
echo str_repeat('=', 70) . "\n\n";
if ($adb->num_rows($q) === 0) {
echo "❌ Записей в vtiger_modcomments для этого контакта НЕТ.\n";
exit;
}
$count = $adb->num_rows($q);
echo "✅ Найдено записей: {$count}\n\n";
for ($i = 0; $i < $count; $i++) {
echo "--- Запись #{$i} ---\n";
flush();
try {
$modcommentsid = $adb->query_result($q, $i, 'modcommentsid');
echo "modcommentsid: {$modcommentsid}\n";
flush();
$deleted = $adb->query_result($q, $i, 'deleted');
echo " deleted: " . ($deleted !== false ? $deleted : 'NULL/FALSE') . "\n";
$setype = $adb->query_result($q, $i, 'setype');
echo " setype: {$setype}\n";
$channel = $adb->query_result($q, $i, 'channel');
echo " channel: " . ($channel ? $channel : 'NULL') . "\n";
$smownerid = $adb->query_result($q, $i, 'smownerid');
echo " smownerid: {$smownerid}\n";
$customer = $adb->query_result($q, $i, 'customer');
echo " customer: {$customer}\n";
$userid = $adb->query_result($q, $i, 'userid');
echo " userid: {$userid}\n";
$createdtime = $adb->query_result($q, $i, 'createdtime');
echo " createdtime: {$createdtime}\n";
$commentcontent = $adb->query_result($q, $i, 'commentcontent');
$text_preview = mb_substr($commentcontent, 0, 60, 'UTF-8');
echo " text: {$text_preview}...\n";
echo "\n";
flush();
} catch (Exception $e) {
echo " ОШИБКА при чтении записи: " . $e->getMessage() . "\n\n";
flush();
}
}
// Проверка наличия в modcommentscf
$q2 = $adb->pquery(
"SELECT m.modcommentsid
FROM vtiger_modcomments m
LEFT JOIN vtiger_modcommentscf c ON c.modcommentsid = m.modcommentsid
WHERE m.related_to = ? AND c.modcommentsid IS NULL
ORDER BY m.modcommentsid DESC LIMIT 10",
array($contact_id)
);
$missing_count = $adb->num_rows($q2);
if ($missing_count > 0) {
echo str_repeat('=', 70) . "\n";
echo "⚠️ ВНИМАНИЕ: Комментарии БЕЗ строки в vtiger_modcommentscf: {$missing_count}\n";
echo "(они НЕ попадут в список, т.к. используется INNER JOIN)\n\n";
for ($i = 0; $i < $missing_count; $i++) {
$mid = $adb->query_result($q2, $i, 'modcommentsid');
echo " - modcommentsid: {$mid}\n";
}
} else {
echo str_repeat('=', 70) . "\n";
echo "Все комментарии есть в vtiger_modcommentscf.\n";
}