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

{% block topbar_actions %}
<button type="button" class="btn btn-outline-danger btn-sm no-print"
  data-url="{{ url_for('facturas.pdf_emitida', id=factura.id) }}"
  data-nombre="Factura_{{ factura.numero }}.pdf"
  onclick="verArchivo(this.dataset.url, this.dataset.nombre)">
  <i class="bi bi-file-earmark-pdf me-1"></i>Ver PDF
</button>
<a href="{{ url_for('facturas.pdf_emitida', id=factura.id) }}" download
   class="btn btn-danger btn-sm no-print">
  <i class="bi bi-download me-1"></i>Descargar PDF
</a>
<button type="button" class="btn btn-outline-primary btn-sm no-print"
        data-bs-toggle="modal" data-bs-target="#modal-email">
  <i class="bi bi-envelope me-1"></i>Enviar email
</button>
<a href="{{ url_for('rectificativas.nueva', origen=factura.id) }}" class="btn btn-outline-danger btn-sm no-print">
  <i class="bi bi-file-earmark-minus me-1"></i>Rectificativa
</a>
<button onclick="window.print()" class="btn btn-outline-secondary btn-sm no-print">
  <i class="bi bi-printer"></i> Imprimir
</button>
{% if factura.estado == 'pendiente' %}
<form method="post" action="{{ url_for('facturas.cambiar_estado_emitida', id=factura.id) }}" class="d-inline no-print">
  <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_emitida', id=factura.id) }}" class="d-inline no-print"
      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 justify-content-center">
  <div class="col-lg-9">
    <div class="card">
      <div class="card-body p-5">
        <!-- Cabecera -->
        <div class="d-flex justify-content-between align-items-start mb-5">
          <div>
            <h2 class="fw-bold mb-1">{{ empresa.nombre }}</h2>
            {% if empresa.nif %}<div class="text-muted small">NIF: {{ empresa.nif }}</div>{% endif %}
            {% if empresa.direccion %}<div class="text-muted small">{{ empresa.direccion }}</div>{% endif %}
            {% if empresa.cp or empresa.ciudad %}<div class="text-muted small">{{ empresa.cp }} {{ empresa.ciudad }}</div>{% endif %}
            {% if empresa.email %}<div class="text-muted small">{{ empresa.email }}</div>{% endif %}
          </div>
          <div class="text-end">
            <h1 class="fw-bold text-primary mb-1" style="font-size:1.5rem">FACTURA</h1>
            <div class="fs-5 fw-bold">{{ factura.numero }}</div>
            <div class="text-muted small">Fecha: {{ factura.fecha }}</div>
            {% if factura.fecha_vencimiento %}
            <div class="text-muted small">Vencimiento: {{ factura.fecha_vencimiento }}</div>
            {% endif %}
            <span class="badge badge-estado-{{ factura.estado }} mt-1">{{ factura.estado|capitalize }}</span>
            {% if factura.moneda and factura.moneda != 'EUR' %}
            <div class="mt-1">
              <span class="badge bg-info-subtle text-info border border-info-subtle">
                <i class="bi bi-currency-exchange me-1"></i>{{ factura.moneda }}
                (1 {{ factura.moneda }} = {{ factura.tasa_cambio_eur }} €)
              </span>
            </div>
            {% endif %}
          </div>
        </div>

        <!-- Datos cliente -->
        <div class="row mb-5">
          <div class="col-md-6">
            <div class="bg-light rounded p-3">
              <div class="text-muted small fw-semibold mb-2">FACTURAR A</div>
              {% if factura.cliente_nombre %}
              <div class="fw-semibold">{{ factura.cliente_nombre }}</div>
              {% if factura.cliente_nif %}<div class="small text-muted">NIF: {{ factura.cliente_nif }}</div>{% endif %}
              {% if factura.cliente_direccion %}<div class="small text-muted">{{ factura.cliente_direccion }}</div>{% endif %}
              {% if factura.cliente_email %}<div class="small text-muted">{{ factura.cliente_email }}</div>{% endif %}
              {% else %}
              <div class="text-muted small">Sin cliente asignado</div>
              {% endif %}
            </div>
          </div>
        </div>

        <!-- Líneas -->
        <div class="table-responsive mb-4">
          <table class="table">
            <thead class="table-dark">
              <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>
              {% endfor %}
            </tbody>
          </table>
        </div>

        <!-- Totales -->
        <div class="row justify-content-end">
          <div class="col-md-4">
            <table class="table table-sm">
              <tr><td class="text-muted">Base imponible</td><td class="text-end">{{ "%.2f"|format(factura.subtotal) }} €</td></tr>
              <tr><td class="text-muted">IVA ({{ factura.iva_pct }}%)</td><td class="text-end">{{ "%.2f"|format(factura.iva_importe) }} €</td></tr>
              {% if factura.irpf_pct > 0 %}
              <tr><td class="text-muted text-danger">IRPF ({{ factura.irpf_pct }}%)</td><td class="text-end text-danger">−{{ "%.2f"|format(factura.irpf_importe) }} €</td></tr>
              {% endif %}
              <tr class="table-dark fw-bold fs-5">
                <td>TOTAL</td><td class="text-end">{{ "%.2f"|format(factura.total) }} €</td>
              </tr>
            </table>
          </div>
        </div>

        {% if factura.notas %}
        <div class="border-top pt-3 mt-3">
          <div class="text-muted small fw-semibold">NOTAS</div>
          <div class="small">{{ factura.notas }}</div>
        </div>
        {% endif %}

        {% if empresa.iban %}
        <div class="border-top pt-3 mt-3">
          <div class="text-muted small">Datos bancarios: <strong>{{ empresa.iban }}</strong></div>
        </div>
        {% endif %}
      </div>
    </div>

    <!-- Archivo adjunto -->
    <div class="card mt-3 no-print">
      <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='emitidas/' + 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_emitida', 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>

    <!-- Cambio de estado -->
    <div class="card mt-3 no-print">
      <div class="card-header py-3"><i class="bi bi-arrow-repeat me-2"></i>Cambiar estado</div>
      <div class="card-body d-flex gap-2">
        {% for estado, color in [('pendiente','warning'),('pagada','success'),('vencida','danger'),('cancelada','secondary')] %}
        <form method="post" action="{{ url_for('facturas.cambiar_estado_emitida', id=factura.id) }}" class="d-inline">
          <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>

