{% extends "base.html" %} {% block title %}Relatório de Produtos{% endblock %} {% block content %} {% if modo_ranking_legacy|default(false) %}

Relatório de Produtos

TOP 10 - Mais Vendidos (Quantidade)
{% for item in top_mais_vendidos %} {% else %} {% endfor %}
# Produto Qtd Vendida Receita Total Lucro Total Margem %
{{ loop.index }}º {{ item.produto.nome }} {{ item.quantidade_vendida }} R$ {{ "%.2f"|format(item.receita_total) }} R$ {{ "%.2f"|format(item.lucro_total) }} {{ "%.1f"|format(item.margem_percentual) }}%
Nenhum produto vendido no período
TOP 10 - Mais Lucrativos
{% for item in top_mais_lucrativos %} {% else %} {% endfor %}
# Produto Lucro Total Receita Total Qtd Vendida Margem %
{{ loop.index }}º {{ item.produto.nome }} R$ {{ "%.2f"|format(item.lucro_total) }} R$ {{ "%.2f"|format(item.receita_total) }} {{ item.quantidade_vendida }} {{ "%.1f"|format(item.margem_percentual) }}%
Nenhum produto vendido no período
{% if produto_selecionado %}
Histórico de Vendas - {{ produto_selecionado.nome }}
{% if historico_produto %}
{% for venda in historico_produto %} {% endfor %}
Data Venda # Cliente Quantidade Preço Unit. Valor Total Lucro
{{ venda.data.strftime('%d/%m/%Y') }} {% set venda_detalhes_disponivel = has_endpoint('venda_detalhes') %} #{{ venda.venda_id }} {{ venda.cliente }} {{ venda.quantidade }} R$ {{ "%.2f"|format(venda.preco_unitario) }} R$ {{ "%.2f"|format(venda.valor_total) }} R$ {{ "%.2f"|format(venda.lucro) }}
TOTAIS: {{ historico_produto|sum(attribute='quantidade') }} R$ {{ "%.2f"|format(historico_produto|sum(attribute='valor_total')) }} R$ {{ "%.2f"|format(historico_produto|sum(attribute='lucro')) }}
{% else %}

Nenhuma venda encontrada para este produto no período.

{% endif %}
{% endif %} {% else %}

Relatório de Produtos

