#Include 'Protheus.ch'
#Include 'FWMVCDef.ch'
#Include "TBIConn.ch"
User Function GPEA050AUTO()
Local aArea := GetArea()
Local aDadSRA := {}
Local aDadSRF := {}
Local cMatricula := "995522"
Private oModel //Modelo
Private aRotina
Private lGp050Auto := .T. //Variável que define se é inserção automática
dbSelectArea("SRA")
dbSetOrder(1)
If !dbSeek( xFilial("SRA") + cMatricula)
Alert("Funcionário não localizado.")
Return()
Endif
oModel := FWLoadModel("GPEA050") //Carrega o modelo
oModel:SetOperation(MODEL_OPERATION_INSERT) //Seta operação de inclusão
oModel:Activate() //Ativa o modelo
oModel:LoadValue("GPEA050_SRA" , "RA_MAT" , SRA->RA_MAT )
oModel:LoadValue("GPEA050_SRA" , "RA_NOME" , SRA->RA_NOME)
oModel:LoadValue("GPEA050_SRA" , "RA_ADMISSA" , SRA->RA_ADMISSA)
oModel:SetValue("GPEA050_SRF", "RF_FILIAL" , SRA->RA_FILIAL)
oModel:SetValue("GPEA050_SRF", "RF_MAT" , SRA->RA_MAT)
oModel:SetValue("GPEA050_SRF", "RF_DATABAS" , CTOD('31/03/2021'))
oModel:SetValue("GPEA050_SRF", "RF_PD" , '129')
oModel:SetValue("GPEA050_SRF", "RF_DIASDIR" , 30.0)
oModel:SetValue("GPEA050_SRF", "RF_DATAINI ", CTOD('05/04/2020'))
oModel:SetValue("GPEA050_SRF", "RF_DATAFIM" , CTOD('19/03/2022'))
oModel:SetValue("GPEA050_SRF", "RF_STATUS" , '1')
//Validação e Gravação do Modelo
If oModel:VldData()
oModel:CommitData()
MsgInfo("Registro INCLUIDO!", "Atenção")
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 += "Id do campo de erro: " + ' [' + AllToChar( aErro[4] ) + ']' + Chr(13) + Chr(10)
cArqErrAuto += "Id do erro: " + ' [' + AllToChar( aErro[5] ) + ']' + Chr(13) + Chr(10)
cArqErrAuto += "Mensagem do erro: " + ' [' + AllToChar( aErro[6] ) + ']' + Chr(13) + Chr(10)
cArqErrAuto += "Mensagem da solução: " + ' [' + AllToChar( aErro[7] ) + ']' + Chr(13) + Chr(10)
cArqErrAuto += "Valor atribuído: " + ' [' + AllToChar( aErro[8] ) + ']' + Chr(13) + Chr(10)
cArqErrAuto += "Valor anterior: " + ' [' + AllToChar( aErro[9] ) + ']' + Chr(13) + Chr(10)
Alert ('Falha no ExecAuto MVC: ' + (Chr(13) + Chr(10)) + cArqErrAuto)
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
RestArea(aArea)
Return()
//função exemplo para alteração
Static Function alteracao()
Local lRet := .T.
Local oModel := Nil
//Deve-se definir o modelo que será utilizado na rotina automática e também a operação:
oModel := FwLoadModel("GPEA050")
oModel:SetOperation(MODEL_OPERATION_UPDATE)
//Posiciona no registro que deverá ser alterado e depois ativa o model
SRA->(DbSetOrder(1))
SRA->(dbSeek(fwXfilial("SRA")+"000064"))
SRF->(DbSetOrder(1))
SRF->(dbSeek(fwXfilial("SRF")+"000064"+"20150217"+"130"))
oModel:Activate()
oModel:LoadValue("GPEA050_SRA" , "RA_MAT" , SRA->RA_MAT )
oModel:LoadValue("GPEA050_SRA" , "RA_NOME" , SRA->RA_NOME)
oModel:LoadValue("GPEA050_SRA" , "RA_ADMISSA" , SRA->RA_ADMISSA)
//informa o campo a ser alterado e o novo valor:
oModel:SetValue("GPEA050_SRF","RF_DFERVAT" ,12)
// Valida e Grava do Modelo
If oModel:VldData()
oModel:CommitData()
conout("Registro Alterado!")
Else
lRet := .F.
VarInfo("Erro",oModel:GetErrorMessage())
EndIf
oModel:DeActivate()
oModel:Destroy()
oModel := NIL
Return lRet |