Files
octopus/myproject/inventory/views/batch.py
Andrey Smakotin c534e27c41 refactor: подготовка к стандартизации Transfer моделей
Текущее состояние перед рефакторингом Transfer → TransferDocument.
Все изменения с последнего коммита по улучшению системы поступлений.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-26 19:55:50 +03:00

50 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- 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