Árvore de páginas

Ponto de entrada que realiza checagem conforme parametrização na rotina de Abastecimento Manual (MNTA655)

Características do Requisito

Linha de Produto:

Microsiga Protheus

Segmento:

Manufatura

Módulo:

SIGAMNT - Manutenção de Ativos e Gestão de Frotas

Rotina:

Rotina

Nome Técnico

MNTA655

Abastecimento Manual


Rotina(s) envolvida(s)

Nome Técnico

MNTA6552

Ponto de Entrada

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos


Ponto de Entrada

Descrição:

Ponto de entrada executado na rotina de Abastecimento Manual (MNTA655) que realiza checagem conforme parametrização se o abastecimento que está sendo incluso/alterado, por exemplo, está dentro do período contábil da empresa.

Programa Fonte:

MNTA655.prx
Localização:SIGAMNT: Atualizações/Controle de Combustíveis/Abastecimento/Abastecimento Manual

Função:

MNTA6552()

Retorno:

.T.
Exemplo do Ponto de Entrada MNTA6552()
#Include 'Protheus.ch'

User Function MNTA6552()

	Local aArea  := GetArea()
	Local nDiaUtil := 0
	Local i  
	Local lFeriado := .F.
	Local hHora := SubStr(AllTrim(GetMv("MV_NGHRCON")),1,2)
	Local hMinu := SubStr(AllTrim(GetMv("MV_NGHRCON")),4,2)
	Local nDiasLim := GetMv("MV_NGMAR42")
	
	If Inclui .Or. Altera	
		If Month(dDatAb655) <> Month(dDataBase)		
			If IIf(Month(dDatAb655)+1 = 13,01,Month(dDatAb655)+1) = Month(dDataBase)			
				If Day(dDataBase) > 3 + nDiasLim				
					Help(" ",1,"ATENÇÃO",,"Data de abastecimento inválida."+CHR(10)+" Mês inferior ao mês atual e fora do período contábil.",3,1) 				
					Return .F.			
				Else	 							
					For i:= 1 to Day(dDataBase)					
						dDataCheck := CtoD(AllTrim(Str(i))+"/"+AllTrim(Str(Month(dDataBase)))+"/"+AllTrim(Str(Year(dDataBase))))					
						lFeriado := NGFERIADO(dDataCheck)					
						If Dow(dDataCheck) <> 1 .And. Dow(dDataCheck) <> 7 .AND. !lFeriado						
							nDiaUtil++					
						EndIf					
					Next			                                                           						
					If nDiaUtil > nDiasLim                                                       					
						Help(" ",1,"ATENÇÃO",,"Data de abastecimento inválida."+CHR(10)+" Mês inferior ao mês atual e fora do período contábil.",3,1) 					
						Return .F.				
					EndIf                  				
					If nDiaUtil == nDiasLim					
						cHrSis := Substr(Time(),1,2) 					
						cMinSis := Substr(Time(),4,2) 					
						If cHrSis > hHora                    						
							cMsg := "Lançamento no "+AllTrim(Str(nDiasLim))+"º dia útil permitido somente até "+CHR(10)+" as "+ hHora+":"+hMinu +" horas"						
							Help(" ",1,"ATENÇÃO",,cMsg,3,1) 						
							Return .F.					
						Else						
							If cHrSis == hHora .and. cMinSis > hMinu							
								cMsg := "Lançamento no "+AllTrim(Str(nDiasLim))+"º dia útil permitido somente até "+CHR(10)+" as "+ hHora+":"+hMinu +" horas"							
								Help(" ",1,"ATENÇÃO",,cMsg,3,1) 							
								Return .F.						
							EndIf						
						EndIf							
					EndIf			
				EndIf			
			EndIf		
		EndIf     	
		
		nDiasAnt := (LastDay(dDataBase)-dDataBase) 	
		dMesAnt  := (dDataBase - nDiasAnt)	
		nDiaRest := (LastDay(dMesAnt)-FirstDay(dMesAnt))+1		
		
		If (dDatAb655+nDiaRest) < dDataBase .And. Month(dDatAb655+nDiaRest) <> Month(dDataBase) 			
			Help(" ",1,"ATENÇÃO",,"Data de abastecimento inválida."+CHR(10)+" Período contábil fechado.",3,1) 		
			Return .F.		             	
		EndIf	
	EndIf
	
	RestArea(aArea)
	
Return .T.