{% extends 'base.html' %}{% block title %}Production Control Center{% endblock %}{% block breadcrumb %}Production Control{% endblock %}{% block content %}
GENEZ PRINT · OPERATIONS

Production Control Center

Manage printing assignments, branch inventory, job costing, and production deadlines.

🔔 My updates{% if genez_unread_alerts %} · {{ genez_unread_alerts }} unread{% endif %}Purchasing · Scheduling · QCRisk & Alerts →{% if can_configure %}Manage BranchesMaterials & RecipesBulk Pricing{% endif %}
🖨 Jobs in view
{{ jobs_count }}Current permissions
👷 Assigned jobs
{{ assigned_count }}With operator assigned
⏰ Overdue jobs
{{ overdue_count }}Not yet shipped/completed
⚠ Low stock items
{{ low_stock|length }}At or below minimum

Production jobs

Payment and proof approval remain mandatory before production
Swipe sideways to view job details on smaller screens.
{% for job in jobs %}{% empty %}{% endfor %}
Job / OrderProductBranchCustomer task pointAssigneeDue dateEstimated costStageAction
#{{ job.pk }}
{{ job.order_item.order.order_number }}
{{ job.order_item.product_name }}
Qty {{ job.order_item.quantity }}
{{ job.branch.name|default:'Not allocated' }}{% if job.branch.city %}
{{ job.branch.region_name }} · {{ job.branch.city }}{% if job.branch.lga %}, {{ job.branch.lga.name }}{% endif %}{% if job.branch.state %}, {{ job.branch.get_state_display }}{% endif %}{% endif %}
{{ job.order_item.order.delivery_region_name }} · {{ job.order_item.order.delivery_city|default:'Not recorded' }}{% if job.order_item.order.delivery_lga %}, {{ job.order_item.order.delivery_lga.name }} LGA{% endif %}{% if job.order_item.order.delivery_state %}, {{ job.order_item.order.delivery_state_name }}{% endif %}{% if job.order_item.order.delivery_latitude is not None and job.order_item.order.delivery_longitude is not None %}
Map point{% endif %}
{{ job.assigned_to|default:'Unassigned' }}{{ job.due_at|date:'d M Y H:i'|default:'Not set' }}₦{{ job.estimated_cost|floatformat:2 }}{{ job.get_status_display }}Manage
No jobs visible. Assign a branch and its staff from the authorized operations portal.

Branch stock levels

{% if can_configure %}Configure materials →{% endif %}
{% for s in stocks %}{% empty %}{% endfor %}
BranchMaterialQuantityReorder atState
{{ s.branch.name }}{{ s.material.sku }} · {{ s.material.name }}{{ s.quantity }} {{ s.material.unit }}{{ s.material.reorder_threshold }}{% if s.quantity <= s.material.reorder_threshold %}Reorder needed{% else %}Available{% endif %}
No inventory yet. Managers should create branches, materials, then record stock receipts.
{% if can_manage %}

Receive verified stock

Receipts append a ledger entry and increase the selected branch stock; they do not modify existing movements.

{% csrf_token %}{% for field in receipt_form %}{% endfor %}
{% endif %} {% endblock %}