fix pargar and login

This commit is contained in:
2026-08-01 14:04:01 +03:30
parent 6e75b9632b
commit 87f0e2beed
9 changed files with 248 additions and 38 deletions
+2 -10
View File
@@ -2,18 +2,10 @@
-- ستون pargar_sync_logs.amount با float() ساخته شده بود = DOUBLE(8,2) با سقف ۹۹۹٬۹۹۹٫۹۹
-- هر سند واریز/برداشت ریالی بزرگ‌تر از این سقف در insert خطا می‌داد و سند اصلاً ساخته نمی‌شد،
-- پس پرگار واریز مشتری را نمی‌دید و در تطبیق مانده، موجودی ریالی کیف صفر می‌شد.
-- DECIMAL(20,2) برای مبالغ میلیاردی کافی است.
-- 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;
ALTER TABLE `pargar_sync_logs` MODIFY `amount` DECIMAL(20, 2) NULL;
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE
FROM information_schema.COLUMNS