Limpar
Produtos Cadastrados
{% for produto in produtos %} {% set pendencias = [] %} {% if not (produto.codigo_produto or produto.codigo_barras or produto.referencia) %} {% set pendencias = pendencias + ['Código'] %} {% endif %} {% if not produto.grupo %} {% set pendencias = pendencias + ['Grupo'] %} {% endif %} {% if not produto.embalagem %} {% set pendencias = pendencias + ['Embalagem'] %} {% endif %} {% if not produto.ncm %} {% set pendencias = pendencias + ['NCM'] %} {% endif %} {% if not produto.fornecedor %} {% set pendencias = pendencias + ['Fornecedor'] %} {% endif %} {% if not produto.perfil_tributario_id or produto.perfil_tributario_id not in perfis_por_id %} {% set pendencias = pendencias + ['Perfil tributário'] %} {% endif %} {% if produto.valor_venda is none or (produto.valor_venda or 0) <= 0 %} {% set pendencias = pendencias + ['Preço venda'] %} {% endif %} {% else %} {% endfor %}
Código Nome Pendências Grupo Embalagem NCM Marca Perfil Tributário Fornecedor Estoque Preço Venda Status
{{ produto.codigo_produto or produto.codigo_barras or produto.referencia or '-' }} {{ produto.nome }} {% if pendencias %}
{% for pendencia in pendencias %} {{ pendencia }} {% endfor %}
{% else %} Completo {% endif %}
{{ produto.grupo.nome if produto.grupo else '-' }} {{ produto.embalagem.nome if produto.embalagem else '-' }} {{ produto.ncm or '-' }} {{ produto.marca or '-' }} {{ perfis_por_id[produto.perfil_tributario_id].nome if produto.perfil_tributario_id in perfis_por_id else '-' }} {{ produto.fornecedor.razao_social if produto.fornecedor else '-' }} {{ produto.estoque_atual if produto.estoque_atual is not none else '-' }} R$ {{ '%.2f'|format(produto.valor_venda or 0) }} {% if produto.ativo %}Ativo{% else %}Inativo{% endif %}
Nenhum produto encontrado para os filtros informados.
{% if produto_selecionado %} {% set resumo_livro_item = resumo_livro_item|default({'total_eventos': 0, 'qtd_movimentos': 0, 'qtd_eventos_negocio': 0, 'qtd_alteracoes_cadastro': 0, 'primeiro_evento': None, 'ultimo_evento': None, 'saldo_atual': None}) %} {% set livro_item = livro_item|default([]) %} {% set is_fracionado = produto_selecionado.fracionado if produto_selecionado else false %} {% set historico_pdf_disponivel = has_endpoint('relatorio_produtos_pdf') %} {% set historico_csv_disponivel = has_endpoint('relatorio_produtos_historico_csv') %} {% set historico_xlsx_disponivel = has_endpoint('relatorio_produtos_historico_xlsx') %}
Livro do Item
{{ produto_selecionado.nome }} {% if resumo_livro_item.primeiro_evento %} • acompanhamento completo desde {{ resumo_livro_item.primeiro_evento.strftime('%d/%m/%Y %H:%M') }} {% endif %}
Total de Eventos
{{ resumo_livro_item.total_eventos or 0 }}
Movimentos de Estoque
{{ resumo_livro_item.qtd_movimentos or 0 }}
Eventos Comerciais/Fiscais
{{ resumo_livro_item.qtd_eventos_negocio or 0 }}
Alterações de Cadastro
{{ resumo_livro_item.qtd_alteracoes_cadastro or 0 }}
Primeiro Evento
{% if resumo_livro_item.primeiro_evento %} {{ resumo_livro_item.primeiro_evento.strftime('%d/%m/%Y %H:%M') }} {% else %} - {% endif %}
Último Evento
{% if resumo_livro_item.ultimo_evento %} {{ resumo_livro_item.ultimo_evento.strftime('%d/%m/%Y %H:%M') }} {% else %} - {% endif %}
Saldo Atual Conhecido
{% if resumo_livro_item.saldo_atual is not none %} {% if is_fracionado %}{{ "%.3f"|format(resumo_livro_item.saldo_atual|float)|replace(".", ",") }}{% else %}{{ resumo_livro_item.saldo_atual|float|int }}{% endif %} {% else %} - {% endif %}
{% if livro_item %} {% for linha in livro_item %} {% endfor %} {% else %} {% endif %}
Data/Hora Evento Origem Documento Referência Usuário Entrada Saída Saldo Observações
{{ linha.data_hora.strftime('%d/%m/%Y %H:%M') if linha.data_hora else '-' }} {% if linha.tipo_linha == 'cadastro' %} {{ linha.evento }} {% elif linha.tipo_linha == 'negocio' %} {{ linha.evento }} {% elif linha.entrada %} {{ linha.evento }} {% elif linha.saida %} {{ linha.evento }} {% else %} {{ linha.evento }} {% endif %} {{ linha.origem or '-' }} {{ linha.documento or '-' }} {{ linha.referencia or '-' }} {{ linha.usuario or '-' }} {% if linha.entrada is not none %}{% if is_fracionado %}{{ "%.3f"|format(linha.entrada|float)|replace(".", ",") }}{% else %}{{ linha.entrada|float|int }}{% endif %}{% else %}-{% endif %} {% if linha.saida is not none %}{% if is_fracionado %}{{ "%.3f"|format(linha.saida|float)|replace(".", ",") }}{% else %}{{ linha.saida|float|int }}{% endif %}{% else %}-{% endif %} {% if linha.saldo is not none %}{% if is_fracionado %}{{ "%.3f"|format(linha.saldo|float)|replace(".", ",") }}{% else %}{{ linha.saldo|float|int }}{% endif %}{% else %}-{% endif %} {{ linha.observacoes or '-' }}
Nenhum evento encontrado para este item até a data informada.
{% endif %} {% endif %} {% endblock %}