{% extends 'base.html' %} {% block title %}Store Manager Dashboard{% endblock %} {% block content %}

Store Manager Dashboard

Operational control of stock health and approvals.

Reset
Low Stock: {{ low_stock_items|length }} Out of Stock: {{ out_of_stock_items|length }} Pending Transfers: {{ pending_transfer_requests|length }} Pending Adjustments: {{ notifications.pending_adjustment_count }}

Stock by Category (Pie)

Adjustments by Reason (Pie)

Fast vs Slow Movement

Stock by Category

{% for row in stock_by_category %}{% empty %}{% endfor %}
CategoryItemsQtyValue
{{ row.category__name|default:'Uncategorized' }}{{ row.total_items }}{{ row.total_qty|floatformat:0 }}{{ business.currency }} {{ row.total_value|floatformat:0 }}
No stock data

Stock Adjustments (This Period)

{% for row in stock_adjustments_month %}{% empty %}{% endfor %}
ReasonTotal
{{ row.reason|title }}{{ row.total }}
No adjustments

Fast-Moving Items (30 days)

{% for row in fast_moving_items %}{% empty %}{% endfor %}
ItemQty
{{ row.product__name }}{{ row.total_qty|floatformat:0 }}
No data

Slow-Moving Items (30 days)

{% for row in slow_moving_items %}{% empty %}{% endfor %}
ItemQty
{{ row.product__name }}{{ row.total_qty|floatformat:0 }}
No data

Low Stock Items

    {% for p in low_stock_items %}
  • {{ p.name }} — {{ p.stock_quantity }} {{ p.unit }}
  • {% empty %}
  • None
  • {% endfor %}

Out of Stock Items

    {% for p in out_of_stock_items %}
  • {{ p.name }}
  • {% empty %}
  • None
  • {% endfor %}

Pending Transfer Requests

    {% for t in pending_transfer_requests %}
  • {{ t.reference }} — {{ t.from_location }} → {{ t.to_location }}
  • {% empty %}
  • No pending transfer requests.
  • {% endfor %}

Recently Received Goods

    {% for po in recent_received_goods %}
  • {{ po.reference }} — {{ po.supplier.name }} ({{ po.received_date|default:po.date }})
  • {% empty %}
  • No recent receipts.
  • {% endfor %}

Recent Activity

    {% for m in recent_activities %}
  • {{ m.created_at|date:'Y-m-d H:i' }} — {{ m.product.name }} {{ m.get_movement_type_display }} ({{ m.quantity }})
  • {% empty %}
  • No recent activity.
  • {% endfor %}
{% endblock %} {% block extra_js %} {% endblock %}