C1. Saldo da conta (hoje)
OrigemSoma, por conta, dos lançamentos bancários e das baixas com data anterior a amanhã (data futura só entra quando chegar). Sinal: lançamento de operação E em tipo_lancamento_bancario soma, o resto subtrai; baixa de título R soma, de P subtrai.
Filtrosexcluido <> 'T' nos dois lados; conta ativa (data_desativacao IS NULL OR > hoje); só entra conta com ao menos um lançamento ou baixa (a consulta é um JOIN).
TipoSó conta_bancaria.tipo_conta diferente de '1' aparece como "Banco" (o valor '1' é Caixa/adiantamento/empréstimo). Em central só existem os tipos 1 e 2.
SELECT x.idconta_bancaria, SUM(x.valor) saldo FROM (
SELECT flb.idconta_bancaria, IF(tlb.operacao='E', flb.valor, -flb.valor) valor
FROM financeiro_lancamento_banco flb
LEFT JOIN tipo_lancamento_bancario tlb ON tlb.id = flb.idtipo_lancamento_bancario
WHERE flb.excluido <> 'T' AND flb.data < CURDATE() + INTERVAL 1 DAY AND flb.idconta_bancaria = :conta
UNION ALL
SELECT fb.idconta_bancaria, IF(fe.tipo_emissao='R', fb.valor, -fb.valor)
FROM financeiro_baixas fb
LEFT JOIN financeiro_emissao fe ON fe.id = fb.idfinanceiro_emissao
WHERE fb.excluido <> 'T' AND fb.data_baixa < CURDATE() + INTERVAL 1 DAY AND fb.idconta_bancaria = :conta) x
GROUP BY 1
CacheO saldo das contas tem um cache próprio de 5 minutos no 382 (por banco + dia), que o botão Atualizar do painel não limpa (ele só refaz a apuração do painel). Depois de um lançamento ou baixa novos, o saldo pode levar até 5 minutos para mudar; reportar "saldo desatualizado" só depois disso. Guardar as contas do painel limpa só o cache do painel.