universal filters v1 + more sample data

This commit is contained in:
2026-03-28 01:11:23 -03:00
parent 41ceba5237
commit 313ae9a15a
9 changed files with 351 additions and 428 deletions

View File

@@ -1,4 +1,5 @@
{% extends "macros/base.html" %}
{% from "macros/modals.html" import report_filters %}
{% block title %}Reporte: Centros Comerciales - {{ modulo_name }}{% endblock %}
@@ -49,7 +50,16 @@
<div class="text-muted"><small>Período: {{ mes_nombre }}</small></div>
</div>
</div>
{{ report_filters(
url_for('report_modulo_periodo', modulo_id=modulo_id),
workers_list,
worker_actual,
dia_actual,
[('01','Ene'),('02','Feb'),('03','Mar'),('04','Abr'),('05','May'),('06','Jun'),('07','Jul'),('08','Ago'),('09','Sep'),('10','Oct'),('11','Nov'),('12','Dic')],
mes_actual,
anios_disponibles,
anio_actual
) }}
<div class="card shadow-sm border-0">
<div class="card-body p-0">
<div class="table-responsive table-container custom-scrollbar">

View File

@@ -1,4 +1,5 @@
{% extends "macros/base.html" %}
{% from "macros/modals.html" import report_filters %}
{% block title %}Reporte: Comisiones - {{ modulo_name }}{% endblock %}
@@ -31,7 +32,16 @@
<div class="text-muted"><small>Período: {{ mes_nombre }}</small></div>
</div>
</div>
{{ report_filters(
url_for('report_modulo_periodo', modulo_id=modulo_id),
workers_list,
worker_actual,
dia_actual,
[('01','Ene'),('02','Feb'),('03','Mar'),('04','Abr'),('05','May'),('06','Jun'),('07','Jul'),('08','Ago'),('09','Sep'),('10','Oct'),('11','Nov'),('12','Dic')],
mes_actual,
anios_disponibles,
anio_actual
) }}
<div class="card shadow-sm border-0">
<div class="card-body">
{% if workers_data %}

View File

@@ -1,4 +1,5 @@
{% extends "macros/base.html" %}
{% from "macros/modals.html" import report_filters %}
{% block title %}Reporte: Horarios - {{ modulo_name }}{% endblock %}
@@ -45,7 +46,16 @@
<div class="text-muted"><small>Período: {{ mes_nombre }}</small></div>
</div>
</div>
{{ report_filters(
url_for('report_modulo_periodo', modulo_id=modulo_id),
workers_list,
worker_actual,
dia_actual,
[('01','Ene'),('02','Feb'),('03','Mar'),('04','Abr'),('05','May'),('06','Jun'),('07','Jul'),('08','Ago'),('09','Sep'),('10','Oct'),('11','Nov'),('12','Dic')],
mes_actual,
anios_disponibles,
anio_actual
) }}
{% if workers_data %}
<div class="card shadow-sm border-0">
<div class="card-body p-0">
@@ -60,8 +70,8 @@
</tr>
<tr>
{% for w_id, data in workers_data.items() %}
<th class="bg-body-tertiary">Ent</th>
<th class="bg-body-tertiary">Sal</th>
<th class="bg-body-tertiary">Entrada</th>
<th class="bg-body-tertiary">Salida</th>
<th class="bg-success-subtle text-success">Hrs</th>
{% endfor %}
</tr>

View File

@@ -1,4 +1,5 @@
{% extends "macros/base.html" %}
{% from "macros/modals.html" import report_filters %}
{% block title %}Reporte: Cálculo de IVA - {{ modulo_name }}{% endblock %}
@@ -49,7 +50,16 @@
<div class="text-muted"><small>Período: {{ mes_nombre }}</small></div>
</div>
</div>
{{ report_filters(
url_for('report_modulo_periodo', modulo_id=modulo_id),
workers_list,
worker_actual,
dia_actual,
[('01','Ene'),('02','Feb'),('03','Mar'),('04','Abr'),('05','May'),('06','Jun'),('07','Jul'),('08','Ago'),('09','Sep'),('10','Oct'),('11','Nov'),('12','Dic')],
mes_actual,
anios_disponibles,
anio_actual
) }}
<div class="card shadow-sm border-0">
<div class="card-body p-0">
<div class="table-responsive table-container custom-scrollbar">

View File

@@ -1,4 +1,5 @@
{% extends "macros/base.html" %}
{% from "macros/modals.html" import report_filters %}
{% block title %}Reporte: Finanzas - {{ modulo_name }}{% endblock %}
@@ -72,6 +73,17 @@
</div>
</div>
{{ report_filters(
url_for('report_modulo_periodo', modulo_id=modulo_id),
workers_list,
worker_actual,
dia_actual,
[('01','Ene'),('02','Feb'),('03','Mar'),('04','Abr'),('05','May'),('06','Jun'),('07','Jul'),('08','Ago'),('09','Sep'),('10','Oct'),('11','Nov'),('12','Dic')],
mes_actual,
anios_disponibles,
anio_actual
) }}
<div class="card shadow-sm border-0">
<div class="card-header border-0 bg-transparent d-flex justify-content-between align-items-center pb-0">
<span class="fw-bold text-muted text-uppercase"><i class="bi bi-calendar3 me-1"></i> Desglose Diario</span>

View File

@@ -573,4 +573,46 @@
</div>
</div>
</div>
{% endmacro %}
{% macro report_filters(action_url, workers, selected_worker, selected_dia, meses, mes_act, anios, anio_act) %}
<div class="card shadow-sm mb-4 border-0 bg-dark-subtle">
<div class="card-body p-3">
<form method="GET" action="{{ action_url }}" class="row g-2 align-items-end">
<div class="col-md-2">
<label class="form-label small text-muted mb-1">Año/Mes</label>
<div class="input-group input-group-sm">
<select name="anio" class="form-select">
{% for a in anios %}<option value="{{ a }}" {{ 'selected' if a|string == anio_act|string }}>{{ a }}</option>{% endfor %}
</select>
<select name="mes" class="form-select">
{% for m_num, m_name in meses %}<option value="{{ m_num }}" {{ 'selected' if m_num == mes_act }}>{{ m_name }}</option>{% endfor %}
</select>
</div>
</div>
<div class="col-md-2">
<label class="form-label small text-muted mb-1">Día (Opcional)</label>
<select name="dia" class="form-select form-select-sm">
<option value="">Todos los días</option>
{% for d in range(1, 32) %}
{% set d_str = "%02d"|format(d) %}
<option value="{{ d_str }}" {{ 'selected' if d_str == selected_dia }}>{{ d_str }}</option>
{% endfor %}
</select>
</div>
<div class="col-md-3">
<label class="form-label small text-muted mb-1">Trabajador</label>
<select name="worker_id" class="form-select form-select-sm">
<option value="">Todos los trabajadores</option>
{% for w in workers %}
<option value="{{ w[0] }}" {{ 'selected' if w[0]|string == selected_worker|string }}>{{ w[1] }}</option>
{% endfor %}
</select>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-sm w-100"><i class="bi bi-filter"></i> Aplicar Filtros</button>
</div>
</form>
</div>
</div>
{% endmacro %}