Browse Source

Ajustes emergenciais relatórios de custos

pull/170/head 3.0.75
Sesóstris Vieira 10 months ago
parent
commit
1ce9ab984d
  1. 3
      sigi/apps/eventos/admin.py
  2. 23
      sigi/apps/eventos/migrations/0057_alter_equipe_qtde_diarias_alter_equipe_valor_diaria.py
  3. 10
      sigi/apps/eventos/models.py
  4. 61
      sigi/apps/eventos/templates/admin/eventos/custos_eventos_report.html
  5. 21
      sigi/apps/eventos/templates/admin/eventos/custos_servidor_report.html

3
sigi/apps/eventos/admin.py

@ -1488,7 +1488,8 @@ class EventoAdmin(AsciifyQParameter, CartExportReportMixin, admin.ModelAdmin):
),
qtde_diarias=Sum("equipe__qtde_diarias"),
vlr_tot_diarias=Sum(
F("equipe__qtde_diarias") * F("equipe__valor_diaria")
F("equipe__qtde_diarias") * F("equipe__valor_diaria"),
output_field=my_decimal_field,
),
vlr_tot_passagens=Sum("equipe__total_passagens"),
custo_total=F("vlr_tot_diarias") + F("vlr_tot_passagens"),

23
sigi/apps/eventos/migrations/0057_alter_equipe_qtde_diarias_alter_equipe_valor_diaria.py

@ -0,0 +1,23 @@
# Generated by Django 4.2.7 on 2024-03-13 19:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('eventos', '0056_evento_origem_sincronizacao'),
]
operations = [
migrations.AlterField(
model_name='equipe',
name='qtde_diarias',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=14, null=True, verbose_name='quantidade de diárias'),
),
migrations.AlterField(
model_name='equipe',
name='valor_diaria',
field=models.DecimalField(blank=True, decimal_places=2, max_digits=14, null=True, verbose_name='valor unitário da diária (R$)'),
),
]

10
sigi/apps/eventos/models.py

