Исправлено время заказов: переход на минский часовой пояс (Europe/Minsk)

- Изменён TIME_ZONE с Europe/Moscow на Europe/Minsk в settings.py
- Исправлено создание заказов в POS: теперь используется timezone.localtime() для корректной конвертации UTC → Minsk
- delivery_date и delivery_time_start/end теперь сохраняются в минском времени, а не UTC
- Исправлена разница в 3 часа между временем создания заказа и фактическим временем
- Удалено устаревшее поле payment_method из showcase_manager.py (поле было удалено из модели Order)

Теперь все временные метки заказов соответствуют реальному минскому времени
This commit is contained in:
2025-12-14 15:27:03 +03:00
parent ce2cfca3f2
commit 34e5a0143b
3 changed files with 9 additions and 7 deletions

View File

@@ -277,7 +277,6 @@ class ShowcaseManager:
is_delivery=False, is_delivery=False,
pickup_warehouse=warehouse, pickup_warehouse=warehouse,
status=completed_status, status=completed_status,
payment_method=payment_method,
is_paid=True, is_paid=True,
modified_by=user modified_by=user
) )

View File

@@ -211,7 +211,7 @@ AUTH_PASSWORD_VALIDATORS = [
# ============================================ # ============================================
LANGUAGE_CODE = 'ru-ru' LANGUAGE_CODE = 'ru-ru'
TIME_ZONE = 'Europe/Moscow' TIME_ZONE = 'Europe/Minsk'
USE_I18N = True USE_I18N = True
USE_TZ = True USE_TZ = True

View File

@@ -1408,16 +1408,19 @@ def pos_checkout(request):
# Атомарная операция # Атомарная операция
with db_transaction.atomic(): with db_transaction.atomic():
# 1. Создаём заказ с автоматическим проставлением текущей даты и времени # 1. Создаём заказ с текущей датой и временем в локальном часовом поясе (Europe/Minsk)
now = timezone.now() from django.utils import timezone as tz
current_time = now.time() now_utc = tz.now() # Текущее время в UTC
now_local = tz.localtime(now_utc) # Конвертируем в локальный часовой пояс (Europe/Minsk)
current_time = now_local.time() # Извлекаем время в минском часовом поясе
order = Order.objects.create( order = Order.objects.create(
customer=customer, customer=customer,
is_delivery=False, # POS - всегда самовывоз is_delivery=False, # POS - всегда самовывоз
pickup_warehouse=warehouse, pickup_warehouse=warehouse,
status=completed_status, # Сразу "Выполнен" status=completed_status, # Сразу "Выполнен"
delivery_date=now.date(), # Текущая дата delivery_date=now_local.date(), # Текущая дата в минском часовом поясе
delivery_time_start=current_time, # Текущее время delivery_time_start=current_time, # Текущее время (Минск)
delivery_time_end=current_time, # То же время (точное время) delivery_time_end=current_time, # То же время (точное время)
special_instructions=order_notes, special_instructions=order_notes,
modified_by=request.user modified_by=request.user