Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS RH

Linha de Produto:

Linha Protheus

Segmento:

RH

Módulo:SIGAGPE
Função:GPEA020
País:Brasil
Ticket:11243315
Requisito/Story/Issue (informe o requisito relacionado) :DRHESOCP-21547


02. SITUAÇÃO/REQUISITO

ExecAuto da rotina GPEA020 não permite inclusão de dependentes quando há outro dependente com Plano de Saúde ativo.

03. SOLUÇÃO

Identificado uso de versão legado do execauto para a rotina de Cadastro de Dependentes GPEA020.

Disponibilizado exemplo de utilização da rotina automática utilizando a estrutura MVC.

04. DEMAIS INFORMAÇÕES

Exemplo de ExecAuto para Cadastro de Dependentes
#INCLUDE 'Protheus.CH'
#INCLUDE 'TBICONN.CH'
#INCLUDE 'FWMVCDEF.CH'

/*/{Protheus.doc} GP020MVC
Exemplo de ExecAuto do Cadastro de Dependentes GPEA020 utilizando estrutura MVC
/*/
User Function GP020MVC()
    Local oModel
    Local oMdlSRB
    Local aLog := {}
    Local nCod := 0
    Local nTipo := 1 //Exemplo inclusão / 2-Alteração/Exclusão
    Local cMat := "xxxxxx" //Matrícula correspondente para posicionamento

    aEval({'SRA','SRB'},{|x|CHKFILE(x)})
    SRA->(DbSetOrder(1))

    If SRA->(DbSeek(xFilial("SRA") + cMat))
        oModel := FWLoadModel("GPEA020")
        oModel:SetOperation(MODEL_OPERATION_UPDATE)
        If (oModel:Activate())
            oMdlSRB := oModel:GetModel("GPEA020_SRB") //instanciamento do modelo

            If nTipo == 1 //Exemplo Inclusão de novo registro
                if(oMdlSRB:Length() > 1)
                    nCod := oMdlSRB:AddLine()
                else
                    if(oMdlSRB:IsInserted())
                        nCod := 1
                    else
                        nCod := oMdlSRB:AddLine()
                    endIf
                endIf

                oMdlSRB:SetValue("RB_COD" , StrZero(nCod,2))
                oMdlSRB:SetValue("RB_NOME" , "INCLUSAO DEPENDENTE")
                oMdlSRB:SetValue("RB_TPDEP" , "03")
                oMdlSRB:SetValue("RB_DTNASC" , Ctod("20/03/2010"))
                oMdlSRB:SetValue("RB_SEXO" , "M")
                oMdlSRB:SetValue("RB_GRAUPAR" , "F")
                oMdlSRB:SetValue("RB_TIPIR" , "1")
                oMdlSRB:SetValue("RB_TIPSF" , "1")
                oMdlSRB:SetValue("RB_LOCNASC" , "SP")
                oMdlSRB:SetValue("RB_CIC" , "80645187925")
                //Demais campos informados na inclusão conforme exemplo
                //Possibilita inclusão de múltiplos registros utilizando o método AddLine()

            ElseIf nTipo == 2 //Exemplo alteração de registro existente
                if(oMdlSRB:Length() >= 3)
                    oMdlSRB:GoLine(3) //Posicionamento na linha a ser alterada
                endIf

                //Campos a serem alterados
                oMdlSRB:SetValue("RB_NOME" , "ALTER EXECAUTO")
                //Possibilita uso do método DeleteLine() para exclusão do registro posicionado
            EndIf

            If(oModel:VldData())
                If (oModel:CommitData())
                    If nTipo == 1
                        ConOut("Dependente Incluido")
                    Else
                        ConOut("Alteracao concluida")
                    EndIf
                Else
                    aLog := oModel:GetErrorMessage()
                EndIf
            Else
                aLog := oModel:GetErrorMessage()
            EndIf
            If Len(aLog) > 0
                aEval(aLog, {|x|conOut(x)})
            EndIf
        EndIf
    Else
        ConOut("Funcionario nao encontrado")
    EndIf

Return


05. ASSUNTOS RELACIONADOS

N/A.