Versão atual:

Regra para alteração de registro MVC

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?

Versões (3):

Ver a versão formatada

Regra para alteração de registro MVC

Comentário

new question