{% extends "base.html" %}
{% block title %}Factura recibida {{ factura.numero }}{% endblock %}
{% block page_title %}Factura recibida {{ factura.numero }}{% endblock %}

{% block topbar_actions %}
{% if factura.estado == 'pendiente' %}
<form method="post" action="{{ url_for('facturas.cambiar_estado_recibida', id=factura.id) }}" class="d-inline">
  <input type="hidden" name="estado" value="pagada">
  <button class="btn btn-success btn-sm"><i class="bi bi-check-circle"></i> Marcar pagada</button>
</form>
{% endif %}
<form method="post" action="{{ url_for('facturas.eliminar_recibida', id=factura.id) }}" class="d-inline"
      onsubmit="return confirm('¿Eliminar esta factura?')">
  <button class="btn btn-outline-danger btn-sm"><i class="bi bi-trash"></i></button>
</form>
{% endblock %}

{% block content %}
<div class="row g-3">
  <div class="col-lg-4">
    <div class="card">
      <div class="card-header py-3"><i class="bi bi-info-circle me-2"></i>Información</div>
      <div class="card-body">
        <dl class="row mb-0 small">
          <dt class="col-5 text-muted">Número</dt><dd class="col-7 fw-semibold">{{ factura.numero }}</dd>
          <dt class="col-5 text-muted">Proveedor</dt><dd class="col-7">{{ factura.proveedor_nombre or '—' }}</dd>
          {% if factura.proveedor_nif %}<dt class="col-5 text-muted">NIF</dt><dd class="col-7">{{ factura.proveedor_nif }}</dd>{% endif %}
          <dt class="col-5 text-muted">Fecha</dt><dd class="col-7">{{ factura.fecha }}</dd>
          <dt class="col-5 text-muted">Vencimiento</dt><dd class="col-7">{{ factura.fecha_vencimiento or '—' }}</dd>
          <dt class="col-5 text-muted">Categoría</dt><dd class="col-7">{{ factura.categoria_nombre or '—' }}</dd>
          <dt class="col-5 text-muted">Estado</dt>
          <dd class="col-7"><span class="badge badge-estado-{{ factura.estado }}">{{ factura.estado|capitalize }}</span></dd>
        </dl>
      </div>
    </div>

    <div class="card mt-3">
      <div class="card-header py-3"><i class="bi bi-calculator me-2"></i>Totales</div>
      <div class="card-body">
        <div class="d-flex justify-content-between mb-1 small">
          <span class="text-muted">Base imponible</span><span>{{ "%.2f"|format(factura.subtotal) }} €</span>
        </div>
        <div class="d-flex justify-content-between mb-1 small">
          <span class="text-muted">IVA ({{ factura.iva_pct }}%)</span><span>{{ "%.2f"|format(factura.iva_importe) }} €</span>
        </div>
        {% if factura.irpf_pct > 0 %}
        <div class="d-flex justify-content-between mb-1 small">
          <span class="text-muted text-danger">IRPF ({{ factura.irpf_pct }}%)</span>
          <span class="text-danger">−{{ "%.2f"|format(factura.irpf_importe) }} €</span>
        </div>
        {% endif %}
        <hr>
        <div class="d-flex justify-content-between fw-bold">
          <span>Total</span><span class="fs-5">{{ "%.2f"|format(factura.total) }} €</span>
        </div>
      </div>
    </div>

    <div class="card mt-3">
      <div class="card-header py-3"><i class="bi bi-paperclip me-2"></i>Archivo adjunto</div>
      <div class="card-body">
        {% if factura.archivo_path %}
          <div class="d-flex align-items-center gap-3">
            <i class="bi bi-file-earmark-pdf text-danger fs-3"></i>
            <div>
              <div class="fw-semibold small">{{ factura.archivo_path }}</div>
              <button type="button" class="btn btn-sm btn-outline-primary mt-1"
                data-url="{{ url_for('facturas.ver_archivo', filepath=('recibidas/' + factura.archivo_path) if '/' not in factura.archivo_path else factura.archivo_path) }}"
                data-nombre="{{ factura.archivo_path }}"
                onclick="verArchivo(this.dataset.url, this.dataset.nombre)">
                <i class="bi bi-eye me-1"></i>Ver archivo
              </button>
            </div>
          </div>
          <hr class="my-3">
          <div class="text-muted small mb-2">Reemplazar archivo:</div>
        {% else %}
          <p class="text-muted small mb-3">No hay ningún archivo adjunto. Sube el PDF o imagen de esta factura.</p>
        {% endif %}
        <form method="post" action="{{ url_for('facturas.subir_archivo_recibida', id=factura.id) }}" enctype="multipart/form-data" class="d-flex gap-2 align-items-center">
          <input type="file" name="archivo_factura" class="form-control form-control-sm" accept=".pdf,.png,.jpg,.jpeg" required>
          <button type="submit" class="btn btn-sm btn-primary text-nowrap">
            <i class="bi bi-upload me-1"></i>Subir
          </button>
        </form>
      </div>
    </div>

    <div class="card mt-3">
      <div class="card-header py-3"><i class="bi bi-arrow-repeat me-2"></i>Cambiar estado</div>
      <div class="card-body d-flex flex-wrap gap-2">
        {% for estado, color in [('pendiente','warning'),('pagada','success'),('vencida','danger'),('cancelada','secondary')] %}
        <form method="post" action="{{ url_for('facturas.cambiar_estado_recibida', id=factura.id) }}">
          <input type="hidden" name="estado" value="{{ estado }}">
          <button class="btn btn-outline-{{ color }} btn-sm {% if factura.estado == estado %}active{% endif %}">
            {{ estado|capitalize }}
          </button>
        </form>
        {% endfor %}
      </div>
    </div>
  </div>

  <div class="col-lg-8">
    <div class="card">
      <div class="card-header py-3"><i class="bi bi-list-ul me-2"></i>Líneas</div>
      <div class="table-responsive">
        <table class="table mb-0">
          <thead>
            <tr>
              <th>Descripción</th>
              <th class="text-center">Cant.</th>
              <th class="text-end">Precio unit.</th>
              <th class="text-center">Dto.</th>
              <th class="text-end">Subtotal</th>
            </tr>
          </thead>
          <tbody>
            {% for l in lineas %}
            <tr>
              <td>{{ l.descripcion }}</td>
              <td class="text-center">{{ l.cantidad }}</td>
              <td class="text-end">{{ "%.2f"|format(l.precio_unitario) }} €</td>
              <td class="text-center">{{ l.descuento_pct }}%</td>
              <td class="text-end fw-semibold">{{ "%.2f"|format(l.subtotal) }} €</td>
            </tr>
            {% else %}
            <tr><td colspan="5" class="text-center text-muted py-3">Sin líneas detalladas</td></tr>
            {% endfor %}
          </tbody>
        </table>
      </div>
    </div>

    {% if factura.notas %}
    <div class="card mt-3">
      <div class="card-header py-3"><i class="bi bi-chat-text me-2"></i>Notas</div>
      <div class="card-body small">{{ factura.notas }}</div>
    </div>
    {% endif %}
  </div>
</div>
{% endblock %}
