From 5f5ea6b1efe35e0b5b15adb4e55ae5d7fbe2ebed Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 26 Jan 2026 21:03:49 +0300 Subject: [PATCH] Update purchase.py --- app/handlers/subscription/purchase.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/app/handlers/subscription/purchase.py b/app/handlers/subscription/purchase.py index 1ca43fb8..b295b7fe 100644 --- a/app/handlers/subscription/purchase.py +++ b/app/handlers/subscription/purchase.py @@ -1581,6 +1581,11 @@ async def handle_extend_subscription(callback: types.CallbackQuery, db_user: Use else: device_limit = forced_limit + # Модем добавляет +1 к device_limit, но оплачивается отдельно, + # поэтому не должен учитываться как платное устройство при продлении + if getattr(subscription, 'modem_enabled', False): + device_limit = max(1, device_limit - 1) + additional_devices = max(0, (device_limit or 0) - settings.DEFAULT_DEVICE_LIMIT) devices_price_per_month = additional_devices * settings.PRICE_PER_DEVICE devices_total_base = devices_price_per_month * months_in_period @@ -1805,6 +1810,11 @@ async def confirm_extend_subscription(callback: types.CallbackQuery, db_user: Us else: device_limit = forced_limit + # Модем добавляет +1 к device_limit, но оплачивается отдельно, + # поэтому не должен учитываться как платное устройство при продлении + if getattr(subscription, 'modem_enabled', False): + device_limit = max(1, device_limit - 1) + additional_devices = max(0, (device_limit or 0) - settings.DEFAULT_DEVICE_LIMIT) devices_price_per_month = additional_devices * settings.PRICE_PER_DEVICE devices_discount_percent = db_user.get_promo_discount(