151 lines
6.9 KiB
HTML
151 lines
6.9 KiB
HTML
{% extends 'base.html' %}
|
|
{% load static %}
|
|
|
|
{% block title %}Manufacturing Dashboard - Manufacturing App{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid mt-4">
|
|
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
|
|
<h1 class="h2">Manufacturing Dashboard</h1>
|
|
<div class="btn-toolbar mb-2 mb-md-0">
|
|
<a href="{% url 'manufacturing:create_mo' %}" class="btn btn-sm btn-outline-success">
|
|
<i class="fas fa-plus"></i> Create Manufacturing Order
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
{% if messages %}
|
|
{% for message in messages %}
|
|
<div class="alert alert-{{ message.tags }} alert-dismissible fade show" role="alert">
|
|
{{ message }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
<!-- Dashboard Cards -->
|
|
<div class="row">
|
|
<!-- Active BOMs Widget -->
|
|
<div class="col-md-4 mb-4">
|
|
<div class="card h-100">
|
|
<div class="card-body text-center">
|
|
<i class="fas fa-cogs fa-3x text-primary mb-3"></i>
|
|
<h3 class="text-primary">{{ total_boms.count }}</h3>
|
|
<h6 class="text-muted">Active BOMs</h6>
|
|
<a href="{% url 'manufacturing:bom_list' %}" class="btn btn-primary">
|
|
<i class="fas fa-eye me-2"></i>View BOMs
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Active Orders Widget -->
|
|
<div class="col-md-4 mb-4">
|
|
<div class="card h-100">
|
|
<div class="card-body text-center">
|
|
<i class="fas fa-tasks fa-3x text-info mb-3"></i>
|
|
<h3 class="text-info">{{ active_orders.count }}</h3>
|
|
<h6 class="text-muted">Active Orders</h6>
|
|
<a href="{% url 'manufacturing:mo_list' %}" class="btn btn-info">
|
|
<i class="fas fa-eye me-2"></i>View Orders
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Completed Orders Widget -->
|
|
<div class="col-md-4 mb-4">
|
|
<div class="card h-100">
|
|
<div class="card-body text-center">
|
|
<i class="fas fa-check-circle fa-3x text-success mb-3"></i>
|
|
<h3 class="text-success">{{ completed_orders.count }}</h3>
|
|
<h6 class="text-muted">Completed (30 days)</h6>
|
|
<a href="{% url 'manufacturing:mo_list' %}" class="btn btn-success">
|
|
<i class="fas fa-eye me-2"></i>View Completed
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- Recent Manufacturing Orders -->
|
|
<div class="row mt-4">
|
|
<div class="col-lg-8">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">Recent Manufacturing Orders</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if recent_orders %}
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Order Number</th>
|
|
<th>Product</th>
|
|
<th>Quantity</th>
|
|
<th>Status</th>
|
|
<th>Created</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for mo in recent_orders %}
|
|
<tr>
|
|
<td><strong>{{ mo.mo_number }}</strong></td>
|
|
<td>{{ mo.bom.product.name }}</td>
|
|
<td>{{ mo.quantity_to_produce }}</td>
|
|
<td>
|
|
{% if mo.status == 'in_progress' %}
|
|
<span class="badge bg-info">In Progress</span>
|
|
{% elif mo.status == 'completed' %}
|
|
<span class="badge bg-success">Completed</span>
|
|
{% elif mo.status == 'cancelled' %}
|
|
<span class="badge bg-danger">Cancelled</span>
|
|
{% else %}
|
|
<span class="badge bg-secondary">{{ mo.get_status_display }}</span>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{ mo.created_at|date:"M d, Y" }}</td>
|
|
<td>
|
|
<a href="{% url 'manufacturing:mo_detail' mo.mo_number %}" class="btn btn-sm btn-outline-primary">
|
|
View
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% else %}
|
|
<p class="text-muted">No recent manufacturing orders found.</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-lg-4">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">Quick Actions</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<a href="{% url 'manufacturing:create_mo' %}" class="btn btn-success w-100 mb-2">
|
|
<i class="fas fa-plus"></i> Create Manufacturing Order
|
|
</a>
|
|
<a href="{% url 'manufacturing:mo_list' %}" class="btn btn-primary w-100 mb-2">
|
|
<i class="fas fa-list"></i> View All Orders
|
|
</a>
|
|
<a href="{% url 'manufacturing:bom_list' %}" class="btn btn-info w-100 mb-2">
|
|
<i class="fas fa-cogs"></i> Manage BOMs
|
|
</a>
|
|
<a href="{% url 'manufacturing:mo_list' %}" class="btn btn-secondary w-100">
|
|
<i class="fas fa-arrow-left"></i> Back to Manufacturing
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %} |