Histórico da Página
01. DADOS GERAIS
Produto: |
| ||||
---|---|---|---|---|---|
Linha de Produto: |
| ||||
Segmento: |
| ||||
Função: | Clientes - JURA148 | ||||
País: | Brasil | ||||
Ticket: | Não há | ||||
Requisito/Story/Issue: | DJURFAT1-1209113461 |
02. PONTO DE ENTRADA
Descrição: | Este ponto de entrada permite incluir novas opções ao menu do cadastro de clientes. | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Localização: | Atualizações - Cadastro - Clientes | |||||||||||||||||||||||||||||||||||||||
Programa Fonte: | JURA148 | |||||||||||||||||||||||||||||||||||||||
Função: | MENUDEF | |||||||||||||||||||||||||||||||||||||||
Parâmetros: |
| Retorno: | ||||||||||||||||||||||||||||||||||||||
Nome | Tipo | Descrição | Obrigatório | aRetorno | Array | |||||||||||||||||||||||||||||||||||
Nome | Tipo | Descrição | ||||||||||||||||||||||||||||||||||||||
xRetorno[1] | Caractere | Título da rotina que será exibido no menu | ||||||||||||||||||||||||||||||||||||||
xRetorno[2] | Caractere | Nome da função que será executada | ||||||||||||||||||||||||||||||||||||||
xRetorno[3] | Numérico | Parâmetro reservado. Deve ser sempre 0 (zero) | ||||||||||||||||||||||||||||||||||||||
xRetorno[4] | Numérico | Número da operação que a função executará. As alternativas são: | xRetorno[5] | Parâmetro descontinuado | Sim |
*Conforme o ID do Local de Execução, podem existir mais parâmetros, favor verificar a documentação Pontos de Entrada para fontes Advpl desenvolvidos utilizando MVC | ||||||||||||||||||||||||||||||||||
Retorno: | Varia confirme o ID do Local de execução, favor verificar a documentação |
03. EXEMPLO
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEFPARMTYPE.CH"
#INCLUDE "PARMTYPEFWMVCDEF.CH"
Static _aDadosAlt := {}
//-------------------------------------------------------------------
/*/{Protheus.doc} JURA148
Ponto de entrada MVC da rotina de Clientes para inclusão de opção no MenuDefPonto de entrada MVC da rotina de Clientes
@param PARAMIXB, array array , Parâmetros do ponto de entrada MVC Parametros do ponto de entrada MVC
PARAMIXB[1], objeto , Objeto do formulário ou do modelo Objeto do formulario ou do modelo, conforme o caso
PARAMIXB[2], caracter, ID do local de execução do ponto de entrada
PARAMIXB[3], caracter, ID do formulário
PARAMIXB[4], numérico, Número da Linha da FWFORMGRID
PARAMIXB[5], Ação da FWFORMGRID
PARAMIXB[6], Id do campo
@author TOTVS
@since 27@since 28/0107/2021
@obs https://tdn.totvs.com/pages/viewpage.action?pageId=208345968
/*/
//-------------------------------------------------------------------
User Function JURA148()
Local aParam aParam := PARAMIXB PARAMIXB
Local oObj oModel := Nil
Local cIdPonto cIdPonto := ""
Local cIdModel cIdModel := ""
Local lIsGrid xRetorno := .F.
Local xRetorno T.
Local aDadCli := {}
Local aFields := {}
Local nX := 0
Local cAliQry := ""
Local cQuery := ""
Local nPos := 0
Local POSIDCAMPO := 3
Local POSVIRTUAL := 14
Local lNewRec := .TF. // Novo registro
If ValType(aParam) == "A"
oObj oModel := aParam aParam[1]
cIdPonto cIdPonto := aParam aParam[2]
cIdModel cIdModel := aParam aParam[3]
lIsGrid := Len(aParam) > 3
If cIdPonto ==
If cIdPonto =='MENUDEF'
/*===============================================================================
Retorno
[n][1] --> Título da rotina que será exibido no menu
[n][2] --> Nome da função que será executada
[n][3] --> Parâmetro reservado. Deve ser sempre 0 (zero)
[n][4] --> Número da operação que a função executará. As alternativas são:
1=Pesquisa
2=Visualização
3=Inclusão
4=Alteração
5=Exclusão
6=Alteração sem a permissão para incluir novas linhas. É válido apenas para os objetos GetDados e GetDb.
[n][5] --> Parâmetro descontinuado.
===============================================================================*/
xRetorno xRetorno := {{"PE-J148Menu", "MsgInfo('Ponto de entrada do menu JURA148 ok!')", 0, 6, 0 , Nil}}
ElseIf cIdPonto == 'FORMCOMMITTTSPRE'
/*Antes da gravação da tabela do formulário.
Parâmetros Recebidos:
1 O Objeto do formulário ou do modelo, conforme o caso
2 C ID do local de execução do ponto de entrada
3 C ID do formulário
4 L Se .T. indica novo registro (Inclusão) se .F. registro já existente (Alteração / Exclusão)
*/
//GetAltClien - Capturar se o usuário confirmou a tela de replicação de dados
//Confirmação da Alteração
//Array dos dados alterados na tabela NUH, onde
//01 - Nome do Campo
//02 - Valor anterior
//03 - Valor alterado
aDadCli := GetAltClien()
lNewRec := aParam[4]
If cIdModel == "SA1MASTER" .And. !lNewRec
_aDadosAlt := {}
aFields := oModel:GetStruct():GetFields()
For nX := 1 To Len(aFields)
//Precisa ver se o campo é virtual
If FieldGet( FieldPos( aFields[nX][ POSIDCAMPO ] ) ) != oModel:GetValue( aFields[nX][ POSIDCAMPO ] ) .AND. !aFields[nX][ POSVIRTUAL ]
aAdd( _aDadosAlt, { aFields[nX][POSIDCAMPO], FieldGet( FieldPos( aFields[nX][ POSIDCAMPO ] ) ), oModel:GetValue( aFields[nX][ POSIDCAMPO ]) } )
EndIf
Next nX
EndIf
ElseIf cIdPonto == 'MODELCOMMITTTS'
/*Após a gravação total do modelo e dentro da transação.
Parâmetros Recebidos:
1 O Objeto do formulário ou do modelo, conforme o caso
2 C ID do local de execução do ponto de entrada
3 C ID do formulário
*/
aDadCli := GetAltClien()
If aDadCli[01]
//Atualiza a natureza dos pagadores
cAliQry := GetNextAlias()
cQuery := " SELECT NXP.R_E_C_N_O_ NXPRECNO "
cQuery += " FROM " + RetSqlName("NXP") + " NXP "
cQuery += " WHERE NXP.D_E_L_E_T_ = ' ' "
cQuery += " AND NXP.NXP_FILIAL = '" + xFilial("NXP") + "' "
cQuery += " AND NXP.NXP_CLIPG = '" + oModel:GetValue('SA1MASTER', 'A1_COD') + "' "
cQuery += " AND NXP.NXP_LOJAPG = '" + oModel:GetValue('SA1MASTER', 'A1_LOJA') + "' "
cQuery := ChangeQuery(cQuery, .F.)
dbUseArea(.T., "TOPCONN", TcGenQry(,, cQuery), cAliQry, .T., .T.)
(cAliQry)->(dbGoTop())
While !(cAliQry)->(EOF())
If (cAliQry)->NXPRECNO > 0
NXP->( dbGoTo( (cAliQry)->NXPRECNO ) )
RecLock( 'NXP', .F. )
If (nPos := aScan( _aDadosAlt,{ | x | x[1] == 'A1_COND' } ) ) > 0
NXP->NXP_CCDPGT := _aDadosAlt[nPos][3]
EndIf
If (nPos := aScan( _aDadosAlt,{ | x | x[1] == 'A1_NATUREZ' } ) ) > 0
NXP->NXP_CNATPG := _aDadosAlt[nPos][3]
EndIf
NXP->(MsUnlock())
EndIf
(cAliQry)->(dbskip())
End
(cAliQry)->( dbCloseArea() )
cQuery := " SELECT NXG.R_E_C_N_O_ NXGRECNO "
cQuery += " FROM " + RetSqlName("NXG") + " NXG "
cQuery += " WHERE NXG.D_E_L_E_T_ = ' ' "
cQuery += " AND NXG.NXG_FILIAL = '" + xFilial("NXG") + "' "
cQuery += " AND NXG.NXG_CLIPG = '" + oModel:GetValue('SA1MASTER', 'A1_COD') + "' "
cQuery += " AND NXG.NXG_LOJAPG = '" + oModel:GetValue('SA1MASTER', 'A1_LOJA') + "' "
cQuery += " AND NXG.NXG_CFATAD <> '' "
cQuery += " AND NXG.NXG_CPREFT = '' "
cQuery += " AND NXG.NXG_CFATUR = '' "
cQuery := ChangeQuery(cQuery , .F.)
dbUseArea(.T., "TOPCONN", TcGenQry(,, cQuery), cAliQry, .T., .T.)
(cAliQry)->(dbGoTop())
While !(cAliQry)->(EOF())
If (cAliQry)->NXGRECNO > 0
NXG->( dbGoTo( (cAliQry)->NXGRECNO ) )
RecLock( 'NXG', .F. )
NXG->NXG_CCDPGT := _aDadosAlt[nPos][3]
NXG->(MsUnlock())
EndIf
(cAliQry)->(dbskip())
End
(cAliQry)->( dbCloseArea() )
EndIf
_aDadosAlt := {}
EndIf
EndIf
Return xRetorno xRetorno
Templatedocumentos |
---|
HTML |
---|
<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; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |