Solicitar um motivo na Exclusão de NF de Saída através do p.e. SF2520E | Ti Responde 0172

No vídeo de hoje, vamos demonstrar em como gravar uma observação ao excluir uma nota de saída através de um ponto de entrada.

A dúvida de hoje, nos perguntaram, se seria possível forçar um usuário a informar um motivo para exclusão de uma nota de saída no sistema (SF2).

 

Pensando nisso, montamos um exemplo, onde vamos demonstrar em como usar essa lógica no ponto de entrada SF2520E.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function SF2520E
Ponto de entrada na Exclusão do Documento de Saída
@type  Function
@author Atilio
@since 17/06/2024
@see https://centraldeatendimento.totvs.com/hc/pt-br/articles/360018257391-Cross-Segmento-Backoffice-Linha-Protheus-ADVPL-Ponto-de-entrada-SF2520E
@obs O campo F2_X_MTCAN pode ser criado como Caractere tamanho 100
/*/

User Function SF2520E()
    Local aArea      := FWGetArea()
    Local aAreaSF2   := SF2->(FWGetArea())
    Local aPergs     := {}
    Local cMotivCan  := Space(100)
    Local aBackupPar := {}
    Local lGravou    := .F.
    
    //Faz backup dos parâmetros
    aBackupPar := NgSalvaMvPa()

    //Adiciona os parâmetros
    aAdd(aPergs, {1, "Motivo Cancelamento",  cMotivCan,  "", ".T.", "", ".T.", 100,  .T.})

    //Enquanto não gravou
    While ! lGravou
    
        //Exibe a pergunta
        If ParamBox(aPergs, "Informe os parâmetros", /*aRet*/, /*bOk*/, /*aButtons*/, /*lCentered*/, /*nPosx*/, /*nPosy*/, /*oDlgWizard*/, /*cLoad*/, .F., .F.)
            
            //Atualiza o motivo de cancelamento
            RecLock("SF2", .F.)
                SF2->F2_X_MTCAN := MV_PAR01
            SF2->(MsUnlock())

            lGravou := .T.
        EndIf
    EndDo

    //Volta backup dos parâmetros
    NgRetAuMVPa(aBackupPar)
    
    FWRestArea(aAreaSF2)
    FWRestArea(aArea)
Return      

Bom pessoal, por hoje é só.

 

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação