Ir para conteúdo

POWERED BY:

Arquivado

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

Fadweb

Problema Com A Funcao Dateadd

Recommended Posts

Ola estou desenvolvendo um sistema de escola mas estou com dificuldades na geração de datas de boletos pois coloco a data de lançamento para o dia 30 de janeiro “mesdefinido”

Mas em Fevereiro que tem 28 dias ele muda certo so que no mês subseqüente

Ele torna colocar o dia 28 sendo que marco tem 31 dias e no mês subseqüente ele coloca certo sendo o dia 30.

A função usada e a DateAdd (código utlizado : dateadd("M", 1,mesdefinido))

 

Parcela de Curso 1 30/1/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 2 28/2/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 3 28/3/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 4 30/4/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 5 30/5/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 6 30/6/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 7 30/7/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 8 30/8/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 9 30/9/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 10 30/10/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 11 30/11/2010 15,00 Boleto 0,00 Aberto

 

Parcela de Curso 12 30/12/2010 15,00 Boleto 0,00 Aberto

 

 

 

 

<%option explicit%>
<!-- #include file = "include/generico_data.inc" -->
<%dim nr_processo 

if request("operacao") = "D" then 
	nr_processo=22
else
	nr_processo=21
end if
%>
<!-- #include file = "include/valida_acesso.inc" -->
<%

dim sql, id_matricula, rsMatricula, aux_volta, dt_vencimento
dim i
dim rsAcesso
	
	id_matricula = request.form("id_matricula")

	if id_matricula = 0 then

		'Valida Aluno
		dim rsAluno
		sql = "SELECT * from parceiro where id_parceiro = " & Request.Form("id_parceiro")
		set rsAluno = GetRS(sql)
		if rsAluno.eof then 
			Response.write "Aluno não encontrado."
			Response.End 
		end if
		if rsAluno("CPF") = "" and rsAluno("respnome") = "" and rsAluno("respCPF") = "" then 
			Response.write "CPF do Aluno ou Responsavel não preenchido"
			Response.End 
		end if

		'Acha proximo numero de matricula
		sql = "select max(id_matricula) as id_matricula from matricula"
		rsMatricula = getrs(sql)
		if isnull(rsMatricula("id_matricula")) then 
			id_matricula = 1
		else
			id_matricula = rsMatricula("id_matricula") + 1
		end if
	
		sql = "insert into matricula( "
		sql = sql & " id_matricula,"
		sql = sql & " id_aluno,"
		sql = sql & " id_turma,"
		sql = sql & " vr_curso,"
		sql = sql & " vr_desconto,"
		sql = sql & " nr_parcelas,"
		sql = sql & " vr_taxa_matricula,"
		sql = sql & " observacao,"
		sql = sql & " dt_matricula,"
		sql = sql & " id_usuario,"
		sql = sql & " situacao,"
		sql = sql & " forma_pagamento,"
		sql = sql & " dt_parcela,"
		sql = sql & " nr_parcelas_taxa)"
	
		sql = sql & " VALUES ("
	
		sql = sql & id_matricula & ","
		sql = sql & Request.Form("id_parceiro") & ","
		sql = sql & Request.Form("id_turma") & ","
		sql = sql & replace(request.form("vr_curso"),",",".") & ","
		if request.form("vr_desconto") = "" then 
			sql = sql & "0" & ","
		else
			sql = sql & replace(request.form("vr_desconto"),",",".") & ","
		end if
		sql = sql & Request.Form("nr_parcelas") & ","
		sql = sql & replace(request.form("vr_taxa_matricula"),",",".") & ","
		
	'		sql = sql & "'" & Request.Form("observacao") & "',"
		sql = sql & "'',"
		sql = sql & "'" & now() & "',"
		sql = sql & "" & session("id_usuario") & ","
		sql = sql & "'A',"
		sql = sql & "'" & Request.Form("forma_pagamento") & "',"
		sql = sql & "'" & Request.Form("dt_parcela") & "',"
		sql = sql & Request.Form("nr_parcelas_taxa") & ")"
	
		call executecmd(sql)

	elseif request("operacao") = "D" then 

		'Apaga Lancamentos
		sql = "delete from lancamento "
		sql = sql & " where id_matricula = " & request.form("id_matricula")
		call executecmd(sql)

		sql = "delete from matricula "
		sql = sql & " where id_matricula = " & id_matricula
		call executecmd(sql)

		Response.Redirect "matricula_lista.asp?id_aluno=" & Request.Form("id_aluno")
		Response.End 

	else

		sql = "update matricula set "
		sql = sql & " id_turma = " & Request.Form("id_turma") & ","

		sql = sql & " vr_curso = " & replace(replace(request.form("vr_curso"),".",""),",",".") & ","
		if request.form("vr_desconto") = "" then 
			sql = sql & " vr_desconto = 0" & ","
		else
			sql = sql & " vr_desconto = " & replace(request.form("vr_desconto"),",",".") & ","
		end if
		sql = sql & " nr_parcelas = " & Request.Form("nr_parcelas") & ","
		sql = sql & " vr_taxa_matricula = " & replace(request.form("vr_taxa_matricula"),",",".") & ","
		sql = sql & " nr_parcelas_taxa = " & Request.Form("nr_parcelas_taxa") & ","
		
        sql = sql & "observacao =" & """" & replace(request("observacao"),"""","'") & ""","
		sql = sql & "dt_matricula = " & "'" & now() & "',"
		sql = sql & "forma_pagamento = " & "'" & Request.Form("forma_pagamento") & "',"
		sql = sql & "dt_parcela = " & "'" & Request.Form("dt_parcela") & "'"

		sql = sql & " where id_matricula = " & id_matricula

		call executecmd(sql)
	end if


		'Fechamento de Matricula
