Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Quati Maldito

Lançamento de Parcelas

Recommended Posts

Olá!Pessoal, estou precisando fazer uma parte de um sistema, que cobrará por período, de mês em mês..Tipo, eu informo o período, ex.: 03/04/2007 a 03/04/2008, 12 meses, como lançar esses pagamentos..Naum sei como fazer para ao receber estas datas, separar por mês para lançar em uma tabela todos os meses do período..Se alguém poder dar uma idéia de como fazer esse esquema eu agradeço muito.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi bem o que quer fazer você tem que fazer uma SQL com o Between

mais ou menos assim:

Sql = "Select * From tabela where data Between #" & fim_data & "# And #" & inicio_data & "#"

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá shumi, obrigado pela ajuda antes de mais nada.., mas não fui muito claro, o que eu preciso fazer, é cadastrar as parcelas no banco de dados..Eu entro com o período a ser cobrado, EX.: 03/04/2007 a 03/08/2007, neste exemplo, 4 meses.Depois de receber essa data, preciso identificar quais os meses que estão dentro do período, e cadastrar um a um numa tabela.Neste exemplo, seria 4 períodos a ser cobrado :03/04/2007 a 03/05/200703/05/2007 a 03/06/200703/06/2007 a 03/07/200703/07/2007 a 03/08/2007preciso identificar o nome do mês e cadastrar no banco, para poder baixar posteriormente conforme forem pagas as parcelas..usando o datadiff, eu consigo pegar a quantidade de meses dentro do período informado, mas não sei como identificar quais são estes meses para pode lançar as parcelas...se alguém tiver uma idéia melhor de como lançar essas parcelas eu agradeço e mais uma vez obrigado shumi

Compartilhar este post


Link para o post
Compartilhar em outros sites

já tentou fazer um Split ou Mid, pegar o mês inicial, o mês final e fazer a subtração? Fazendo assim você pode colocar dentro de um For para fazer a leitura de cada mês

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara(jonathandj), estave pensando e fiquei com a seguinte dúvida..Se eu tiver um período assim : datainicial = "01/02/2007" datafinal = "01/02/2008"Não vai rodar todos os meses dentro do for...Tá f.., to quebrando a cabeça.. mas ainda naum consegui resolver isso..., pior que aparentemente parece ser uma coisa tosca né...Se tiver alguma coisa a acrescentar, vlwObrigado a todos..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz um sistema de boleto bancário, onde a pessoa digitava 3 campos:

 

Data da primeira parcela. Ex: 03/04/2007

Qtd de Títulos. Ex: 26

Valor do Título. Ex: 220,00

 

Daí eu usava o DateAdd da seguinte forma: (Vou tentar comentar pra explicar melhor

 

'Aqui inicio o For onde parc é a quantidade de parcelas, to recuperando no requestFOR aux = 0 TO (request("parc")-1)'Eu faço uma coisas que precisei, mas você pode reduzir o codigo, aqui eu vou somando um mes a cada volta do loop e armazenando na variável ExbVenExbVen = DateAdd("m", aux, request("dtVenc"))'Daí eu formato no modo MM/DD/YYYY, mas se você não precisar, tire essa linhadtVenc = right("0"&month(ExbVen),2)&"/"&right("0"&day(ExbVen),2)&"/"&year(ExbVen)auxCont = auxCont + 1'Aqui eu faço a inserção no banco.sqlTit = "INSERT INTO Titulos (codEnt, dtVenc, QTD, VLR, codSit) VALUES (" & _int("0"&session("CodEntAlu"))&",'"&dtVenc&"',"&request("parc")&",'"&replace(replace(request("vlr"),".",""),",","") & "',0)"conSTR.Execute sqlTit,,128NEXT

Depois é só fazer um select no banco e ver as parcelas gravadas pra esse usuário, no meu caso codEnt

 

Qualquer coisa posta aí...

 

Falow...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!Obrigado pela ajuda datasetCara, achei bacana essa idéia sua, pois eu consigo determinar a quantidade de meses entre as datas que vou receber no programa pelo datediffTipo :01/01/2007 - 01/01/2008são 12 meses, essa seria minha quantidade de parcelas..então eu pego a primeira data e depois vou dando dateadd no mês..Mas ainda assim eu tenho uma dúvida...Quando eu dar o dateadd, e quanto aos meses que forem 30 ou 31 dias, ou mesmo fevereiro sendo 28 ou 29..., nestes casos não vai dar problema por causa do dateadd? Tipo, ele trata essas diferenças ?Obrigado mais uma vez pessoal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se entendi, acho que isso te ajuda a dar uma luz

<%parcelas			= 20primeiro_vencimento = "31/02/2007"x		  = parcelasmes		= primeiro_vencimentoarr		= split(mes,"/")mes_ini	= arr(1)x		  = x + mes_iniaux		= mes_inij		  = 1ano		= arr(2) + 1dia		= arr(0)meses30	= "04,06,09,11"meses31	= "01,03,05,07,08,10,12"arrMeses31 = split(meses30,",")arrMeses30 = split(meses31,",")for i = mes_ini to x - 1  if cint(arr(1)) <> 2 then  dia = cint(arr(0)) elseif cint(arr(0)) > 28 then  dia = 28  end if if dia > 30 then  for a = 0 to cint(ubound(arrMeses31))   if cint(arrMeses31(a)) = i then	dia = 30	exit for    end if  next	 end if    if i <= 12 then  Response.Write(right("00" & dia,2) & "/" & right("00" & i,2) & "/" & arr(2)) elseif i > 12 then  if j > 12 then   j = 1   ano = ano+1  end if    if cint(arr(1)) <> 2 then   dia = cint(arr(0))  elseif cint(arr(0)) > 28 then   dia = 28   end if  if dia > 30 then   for a = 0 to cint(ubound(arrMeses30))	if cint(arrMeses30(a)) = j then	 dia = 31	 exit for	else	 dia = 30   	end if   next	  end if    Response.Write(right("00" & dia,2) & "/" & right("00" & j,2) & "/" & ano)	  j = j+1 end if Response.Write("<br>")next%>
Faltaria apenas fazer uma verificação se o ano é bisexto para colocar 29 ou 28 no mês de fevereiro. Divirta-se

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!Pessoal, muito obrigado, com a ajuda de todos o código ficou ok. Usei um pouco da contribuição de cada um, agora está robusto, incluisve tratando a verificação se o ano é bisexto para colocar 29 ou 28 no mês de fevereiro.Segue o código para ajudar a quem precisar:

	                parcelas            = 36	primeiro_vencimento = "31/03/2007"	x        = parcelas	mes_ano = primeiro_vencimento	arr      = split(mes_ano,"/")	mes_ini  = arr(1)	x        = x+mes_ini	np = 0	for i = mes_ini to x-1                  np = np + 1	  data_parcela = DateAdd("m", np, primeiro_vencimento)	  Response.Write("  Parcela " & np & " : " & data_parcela)	  Response.Write("<br>")	next

Mais uma vez obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.