Árvore de páginas

Versões comparadas

Chave

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


01. DADOS GERAIS

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

Array obrigatório com 5 posições

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

PARAMIXB[4]

Numérico

Número da Linha da FWFORMGRID

PARAMIXB[5]Caractere

Ação da FWFORMGRID

PARAMIXB[6]Caractere

Id do campo

Sim
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:
                        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.

xRetorno[5]

Parâmetro descontinuado

Sim
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(  FieldPosaFields[nX][ POSIDCAMPO ] ) ) != oModel:GetValueaFields[nX][ POSIDCAMPO ] ) .AND. !aFields[nX][ POSVIRTUAL ]
                            aAdd_aDadosAlt, { aFields[nX][POSIDCAMPO], FieldGetFieldPosaFields[nX][ POSIDCAMPO ] ) ), oModel:GetValueaFields[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>