Histórico da Página
...
- 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 | ||||
---|---|---|---|---|
| ||||
#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
|
...
Import HTML Content
Visão Geral
Conteúdo das Ferramentas