'		if request("operacao") = "C" then

			'Traz registro de matricula
			sql = "SELECT * from matricula where id_matricula = " & id_matricula
			set rsMatricula = GetRS(sql)
			
			'Apaga Lancamentos antigos
			sql = "delete from lancamento "
			sql = sql & " where id_matricula = " & request.form("id_matricula")
			call executecmd(sql)

			'Taxa de Matricula
			if rsMatricula("vr_taxa_matricula") > 0 then 
				dt_vencimento = formatdatetime(now(),2)
				for i = 1 to rsMatricula("nr_parcelas_taxa")
					if i > 1 then 
'					dt_vencimento = "15" & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)  
					dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					dt_vencimento = dateadd("M", 1, dt_vencimento)
					end if
					sql = "insert into lancamento (tp_lancamento, id_parceiro, nr_parcela, "
					sql = sql & " dt_lancamento, dt_vencimento, vr_parcela, vr_desconto, forma_pagamento, "
					sql = sql & " nr_documento, vr_tx_boleto, id_situacao_lancamento, id_matricula)"
					sql = sql & " values(" 
					sql = sql & "5" & ","
					sql = sql & rsMatricula("id_aluno") & ","
					sql = sql & cstr(i) & ","
					sql = sql & "'" & now() & "',"
					sql = sql & "'" & dt_vencimento & "',"
					sql = sql & replace(rsMatricula("vr_taxa_matricula")/rsMatricula("nr_parcelas_taxa"),",",".") & ","
					sql = sql & "0" & ","
					sql = sql & "'" & rsMatricula("forma_pagamento") & "',"

'					sql = sql & "'" & right("000000" + cstr(rsMatricula("id_matricula")),6) & "05" & right("00" + cstr(i),2) & "',"
'					sql = sql & "'" & right("0000" + cstr(rsMatricula("id_matricula")),4) & right("00" + cstr(day(dt_vencimento)), 2) & right("00" + cstr(month(dt_vencimento)),2) & right("00" + cstr(year(dt_vencimento)),2) & "',"
					sql = sql & "null,"

'					if rsMatricula("forma_pagamento") = "B" then 
'						sql = sql & "2.4,"
'					else				
						sql = sql & "0,"
'					end if
	
					sql = sql & "1" & ","
					sql = sql & rsMatricula("id_matricula") & ")"
					call executecmd(sql)
				next
			end if			
	
			'Gera lançamentos
			dt_vencimento = rsMatricula("dt_parcela")
			Session("DataVenc") = day(dt_vencimento)
'			response.Write(Session("DataVenc") & "<br>") 
'			response.Write(Session("DataVenc") & "<br>") 
'			response.Write(month(dt_vencimento) & "<br>") 
'			response.End() 
'			response.End() 
			for i = 1 to rsMatricula("nr_parcelas")
				if i > 1 then 
					if day(dt_vencimento) <> Session("DataVenc") then
					Select Case month(dt_vencimento)
					case 1
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 2
					 dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 3
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 4
					 dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 5
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 6
					 dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 7
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 8
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 9
					 dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 10
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 11
					 dt_vencimento = day(dt_vencimento) & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					 case 12
					 dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)
					Case else
					dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)  
					End Select  
					else								
					dt_vencimento = Session("DataVenc") & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)  
					end if 
'					dt_vencimento = "15" & "/" & month(dt_vencimento) & "/" & year(dt_vencimento)  
'					dt_vencimento = dateadd("M", 1, dt_vencimento)
					dt_vencimento = dateadd("M", 1, dt_vencimento)


				end if

				sql = "insert into lancamento (tp_lancamento, id_parceiro, nr_parcela, "
				sql = sql & " dt_lancamento, dt_vencimento, vr_parcela, vr_desconto, forma_pagamento, "
				sql = sql & " nr_documento, vr_tx_boleto, id_situacao_lancamento, id_matricula)"
				sql = sql & " values(" 
				sql = sql & "1" & ","
				sql = sql & rsMatricula("id_aluno") & ","
				sql = sql & cstr(i) & ","
				sql = sql & "'" & now() & "',"
				sql = sql & "'" & dt_vencimento & "',"
				sql = sql & replace((rsMatricula("vr_curso")/rsMatricula("nr_parcelas")),",",".") & ","
				sql = sql & replace((rsMatricula("vr_desconto")/rsMatricula("nr_parcelas")),",",".") & ","
				sql = sql & "'" & rsMatricula("forma_pagamento") & "',"

