Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

Solucoes_totvs_parceiros
SolucaoParceirosGestão Jurídica by Legal Desk

Linha de Produto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoJurídico

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:

Nome

Tipo

Descrição

Obrigatório

PARAMIXBarray

Array com 3 posições ou mais se existir grid

Nome

Tipo

Descrição

PARAMIXB[1]Objeto

Objeto do formulário ou do modelo, conforme o caso

PARAMIXB[2]Caractere

ID do local de execução do ponto de entrada

PARAMIXB[3]Caractere

ID do formulário

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 #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(  FieldPosaFields[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>