Tema
Mercados & Feiras
Cadastro dos mercados e feiras municipais, das suas bancas e dos vendedores que as ocupam, com cobrança diária (senha) e mensal (mensalidade → guia). Toda a dívida gerada aqui nasce como lançamento e guia reais na Tesouraria — o módulo nunca "marca como pago" por si. Este capítulo cobre todos os menus do módulo:
| Secção | Menus |
|---|---|
| Geral | Dashboard |
| Cadastro | Mercados & Feiras · Bancas · Mapa de bancas |
| Pessoas | Vendedores · Candidatos a vendedor · Lista de espera |
| Receita | Cobrança · Taxas de banca |
Permissões: mercados.view (ver tudo) e mercados.manage (criar, editar, atribuir, cobrar, aprovar taxas). O perfil semeado Gestor de Mercados (gestor-mercados) tem ambas, mais tesouraria.view e cadastro.view; o perfil Presidente / Executivo só vê. O módulo tem de estar activo para o município (modulo:mercados).
Dashboard
Mercados › Dashboard — quatro indicadores: Taxa de ocupação (bancas atribuídas ÷ capacidade declarada, com "N banca(s) livre(s)"), Receita diária (senhas pagas hoje), Receita mensal (acumulado de mensalidades pagas) e Vendedores em mora. Gráfico Receita por mercado (diária + mensal paga, top 8) e atalhos para Mercados & Feiras, Bancas, Cobrança, Lista de espera e Mapa de bancas.
TIP
A receita mostrada aqui é a que a Tesouraria já confirmou como paga. Guias emitidas mas ainda não pagas não contam.
Ordem recomendada de arranque
- Taxas de banca — a grelha vem vazia (valor 0, em rascunho): preencha, aprove e publique uma taxa para cada zona × classe × periodicidade que vai usar. Sem tarifa publicada não há senha nem mensalidade (ver abaixo);
- Mercados & Feiras — registe cada recinto com a sua zona e capacidade;
- Bancas — crie as bancas de cada mercado (o número é automático);
- Vendedores — registe os comerciantes a partir do Cadastro Central;
- Atribuir bancas e começar a cobrar.
Mercados & Feiras
Lista com Receita total, Taxa de ocupação, Vendedores em mora e Lista de espera, e colunas Mercado / feira · Tipo · Zona · Ocupação (atribuídas/capacidade) · Estado.
Novo mercado:
| Campo | Obrigatório | Notas |
|---|---|---|
| Designação | Sim | máx. 160 caracteres |
| Tipo | Sim | Mercado · Feira |
| Zona | Sim | Urbana · Suburbana · Turística — determina a taxa das bancas |
| Capacidade | Sim | nº máximo de bancas (inteiro ≥ 0) |
O mercado nasce Ativo; ao editar pode passar a Inativo (um mercado inativo bloqueia senhas diárias e é ignorado na geração de mensalidades). Posto administrativo, bairro e ponto GPS são aceites pela API mas não são recolhidos pelo formulário da consola. Não há campos de horário nem de gestor do recinto.
Bancas
Lista filtrável por mercado, estado, tipo e categoria, com pesquisa por número ou mercado. Colunas: Nº · Mercado / tipo · Dimensão · Estado · Cadastro · Mora.
Nova banca:
| Campo | Obrigatório | Notas |
|---|---|---|
| Mercado | Sim | |
| Tipo (cobertura) | Sim | Coberta · Descoberta |
| Categoria (comércio) | Sim | Alimentar · Não alimentar |
| Dimensão (m²) | Sim | > 0 |
| Zona | Sim | normalmente a do mercado |
O número é gerado automaticamente (B-01, B-02… sequencial por mercado). Se o mercado já atingiu a capacidade declarada, a criação é recusada: «O mercado "X" já atingiu a capacidade declarada (N bancas).» Cada banca fica ligada a um escalão de taxa derivado de zona + classe.
Estados
| Estado | Significado |
|---|---|
| Livre | sem atribuição activa — pode ser atribuída |
| Atribuída | tem um vendedor com título de ocupação activo |
| Suspensa / Inativa | valores legados; o código actual devolve a banca a Livre ao suspender |
| (eliminada) | eliminação lógica — desaparece das listas |
A disponibilidade real controla-se pelo campo Cadastro: Ativa / Inativa (toggle ativo na edição) e pela coluna Mora (Em mora / —).
Ficha da banca e acções
Bancas › clicar na linha → ficha "Banca B-NN" com Estado, Cadastro, Dimensão, Mora e os dados de Mercado, Número, Tipo, Categoria, Zona, Dimensão e Atribuição ativa ("— (banca livre)" quando vazia).
- Atribuir — vendedor* (só vendedores Ativos), periodicidade* (Diária · Mensal) e data de início. Exige banca Livre e Ativa. Cria o título de ocupação
TB-AAAA-NNNNNN, marca a banca Atribuída e actualiza a ocupação do mercado; - Transferir — novo vendedor*, periodicidade*, data de início e motivo. Cessa o título actual (estado transferida) e abre um novo; a marca de mora só se limpa se não restarem mensalidades em mora do título anterior;
- Suspender — motivo* (máx. 255). O título passa a suspensa com data de fim e a banca volta a Livre;
- Editar — tipo, categoria, zona, dimensão, ativo. Não é possível reclassificar nem inativar uma banca Atribuída ("Suspenda-a primeiro.");
- Eliminar — só sem atribuição activa; eliminação lógica.
Todas estas acções ficam registadas na Auditoria (atribuição, transferência, suspensão, eliminação).
WARNING
Desactivar um vendedor (Vendedores › Editar › Estado = Inativo) cessa todas as atribuições activas desse vendedor e liberta as bancas de uma só vez.
Vendedores e candidatos
Vendedores
Cadastro dos comerciantes ligado ao Cadastro Central: cada vendedor é um contribuinte existente. Colunas: Nº vendedor · Vendedor · Telefone · Registo · Estado.
Novo vendedor: contribuinte* (pesquisa no Cadastro Central — o nome, código e NUIT são copiados do registo real; se o contribuinte não existir, o pedido é recusado), telefone (máx. 40) e observações. O vendedor nasce Ativo; ao editar pode mudar telefone, observações e estado (Ativo · Inativo).
TIP
Se o comerciante ainda não existe no Cadastro Central, registe-o primeiro como contribuinte (ver Tributação). Sem contribuinte válido não há vendedor, não há atribuição e não há guia.
Candidatos a vendedor
Fluxo Candidato → aprovação → vendedor registado → elegível para atribuição de banca. Colunas: Candidato · Mercado pretendido · Tipo/categoria pretendida · Candidatura · Estado.
Nova candidatura: contribuinte*, mercado pretendido, tipo pretendido (Coberta/Descoberta), categoria pretendida (Alimentar/Não alimentar), telefone, observações, data de candidatura. Acções por linha: Aprovar (cria automaticamente o vendedor e devolve o seu número) e Rejeitar (motivo*, máx. 500). Só candidaturas pendentes podem ser aprovadas ou rejeitadas.
Lista de espera
Fila de candidatos a banca por mercado, tipo e categoria. Colunas: Pos. · Candidato · Mercado · Tipo de banca · Inscrição.
Inscrever: mercado*, tipo de banca*, categoria*, contribuinte*, data de inscrição (não futura). Promover retira o candidato da fila quando lhe é atribuída uma banca.
WARNING
Na versão actual da consola, o botão Promover envia o pedido sem o campo motivo, que a API exige (obrigatório, máx. 255). O pedido é recusado com erro de validação. Até à correcção, a promoção só funciona por API ou registando a atribuição directamente na banca.
Taxas de banca
Registo de taxas com vigência temporal e aprovação, em substituição de uma matriz fixa. Colunas: Zona · Classe · Periodicidade · Valor · Vigência (início — atual) · Estado.
Nova taxa (cria um rascunho):
| Campo | Obrigatório | Notas |
|---|---|---|
| Zona | Sim | Urbana · Suburbana · Turística |
| Classe | Sim | Coberta · Descoberta · Alimentar · Não alimentar |
| Periodicidade | Sim | Diária · Mensal |
| Valor (MT) | Sim | ≥ 0 |
| Data de início | Sim | |
| Data de fim | Não | ≥ data de início |
| Fundamento | Não | base legal / deliberação da Assembleia Municipal |
Estados: Rascunho → Proposto → Aprovado → Publicado. Só rascunhos/propostos são editáveis; as acções Aprovar e Publicar usam a mesma permissão mercados.manage (não há permissão de aprovação separada). Só taxas Publicadas e vigentes na data de referência são usadas na cobrança.
A grelha vem vazia — e é essa a intenção
Sem tarifa publicada, os mercados não facturam
Uma instalação nova traz a grelha de resolução (3 zonas × 4 classes × 2 periodicidades = 24 linhas) com valor zero e em rascunho. É o formulário que o município tem de preencher e deliberar.
Até a tarifa ser publicada, a emissão de senhas diárias e a geração de mensalidades são recusadas com um erro que diz o que falta — o sistema já não cai numa matriz de valores escrita no código.
Antes, o sistema semeava 24 preços publicados (de 20 a 2 100 MT) vindos de uma matriz de referência do tempo do desenvolvimento, e facturava senhas e mensalidades por eles em qualquer município que instalasse o SGM. Nenhuma assembleia municipal os deliberou. Essas linhas foram despublicadas e a matriz do código foi removida.
Como a classe é escolhida: se a banca é Alimentar, aplica-se a classe Alimentar; caso contrário aplica-se a classe do tipo de cobertura (Coberta/Descoberta). Não há preço por m².
WARNING
Por essa regra, a classe Não alimentar nunca é aplicada a nenhuma banca — uma banca não alimentar paga pela classe Coberta/Descoberta. A consola bloqueia a publicação de taxas dessa classe e sinaliza-a como não aplicável. A grelha mantém-na na mesma, para mostrar tudo o que o modelo de dados admite.
Cobrança
Mercados › Cobrança tem dois separadores.
Diária (senha)
Para bancas com atribuição diária ou sem atribuição. Registar ocupação → banca*, vendedor*, data (não futura) → Emitir senha. Regras: banca activa, mercado activo, sem atribuição mensal activa na banca, e uma única senha por banca e dia. O valor é a taxa diária vigente na data. É criado um lançamento real na Tributação (tipo TAXA, objecto "ocupação diária") e a senha recebe o número SN-NNNNNN. Colunas: Senha · Banca · Data · Valor · Estado.
O botão Pagar só transita a senha para Paga se o lançamento já estiver pago na Tributação/Tesouraria; caso contrário devolve erro.
Mensal (mensalidade → guia)
- Indique o Mês (AAAA-MM) (pré-preenchido com o mês corrente; meses futuros são recusados);
- Gerar mensalidades — percorre todas as atribuições ativas com periodicidade mensal;
- Para cada uma: valor = taxa mensal vigente no 1.º dia do mês; cria um lançamento
LC-AAAA-NNNNNN(tipo TAXA, "Mensalidade banca B-NN — AAAA-MM") e emite a guiaGU-AAAA-NNNNNNcom referência de pagamento e data-limite = hoje + 15 dias. A dívida entra na conta-corrente do contribuinte; - O painel de resultado mostra Mês · Geradas · Ignoradas (já geradas) · Total gerado.
São ignoradas, sem erro: bancas que já têm mensalidade nesse mês, bancas inativas ou de mercados inativos, e atribuições sem contribuinte resolvível (a API devolve estas contagens em bancas_inativas_ignoradas e erros_emissao, que a consola não mostra).
Estados da mensalidade: Pendente → Paga, ou Em mora quando o mês de referência já passou sem pagamento. A mora propaga-se: a atribuição acumula meses em mora e a banca fica marcada Em mora (vermelho no mapa e nas listas).
Pagar (por linha) exige que a guia esteja Paga na Tesouraria; caso contrário: «Esta mensalidade ainda não está paga na Tesouraria (guia …, referência …, estado "…"). Confirme o pagamento por balcão, mobile money ou conciliação antes de marcar como paga aqui.» O munícipe pode consultar e pagar a guia no Portal do Munícipe.
DANGER
Não existe forma de registar um pagamento dentro do módulo Mercados. O pagamento regista-se sempre na Tesouraria (balcão, comprovativo ou conciliação); o botão "Pagar" aqui apenas sincroniza o estado da mensalidade/senha com o que a guia já diz.
Mapa de bancas
Mercados › Mapa de bancas (também pelo botão Mapa de bancas nas listas). Mostra os polígonos das bancas que têm geometria, coloridos por estado — Livre (verde), Atribuída (azul-petróleo), Suspensa (âmbar), Em mora (vermelho; sobrepõe-se aos restantes) — com legenda "Estado das bancas". Controlos: mapa base Ruas / Satélite / Híbrido, selector Mercado ("Todos os mercados") e camada Bairros. O limite do município e o aviso de traçado não oficial vêm do módulo Território.
Clicar numa banca abre o painel "Banca B-NN" com Estado, Número, Mora e o botão Abrir ficha.
WARNING
O mapa é só de leitura: não há desenho nem edição de geometria, e o formulário "Nova banca" não recolhe coordenadas. As bancas só aparecem no mapa se a geometria for carregada por API ou importação externa. O ponto GPS do mercado também não é desenhado.
Como a dívida chega à Tesouraria
| Origem | Lançamento (Tributação) | Guia (Tesouraria) | Fecho |
|---|---|---|---|
| Senha diária | TAXA, mercados.ocupacao_diaria | não é emitida guia automática | "Pagar" exige lançamento pago |
| Mensalidade | TAXA, mercados.mensalidade, LC-… | GU-…, GARE, vence em 15 dias | "Pagar" exige guia paga |
Consulte a conta-corrente do contribuinte em Tributação e as guias e recibos em Tesouraria.
Filtros disponíveis só por API
A API aceita filtros que a consola ainda não expõe: bancas por ativo, em_mora e zona; ocupações e mensalidades por mercado, banca, atribuição, estado e mês de referência; taxas por periodicidade e data de vigência. Relatórios e exportações próprios do módulo não existem — use o BI e a Tesouraria.