Mensalidade

Delphi

15/11/2011

Olá Pessoal, estou querendo fazer um sistema de controle de uma escolinha de futebol...eu uso Delphi7 e SQL Server 2005 (ADOquery).

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

Klaus

Curtidas 0

Respostas

Wesley Yamazack

Wesley Yamazack

15/11/2011

Olá Klaus,
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
Klaus

Klaus

15/11/2011

Sim WESLEY, ajudou bem sim, te agradeço por isso, porém, estou com uma outra dúvida...como faço pra gerar datas diferentes na data do vencimento, pq depois que eu der baixa nesse pagamento o sistema tem que colocar outra data certo?
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

15/11/2011

olá Klaus,

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
Klaus

Klaus

15/11/2011

WESLEY, obrigado novamente por responder minha solicitação...

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
Wesley Yamazack

Wesley Yamazack

15/11/2011

olá Klaus, vamos lá.

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
Wesley Yamazack

Wesley Yamazack

15/11/2011

Olá Klaus, gostaria de saber como ficou o teu problema, conseguiu resolver?

Um abraço.
GOSTEI 0
Klaus

Klaus

15/11/2011

pow WESLEY, desculpa por não ter te respondido antes cara...muito obrigado pela ajuda, consegui resolver o meu problema com as dicas q vc me deu aqui...

Abraço!!
GOSTEI 0
POSTAR