From 31fbccca269968edcd9c09d6a593a1e779b2eb44 Mon Sep 17 00:00:00 2001 From: Egor Date: Fri, 16 Jan 2026 06:12:36 +0300 Subject: [PATCH] Update tariff_purchase.py --- app/handlers/subscription/tariff_purchase.py | 21 ++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/handlers/subscription/tariff_purchase.py b/app/handlers/subscription/tariff_purchase.py index 6b2ffc48..4b51d0e8 100644 --- a/app/handlers/subscription/tariff_purchase.py +++ b/app/handlers/subscription/tariff_purchase.py @@ -1327,6 +1327,13 @@ async def confirm_daily_tariff_purchase( # Для суточного тарифа ставим срок на 1 день existing_subscription.end_date = datetime.utcnow() + timedelta(days=1) + # Сбрасываем докупленный трафик при смене тарифа + from app.database.models import TrafficPurchase + from sqlalchemy import delete as sql_delete + await db.execute(sql_delete(TrafficPurchase).where(TrafficPurchase.subscription_id == existing_subscription.id)) + existing_subscription.purchased_traffic_gb = 0 + existing_subscription.traffic_reset_at = None + await db.commit() await db.refresh(existing_subscription) subscription = existing_subscription @@ -2380,6 +2387,13 @@ async def confirm_daily_tariff_switch( # Для суточного тарифа ставим срок на 1 день subscription.end_date = datetime.utcnow() + timedelta(days=1) + # Сбрасываем докупленный трафик при смене тарифа + from app.database.models import TrafficPurchase + from sqlalchemy import delete as sql_delete + await db.execute(sql_delete(TrafficPurchase).where(TrafficPurchase.subscription_id == subscription.id)) + subscription.purchased_traffic_gb = 0 + subscription.traffic_reset_at = None + await db.commit() await db.refresh(subscription) @@ -2941,6 +2955,13 @@ async def confirm_instant_switch( subscription.device_limit = new_tariff.device_limit subscription.connected_squads = squads + # Сбрасываем докупленный трафик при смене тарифа + from app.database.models import TrafficPurchase + from sqlalchemy import delete as sql_delete + await db.execute(sql_delete(TrafficPurchase).where(TrafficPurchase.subscription_id == subscription.id)) + subscription.purchased_traffic_gb = 0 + subscription.traffic_reset_at = None + if is_new_daily: # Для суточного тарифа - сбрасываем на 1 день и настраиваем суточные параметры daily_price = getattr(new_tariff, 'daily_price_kopeks', 0)