{% extends 'base.html' %}{% block title %}Production Job #{{ job.pk }}{% endblock %}{% block breadcrumb %}Production Job{% endblock %}{% block content %}
GENEZ PRODUCTION

Job #{{ job.pk }} · {{ job.order_item.product_name }}

{{ job.order_item.order.order_number }} · Quantity {{ job.order_item.quantity }} · {{ job.get_status_display }}

← Production Center

Assigned production job

Production site{% if job.branch %}{{ job.branch.name }} · {{ job.branch.region_name }} · {{ job.branch.city }}{% if job.branch.lga %}, {{ job.branch.lga.name }} LGA{% endif %}{% if job.branch.state %}, {{ job.branch.get_state_display }}{% endif %}{% else %}Not allocated{% endif %}
Customer delivery / task point{{ 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 %}Open captured map point{% endif %}
Operator{{ job.assigned_to|default:'Not assigned' }}
Priority{{ job.get_priority_display }}
Deadline{{ job.due_at|date:'d M Y H:i'|default:'Not set' }}
Stock committed{{ job.stock_consumed|yesno:'Yes,No' }}
Estimated production cost₦{{ cost_estimate|floatformat:2 }}
Order line revenue₦{{ job.order_item.line_total|floatformat:2 }}
Recorded cost{% if job.actual_cost is not None %}₦{{ job.actual_cost|floatformat:2 }}{% else %}Not recorded{% endif %}

Cost estimates include configured recipe materials, labor, overhead, and setup. Missing cost profiles are assumed zero and estimates may be incomplete.

Review payment, artwork & production approval

Material requirements

{% for line in requirements %}{% empty %}{% endfor %}
MaterialRequiredAvailable
{{ line.material.name }}{{ line.required }} {{ line.material.unit }}{{ line.available|default_if_none:'Not stocked' }}
No material recipe configured for this service.

Stock consumption history

{% for movement in movements %}{% empty %}{% endfor %}
MaterialMovementRecorded
{{ movement.material.name }}{{ movement.change }}{{ movement.created_at|date:'d M Y H:i' }}
No materials consumed yet.
{% if can_manage %}

Assign and schedule

Assignments can be edited before production starts. Add staff to branches in administration first.

{% csrf_token %}{% for field in form %}{% endfor %}

Record actual cost

Authorized finance/operations estimate of job spending after production starts. This is an audit event, not a payment.

{% csrf_token %}
{% endif %}

Quality control

A full passing inspection is required before dispatch. Failed inspections must explain corrective actions.

{% if qc_passed %}

✓ Final quality check passed

{% elif job.status == 'printing' or job.status == 'quality' %}
{% csrf_token %}{% for field in qc_form %}{% endfor %}
{% else %}

Production must start before inspection.

{% endif %}
{% for qc in quality_inspections %}{% empty %}{% endfor %}
DateResultInspector
{{ qc.created_at|date:'d M Y H:i' }}{{ qc.get_result_display }}{{ qc.inspector }}
No inspections recorded.

Equipment schedule

{% if existing_schedule %}

Booked: {{ existing_schedule.equipment.name }}
{{ existing_schedule.starts_at|date:'d M Y H:i' }} – {{ existing_schedule.ends_at|date:'d M Y H:i' }}

{% else %}

No time booked yet.

{% endif %}{% if can_manage %}
{% csrf_token %}{% for field in schedule_form %}{% endfor %}
{% else %}

A manager controls equipment allocation.

{% endif %}
{% endblock %}