Перейти до змісту

Container Hub — User Guide / Инструкция пользователя

Обзор модуля

Container Hub — модуль управления контейнерным терминалом (сухой порт, морской порт, ж/д терминал). Включает учёт контейнеров, gate-операции, управление двором, ж/д операции, демередж, инвентаризацию и аналитику.


Зависимости от других модулей

Container Hub использует справочники из Essentials и Logistic:

Модуль Справочник Зачем нужен
Essentials Валюты (Currency) Тарифы, ставки демереджа, расчёты
Essentials Контрагенты (Client) Shipping lines, транспортные компании, грузополучатели
Logistic Типы контейнеров (ContainerType) Классификация ISO (20DC, 40HC и т.д.)
Fleet Точки геолокации (LocationPoint) Привязка терминалов к точкам на карте
Fleet Транспорт (Vehicle), Водители (Driver) Ввоз/вывоз контейнеров (необязательно)

Перед началом работы убедитесь, что в Essentials заведены валюты (минимум USD) и хотя бы несколько контрагентов.


Порядок заведения справочников

Шаг 1. Типы контейнеров (Logistic → Container Types)

Путь: Logistic → References → Container Types

Заведите стандартные ISO типы:

Код Название Длина (ft) Тара (кг) Груз (кг) Объём (м³) Рефрижератор
20DC 20' Dry Container 20 2,230 28,270 33.2 Нет
40DC 40' Dry Container 40 3,780 26,700 67.7 Нет
40HC 40' High Cube 40 3,940 26,560 76.3 Нет
45HC 45' High Cube 45 4,800 25,680 86.1 Нет
20RF 20' Reefer 20 3,080 27,400 28.3 Да
40RF 40' Reefer 40 4,800 27,700 59.3 Да
20OT 20' Open Top 20 2,350 28,130 32.5 Нет
40OT 40' Open Top 40 3,900 26,580 65.9 Нет
20FR 20' Flat Rack 20 2,560 27,940 Нет
40FR 40' Flat Rack 40 4,200 39,300 Нет
20TK 20' Tank Container 20 3,070 26,910 24.0 Нет

Шаг 2. Терминалы (Container Hub → Master Data → Terminals)

Путь: Container Hub → Master Data → Terminal Infrastructure → Terminals

Заведите терминал(ы):

Поле Пример
Код ODESSA-CT
Название Odessa Container Terminal
Название (UA) Одеський контейнерний термінал
Тип Sea Port / Dry Port / Rail Terminal
Ёмкость (TEU) 5000
Телефон +380 48 123-45-67
Email ops@odessa-ct.ua
Режим работы 24/7

Шаг 2.1. Зоны двора (Yard Zones) — подтаблица терминала

В карточке терминала на вкладке Yard Zones заведите зоны:

Код зоны Тип Ряды Бухты Ярусы Розетки Ж/д
A Import 10 20 5 Нет Да
B Import 8 15 5 Нет Да
C Export 10 20 5 Нет Нет
D Export 8 15 4 Нет Нет
E Empty Containers 12 25 4 Нет Нет
R Reefer 4 10 3 Да Нет
H Dangerous Goods 3 8 3 Нет Нет
T Transshipment 6 12 5 Нет Да
I Inspection 2 5 2 Нет Нет
W Repair 2 5 2 Нет Нет

Ёмкость зоны = ряды × бухты × ярусы (рассчитывается автоматически).


Шаг 3. Морские линии (Container Hub → Master Data → Shipping Lines)

Путь: Container Hub → Master Data → Container Registry → Shipping Lines

Код SCAC Название Free days (import) Free days (export) Detention free days Demurrage 20' Demurrage 40'
MAEU MAEU Maersk 14 10 7 $50/день $75/день
MSCU MSCU MSC 14 10 7 $45/день $70/день
CMDU CMDU CMA CGM 10 7 5 $55/день $80/день
COSU COSU COSCO 14 14 7 $40/день $60/день
HLCU HLCU Hapag-Lloyd 10 7 5 $60/день $85/день

SCAC (Standard Carrier Alpha Code) — 4-символьный код морской линии. Free days — бесплатные дни хранения, после которых начисляется demurrage.


