Pular para o conteúdo

Assistente técnico contábil, quando o cruzamento de tabelas multiplica os valores

Confira como o cruzamento entre itens e pagamentos multiplica valores e reproduza três resultados com consultas testadas.

Um relatório pode apresentar pagamentos acima do total bancário mesmo quando os arquivos de origem não contêm movimentos repetidos. O erro pode surgir ao combinar duas listas que possuem várias linhas para a mesma nota. Cada item passa a aparecer ao lado de cada pagamento, e a soma dessa tabela aumenta os valores sem criar uma nova operação.

Neste laboratório, o assistente técnico contábil consegue reproduzir o problema, identificar as linhas produzidas pelo cruzamento e conferir uma alternativa que preserva os totais. Todos os documentos, códigos e valores são fictícios. Não há dados de clientes, pagamentos reais ou resultado obtido pela Costa Nova.

Uma nota pode ter vários itens e vários pagamentos

O conjunto contém três notas. A primeira tem dois itens e dois pagamentos parciais. Os pagamentos possuem o mesmo valor, mas identificadores diferentes. A segunda tem um item e um pagamento. A terceira tem um item e nenhum pagamento na base fictícia, que foi definida como completa para este exercício.

Nota Itens individualizados Pagamentos individualizados Total dos itens Total recebido
N1 I1, R$ 600, e I2, R$ 400 P1, R$ 300, e P2, R$ 300 R$ 1.000 R$ 600
N2 I3, R$ 500 P3, R$ 200 R$ 500 R$ 200
N3 I4, R$ 700 Nenhum no conjunto completo R$ 700 R$ 0
Total Quatro itens Três pagamentos R$ 2.200 R$ 800

O saldo nominal do exercício é R$ 1.400. Não se aplicam juros, correção, descontos ou regras de imputação. O propósito é conferir a construção da base, antes de qualquer cálculo financeiro adicional.

Como quatro combinações alteram uma nota de mil reais

Ao cruzar itens e pagamentos pelo código N1, surgem quatro pares: I1 com P1, I1 com P2, I2 com P1 e I2 com P2. Os itens de R$ 600 e R$ 400 aparecem duas vezes. Cada pagamento de R$ 300 também aparece duas vezes. A tabela passa a mostrar R$ 2.000 em itens e R$ 1.200 em pagamentos para uma nota de R$ 1.000.

O erro não está na soma. Ela executa corretamente uma instrução sobre uma tabela cuja unidade deixou de ser item ou pagamento e passou a ser combinação entre os dois. Acrescentar uma fórmula de soma mais precisa não corrige essa mudança de unidade.

Procedimento Linhas resultantes Itens somados Pagamentos somados Diferença nominal
Cruzamento que exige pagamento correspondente 5 R$ 2.500 R$ 1.400 R$ 1.100
Cruzamento que também conserva o item sem pagamento 6 R$ 3.200 R$ 1.400 R$ 1.800
Totais separados por nota, depois relacionados 3 R$ 2.200 R$ 800 R$ 1.400

O primeiro procedimento exclui N3, além de multiplicar N1. O segundo preserva N3, mas mantém a multiplicação. Portanto, conservar registros sem correspondência é necessário para a cobertura desse exemplo e insuficiente para validar as somas.

Somar valores diferentes também não resolve

Uma tentativa de correção seria somar somente valores monetários distintos. Isso reduziria os pagamentos a R$ 500, correspondentes a R$ 300 mais R$ 200. O pagamento P2 desapareceria porque possui o mesmo valor de P1. Identidade de valor não é identidade de operação.

A alternativa demonstrada agrega cada fonte por nota antes do relacionamento. Os quatro itens tornam três totais de faturamento, os três pagamentos tornam dois totais de recebimento e o cadastro das três notas mantém N3 na saída. A diferença por nota fica em R$ 400, R$ 300 e R$ 700.

Em dados reais, uma nota pode depender também de emitente, série e estabelecimento para ser identificada. O exercício adota códigos globais únicos como premissa explícita. Aplicar sua chave curta a outro sistema sem conferir essa premissa pode juntar documentos diferentes.

Arquivos para testar os três resultados

O pacote contém o cadastro de notas, itens, pagamentos, resultados esperados e consultas SQL. O programa opcional verificar.py usa a biblioteca padrão do Python, executa as consultas em uma base SQLite temporária em memória e confere os totais. Não envia documentos à internet nem acessa a contabilidade de uma empresa.

A documentação oficial do PostgreSQL sobre junções explica a formação de uma linha para cada correspondência. A base e as contas acima são uma demonstração própria. O arquivo SQL usa operações também testadas no SQLite e não exige instalar um servidor PostgreSQL.

Ao apresentar o achado em assistência técnica contábil, preserve as duas fontes, a chave utilizada, a contagem de linhas e a consulta executada. Esse diagnóstico é diferente de encontrar extratos importados em duplicidade. Aqui, as linhas de origem são únicas. A multiplicação nasce da transformação e não comprova pagamento duplicado ou desvio financeiro.

Falar pelo WhatsApp