Files
boursecu_server/database/sql/pargar_sync_logs_amount_widen.sql
T
2026-07-26 14:15:26 +03:30

21 lines
1.1 KiB
SQL

-- رفع باگ گم‌شدن اسناد ریالی پرگار
-- ستون pargar_sync_logs.amount با float() ساخته شده بود = DOUBLE(8,2) با سقف ۹۹۹٬۹۹۹٫۹۹
-- هر سند واریز/برداشت ریالی بزرگ‌تر از این سقف در insert خطا می‌داد و سند اصلاً ساخته نمی‌شد،
-- پس پرگار واریز مشتری را نمی‌دید و در تطبیق مانده، موجودی ریالی کیف صفر می‌شد.
-- idempotent: چند بار قابل اجرا
SET @db = DATABASE();
SET @sql = IF(
(SELECT COUNT(*) FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = @db AND TABLE_NAME = 'pargar_sync_logs'
AND COLUMN_NAME = 'amount' AND UPPER(COLUMN_TYPE) <> 'DOUBLE') = 1,
'ALTER TABLE `pargar_sync_logs` MODIFY `amount` DOUBLE NULL',
'SELECT ''skip pargar_sync_logs.amount'' AS info'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pargar_sync_logs' AND COLUMN_NAME = 'amount';