<!-- Modal: Enviar por email -->
<div class="modal fade no-print" id="modal-email" tabindex="-1">
  <div class="modal-dialog modal-lg">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title"><i class="bi bi-envelope me-2"></i>Enviar factura por email</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
      </div>
      <form method="post" action="{{ url_for('email_sender.enviar_factura', factura_id=factura.id) }}">
        <div class="modal-body">
          <div class="mb-3">
            <label class="form-label fw-semibold">Para (destinatario) *</label>
            <input type="email" name="destinatario" class="form-control" required
                   value="{{ factura.cliente_email or '' }}"
                   placeholder="cliente@email.com">
          </div>
          <div class="mb-3">
            <label class="form-label fw-semibold">Asunto</label>
            <input type="text" name="asunto" class="form-control"
                   value="Factura {{ factura.numero }} de {{ empresa.nombre }}">
          </div>
          <div class="mb-3">
            <label class="form-label fw-semibold">Mensaje</label>
            <textarea name="cuerpo" class="form-control" rows="6">Estimado/a cliente,

Adjunto encontrará la factura {{ factura.numero }} por importe de {{ "%.2f"|format(factura.total) }} €, con fecha {{ factura.fecha }}.

Quedo a su disposición para cualquier consulta.

Un saludo,
{{ empresa.nombre }}</textarea>
          </div>
          <div class="alert alert-secondary py-2 small mb-0">
            <i class="bi bi-paperclip me-1"></i>
            Se adjuntará el PDF generado: <strong>Factura_{{ factura.numero }}.pdf</strong>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
          <button type="submit" class="btn btn-primary">
            <i class="bi bi-send me-1"></i>Enviar
          </button>
        </div>
      </form>
    </div>
  </div>
</div>
{% endblock %}