Шаг 4. Тарифы терминала (Container Hub → Master Data → Container Tariffs)

Путь: Container Hub → Master Data → Terminal Infrastructure → Container Tariffs

Для каждого терминала заведите тарифную сетку:

Услуга Размер Статус загрузки Ставка Единица Свободные дни
Storage 20ft Any $5.00 Per Day 3
Storage 40ft Any $8.00 Per Day 3
Storage 45ft Any $10.00 Per Day 3
Handling In 20ft Any $80.00 Per Operation
Handling In 40ft Any $120.00 Per Operation
Handling Out 20ft Any $80.00 Per Operation
Handling Out 40ft Any $120.00 Per Operation
Reefer Monitoring 20ft Any $35.00 Per Day
Reefer Monitoring 40ft Any $50.00 Per Day
Gate Fee 20ft Any $15.00 Per Operation
Gate Fee 40ft Any $15.00 Per Operation
Weighing 20ft Any $25.00 Per Operation
Weighing 40ft Any $30.00 Per Operation
Inspection 20ft Any $40.00 Per Operation
Inspection 40ft Any $50.00 Per Operation

Укажите effective_from (дата начала действия тарифа). Тарифы без effective_to — бессрочные.


Шаг 5. Контейнеры (Container Hub → Master Data → Containers)

Путь: Container Hub → Master Data → Container Registry → Containers

Поле Описание Пример
Container Number ISO 6346 номер (4 буквы + 7 цифр) MAEU1234567
Container Type Ссылка на тип (Шаг 1) 40HC
Owner Type own / leased / shipping_line / client shipping_line
Shipping Line Ссылка на линию (Шаг 3) Maersk
Tare Weight Масса тары (кг) 3940
Max Payload Макс. полезная нагрузка (кг) 26560
Is Reefer Рефрижератор? Нет
Condition new / good / damaged / needs_repair / scrapped good
Current Terminal Текущий терминал (Шаг 2) Odessa CT
Current Zone Текущая зона A
Current Position Позиция (ряд-бухта-ярус) 03-12-2

Контейнеры обычно создаются автоматически при Gate-In, но можно завести заранее.


Шаг 6. Интеграции (Container Hub → Integrations) — опционально

Путь: Container Hub → Integrations → Integration Management → Integrations

Поле Пример
Terminal Odessa CT
Type EDI COPARN / BAPLIE / Customs / Shipping Portal / Railway EDI
Provider Maersk
Protocol REST API / SFTP / AS2
API URL https://api.maersk.com/...
Active Нет (пока настройка)
Auto Sync Нет

Порядок ввода документов (транзакции)

После заведения всех справочников, работа с документами идёт в следующей последовательности:

Этап 1. Приём контейнеров

Booking (опц.) → Gate-In → [Container создаётся/обновляется] → Ledger запись
  1. Container Booking (необязательно) — предварительная запись (тайм-слот) на въезд/выезд
  2. Путь: Container Hub → Transactions → Gate Operations → Container Bookings
  3. Указать: терминал, дату, время, номер контейнера, тип, транспортную компанию

  4. Gate Transaction (Gate-In) — приём контейнера на терминал

  5. Путь: Container Hub → Transactions → Gate Operations → Gate Transactions
  6. Тип: Gate In
  7. Указать: контейнер, терминал, транспорт (truck/rail), состояние, пломба, груз/порожний, зона размещения, позиция
  8. При проведении (post) → запись в Container Ledger

Этап 2. Операции на дворе

  1. Container Movement — перемещение контейнера внутри двора
  2. Путь: Container Hub → Transactions → Yard Operations → Container Movements
  3. Указать: контейнер, откуда (зона/позиция), куда, причина (restack, consolidation, pre-marshalling...)
  4. При проведении → запись в Container Ledger

  5. Yard Inventory — инвентаризация (полная, зональная, точечная)

  6. Путь: Container Hub → Transactions → Yard Operations → Yard Inventories
  7. Генерация строк → сверка → фиксация расхождений
  8. При проведении → корректировки в Container Ledger

