Fórum Mensalidade #409387
15/11/2011
0
Estou em dúvida de como devo proceder com as mensalidades...como seriam minhas tabelas, os relacionamentos, essas coisas...pesquisei muito antes de chegar aqui, mas só consegui achar coisas relacionadas a código, e não é isso que preciso no momento...preciso de idéias!!
Klaus
Curtir tópico
+ 0Posts
16/11/2011
Wesley Yamazack
Vamos ver se consigo te dar uma ajuda. Primeiramente você tem que ter os clientes/alunos(tabela). Depois em uma tabela simples(mensalidade) com as seguintes informações :
Descricao [caso você queria gerar uma série de boletas por ano, 1 de 12]
IDMensalidade [Código autoincremento]
DataVencimento
DataPagamento
ValorTotal
ValorPago
IDCliente [Código do cliente já cadastrado]
Juros
Mora
Será que isso te ajuda a esclarecer as ideias ?
Att,
Wesley Y
www.lithic.com.br
Gostei + 0
16/11/2011
Klaus
Gostei + 0
17/11/2011
Wesley Yamazack
Vamos lá. Recentemente até fiz isso em um cliente, só que como a forma de pagamento dele é bem diversificado eu deixei para que ele informasse as datas de vencimento, ou seja, ele vai colocar em cada parcela a data de vencimento.
Vamos supor o seguinte , você comprou 1000 reais na loja, e quer fazer em 4 x, dividindo da um total de 250,00 pra cada parcela.
Teu sistema teria que fazer um loop gerando as 4 parcelas automaticamente, se você usa ClientDataSet terá que fazer algo mais ou menos assim :
for i:= 1 to qtdeparcelas do begin cdsparcela.insert; cdsparcela.FieldbyName(IDVenda).asinteteger := IDVenda; cdsparcela.FieldbyName(Valor).asfloat := valor; cdsparcela.FieldbyName(DtVencimento).asdate := incMonth(Date,(qtdeparcela)); cdsparcela.post; end;
Observe que coloquei uma função chamada incMonth, nela você acrescenta o número de meses desejados em cima de uma data, então se hoje é dia 17/11/2011, quando ele passar no loop teremos o seguinte :
[1] = 17/12/2011 [2] = 17/01/2012 [3] = 17/02/2012 [4] = 17/03/2012
Mas isso é um caso diferente do que eu usei neste meu cliente, neste caso estou partindo do principio que você terá parcelas fixas de 30dias contando da data de hoje, ok ?
Qualquer dúvida só mandar o retorno.
Um abraço.
Gostei + 0
21/11/2011
Klaus
O que eu preciso é mais simples do que vc tá tentando me explicar...vou tentar dizer melhor o que eu preciso...
Estou fazendo um sistema pra controlar uma escolinha de futebol, coisa muito simples, cadastro de alunos e controle de mensalidades...
vc tinha me passado isso antes?
Descricao [caso você queria gerar uma série de boletas por ano, 1 de 12]
IDMensalidade [Código autoincremento]
DataVencimento
DataPagamento
ValorTotal
ValorPago
IDCliente [Código do cliente já cadastrado]
Juros
Mora
isso me tatisfaz, creio que só vou precisar dessa tabela que vc me passou dos seguintes campos:
IDMensalidade [Código autoincremento]
DataVencimento
DataPagamento
ValorPago
IDCliente [Código do cliente já cadastrado]
contudo, o que está me matando é que não sei como vou controlar esse campo DataPagamento, visto que cada mês terá uma data diferente.
**O que eu preciso realmente é de uma forma de controlar a mensalidade, seja ela da maneira que for...
Gostei + 0
21/11/2011
Wesley Yamazack
Inicialmente você irá precisar de uma tela para gerar as parcelas, quantas são ? Seriam 12 ?
Por exemplo, você terá 12 datas de vencimentos
01.01.2012 01.02.2012 01.03.2012 . . . 01.10.2012 01.11.2012 01.12.2012
Desta forma você terá para um determinado aluno 12 registro, com as datas de pagamento em branco, o que você tem que fazer é, criar uma outra tela para dar baixar, ou seja, preencher a data de pagamento apenas.
Para você saber quem pagou ou não pagou você saberá se a data de pagamento estiver em branco, ou seja :
SELECT * FROM MENSALIDADE WHERE DATAPAGAMENTO IS NULL AND DATAVENCIMENTO >= 01/01/2011 AND DATAVENCIMENTO <= 31/01/2011
Com isso você terá todos os alunos que te devem no mes de janeiro, sacou ?
Qualquer coisa posta que damos um jeito, um abraço.
Att,
Wesley Y
wyamazack@lithic.com.br
Gostei + 0
14/01/2012
Wesley Yamazack
Um abraço.
Gostei + 0
20/01/2012
Klaus
Abraço!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)