Фикс корзины

This commit is contained in:
gy9vin
2025-12-11 22:25:42 +03:00
parent 81b3c7ed3f
commit c9de084efa
6 changed files with 23 additions and 7 deletions

BIN
app/.DS_Store vendored

Binary file not shown.

View File

@@ -4559,10 +4559,13 @@ async def admin_buy_subscription_execute(
target_user.telegram_id,
)
if subscription.end_date <= current_time:
extension_base_date = current_time
if subscription.end_date and subscription.end_date > current_time:
extension_base_date = subscription.end_date
else:
subscription.start_date = current_time
subscription.end_date = current_time + timedelta(days=period_days) + bonus_period
subscription.end_date = extension_base_date + timedelta(days=period_days) + bonus_period
subscription.status = SubscriptionStatus.ACTIVE.value
subscription.updated_at = current_time

View File

@@ -2271,8 +2271,15 @@ async def confirm_purchase(
existing_subscription.connected_squads = selected_countries
existing_subscription.start_date = current_time
existing_subscription.end_date = current_time + timedelta(days=period_days) + bonus_period
# Если подписка еще активна, продлеваем от текущей даты окончания,
# иначе начинаем новый период с текущего момента
extension_base_date = current_time
if existing_subscription.end_date and existing_subscription.end_date > current_time:
extension_base_date = existing_subscription.end_date
else:
existing_subscription.start_date = current_time
existing_subscription.end_date = extension_base_date + timedelta(days=period_days) + bonus_period
existing_subscription.updated_at = current_time
existing_subscription.traffic_used_gb = 0.0

View File

@@ -1110,8 +1110,14 @@ class MiniAppSubscriptionPurchaseService:
subscription.traffic_limit_gb = pricing.selection.traffic_value
subscription.device_limit = pricing.selection.devices
subscription.connected_squads = pricing.selection.servers
subscription.start_date = now
subscription.end_date = now + timedelta(days=pricing.selection.period.days) + bonus_period
extension_base_date = now
if subscription.end_date and subscription.end_date > now:
extension_base_date = subscription.end_date
else:
subscription.start_date = now
subscription.end_date = extension_base_date + timedelta(days=pricing.selection.period.days) + bonus_period
subscription.updated_at = now
subscription.traffic_used_gb = 0.0
@@ -1229,4 +1235,3 @@ class SubscriptionPurchaseService:
purchase_service = MiniAppSubscriptionPurchaseService()

View File

@@ -38,6 +38,7 @@ class PromoCodeStates(StatesGroup):
class AdminStates(StatesGroup):
waiting_for_user_search = State()
waiting_for_bulk_ban_list = State()
sending_user_message = State()
editing_user_balance = State()
extending_subscription = State()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 KiB