# -*- coding: utf-8 -*- """ Batch views - READ ONLY - StockBatch (Партии товара на складе) ПРИМЕЧАНИЕ: IncomingBatch и Incoming удалены. Используйте IncomingDocument вместо них. """ from django.views.generic import ListView, DetailView from django.contrib.auth.mixins import LoginRequiredMixin from ..models import StockBatch, SaleBatchAllocation, WriteOff class StockBatchListView(LoginRequiredMixin, ListView): """Список всех партий товара на складах""" model = StockBatch template_name = 'inventory/batch/batch_list.html' context_object_name = 'batches' paginate_by = 30 def get_queryset(self): return StockBatch.objects.filter( is_active=True ).select_related('product', 'warehouse').order_by('-created_at') class StockBatchDetailView(LoginRequiredMixin, DetailView): """ Детальная информация по партии товара. Показывает историю операций с данной партией (продажи, списания, перемещения). """ model = StockBatch template_name = 'inventory/batch/batch_detail.html' context_object_name = 'batch' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) batch = self.get_object() # История продаж из этой партии context['sales'] = SaleBatchAllocation.objects.filter( batch=batch ).select_related('sale', 'sale__product') # История списаний из этой партии context['writeoffs'] = WriteOff.objects.filter( batch=batch ).order_by('-date') return context