{% extends "base.html" %} {% block title %}Produtos - CapeSystem{% endblock %} {% block content %}
Voltar

Produtos

Baixar Modelo Entrada Manual Novo Produto
{% if pendencia_estoque %} {% endif %} {# Campo de Busca com Paginação no Servidor #} {% set filtros_em_uso = busca or codigo_exato or empresa_id or tipo or (situacao != 'ativos') or (classificar != 'codigo') or (ordem != 'asc') or pendencia_estoque %}
{# Informações de Paginação #}
Mostrando {{ ((pagination.page - 1) * pagination.per_page) + 1 }} a {{ [pagination.page * pagination.per_page, pagination.total]|min }} de {{ pagination.total }} produtos {% if filtros_em_uso %} Limpar filtros {% endif %}
{% if filtros_em_uso %} {% set empresa_filtro = namespace(nome='') %} {% if empresa_id %} {% for emp in empresas %} {% if emp.id == empresa_id %} {% set empresa_filtro.nome = emp.nome %} {% endif %} {% endfor %} {% endif %} {% set tipo_filtro = namespace(nome='') %} {% if tipo %} {% for tipo_item in tipos_produto_filtro or [] %} {% if tipo_item.valor == tipo %} {% set tipo_filtro.nome = tipo_item.label %} {% endif %} {% endfor %} {% endif %} {% set situacao_filtro = 'Ativos' %} {% if situacao == 'inativos' %} {% set situacao_filtro = 'Inativos' %} {% elif situacao == 'todos' %} {% set situacao_filtro = 'Ativos + inativos' %} {% endif %}
Filtros ativos {% if busca %} Busca: {{ busca }} {% endif %} {% if codigo_exato %} Código: {{ codigo_exato }} {% endif %} {% if empresa_id %} Empresa: {{ empresa_filtro.nome or empresa_id }} {% endif %} {% if tipo %} Tipo: {{ tipo_filtro.nome or tipo|replace('_', ' ')|title }} {% endif %} {% if situacao != 'ativos' %} Status: {{ situacao_filtro }} {% endif %} {% if classificar != 'codigo' %} Classificar: {{ classificar|replace('_', ' ')|title }} {% endif %} {% if ordem != 'asc' %} Ordem: Z-A {% endif %} {% if pendencia_estoque %} Pendência de estoque {% endif %}
Limpar tudo
{% endif %} {% if produtos %}
Lista de Produtos
{% for emp in empresas_colunas %} {% endfor %} {% for produto in produtos %} {% set estoques_produto = estoque_por_empresa_lookup.get(produto.id, {}) if estoque_por_empresa_lookup is defined else {} %} {% set possui_detalhe_empresa = produto.id in estoque_por_empresa_map %} {% set estoque_sem_detalhe_multiloja = (produto.id in estoque_sem_detalhe_multiloja_ids) if estoque_sem_detalhe_multiloja_ids is defined else False %} {% for emp in empresas_colunas %} {% set qtd_empresa = estoques_produto.get(emp.id) %} {% endfor %} {% endfor %}
Código Descrição
{{ emp.nome }} {% if empresa_contexto_id and emp.id == empresa_contexto_id %} Ativa {% endif %}
Estoque consolidado Valor Venda Embalagem Status Ações
{% if produto.codigo_produto %} {{ produto.codigo_produto }} {% else %} SEM CÓDIGO {% endif %} {{ produto.nome }} {% set tipo_produto_label = produto._tipo_exibicao if produto._tipo_exibicao is defined and produto._tipo_exibicao else ((produto.tipo or 'Sem tipo')|replace('_', ' ')|title) %} {% set tipo_produto_badge = produto._tipo_badge_css if produto._tipo_badge_css is defined and produto._tipo_badge_css else 'tipo-default' %} {% set tipo_produto_icone = produto._tipo_badge_icon if produto._tipo_badge_icon is defined and produto._tipo_badge_icon else 'bi-tag' %} {% set tipo_produto_ativo = tipo and produto.tipo and tipo == produto.tipo %} {% if produto.tipo %}
{{ tipo_produto_label }} {% else %}
{{ tipo_produto_label }} {% endif %} {% if produto.descricao %}
{{ produto.descricao[:80] }}{% if produto.descricao|length > 80 %}...{% endif %} {% endif %} {% if produto.codigo_barras %}
{{ produto.codigo_barras }} {% endif %} {% if produto.cota %}
Cota: {{ produto.cota }} {% endif %}
{% if qtd_empresa is not none %} {% set qtd_empresa_fmt = "{:,.3f}".format(qtd_empresa or 0).replace(",", "#").replace(".", ",").replace("#", ".") %} {{ qtd_empresa_fmt if produto.fracionado else (qtd_empresa|int) }} {% elif possui_detalhe_empresa %} 0 {% else %} {% endif %} {% if estoque_sem_detalhe_multiloja %}
Sem detalhe local {% else %} {% set estoque_atual = (estoque_consolidado_map.get(produto.id, (produto.estoque_atual or 0)) if estoque_consolidado_map is defined else (produto.estoque_atual or 0)) %} {% set estoque_atual_fmt = "{:,.3f}".format(estoque_atual or 0).replace(",", "#").replace(".", ",").replace("#", ".") %} {% if produto.controla_estoque %} {% if estoque_atual > (produto.estoque_minimo or 0) %} {{ estoque_atual_fmt if produto.fracionado else estoque_atual|int }} {% elif estoque_atual > 0 %} {{ estoque_atual_fmt if produto.fracionado else estoque_atual|int }} {% else %} {{ estoque_atual_fmt if produto.fracionado else estoque_atual|int }} {% endif %} {% else %} {{ estoque_atual_fmt if produto.fracionado else estoque_atual|int }} {% endif %}
Soma das empresas {% endif %}
{% if (produto.valor_venda or 0) > 0 %} R$ {{ "%.2f"|format(produto.valor_venda) }} {% else %} - {% endif %} {% if produto.embalagem and produto.embalagem.sigla %} {{ produto.embalagem.sigla }} {% elif produto.unidade_comercial %} {{ produto.unidade_comercial }} {% else %} - {% endif %} {% if produto.ativo %} Ativo {% else %} Inativo {% endif %} {% set margem = produto.margem_base() if (produto.valor_venda or 0) > 0 else None %} {% set data_cadastro_produto = produto.data_criacao or produto.data_cadastro %} {% set data_alteracao_produto = produto.data_atualizacao or produto.data_cadastro %} {% set ultimo_log_preco = produto._ultimo_log_preco_exibicao if produto._ultimo_log_preco_exibicao is defined and produto._ultimo_log_preco_exibicao else None %} {% set usuario_criacao_nome = produto._usuario_criacao_exibicao if produto._usuario_criacao_exibicao is defined and produto._usuario_criacao_exibicao else 'Cadastro legado sem auditoria' %} {% set usuario_atualizacao_nome = produto._usuario_atualizacao_exibicao if produto._usuario_atualizacao_exibicao is defined and produto._usuario_atualizacao_exibicao else 'Sem auditoria de alteração' %} {% set tipo_modal_label = produto._tipo_exibicao if produto._tipo_exibicao is defined and produto._tipo_exibicao else ((produto.tipo or 'Sem tipo')|replace('_', ' ')|title) %}
{# Controles de Paginação #} {% if pagination.pages > 1 %} {% endif %} {% else %}
Nenhum produto encontrado. {% if busca %} Limpar filtros {% else %} Cadastrar primeiro produto {% endif %}
{% endif %} {% endblock %}