Boa noite!
Tenho uma rotina em MVC que utiliza o controle de transação do próprio MVC para gravar inclusões/alterações/exclusões (bCommit em branco no MpFormModel). Exemplo:
oModel := MpFormModel():New('FATA46MVC',{ |oModel| fPreVld(oModel) },{ |oModel|fVldSave(oModel)},/*Save*/)
Na alteração de registros que possuam o status igual a 2 (ZXR_STATUS == '2'), preciso que ele tenha seu valor alterado para 0 (ZXR_STATUS := '0') e outro campo tenha seu valor alterado para vazio (ZXR_NUMCAR := ''). O usuário não tem permissão de alterar esses campos, pois são de apenas visualização. Consegui fazer alterando o bloco bCommit do MpFormModel, mas não sei se estou seguindo as melhores práticas.
oModel := MpFormModel():New('FATA46MVC',{ |oModel| fPreVld(oModel) },{ |oModel|fVldSave(oModel)},{ |oModel|fSave(oModel)})
Static Function fSave(oModel)
Local lRet := .T.
Local nOpc := oModel:GetOperation()
lRet := FwFormCommit(oModel)
If(nOpc == MODEL_OPERATION_UPDATE)
If(lRet .and. ZXR->ZXR_STATUS == '2')
RecLock('ZXR',.F.)
ZXR->ZXR_STATUS := '0'
ZXR->ZXR_NUMCAR := ''
ZXR->(MsUnlock())
Endif
Endif
Return(lRet)
Essa é a melhor maneira de fazer esse processo?