| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
gatofelix Novato

Registrado: Sábado, 16 de Janeiro de 2010 Mensagens: 27
|
Enviada: Ter Fev 04, 2020 5:48 pm Assunto: Gerar data de vencimentos |
|
|
Olá!
Pessoal eu trabalho com software para gerenciamento de academias, onde gero os meus planos de pagamento com as seguintes funções.
IncMonth para Plano Mensal, trimestral, quadrimestral, semestral
IncDay para plano quinzenal
IncYear para plano anual.
Para cada função é um procedimento para separar os planos, teria como alterar a função "IncMonth" em tempo de exeução? porque assim eu criaria somente um plano e trocaria a função de incremento. assim eu usaria um único procedimento para os locais que exigir criar vencimento de acordo com os planos.
end; |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qua Fev 05, 2020 9:11 am Assunto: |
|
|
nao entendi o q vc quer modificar na funcao. pq se vc tem planos com prazos diferenciados, vc tem q fazer um IF pra saber o tipo dele. entao acho q nao vai mudar muito _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
gatofelix Novato

Registrado: Sábado, 16 de Janeiro de 2010 Mensagens: 27
|
Enviada: Qua Fev 05, 2020 12:27 pm Assunto: |
|
|
| joemil escreveu: | | nao entendi o q vc quer modificar na funcao. pq se vc tem planos com prazos diferenciados, vc tem q fazer um IF pra saber o tipo dele. entao acho q nao vai mudar muito |
vou tentar explicar como eu queria ok.
| Código: | procedure Plano(pFuncao : TDateTime; acresc : integer);
var
vquery : Tuniquery;
begin
vquery : Tuniquery.Create(self);
try
with vQuery do
begin
close;
sql.clear;
sql.add('select * from tab_parcelamento');
open;
Append;
//codigo verdadeiro joemil é esse aqui.
FieldByName('Vencimento').value : IncMonth(Vencimento,1);
//quero trocar a função IncMonth em tempo de execução.
FieldByName(Vencimento).value :=pFuncao(Vencimento,pacres);
end;
finally
FreeandNil(vQuery);
end;
end;
if Plano = mensal then
begin
procedure Plano(IncMonth,1)
end;
if Plano = Quinzenal then
begin
procedure Plano(IncDay,15) :
end;
if Plano = Trimestral then
begin
procedure Plano(IncMonth,3) :
end; |
eu criaria um único metodo para todos os planos.
obrigado pelo feedback. |
|
| Voltar ao Topo |
|
 |
gatofelix Novato

Registrado: Sábado, 16 de Janeiro de 2010 Mensagens: 27
|
Enviada: Qua Fev 05, 2020 6:58 pm Assunto: |
|
|
| gatofelix escreveu: | | joemil escreveu: | | nao entendi o q vc quer modificar na funcao. pq se vc tem planos com prazos diferenciados, vc tem q fazer um IF pra saber o tipo dele. entao acho q nao vai mudar muito |
vou tentar explicar como eu queria ok.
procedure Plano(pFuncao : TDateTime; acresc : integer);
var
vquery : Tuniquery;
begin
vquery : Tuniquery.Create(self);
try
with vQuery do
begin
close;
sql.clear;
sql.add('select * from tab_parcelamento');
open;
Append;
//codigo verdadeiro joemil é esse aqui.
FieldByName('Vencimento').value : IncMonth(Vencimento,1);
//quero trocar a função IncMonth em tempo de execução.
FieldByName(Vencimento).value :=pFuncao(Vencimento,pacres);
end;
finally
FreeandNil(vQuery);
end;
end;
if Plano = mensal then
begin
procedure Plano(IncMonth,1)
end;
if Plano = Quinzenal then
begin
procedure Plano(IncDay,15) :
end;
if Plano = Trimestral then
begin
procedure Plano(IncMonth,3) :
end;
eu criaria um único metodo para todos os planos.
obrigado pelo feedback. |
conseguir resolver da seguinte forma.
procedure NovoPlano;
var
vQuery : TUniquery;
result : TDateTime;
begin
vQuery : TUniQuery.Create(Self);
result := 0;
if Plano = 'MENSAL' then
begin
result := IncMonth(Vencimento,1);
end;
if Plano = 'QUINZENAL' then
begin
result := IncDay(Vencimento,15);
end;
if Plano = 'TRIMESTRAL' then
begin
result := IncMonth(Vencimento,3);
end;
try
with vQuery do
begin
close;
sql.Clear;
Sql.Add('select * from tab_parcelamento');
Open;
Append;
FieldByName('Vencimento').value := result;
post;
end;
finally
FreeandNill(vQuery);
end;
end;
topico encerrado, e obrigado. |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Qui Fev 06, 2020 9:52 am Assunto: |
|
|
foi como falei acima, vc tem q usar IF pra verificar o tipo do plano _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
|