Loop de Mensalidade
09/01/2013
0
Olá pessoal, preciso muito da ajuda de vocês, o negócio é o seguinte, no meu sistema tenho um loop de geração de mensalidade, onde passo como parâmetro o código do aluno, o código da matricula do aluno e a data de inscrição do aluno, da seguinte maneira:
Aí sim, depois de "jogado" nas variáveis os dados que eu preciso eu faço o loop assim:
Mas o problema é o seguinte, quando um mesmo aluno se matricula em duas modalidades ou mais, ele fica com dois códigos de matricula e duas datas de inscrição, que é o correto mesmo, porém eu não pensei nisso antes, minha dúvida é: como eu faço pra gerar as mensalidades com as duas matriculas??
Eu uso Delphi7, SQLServer 2005, ADOQuery e Datasource
Desde já agradeço!
//Query responsável para pegar a data de inscrição e o codigo da matricula do aluno qryDataInscricao.Close; qryDataInscricao.Parameters.ParamByName('codigo').Value := codigoaluno; qryDataInscricao.Open; if ((DBEdit3.Text <> '')and(DBEdit4.Text <> '' )) then begin codigoMatricula := StrToInt(DBEdit4.Text); dataInscricao := StrToDateTime(DBEdit3.Text); end
Aí sim, depois de "jogado" nas variáveis os dados que eu preciso eu faço o loop assim:
while i <= Quant_mes do begin qryInsertMensalidade.Parameters.ParamByName('codigo_paciente').Value := codigoaluno; qryInsertMensalidade.Parameters.ParamByName('codigo_matricula').Value := codigoMatricula; qryInsertMensalidade.Parameters.ParamByName('data_vencimento').Value := IncMonth(dataInscricao,(i)); qryInsertMensalidade.Parameters.ParamByName('descricao').Value := 'MENSALIDADE - ' + DBEdit1.Text; qryInsertMensalidade.Parameters.ParamByName('valor').Value := qryDataInscricaovalor_mensal.Value; datarepetida := qryInsertMensalidade.Parameters.ParamByName('data_vencimento').Value; qryExisteDebito.Close; qryExisteDebito.Parameters.ParamByName('codigoPaciente').Value := codigoaluno; qryExisteDebito.Parameters.ParamByName('dataVencimento').Value := datarepetida; qryExisteDebito.Open; //Se tiver mensalidade para este mês não deverá gerar o mesmo if not qryExisteDebito.Locate('data_vencimento',datarepetida,[]) then begin qryInsertMensalidade.ExecSQL; end; qryGrid.Next; i := i + 1; end;//fim do while
Mas o problema é o seguinte, quando um mesmo aluno se matricula em duas modalidades ou mais, ele fica com dois códigos de matricula e duas datas de inscrição, que é o correto mesmo, porém eu não pensei nisso antes, minha dúvida é: como eu faço pra gerar as mensalidades com as duas matriculas??
Eu uso Delphi7, SQLServer 2005, ADOQuery e Datasource
Desde já agradeço!
Klaus
Curtir tópico
+ 0
Responder
Posts
10/01/2013
Walter Desidera
Você pode fazer um loop na tabela de matriculas e depois fazer o seu mesmo loop na tabela de menssalidades tipo. Um loop dentro de outro loop:
O primeiro loop corre a tabela de matriculas passando o código/matricula do aluno que entra no o segundo inserindo os dados das mensalidades. Um linha da tabela matriculas, insere várias mensalidades.
Espero ter ajudado =)
//Loop 1 qryDataInscricao.First; while not(TabelaDadosAluno.eof) to begin //Loop 2 For i:=0 to pred(NumeroDeMenssalidade) do with TabelaMenssalidade.Parameters do begin Parameters.ParamByName('codigo_paciente').Value := codigoaluno; Parameters.ParamByName('codigo_matricula').Value := codigoMatricula; ... end; TabelaDadosdoAluno.Next; end;
O primeiro loop corre a tabela de matriculas passando o código/matricula do aluno que entra no o segundo inserindo os dados das mensalidades. Um linha da tabela matriculas, insere várias mensalidades.
Espero ter ajudado =)
Responder
Clique aqui para fazer login e interagir na Comunidade :)