Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "TOTVSPROTHEUS.CH" #INCLUDE "protheus.ch" #INCLUDE 'FWMVCDEF.ch' User Function IncVgeMod3() Local cCodVei := "TMS001" // Código do veículo Local cCodRb1 := "" // Código do primeiro Reboque Local cCodRb2 := "" // Código do segundo Reboque Local cCodMot := "TMS001" // Código do motorista /*{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 cRotanCntFor1 := "ENTSP3" //Código da rota oModel := FwLoadModel("TMSAF60") oModel:SetOperation(MODEL_OPERATION_INSERT) oModel:Activate() //---- DTQ oModel:SetValue( "MdFieldDTQ", "DTQ_SERTMS" , StrZero( 3, Len( DTQ->DTQ_SERTMS )) ) oModel:SetValue( "MdFieldDTQ", "DTQ_TIPTRA" , StrZero( 1, Len( DTQ->DTQ_TIPTRA )) ) oModel:SetValue( "MdFieldDTQ", "DTQ_TIPVIA" , StrZero( 3, Len( DTQ->DTQ_TIPVIA )) ) //Planejada oModel:SetValue( "MdFieldDTQ", "DTQ_ROTA" , AllTrim(cRota) ) //---- DTR oModel:SetValue( "MdGridDTR", "DTR_ITEM" , StrZero( 1, Len( DTR->DTR_ITEM ) )) oModel:SetValue( "MdGridDTR", "DTR_CODVEI" , cCodVei) If !Empty( cCodRb1 ) oModel:SetValue( "MdGridDTR", "DTR_CODRB1" , cCodRb1) EndIf If !Empty( cCodRb2 ) oModel:SetValue( "MdGridDTR", "DTR_CODRB2" , cCodRb2) EndIf //--- DUP oModel:SetValue( "MdGridDUP", "DUP_CODMOT" , cCodMot) oModel:SetValue( "MdGridDUP", "DUP_CONDUT" , '1') If !oModel:VldData() .Or. !oModel:CommitData() AAdd(aMsgErr,{"Falha ao Incluir Viagem"+oModel:GetErrorMessage()[6],'00','ExecAuto()'}) //"Falha ao Incluir Viagem - " lRet:= .F. Else cRet := oModel:GetValue( "MdFieldDTQ", "DTQ_VIAGEM") EndIf oModel:DeActivate() oModel:= Nil Return lRet 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() //-- 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 //-- Monta mensagem de erro If !FWGetRunSchedule() MostraErro() EndIf 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
- ID's dos Modelos MVC - Novo Registro de Pendências (TMSAF89 - SIGATMS
- TMSAF89 - Pontos de Entrada Padrão MVC.
06. TABELAS UTILIZADAS
DTQ - Viagem
- DTR - Veículos da Viagem
- DUA - Ocorrências
- DUP - Motoristas da Viagem
...
Import HTML Content
Visão Geral
Conteúdo das Ferramentas