Bandeira Brasil Localização.png

CONTEÚDO

01. VISÃO GERAL

A nova rotina de Registro de Pendências, permite o gerenciamento das pendências de forma automática, selecionando-se a operação desejada e também os campos que devem ser complementados no registro.

02. OBJETIVO DE UTILIZAÇÃO

Realizar processamento da rotina de gerenciamento das pendências de forma automática.

03. PARÂMETROS

O conteúdo das variáveis deverão ser enviados no instante da execução da rotina. Vide exemplo abaixo:

Variáveis estáticas que devem ser carregadas via função TMSAF89Set:

04. EXEMPLO DE EXECUÇÃO DE PROGRAMA


#INCLUDE "PROTHEUS.CH"

/*{Protheus.doc} AutoPend
    Exemplo de Rotina Automática da Pendência
    @type Static Function
    @author Totvs
    @since 31/01/2025
    @version P12 R12.1.29
    @param nOpcao
    @return return, return_type, return_description
    @example EncPende()
    (examples)
    @see (links_or_references)
*/
User Function AutoPend(cFilPnd,cNumPnd,aDados,nOpcao)
Local aDadosDUU  := {}
Local aAreas     := {DUU->(GetArea()),GetArea()}
Local aCamposDUU := {}
Local lRet       := .T. 
Local nCntFor1   := 0
Local oMdlPnd
Local oMdlFldDUU
Local oStruDUU

Default cFilPnd := "M SP 01 "
Default cNumPnd := "000044"
Default aDados  := {{"DUU_MOTIVO","TESTE"},{"DUU_OBSENC","TESTE"},{"DUU_CODMTC","0001"}}
Default nOpcao  := 4

If !Empty(cNumPnd) .And. nOpcao != 0
	DUU->(DbSetOrder(1))
	If DUU->(DbSeek(xFilial("DUU") + cFilPnd + cNumPnd))	
		Aadd(aDadosDUU,{"DUU_FILPND",cFilPnd})
		Aadd(aDadosDUU,{"DUU_NUMPND",cNumPnd})
		For nCntFor1 := 1 To Len(aDados)
			Aadd(aDadosDUU,{aDados[nCntFor1,1],aDados[nCntFor1,2]})
		Next nCntFor1

		//-- Carrega Rotina Extra
		TMSAF89Set("nRotExt",11)	//-- Encerrar

		//-- Carrega Opção no Encerramento da Pendência
		TMSAF89Set("nRadio",1)		//-- Somente Encerra

		//-- Carrega Fechamento Automático da Conciliação
		TMSAF89Set("lConAut",.T.)	//-- Fecha Automaticamente

		//-- Exibe Perguntas ao Usuário
		TMSAF89Set("lPergUsu",.F.)	//-- Não Exibe Perguntas

		//-- Carrega o Model da Pendência
		oMdlPnd := FWLoadModel("TMSAF89")
		oMdlPnd:SetOperation(nOpcao)
	
		//-- Ativa o Model da Pendência
		oMdlPnd:Activate()
	
		//-- Carrega o Modelo da Pendência
		oMdlFldDUU := oMdlPnd:GetModel("MdFieldDUU")
		oStruDUU   := oMdlFldDUU:GetStruct()
		aCamposDUU := oStruDUU:GetFields()
	 	oMdlFldDUU:Activate()
		
	
		//-- Registro de Pendências
		For nCntFor1 := 1 To Len(aDadosDUU)
			If AScan(aCamposDUU,{|x| AllTrim(x[3]) == AllTrim(aDadosDUU[nCntFor1,1])}) > 0
				If !oMdlFldDUU:SetValue(aDadosDUU[nCntFor1,1],aDadosDUU[nCntFor1,2])
					lRet := .F.
					Exit
				EndIf
			EndIf
		Next nCntFor1

		//-- Grava os Dados
		If lRet
			If (lRet := oMdlPnd:VldData())
				oMdlPnd:CommitData()
			EndIf
		EndIf
	
		//-- Se Ocorreu Algum Erro Exibe Mensagem
		If !lRet
			MostraErro()
		EndIf
	
		//-- Desativa o Model do Planejamento
		oMdlPnd:DeActivate()
	EndIf
EndIf

AEval(aAreas,{|x,y| RestArea(x),FwFreeArray(x)})
FwFreeArray(aAreas)

Return lRet


05. ASSUNTOS RELACIONADOS

06. TABELAS UTILIZADAS


<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>