Histórico da Página
...
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: |
*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 #INCLUDE "PROTHEUS.CH"
#INCLUDE #INCLUDE "PARMTYPE.CH"
#INCLUDE #INCLUDE "FWMVCDEF.CH"
Static Static _aDadosAlt aDadosAlt := {}
//-------------------------------------------------------------------
/*/{Protheus.doc} JURA148
Ponto de entrada MVC da rotina de Clientes
@param PARAMIXB, array array , Parametros do ponto de entrada MVC
PARAMIXB[1], objeto , Objeto do formulario ou do modelo, conforme o caso
PARAMIXB[2], caracter, ID do local de execução do ponto de entrada ID do local de execução do ponto de entrada
PARAMIXB[3], caracter, ID do formulário
@author TOTVS
@since 28/07/2021
@obs https://tdninterno.totvs.com/pages/releaseview.action?pageId=631611846
/*/
//-------------------------------------------------------------------
User Function JURA148User Function JURA148()
Local aParam Local aParam := PARAMIXB
Local oModel PARAMIXB
Local oModel := Nil
Local cIdPonto Nil
Local cIdPonto := ""
Local cIdModel Local cIdModel := ""
Local xRetorno Local xRetorno := nil
Local aDadCli .T.
Local aDadCli := {}
Local aFields Local aFields := {}
Local nX Local nX := 0
Local cAliQry 0
Local cAliQry := ""
Local cQuery Local cQuery := ""
Local nPos Local nPos := 0
Local POSIDCAMPO 0
Local POSIDCAMPO := 3
Local POSVIRTUAL 3
Local POSVIRTUAL := 14
Local lNewRec 14
Local lNewRec := .F. // Novo registro
If ValType
If ValType(aParam) == "A"
oModel oModel := aParam aParam[1]
cIdPonto cIdPonto := aParam aParam[2]
cIdModel cIdModel := aParam aParam[3]
If cIdPonto
If cIdPonto =='MENUDEF'
/*===============================================================================
Retorno
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 0, 6, 0 , Nil 6, 0 , Nil}}
ElseIf cIdPonto 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 aDadCli := GetAltClien GetAltClien()
lNewRec lNewRec := aParam aParam[4]
If cIdModel
If cIdModel == "SA1MASTER" .And. !lNewRec
_aDadosAlt aDadosAlt := {}
aFields aFields := oModel oModel:GetStruct():GetFields()
For nX For nX := 1 To Len 1 To Len(aFields)
//Precisa ver se o campo é virtual
If FieldGet( FieldPos( aFields If FieldGet( FieldPos( aFields[nX][ POSIDCAMPO POSIDCAMPO ] ) ) != oModel oModel:GetValue( aFields aFields[nX][ POSIDCAMPO POSIDCAMPO ] ) .AND. !aFields[nX][ POSVIRTUAL POSVIRTUAL ]
aAdd aAdd( _aDadosAlt, { aFields aFields[nX][POSIDCAMPO], FieldGet FieldGet( FieldPos FieldPos( aFields aFields[nX][ POSIDCAMPO POSIDCAMPO ] ) ), oModel oModel:GetValue( aFields aFields[nX][ POSIDCAMPO POSIDCAMPO ]) } )
EndIf
Next nX
EndIf
ElseIf cIdPonto 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 aDadCli := GetAltClien GetAltClien()
If aDadCli If aDadCli[01] .And. (nPos := aScan( _aDadosAlt,{ | x | x[1] == 'A1_COND' } ) ) > 0
//Atualiza a natureza dos pagadores
cAliQry cAliQry := GetNextAlias GetNextAlias()
cQuery cQuery := " SELECT NXP.R_E_C_N_O_ NXPRECNO "
cQuery cQuery += " FROM " + RetSqlName RetSqlName("NXP") + " NXP "
cQuery cQuery += " WHERE NXP.D_E_L_E_T_ = ' ' "
cQuery cQuery += " AND NXP.NXP_FILIAL = '" + xFilial xFilial("NXP") + "' "
cQuery cQuery += " AND NXP.NXP_CLIPG = '" + oModel oModel:GetValue('SA1MASTER', 'A1_COD') + "' "
cQuery cQuery += " AND NXP.NXP_LOJAPG = '" + oModel oModel:GetValue('SA1MASTER', 'A1_LOJA') + "' "
cQuery += " AND NXP.NXP_CCDPGT = '" + _aDadosAlt[nPos][2] + "' "
cQuery := ChangeQuery
cQuery := ChangeQuery(cQuery, .F.)
dbUseArea
dbUseArea(.T., "TOPCONN", TcGenQry TcGenQry(,, cQuery cQuery), cAliQry cAliQry, .T., .T.)
(cAliQry)->(dbGoTop())
While While !(cAliQry)->(EOF())
If If (cAliQry)->NXPRECNO > 0
NXP>NXPRECNO > 0
NXP->( dbGoTo dbGoTo( (cAliQry)->NXPRECNO >NXPRECNO ) )
RecLock 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->NXP>NXP_CCDPGT CNATPG := _aDadosAlt[nPos][3]
NXP EndIf
NXP->(MsUnlock())
EndIf EndIf
(cAliQry)->(dbskip())
End End
(cAliQry)->( dbCloseArea dbCloseArea() )
cQuery
cQuery := " SELECT NXG.R_E_C_N_O_ NXGRECNO "
cQuery cQuery += " FROM " + RetSqlName RetSqlName("NXG") + " NXG "
cQuery cQuery += " WHERE NXG.D_E_L_E_T_ = ' ' "
cQuery cQuery += " AND NXG.NXG_FILIAL = '" + xFilial xFilial("NXG") + "' "
cQuery cQuery += " AND NXG.NXG_CLIPG = '" + oModel oModel:GetValue('SA1MASTER', 'A1_COD') + "' "
cQuery cQuery += " AND NXG.NXG_LOJAPG = '" + oModel oModel:GetValue('SA1MASTER', 'A1_LOJA') + "' "
cQuery cQuery += " AND NXG.NXG_CFATAD <> '' "
cQuery cQuery += " AND NXG.NXG_CPREFT = '' "
cQuery cQuery += " AND NXG.NXG_CFATUR = '' "
cQuery += " AND NXG.NXG_CCDPGT = '" + _aDadosAlt[nPos][2] + "' "
cQuery := ChangeQuery(cQuery
cQuery := ChangeQuery(cQuery , .F.)
dbUseArea
dbUseArea(.T., "TOPCONN", TcGenQry TcGenQry(,, cQuery cQuery), cAliQry cAliQry, .T., .T.)
(cAliQry)->(dbGoTop())
While While !(cAliQry)->(EOF())
If If (cAliQry)->NXGRECNO > 0
NXG>NXGRECNO > 0
NXG->( dbGoTo dbGoTo( (cAliQry)->NXGRECNO >NXGRECNO ) )
RecLock RecLock( 'NXG', .F. )
NXG NXG->NXG>NXG_CCDPGT CCDPGT := _aDadosAlt[nPos][3]
NXG NXG->(MsUnlock())
EndIf EndIf
(cAliQry)->(dbskip())
End End
(cAliQry)->( dbCloseArea dbCloseArea() )
EndIf
EndIf
_aDadosAlt aDadosAlt := {}
EndIf EndIf
EndIf
Return xRetorno EndIf
Return 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> |