Esta é tanto uma questão de db/programação quanto uma questão de contabilidade/matemática, então estou postando em todos os fóruns relevantes. Eu aprecio sua paciência com antecedência.
Basicamente, estou tendo problemas para entender um livro de pagamentos. Meu sistema tem três tabelas: CHARGES, PAYMENTS e PAYMENTS_TO_CHARGES. O problema é que parte do requisito do sistema exige a capacidade de associar diretamente um pagamento a uma COBRANÇA, bem como permitir que os membros postem pagamentos em excesso (ou créditos) em suas contas. Portanto, há a necessidade de rastrear os créditos e aplicá-los conforme necessário para ENCARGOS futuros.
Talvez eu esteja pensando nas coisas do ponto de vista errado, mas estou imaginando ENCARGOS como DÉBITO e PAGAMENTOS como CRÉDITO. No entanto, parece que ambos podem ter DÉBITO/CRÉDITO, dependendo da sua abordagem contábil.
Portanto, minha pergunta - oficialmente - é qual é a melhor maneira de rastrear / reconciliar pagamentos e cobranças, enquanto ainda permite pagamentos em excesso etc. Estou tentando descobrir as tabelas de banco de dados e a lógica de negócios, mas sempre Eu resolvo um problema, um item reverso (ou inverso) se apresenta. Permito que o relacionamento muitos-para-muitos rastreie números positivos e negativos por transação? Eu crio uma cobrança universal falsa à qual todos os créditos se aplicam? Devo criar uma tabela CREDITS completamente separada? Como você pode ver, provavelmente estou pensando demais nisso, mas certamente estou confuso.
Se todas as transações fossem garantidas de 1 para 1, obviamente seria muito mais simples. Infelizmente eles não são
Veja também:
e
https://stackoverflow.com/questions/5543025/need-to-reconcile-accounts-on-a-poorly-designed-system
Este é o problema. Existem vários estilos de contabilidade. Você está usando dupla entrada? Eu recomendaria aprender contabilidade de partidas dobradas. É complicado mas funciona.
Isso é para uma tarefa real ou para aprender?
Aqui está um sistema que pode ser fácil de explorar para fornecer os conceitos de que você precisa para seguir em frente? Conheço o autor (por meio deste podcast, mas não pessoalmente), mas não examinei a base de código. Só sei que faz contabilidade DE.
http://twit.tv/floss150
Um sistema com o qual trabalhei tinha as quatro tabelas a seguir (entre outras).
As transações podem ser cobranças, pagamentos, reembolsos, estornos, créditos etc. valores positivos representam dívidas da conta relacionada conosco, valores negativos representam créditos ou outras reduções de dívida. As faturas denotavam informações resumidas periódicas aos clientes. As transações foram (às vezes parcialmente) aplicadas contra faturas.