'				sql = sql & "'" & right("000000" + cstr(rsMatricula("id_matricula")),6) & "01" & right("00" + cstr(i),2) & "',"
'				sql = sql & "'" & right("0000" + cstr(rsMatricula("id_matricula")),4) & right("00" + cstr(day(dt_vencimento)), 2) & right("00" + cstr(month(dt_vencimento)),2) & right("00" + cstr(year(dt_vencimento)),2) & "',"
					sql = sql & "null,"

'				if rsMatricula("forma_pagamento") = "B" then 
'					sql = sql & "2.4,"
'				else				
					sql = sql & "0,"
'				end if
				
				sql = sql & "1" & ","
				sql = sql & rsMatricula("id_matricula") & ")"
'response.Write(sql & "<br>") 
				call executecmd(sql)
				
			next

'response.End()
			'Altera situacao da matricula
'			sql = "update matricula set "
'			sql = sql & "situacao = " & "'F'"
'			sql = sql & " where id_matricula = " & request.form("id_matricula")
'			call executecmd(sql)

			'Insere Atendimento no aluno
			sql = "insert into parceiro_historico ( "
			sql = sql & " id_parceiro,"
			sql = sql & " dt_historico,"
			sql = sql & " tipo_atendimento,"
			sql = sql & " ds_observacao,"
			sql = sql & " id_parceiro_usuario)"
			sql = sql & " VALUES ("
			sql = sql & rsMatricula("id_aluno") & ","
			sql = sql & "'" & now() & "',"
			sql = sql & "'P',"
			sql = sql & "'Matricula n. " & cstr(rsMatricula("id_matricula")) & "',"
			sql = sql & "" & session("id_usuario") & ")"
			call executecmd(sql)
			
			'Altera Tipo de Parceiro
			sql = "update parceiro set "
			sql = sql & "tipo = " & "'A'"
			sql = sql & " where id_parceiro = " & rsMatricula("id_aluno")
			call executecmd(sql)
			
'		end if
'	end if

	Response.Redirect "matricula_detalhe.asp?id_matricula=" & id_matricula
	Response.End 
	
%>


<script LANGUAGE=VBSCRIPT>
sub	window_onload()
	<%if request("operacao") = "D" or request("operacao") = "C" or request.form("id_matricula") = 0 then %>
		call window.history.go(-2)
	<%else%>
		call window.history.go(-1)
	<%end if%>
end sub
</SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que seja melhor você usar a função para aumentar um mês e subtrair um dia

 

Algo assim

 

Defina o dia 1 do mês

 

Use Deteadd para subtrair um dia e terá o ultimo dia do mês anterior

 

Para o próximo mês some um e depois volte a subtrair um dia

Compartilhar este post


Link para o post
Compartilhar em outros sites

acredito que seja melhor você usar a função para aumentar um mês e subtrair um dia

 

Algo assim

 

Defina o dia 1 do mês

 

Use Deteadd para subtrair um dia e terá o ultimo dia do mês anterior

 

Para o próximo mês some um e depois volte a subtrair um dia

 

 

Ola não entendi muito poderia exemplificar eu ja to utilizando para somar 1 mes mas como fevereiro so tem 28 dias os outros meses ficavam todos dia 28 ai antes de antrar no loop eu gravei em um sessao do dia que cadastra pelo formulario so que mesmo assim ainda ta acontecendo que o mes seguinte ele pega dia 28 em marco e abril ele coloca o dia que foi gravado na sessao.

obrigado abracos e felicidades

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe uma funçao no lab. de script que cálcula os dias úteis, pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe uma funçao no lab. de script que cálcula os dias úteis, pode te ajudar

 

 

não achei poderia me passar o link pois pesquisei e quando fui para a pagina 2 dos resusltados da erro

Not Acceptable

An appropriate representation of the requested resource /index.php could not be found on this server.

 

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Função que calcula quantos dias úteis (segunda à sexta) possuem entre duas datas:

 

<HTML>
<%Dim weekend 'dias não úteis(Sábado e Domingo)
Dim diferenca 'número de dias entre a data inicial e a final
data_inicial = "01/04/2010"
data_final = "01/09/2010"
dias_uteis = 0
weekend = 0
Function datas(data_inicial,data_final)
diferenca = DateDiff("d",data_inicial,data_final)
dia = Weekday(data_inicial)
For contador = 0 to diferenca
If dia = 1 Then weekend = weekend + 1
If dia = 7 Then weekend = weekend + 1
dia = dia + 1
If dia > 7 Then dia = 1
Next
dias_uteis = diferenca - weekend
End Function
datas data_inicial,data_final%>
<BODY><BR>
<%=dias_uteis %> dias úteis entre <%= data_inicial %> e <%= data_final %>
</BODY>
</HTML>

Obs.: Caso haja feriados, basta subtrair sua quantidade da variavel dias_uteis.

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.