ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Gerar data de vencimentos

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
gatofelix
Novato
Novato


Registrado: Sábado, 16 de Janeiro de 2010
Mensagens: 27

MensagemEnviada: Ter Fev 04, 2020 5:48 pm    Assunto: Gerar data de vencimentos Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qua Fev 05, 2020 9:11 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
gatofelix
Novato
Novato


Registrado: Sábado, 16 de Janeiro de 2010
Mensagens: 27

MensagemEnviada: Qua Fev 05, 2020 12:27 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
gatofelix
Novato
Novato


Registrado: Sábado, 16 de Janeiro de 2010
Mensagens: 27

MensagemEnviada: Qua Fev 05, 2020 6:58 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Qui Fev 06, 2020 9:52 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB