====== Troco Solidário ======
O Troco Solidário é uma funcionalidade do PDV (frente de caixa) que permite ao estabelecimento arrecadar doações a partir do troco das vendas em dinheiro. Quando habilitada, ao encerrar uma venda com troco, o sistema pergunta ao operador se o cliente deseja destinar parte ou todo o troco a uma entidade beneficente previamente cadastrada.
O valor doado é descontado do troco que seria devolvido ao cliente. O sistema acumula esses valores por mês e os registra vinculados à entidade escolhida para aquele período.
===== Como habilitar =====
A funcionalidade precisa ser ativada antes de ser usada no caixa:
- Acesse o menu **Configurações → Parâmetros do sistema**.
- Localize a aba ou seção **PDV** e depois **Troco Solidário**.
- Marque a opção **"Habilitar Troco Solidário"**.
- Informe o **valor máximo de doação por venda** (o padrão é R$ 2,00). Esse é o teto que o sistema vai sugerir ao operador — o cliente pode confirmar ou diminuir esse valor, mas não ultrapassá-lo.
- Salve as configurações.
> **Importante:** sem ao menos um beneficiário cadastrado para o mês atual, o sistema não vai exibir o diálogo de doação no caixa, mesmo com a funcionalidade habilitada.
===== Cadastrar beneficiários por período =====
A tela de gestão de beneficiários fica no menu **Financeiro → Troco Solidário** (tela FIN201).
Nessa tela é possível:
* **Adicionar um ano** — ao clicar em "Adicionar", o sistema solicita a escolha de uma entidade (um cadastro de cliente que represente a instituição beneficiada). O ano criado traz automaticamente os doze meses com aquela entidade.
* **Trocar a entidade de um mês específico** — selecione o mês desejado na lista e clique em "Trocar" (ou pressione **F5**).
* **Trocar a entidade de todos os meses de uma vez** — clique em "Trocar Todos" (ou pressione **F6**).
* **Remover o último ano cadastrado** — clique em "Remover" (ou pressione **F8** ou **Delete**).
Após configurar, clique em **Confirmar** para salvar. As informações são enviadas automaticamente para os caixas (PDVs) na próxima sincronização.
@startuml
skinparam activityBackgroundColor #E8F5E9
skinparam activityBorderColor #2E7D32
skinparam arrowColor #2E7D32
skinparam activityFontSize 13
start
:Acessar Parâmetros do sistema;
:Habilitar Troco Solidário\ne definir o valor máximo;
:Acessar Financeiro > Troco Solidário;
:Adicionar ano e selecionar\na entidade beneficiada;
:Ajustar a entidade por mês,\nse necessário;
:Confirmar e salvar;
:Sistema envia as informações\npara os caixas;
stop
@enduml
===== Funcionamento no PDV =====
Quando o Troco Solidário está habilitado e há uma entidade cadastrada para o mês atual, o comportamento no caixa é o seguinte:
- O operador finaliza normalmente uma venda em dinheiro.
- Se o cliente pagar mais do que o valor da venda (gerando troco), o sistema abre uma janela com:
- O **total do troco** que seria devolvido.
- Um campo com o **valor sugerido para doação** (preenchido automaticamente com o menor valor entre o troco total e o limite configurado).
- O **nome da entidade beneficiada** no mês.
- O operador pode:
- **Confirmar** o valor sugerido (ou digitá-lo manualmente, respeitando o limite).
- **Pressionar a tecla Espaço** para preencher automaticamente com o valor máximo permitido.
- **Zerar o campo** e confirmar para não realizar a doação naquela venda.
- O sistema exibe uma confirmação antes de registrar a doação.
- O troco efetivamente devolvido ao cliente é: **troco total − valor doado**.
> **Exemplo:** Venda de R$ 8,70, cliente paga com R$ 10,00. Troco = R$ 1,30. Limite configurado = R$ 2,00. O sistema sugere a doação de R$ 1,30 (menor entre o troco e o limite). O operador confirma. O cliente recebe R$ 0,00 de troco e R$ 1,30 vai para a entidade.
===== Relatórios e fechamento de caixa =====
Os valores de Troco Solidário aparecem nos seguintes relatórios:
* **Relatório de movimento do operador** — exibe uma linha com o total de Troco Solidário arrecadado no período do operador, identificada como "TROCO SOLIDÁRIO".
* **Fechamento de caixa (período)** — o total de doações é somado ao resumo do período, permitindo acompanhar quanto foi arrecadado por caixa.
===== Fluxo completo =====
@startuml
skinparam sequenceArrowColor #1565C0
skinparam sequenceLifeLineBorderColor #1565C0
skinparam sequenceParticipantBackgroundColor #E3F2FD
skinparam sequenceParticipantBorderColor #1565C0
skinparam sequenceFontSize 12
actor Operador
participant PDV as "Caixa (PDV)"
participant Sistema as "Sistema"
Operador -> PDV : Finaliza venda em dinheiro\ncom troco disponível
PDV -> Sistema : Consulta beneficiário do mês
Sistema --> PDV : Retorna nome da entidade
PDV -> Operador : Exibe diálogo:\n"Deseja doar R$ X,XX para [Entidade]?"
alt Operador confirma a doação
Operador -> PDV : Confirma o valor
PDV -> Sistema : Registra a doação
PDV -> Operador : Devolve somente\no troco restante ao cliente
else Operador cancela / zera o valor
Operador -> PDV : Informa valor = R$ 0,00
PDV -> Operador : Devolve o troco\nintegral ao cliente
end
Sistema -> Sistema : Acumula valor no\ntotal do período
@enduml
===== Perguntas frequentes =====
**O diálogo não aparece no caixa. O que verificar?**
- Confirme que a funcionalidade está habilitada nos **Parâmetros do sistema** (aba PDV → Troco Solidário).
- Confirme que há uma entidade cadastrada para o **mês e ano atuais** na tela **Financeiro → Troco Solidário**.
- Verifique se o caixa está sincronizado (realize uma carga de dados ou aguarde a sincronização automática).
- A funcionalidade só é acionada em vendas pagas com **dinheiro** que geram troco — não aparece em cartão, PIX ou outros meios.
**É possível ter entidades diferentes em cada mês?**
Sim. Na tela de gestão (Financeiro → Troco Solidário) é possível configurar uma entidade diferente para cada mês do ano.
**O valor máximo de doação pode ser diferente por caixa?**
Não. O limite é configurado por empresa e se aplica a todos os caixas igualmente.
**Como saber o total arrecadado no mês?**
O total aparece no relatório de movimento do operador e no resumo do fechamento do período de cada caixa.