Árvore de páginas

Versões comparadas

Chave

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

...

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

Array obrigatório com 5 posições

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




03. EXEMPLO

#INCLUDE #INCLUDE "PROTHEUS.CH"
#INCLUDE #INCLUDE "FWMVCDEFPARMTYPE.CH"
#INCLUDE #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   , 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 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://tdntdninterno.totvs.com/pages/viewpagereleaseview.action?pageId=208345968631611846
/*/
//-------------------------------------------------------------------
User Function JURA148User Function JURA148()
Local aParam   Local aParam   := PARAMIXB
Local oObj     Local oModel     := Nil
Local cIdPonto := Nil""
Local cIdPonto Local cIdModel := ""
Local cIdModel 
Local xRetorno := nil
Local aDadCli  := {}
Local aFields   := {}
Local nX := 0
Local cAliQry := ""
Local lIsGrid  Local cQuery := .F.
Local xRetorno ""
Local nPos  := 0
Local POSIDCAMPO := 3
Local POSVIRTUAL := 14
Local lNewRec    := .TF.
  If ValType // Novo registro

  If ValType(aParam) == "A"
        oObj             oModel     := aParam[1]
        cIdPonto := aParam[2]
        cIdModel := 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 := {{"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, 060 , Nil}}
        EndIf
    EndIf
Return xRetorno 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] .And. (nPos := aScan( _aDadosAlt,{ | x |  x[1] == 'A1_COND' } ) )  > 0 
                //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 +=    " AND NXP.NXP_CCDPGT = '" + _aDadosAlt[nPos][2] + "' "

                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. )

                        NXP->NXP_CCDPGT := _aDadosAlt[nPos][3]

                        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 +=    " AND NXG.NXG_CCDPGT = '" + _aDadosAlt[nPos][2] + "' "

                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


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>