Files
2026-09-07 18:44:32 -03:00

71 lines
2.9 KiB
HTML

{% extends 'base.html' %}
{% load humanize %}
{% block content %}
<section class="page-view active">
<div class="view-header">
<div class="view-title">
<h2><i data-lucide="package" style="color:var(--efintel-blue);"></i> Órdenes de Compra (OC)</h2>
<p>Emisión, envío a proveedores, recepciones conformes y conciliación 3-Way Match.</p>
</div>
<div>
<a href="{% url 'procurement:purchase_order_create' %}" class="btn-primary" style="text-decoration:none;">
<i data-lucide="plus-circle" style="width:16px;"></i> + Generar OC
</a>
</div>
</div>
<div class="filter-bar" style="margin-bottom: 1.5rem;">
<form method="get" class="d-flex" style="gap: 1rem; align-items: flex-end;">
<div class="form-group" style="flex: 1;">
<label for="status">Estado</label>
<select name="status" id="status" class="form-control">
<option value="">Todos los Estados</option>
<option value="EMITIDA" {% if selected_status == 'EMITIDA' %}selected{% endif %}>Emitida</option>
<option value="ENVIADA_PROVEEDOR" {% if selected_status == 'ENVIADA_PROVEEDOR' %}selected{% endif %}>Enviada a Proveedor</option>
<option value="RECEPCION_PARCIAL" {% if selected_status == 'RECEPCION_PARCIAL' %}selected{% endif %}>Recepción Parcial</option>
<option value="RECEPCION_TOTAL" {% if selected_status == 'RECEPCION_TOTAL' %}selected{% endif %}>Recepción Total</option>
<option value="CONCILIADA_MATCH" {% if selected_status == 'CONCILIADA_MATCH' %}selected{% endif %}>Conciliada (3-Way Match)</option>
<option value="CERRADA" {% if selected_status == 'CERRADA' %}selected{% endif %}>Cerrada</option>
<option value="CANCELADA" {% if selected_status == 'CANCELADA' %}selected{% endif %}>Cancelada</option>
</select>
</div>
<div class="form-group">
<button type="submit" class="btn-primary" style="height: 38px;">Filtrar</button>
</div>
</form>
</div>
<div class="data-card">
<table class="data-table">
<thead>
<tr>
<th>Código OC</th>
<th>Proveedor</th>
<th>Proyecto</th>
<th>Total Neto (CLP)</th>
<th>Estado</th>
</tr>
</thead>
<tbody>
{% for po in orders %}
<tr>
<td><strong>{{ po.code }}</strong></td>
<td>{{ po.vendor.name }}</td>
<td>{{ po.project.name }}</td>
<td>${{ po.total_net_clp|floatformat:"0"|intcomma }} CLP</td>
<td><span class="badge badge-blue">{{ po.get_status_display }}</span></td>
</tr>
{% empty %}
<tr>
<td colspan="5" style="text-align:center; padding:2rem; color:var(--text-secondary);">
No hay órdenes de compra registradas.
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</section>
{% endblock %}