{% extends "base.html" %} {% block title %}Movimentações - {{ produto.nome }}{% endblock %} {% block content %}

Histórico de Movimentações

Produto: {{ produto.nome }}

{% if produto.codigo_produto %} Código: {{ produto.codigo_produto }} {% endif %}
Estoque Atual

{{ "%.2f"|format(produto.estoque_atual or 0) }}

{{ produto.unidade_comercial or 'UN' }}
Estoque Mínimo

{{ "%.2f"|format(produto.estoque_minimo or 0) }}

{{ produto.unidade_comercial or 'UN' }}
Valor Venda

R$ {{ "%.2f"|format(produto.valor_venda or 0) }}

por {{ produto.unidade_comercial or 'UN' }}
Valor em Estoque

R$ {{ "%.2f"|format((produto.estoque_atual or 0) * (produto.valor_venda or 0)) }}

total
Status: {% if (produto.estoque_atual or 0) == 0 %} Estoque zerado - produto indisponível {% elif (produto.estoque_atual or 0) <= (produto.estoque_minimo or 0) %} Estoque abaixo do mínimo - necessário reposição {% else %} Estoque adequado {% endif %}
Histórico de Movimentações {{ movimentos|length }}
{% if movimentos %}
{% for mov in movimentos %} {% endfor %}
Data/Hora Tipo Origem Documento Quantidade Valor Unit. Estoque Antes Estoque Depois Observações
{{ mov.data_movimento.strftime('%d/%m/%Y') if mov.data_movimento else 'N/A' }}
{{ mov.data_movimento.strftime('%H:%M') if mov.data_movimento else '' }}
{% if mov.tipo == 'entrada' %} Entrada {% elif mov.tipo == 'saida' %} Saída {% elif mov.tipo == 'ajuste' %} Ajuste {% else %} {{ mov.tipo }} {% endif %} {{ mov.origem|replace('_', ' ')|title }} {% if mov.referencia %}
Ref: {{ mov.referencia }} {% endif %}
{% if mov.documento %} {{ mov.documento }} {% else %} - {% endif %} {{ "%+.2f"|format(mov.quantidade) }} {% if mov.valor_unitario %} R$ {{ "%.2f"|format(mov.valor_unitario) }} {% else %} - {% endif %} {{ "%.2f"|format(mov.estoque_anterior or 0) }} {{ "%.2f"|format(mov.estoque_resultante or 0) }} {% if mov.observacoes %} {{ mov.observacoes }} {% else %} - {% endif %}
{% else %}
Nenhuma movimentação registrada para este produto.
{% endif %}
{% if movimentos %}
Total de Entradas

{{ "%.2f"|format(movimentos|selectattr('tipo', 'equalto', 'entrada')|sum(attribute='quantidade') or 0) }}

Total de Saídas

{{ "%.2f"|format(movimentos|selectattr('tipo', 'equalto', 'saida')|sum(attribute='quantidade')|abs or 0) }}

Saldo

{{ "%.2f"|format(produto.estoque_atual or 0) }}

{% endif %}
{% endblock %}