@ -810,11 +810,15 @@ class Equipe(models.Model):
assina_oficio = models.BooleanField(
_("Assina ofício de comparecimento"), default=False
)
qtde_diarias = models.PositiveIntegerField(
_("quantidade de diárias"), blank=True, null=True
qtde_diarias = models.DecimalField(
_("quantidade de diárias"),
max_digits=14,
decimal_places=2,
blank=True,
null=True,
)
valor_diaria = models.DecimalField(
_("valor da diária (R$)"),
_("valor unitário da diária (R$)"),
max_digits=14,
decimal_places=2,
blank=True,

61
sigi/apps/eventos/templates/admin/eventos/custos_eventos_report.html

@ -2,6 +2,7 @@
{% load static i18n sigi_tags %}
{% block page_size %}A4 landscape{% endblock page_size %}
{% block page_margin %}3cm 1cm 2cm 1cm{% endblock page_margin %};
{% block extra_style %}
{{ block.super }}
@ -141,22 +142,22 @@
{% if not forloop.first %}<tr class="{{ row_class }}">{% endif %}
<td>{{ membro.membro.get_apelido }}</td>
<td>{{ membro.funcao }}</td>
<td class="right-align">{{ membro.qtde_diarias|default:"-" }}</td>
<td class="right-align">{{ membro.total_diarias|default:"-" }}</td>
<td class="right-align">{{ membro.total_passagens|default:"-" }}</td>
<td class="right-align">{{ membro.qtde_diarias|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ membro.total_diarias|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ membro.total_passagens|floatformat:2|default:"-" }}</td>
<td>{{ membro.emissao_passagens|default:"-" }}</td>
<td class="right-align">{{ membro.antecedencia|default:"-" }}</td>
{% if forloop.first %}
<td rowspan="{{ equipe_count }}" class="right-align">{{ evento.custo_total|default:"-" }}</td>
<td rowspan="{{ equipe_count }}" class="right-align">{{ evento.custo_medio_participante|default:"-" }}</td>
<td rowspan="{{ equipe_count }}"class="right-align">{{ evento.custo_medio_membro|default:"-" }}</td>
<td rowspan="{{ equipe_count }}" class="right-align">{{ evento.custo_total|floatformat:2|default:"-" }}</td>
<td rowspan="{{ equipe_count }}" class="right-align">{{ evento.custo_medio_participante|floatformat:2|default:"-" }}</td>
<td rowspan="{{ equipe_count }}"class="right-align">{{ evento.custo_medio_membro|floatformat:2|default:"-" }}</td>
{% endif %}
</tr>
{% empty %}
<td colspan="7" class="center-align">{% trans "Equipe não definida" %}</td>
<td class="right-align">{{ evento.custo_total|default:"-" }}</td>
<td class="right-align">{{ evento.custo_medio_participante|default:"-" }}</td>
<td class="right-align">{{ evento.custo_medio_membro|default:"-" }}</td>
<td class="right-align">{{ evento.custo_total|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ evento.custo_medio_participante|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ evento.custo_medio_membro|floatformat:2|default:"-" }}</td>
</tr>
{% endfor %}
{% endwith %}
@ -248,7 +249,7 @@
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Antecedência média na emissão de passagens" %}</th>
<td class="right-align">{{ resumo.media_antecedencia|default:"-" }}</td>
<td class="right-align">{{ resumo.media_antecedencia|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
@ -268,42 +269,42 @@
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Custo total" %}</th>
<td class="right-align">{{ resumo.tot_custo_total|default:"-" }}</td>
<td class="right-align">{{ resumo.tot_custo_total|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Total com diárias" %}</th>
<td class="right-align">{{ resumo.tot_custo_diarias|default:"-" }}</td>
<td class="right-align">{{ resumo.tot_custo_diarias|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Total com passagens" %}</th>
<td class="right-align">{{ resumo.tot_custo_passagens|default:"-" }}</td>
<td class="right-align">{{ resumo.tot_custo_passagens|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Custo médio dos eventos [Q / A]" %}</th>
<td class="right-align">{{ resumo.media_custo_total|default:"-" }}</td>
<td class="right-align">{{ resumo.media_custo_total|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Custo médio de diárias por evento [R / A]" %}</th>
<td class="right-align">{{ resumo.media_custo_diarias|default:"-" }}</td>
<td class="right-align">{{ resumo.media_custo_diarias|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Custo médio de passagens por evento [S / A]" %}</th>
<td class="right-align">{{ resumo.media_custo_passagens|default:"-" }}</td>
<td class="right-align">{{ resumo.media_custo_passagens|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Custo médio por participante [Q / B]" %}</th>
<td class="right-align">{{ resumo.media_custo_participantes|default:"-" }}</td>
<td class="right-align">{{ resumo.media_custo_participantes|floatformat:2|default:"-" }}</td>
</tr>
<tr>
<th class="index-cell">{% cycle letra %}</th>
<th class="label-resumo">{% trans "Gasto médio por membro da equipe" %}</th>
<td class="right-align">{{ resumo.media_custo_membro|default:"-" }}</td>
<td class="right-align">{{ resumo.media_custo_membro|floatformat:2|default:"-" }}</td>
</tr>
</table>
</div>
@ -335,18 +336,18 @@
{% for data in custos_regiao %}
<tr>
<th>{{ data.nome }}</th>
<td class="right-align">{{ data.extrato.tot_diarias.min|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.mean|default:"-"|floatformat:2 }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.max|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.sum|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.min|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.mean|default:"-"|floatformat:2 }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.max|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.sum|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.min|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.mean|default:"-"|floatformat:2 }}</td>
<td class="right-align">{{ data.extrato.tot_custo.max|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.sum|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.min|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.mean|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.max|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_diarias.sum|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.min|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.mean|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.max|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_passagens.sum|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.min|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.mean|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.max|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ data.extrato.tot_custo.sum|floatformat:2|default:"-" }}</td>
</tr>
{% endfor %}
</tbody>

21
sigi/apps/eventos/templates/admin/eventos/custos_servidor_report.html

@ -2,6 +2,7 @@
{% load static i18n sigi_tags %}
{% block page_size %}A4 landscape{% endblock page_size %}
{% block page_margin %}3cm 1cm 2cm 1cm{% endblock page_margin %};
{% block extra_style %}
{{ block.super }}
@ -111,21 +112,21 @@
<tr>
<td>{{ servidor.nome_completo }}</td>
<td class="right-align">{{ servidor.qtde_eventos|default:"-" }}</td>
<td class="right-align">{{ servidor.qtde_diarias|default:"-" }}</td>
<td class="right-align">{{ servidor.media_diarias|default:"-" }}</td>
<td class="right-align">{{ servidor.total_diarias|default:"-" }}</td>
<td class="right-align">{{ servidor.total_passagens|default:"-" }}</td>
<td class="right-align">{{ servidor.total_custo|default:"-" }}</td>
<td class="right-align">{{ servidor.qtde_diarias|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ servidor.media_diarias|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ servidor.total_diarias|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ servidor.total_passagens|floatformat:2|default:"-" }}</td>
<td class="right-align">{{ servidor.total_custo|floatformat:2|default:"-" }}</td>
</tr>
{% endfor %}
<tr>
<th class="right-align">{% trans "Totais" %}</th>
<th class="right-align">{{ totais.qtde_eventos|default:"-" }}</th>
<th class="right-align">{{ totais.qtde_diarias|default:"-" }}</th>
<th class="right-align">{{ totais.media_diarias|default:"-" }}</th>
<th class="right-align">{{ totais.total_diarias|default:"-" }}</th>
<th class="right-align">{{ totais.total_passagens|default:"-" }}</th>
<th class="right-align">{{ totais.total_custo|default:"-" }}</th>
<th class="right-align">{{ totais.qtde_diarias|floatformat:2|default:"-" }}</th>
<th class="right-align">{{ totais.media_diarias|floatformat:2|default:"-" }}</th>
<th class="right-align">{{ totais.total_diarias|floatformat:2|default:"-" }}</th>
<th class="right-align">{{ totais.total_passagens|floatformat:2|default:"-" }}</th>
<th class="right-align">{{ totais.total_custo|floatformat:2|default:"-" }}</th>
</tr>
</tbody>
</table>

Loading…
Cancel
Save