Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

    • cFilPnd - Filial de origem da pendência.
    • cNumPnd - Número da pendência.
    • aDados - Campos que devem ser alterados.
    • nOpcao - Opção de execução do fonte.
    • cTMSCOSB - Deverá ser informada Identificação Produto na Conciliação Sobras/Faltas 0=Não Utiliza,1=Obrigatório,2=Não Obrigatório

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

...

Bloco de código
languageactionscript3
themeMidnight
#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


	 	// Permite mudar o informe da Identificação Produto na Conciliação Sobras/Faltas 0=Não Utiliza,1=Obrigatório,2=Não Obrigatório
		TMSAF89Set("cTMSCOSB","0")


		//-- 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

...