Этап 3. Ж/д операции

  1. Train Arrival — приход поезда с контейнерами
  2. Путь: Container Hub → Transactions → Railway Operations → Train Arrivals
  3. Указать: терминал, номер поезда, манифест (список контейнеров на платформах)
  4. После разгрузки → Gate-In для каждого контейнера

Этап 4. Отпуск контейнеров

  1. Gate Transaction (Gate-Out) — отпуск контейнера с терминала
  2. Тип: Gate Out
  3. При проведении → запись в Container Ledger

Этап 5. Финансовые операции

  1. Demurrage Calculation — расчёт демереджа/детеншена
  2. Путь: Container Hub → Transactions → Financial Operations → Demurrage Calculations
  3. Указать: контейнер, линию, период, Gate-In/Gate-Out
  4. Метод calculate() автоматически считает: total_days − free_days = chargeable_days × rate
  5. При проведении → запись в Storage Charge Ledger

Регистры (автоматические)

Регистр Что хранит Заполняется из
Container Ledger Все движения контейнеров (gate-in, gate-out, перемещения, корректировки) Gate Transaction, Container Movement, Yard Inventory
Storage Charge Ledger Все начисления (хранение, обработка, рефрижератор, gate fee, демередж) Demurrage Calculation

Регистры заполняются автоматически при проведении документов. Ручное редактирование не требуется.


Процессы

Процесс Назначение Требует
Yard Map 3D-визуализация двора: позиции контейнеров, цветовая кодировка по срочности Данные Container Ledger
Stacking Optimizer Рекомендации размещения, планы перестановки, pre-marshalling Контейнеры + зоны
Gate Control (coming soon) Панель управления воротами в реальном времени Gate Transactions + Bookings
Inventory Dashboard Трекер инвентаризации: прогресс, план vs факт Yard Inventory
Demurrage Tracker Контейнеры в зоне риска, активные начисления, массовый пересчёт Demurrage Calculations

Отчёты (аналитика)

Отчёт Что показывает
Terminal Occupancy Заполненность по зонам, типам, линиям; heatmap
Container Turnover Среднее время пребывания (dwell time), объёмы gate-in/out
Demurrage Report Начисления по линиям/клиентам, топ нарушителей
Stacking KPIs Коэффициент перестановок, средняя высота штабеля, эффективность
Inventory Accuracy Точность учёта: подтверждено vs ожидалось, расхождения

Типичный рабочий цикл (пример)

День 1:  Получен COPARN от Maersk на приём 50 контейнеров
         → Создаём Bookings на gate-in (тайм-слоты)

День 2:  Фуры приезжают
         → Gate-In для каждого контейнера
         → Stacking Optimizer подсказывает зону/позицию
         → Container Ledger обновляется

День 3-5: Контейнеры на хранении
         → Перемещения (Container Movement) при необходимости
         → Мониторинг рефрижераторов

День 6:  Приход поезда
         → Train Arrival с манифестом
         → Разгрузка → Gate-In для ж/д контейнеров

День 7:  Инвентаризация зоны A
         → Yard Inventory (zone type)
         → Сверка → фиксация расхождений

День 10: Вывоз контейнеров Maersk
         → Gate-Out
         → Demurrage Calculation (10 дней − 14 free = 0 chargeable)

День 20: Просроченные контейнеры MSC (20 дней, free = 14)
         → Demurrage Calculation (20 − 14 = 6 chargeable × $45 = $270)
         → Storage Charge Ledger обновляется

Конец месяца: Отчёты
         → Terminal Occupancy → анализ загруженности
         → Container Turnover → анализ оборачиваемости
         → Demurrage Report → сверка начислений с линиями

Команда заполнения тестовыми данными

cd c:\eswf\backend

# 1. Убедитесь, что essentials заполнены (валюты, контрагенты)
python manage.py seed essentials

# 2. Заполнить справочники Container Hub
python manage.py seed_containerhub

# 3. Заполнить с очисткой (если нужно пересоздать)
python manage.py seed_containerhub --clear

# 4. Для конкретного тенанта
python manage.py seed_containerhub --tenant 1