Árvore de páginas

Ponto-de-Entrada: MNTA6552 - Checagem de Abastecimento
Abrangências: Microsiga Protheus 10
Versões: Microsiga Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Descrição:
Ponto de entrada de checagem conforme parametrização se o abastecimento que está sendo incluso/alterado, por exemplo, está dentro do período contábil da empresa, também chamado na alteração.
Eventos

- Na função de validação do campo tqn_hrabas;

- Ao clicar no botão Alterar faz checagem.

Programa Fonte
MNTA655.PRX
Sintaxe

MNTA6552 - Checagem de Abastecimento ( [ ] ) --> .T. / .F.

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
Array of Record
Retorno
    .T. / .F.()
Exemplos
User Function MNTA6552()Local aArea  := GetArea()Local nDiaUtil := 0Local 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	EndIfRestArea(aArea)Return .T.
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não