PROBLEM: Direct deletion/creation of reservations via web interface bypassed POS business logic, creating data inconsistencies (orphaned showcase kits, incorrect stock calculations). SOLUTION: Make reservations read-only in web interface. All reservation management now happens only through: - POS (showcase kits) - Orders module CHANGES: - Remove reservation-create and reservation-update URL routes - Delete ReservationCreateView and ReservationUpdateView - Remove ReservationForm (no longer needed) - Delete reservation_form.html and reservation_update.html templates - Update reservation_list.html to read-only view with info banner - Add showcase and order columns to reservation list - Clean up imports in urls.py and views/__init__.py Reservations are now read-only for monitoring purposes only. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
73 lines
3.1 KiB
Python
73 lines
3.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Inventory Views Package
|
|
|
|
Организация views по модулям:
|
|
- warehouse.py: Управление складами
|
|
- incoming.py: Управление приходами товара
|
|
- sale.py: Управление продажами
|
|
- inventory_ops.py: Инвентаризация и её строки
|
|
- writeoff.py: Списания товара
|
|
- transfer.py: Перемещения между складами
|
|
- reservation.py: Резервирования товара (view-only)
|
|
- stock.py: Справочник остатков (view-only)
|
|
- batch.py: Справочник партий товара (view-only)
|
|
- allocation.py: Распределение продаж по партиям (view-only)
|
|
- movements.py: Журнал складских операций (view-only)
|
|
"""
|
|
from django.shortcuts import render
|
|
from django.contrib.auth.decorators import login_required
|
|
|
|
from .warehouse import WarehouseListView, WarehouseCreateView, WarehouseUpdateView, WarehouseDeleteView, SetDefaultWarehouseView
|
|
from .incoming import IncomingListView, IncomingCreateView, IncomingUpdateView, IncomingDeleteView
|
|
from .batch import IncomingBatchListView, IncomingBatchDetailView, StockBatchListView, StockBatchDetailView
|
|
from .sale import SaleListView, SaleCreateView, SaleUpdateView, SaleDeleteView, SaleDetailView
|
|
from .inventory_ops import (
|
|
InventoryListView, InventoryCreateView, InventoryDetailView,
|
|
InventoryLineCreateBulkView
|
|
)
|
|
from .writeoff import WriteOffListView, WriteOffCreateView, WriteOffUpdateView, WriteOffDeleteView
|
|
from .transfer import TransferListView, TransferBulkCreateView, TransferDetailView, TransferDeleteView, GetProductStockView
|
|
from .reservation import ReservationListView
|
|
from .stock import StockListView, StockDetailView
|
|
from .allocation import SaleBatchAllocationListView
|
|
from .movements import StockMovementListView
|
|
|
|
|
|
@login_required
|
|
def inventory_home(request):
|
|
"""
|
|
Главная страница Склада для управления инвентаризацией
|
|
"""
|
|
return render(request, 'inventory/home.html')
|
|
|
|
|
|
__all__ = [
|
|
# Home
|
|
'inventory_home',
|
|
# Warehouse
|
|
'WarehouseListView', 'WarehouseCreateView', 'WarehouseUpdateView', 'WarehouseDeleteView', 'SetDefaultWarehouseView',
|
|
# Incoming
|
|
'IncomingListView', 'IncomingCreateView', 'IncomingUpdateView', 'IncomingDeleteView',
|
|
# IncomingBatch
|
|
'IncomingBatchListView', 'IncomingBatchDetailView',
|
|
# Sale
|
|
'SaleListView', 'SaleCreateView', 'SaleUpdateView', 'SaleDeleteView', 'SaleDetailView',
|
|
# Inventory
|
|
'InventoryListView', 'InventoryCreateView', 'InventoryDetailView', 'InventoryLineCreateBulkView',
|
|
# WriteOff
|
|
'WriteOffListView', 'WriteOffCreateView', 'WriteOffUpdateView', 'WriteOffDeleteView',
|
|
# Transfer
|
|
'TransferListView', 'TransferBulkCreateView', 'TransferDetailView', 'TransferDeleteView', 'GetProductStockView',
|
|
# Reservation
|
|
'ReservationListView',
|
|
# Stock
|
|
'StockListView', 'StockDetailView',
|
|
# StockBatch
|
|
'StockBatchListView', 'StockBatchDetailView',
|
|
# Allocation
|
|
'SaleBatchAllocationListView',
|
|
# Movement
|
|
'StockMovementListView',
|
|
]
|