Ir para conteúdo

Arquivado

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

Gilberto Jr

Verificando se a Data é feriado

Recommended Posts

Bom dia Galera,

 

Vem eu novamente com novas duvidas que eu não consegui resolver.

 

Seguinte, no meu banco de dados eu criei uma tabela com o nome FERIADO onde eu vou colocar todos os ferias NACIONAIS, ESTADUAIS e MUNICIPAIS.

 

Na hora que eu for salvar a minha parcela no banco de dados eu verifico se é final de semana, se for no sábado e joga mais dois dias para cair na segunda, e se cair no domingo ele joga mais um dia para cair na segunda.

 

Só que se a segunda é feriado? Um exemplo vai ser o dia 07/09/2015 que vai cair na segunda feira. O sistema deveria jogar a data para o dia 08/09/2015. Porém o dia 08/09/2015 é feriado aqui em VITÓRIA/ES. Então ele deve jogar para o dia 09/09/2015.

 

Eu fiz esse código mas não esta dando certo.

<%
function mask_data( obj )
		obj = CDAte( obj )
		dia = Day( obj  )
		mes = Month( obj )
		ano = Year( obj )
	
			if dia < 10 then
				dia = "0" & dia
			end if

			if mes < 10 then
				mes = "0" & mes
			end if
					
		 mask_data = dia &"-"& mes
end function

function mask_datab( obj )
		obj = CDAte( obj )
		dia = Day( obj  )
		mes = Month( obj )
		ano = Year( obj )
	
			if dia < 10 then
				dia = "0" & dia
			end if

			if mes < 10 then
				mes = "0" & mes
			end if
					
		 mask_datab = ano &"-"& mes &"-"& dia
end function

valor = 100

prazo = 5

parcela = 3

data = "01/09/2015" 'A DATA DE LANÇAMENTO DO BOLETO

ParcelaInicial 	= 1
ParcelaFinal	= 3 'O QUE VEM DO FORM

response.Write(mask_data(data)) 'AQUI EU MOSTRO A DATA DE LANÇAMENTO NA TELA


response.Write("<br><br>")


for Parcelas = ParcelaInicial to ParcelaFinal

	data = DateAdd("d", cint(prazo), formatdatetime(data,2))

set rs = conn.execute("select count(*) as feriado from feriado where data='"&mask_data(data)&"'") 
set rs2 = conn.execute("select * from feriado where data='"&mask_data(data)&"'")

if cint(rs("feriado")) = 1 then
response.Write("feriado")
elseif cint(rs("feriado")) = 0 then
response.Write("livre")
end if
	
	if cint(rs("feriado")) = 1 then 
	
			if mask_data(rs2("data")) = mask_data(data) then
		
				response.Write(mask_datab(data+1)&"<br>")
			
			elseif weekday(mask_datab(data)) = 7 then
			
				response.Write(mask_datab(data+2)&"<br>")
			
			elseif weekday(mask_datab(data)) = 1 then
			
				response.Write(mask_datab(data+1)&"<br>")
			
			else
			
				response.Write(mask_datab(data)&"<br>")
			
			end if
			
			
	elseif cint(rs("feriado")) = 0 then
	
		
			if weekday(mask_datab(data)) = 7 then
			
				response.Write(mask_datab(data+2)&"<br>")
			
			elseif weekday(mask_datab(data)) = 1 then
			
				response.Write(mask_datab(data+1)&"<br>")
			
			else
			
				response.Write(mask_datab(data)&"<br>")
			
			end if
	
	end if
	
next

%>

Se alguém puder me ajudar.

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

após fazer o primeiro dateadd, verifique depois se a data adicionada é igual ao feriado no bd, se for, faz outro dateadd

Compartilhar este post


Link para o post
Compartilhar em outros sites

Xan, o código ficaria assim?

