Árvore de páginas

Versões comparadas

Chave

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

...

Local aCabec   := {}
Local aItens   := {}
Local aLinha   := {}

PRIVATE lMsErroAuto := .F.

aCabec   := {}
aadd(aCabec,{"RA_FILIAL"  ,"D MG 01 "   ,Nil  })
aadd(aCabec,{"RA_MAT"     ,"000002"     ,Nil  })

aLinha := {}
aItens := {}

aadd(aLinha,{"RB_FILIAL"          , "D MG 01 "                   ,  Nil })
aadd(aLinha,{"RB_MAT"            , "000002"                       , Nil })
aadd(aLinha,{"RB_COD"            , "01"                              , Nil })
aadd(aLinha,{"RB_NOME"         , "MARIA DA SILVA"        , Nil })
aadd(aLinha,{"RB_DTNASC"      , Ctod("10/03/2010")      , Nil })
aadd(aLinha,{"RB_SEXO"           , "F"                                , Nil })
aadd(aLinha,{"RB_GRAUPAR"   , "F"                                , Nil })
aadd(aLinha,{"RB_TIPIR"           , "2"                               , Nil })
aadd(aLinha,{"RB_TIPSF"          , "2"                               , Nil })
aadd(aLinha,{"RB_TPDEP"        , "03"                             , Nil })
aadd(aLinha,{"RB_LOCNASC"  , "SP"                             , Nil })
aadd(aLinha,{"RB_CIC"             , ""                                , Nil })  
aadd(aItens,aLinha)
aLinha := {}


aadd(aLinha,{"RB_FILIAL"           , "D MG 01 "                  , Nil })
aadd(aLinha,{"RB_MAT"             , "000002"                     , Nil })
aadd(aLinha,{"RB_COD"            , "02"                               Nil })
aadd(aLinha,{"RB_NOME"         , "PEDRO DA SILVA"      , Nil })
aadd(aLinha,{"RB_DTNASC"     , Ctod("19/05/1982")     , Nil })
aadd(aLinha,{"RB_SEXO"          , "M"                              , Nil })
aadd(aLinha,{"RB_GRAUPAR"  , "C"                               , Nil })
aadd(aLinha,{"RB_TIPIR"          , "4"                               , Nil })
aadd(aLinha,{"RB_TIPSF"          , "2"                              , Nil })
aadd(aLinha,{"RB_LOCNASC"   , "SP"                           , Nil })
aadd(aLinha,{"RB_TPDEP"        , "01"                           , Nil })      
aadd(aLinha,{"RB_CIC"             , "40363918876"         , Nil })    
aadd(aItens,aLinha)
aLinha := {}                   


aadd(aLinha,{"RB_FILIAL"         , "D MG 01 "                , Nil })
aadd(aLinha,{"RB_MAT"           , "000002"                   , Nil })
aadd(aLinha,{"RB_COD"          , "03"                           , Nil })
aadd(aLinha,{"RB_NOME"       , "JOAO DA SILVA"      , Nil })
aadd(aLinha,{"RB_DTNASC"    , Ctod("07/08/2010")  , Nil })
aadd(aLinha,{"RB_SEXO"         , "M"                           , Nil })
aadd(aLinha,{"RB_GRAUPAR"  , "F"                           , Nil })
aadd(aLinha,{"RB_TIPIR"          , "2"                           , Nil })
aadd(aLinha,{"RB_TIPSF"         , "2"                           , Nil })
aadd(aLinha,{"RB_TPDEP"      , "03"                          , Nil })
aadd(aLinha,{"RB_LOCNASC" , "SP"                         , Nil })  
aadd(aLinha,{"RB_CIC"             , ""                           , Nil })  
aadd(aItens,aLinha)   

IF ( lRet:= APMSGYESNO("Executar através do MVCExecutar atraves do MVC. Confirmar (S) Sim / (N) Nao ? ") )
    U_EnvMVC(aCabec, aItens)
Else
    U_Envia(aCabec, aItens)
EndIf

Return(.T.)


// Função para enviar via ExecAuto
USER Function Envia(aCabec, aItens)

//-- Faz chamada a rotina de cadastro de dependentes para incluir os dependentes (opcao 3)
MSExecAuto({|x,y,k,w,z| GPEA020(x,y,k,w,z)},4,aCabec,aItens,4)  //-- Opcao 3 - Inclui registro

//Retorno de erro na execução da rotina
If lMsErroAuto
    MostraErro()
Else    
    Alert("Registro(s) Incluido(s) !!!")    
EndIf

Return(.T.) 


//Função para enviar via MVC
USER Function EnvMVC(aCabec, aItens)
Local aErro         := {}
Local oModel        := Nil
Local oSubMdl       := ""
Local cArqErrAuto   := ""
Local cCodigo       := ""
Local cNome         := ""
Local nX            := 0
Local nY            := 0
  
    cFilMat := aCabec[1][2]
    cMat    := aCabec[2][2] 

    SRA->(DbSetOrder(1))
    SRA->(DbSeek(cFilMat+cMat))

    oModel := FWLoadModel("GPEA020")
    oModel:SetOperation(3)

    If(oModel:Activate())   
        oSubMdl := oModel:GetModel("GPEA020_SRB") 
        
        For nX  := 1 to Len(aItens)   

            If (oSubMdl:Length() > 0)                
                oSubMdl:AddLine()
            EndIf   

            For nY  := 1 to Len(aItens[nX]) 
                If !(aItens[nX][nY][1] $ "RB_MAT")
                    oSubMdl:SetValue(aItens[nX][nY][1], aItens[nX][nY][2])
                EndIf               
            Next nY

            // Performa validação da linha
            If !oSubMdl:VldLineData()
                lRet    := .F.
                cCodigo := aItens[nX][3][2]
                cNome   := aItens[nX][4][2] 
                Exit                
            EndIf

        Next nX      
        
        If lRet .And. (oModel:VldData())
            oModel:CommitData()
        Else
        
            aErro := oModel:GetErrorMessage()   

            cArqErrAuto := "Id do formulário de origem:" + ' [' + AllToChar( aErro[1] ) + ']' + Chr(13) + Chr(10)
            cArqErrAuto += "Id do campo de origem: "    + ' [' + AllToChar( aErro[2] ) + ']' + Chr(13) + Chr(10)
            cArqErrAuto += "Id do formulário de erro: "  + ' [' + AllToChar( aErro[3] ) + ']' + Chr(13) + Chr(10)
            cArqErrAuto += "Mensagem do erro: "          + ' [' + AllToChar( aErro[6] ) + ']' + Chr(13) + Chr(10)
            cArqErrAuto += "Chave: Filial - Matricula - Código - Nome " + ' [' + cFilMat + ' - ' + cMat + ' - ' + cCodigo + ' - ' + cNome + ']' 

            Alert ('Falha no ExecAuto MVC: ' + (Chr(13) + Chr(10)) + cArqErrAuto)                                  
        EndIf 

        oModel:DeActivate()
        oModel:Destroy()
        oModel := Nil

    EndIf
    
Return(.T.) 

...