<%function mask_data( obj )		obj = CDAte( obj )		dia = Day( obj  )		mes = Month( obj )		ano = Year( obj )				if dia < 10 then				dia = "0" & dia			end if			if mes < 10 then				mes = "0" & mes			end if							 mask_data = ano &"-"& mes &"-"& diaend functionfunction mask_mesdia( obj )		obj = CDAte( obj )		dia = Day( obj  )		mes = Month( obj )		ano = Year( obj )				if dia < 10 then				dia = "0" & dia			end if			if mes < 10 then				mes = "0" & mes			end if							 mask_mesdia = dia &"-"& mesend functionfor i = ParcelaInicial to ParcelaFinal'INICIO VERIFICANDO SE O DIA DE VENCIMENTO DA PARCELA É NO SABADO E NO DOMINGOdata = DateAdd("d", cint(prazo), formatdatetime(data,2))if weekday(mask_data(data)) = 7 then	data1 = mask_data(data+2)elseif weekday(mask_data(data)) = 1 then	data1 = mask_data(data+1)else	data1 = mask_data(data)end if'FIM VERIFICANDO SE O DIA DE VENCIMENTO DA PARCELA É NO SABADO E NO DOMINGOset buscaparcela = conn.execute("select count(*) as parcela from tec_contaspagar where numero_documento='"&request.Form("documento")&"' and tipo='A' and id_fornecedor='"&request.Form("fornecedor")&"'")user = session("nome")parc = buscaparcela("parcela")parc2 = cint(parc)+1set insertcpg = conn.execute("insert into tec_contaspagar (numero_documento, tipo, data, parcela, valor_parcela, data_emissao, data_vencimento, tipo_pgto, id_rede, id_cliente, id_fornecedor,acertado, user_system, observacao, dataregistro) values ('"&request.Form("documento")&"','A','"&mask_data(request.Form("dataemissao"))&"','"&parc2&"','"&round(dividido)&"','"&mask_data(request.Form("datavencimento"))&"','"&mask_data(data1)&"','"&request.Form("formapgto")&"','99','439','"&request.Form("fornecedor")&"',1,'"&session("nome")&"','"&request.Form("observacao")&"','"&mask_data(Date)&"')")'INICIO VERIFICO SE A DATA QUE ENTROU COMO VENCIMENTO É FERIADOset verfica_feriado = conn.execute("select count(*) as feri from feriado where data='"&mask_mesdia(data1)&"'")if cint(verfica_feriado("feriado")) = 1 thenset update_data = conn.execute("update tec_contaspagar set data_vencimento=data_vencimento+1 where numero_documento='"&request.Form("documento")&"' and id_fornecedor='"&request.Form("fornecedor")&"' and parcela='"&parc2&"'") 'SE FOR VERIFIADO ACRESCENTA MAIS UM DIAend if'FIM VERIFICO SE A DATA QUE ENTROU COMO VENCIMENTO É FERIADOnext'response.End()set somaparcela = conn.execute("select sum(valor_parcela) as totalparcela from tec_contaspagar where numero_documento='"&request.Form("documento")&"' and tipo='A'")set ult_parcela = conn.execute("select parcela as ultimaparcela, valor_parcela from tec_contaspagar where numero_documento='"&request.Form("documento")&"' and tipo='A' order by parcela desc limit 0,1")valor = request.Form("valordocumento")totalpacela = somaparcela("totalparcela")ultimaparcela = ult_parcela("valor_parcela")valoreal = (valor)-(totalpacela)valor_real_ultima_parcela = replace(ultimaparcela+valoreal,",",".")set update_parcela = conn.execute("update tec_contaspagar set valor_parcela='"&valor_real_ultima_parcela&"' where numero_documento='"&request.Form("documento")&"' and tipo='A' and parcela='"&ult_parcela("ultimaparcela")&"'")	response.Redirect("form_lancar_titulo.asp?documento="&request.Form("documento")&"&fornecedor="&request.Form("fornecedor")&"&codigo=1&rede=0&loja=0&incluso=ok")%>

Att;

 

 

Ficaria assim Xan?

 

Att;

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.