PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
ponto de entrada MT100LOK
Versão:
.
Plataforma:
.
Complemento:
DB:
.
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STELES STELES em 17/05/2023, 17:30 h
Local: GO  Registro: 21/03/2022  Postagens: 13
Pessoal, Boa Tarde!

Tenho um P.E MT100LOK que faz algumas validações na inclusão do documento de entrada porém, preciso que no momento do retorno da NF essa validação não seja feita pelo ponto de entrada é possivel?

Abaixo segue o fonte:

USER FUNCTION MT100LOK()

    Local lExecuta      := ParamIxb[1]
    Local lCtl          := .F.
    Local cCtl          := ""
    local nPosCodProd   := aScan(aHeader,{|x| AllTrim(x[2]) == "D1_COD" })
    Local nPosLOTEFOR   := aScan(aHeader,{|x| AllTrim(x[2]) == "D1_LOTEFOR" })
    Local nPosDFABRIC   := aScan(aHeader,{|x| AllTrim(x[2]) == "D1_DFABRIC" })
    Local nPosDTVALID   := aScan(aHeader,{|x| AllTrim(x[2]) == "D1_DTVALID" })
    Local nPosLOTECTL   := aScan(aHeader,{|x| AllTrim(x[2]) == "D1_LOTECTL" })

    cCtl    := POSICIONE("SB1",1,xFilial("SB1")+ACOLS[n,nPosCodProd],"B1_RASTRO")

    IF cCtl = "L"
        lCtl    := .T.
    ENDIF

    IF lCtl
        // LOTE CONTROLE
        IF !EMPTY(ACOLS[n,nPosLOTECTL])

            // LOTE FORNECEDOR
            IF EMPTY(ACOLS[n,nPosLOTEFOR])
               lExecuta := .F.
               MSGALERT("Por favor... Preencha o lote de fornecedor", "MT100LOK")            
            ENDIF

            // DATA FABRICAÇÃO
            IF EMPTY(ACOLS[n,nPosDFABRIC])
               lExecuta := .F.
               MSGALERT("Por favor... Preencha a data de fabricação", "MT100LOK")
            ENDIF

            // DATA VALIDADE
            IF EMPTY(ACOLS[n,nPosDTVALID])
               lExecuta := .F.
               MSGALERT("Por favor... Preencha a data de validade", "MT100LOK")
            ENDIF
        ELSE
            lExecuta := .F.
            MSGALERT("Por favor... Preencha o lote de controle", "MT100LOK")       
        ENDIF
    ENDIF

RETURN(lExecuta)

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário DENIS MORE DENIS MORE em 18/05/2023, 10:25 h
Local: SP  Registro: 20/02/2023  Postagens: 1
Bom dia!
Você pode utilizar a função FWIsInCallStack.

Ficaria assim:
If !FWIsInCallStack("A103Devol")
entra na validação
Endif

https://tdn.totvs.com/display/public/framework/FWIsInCallStack

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STELES STELES em 19/05/2023, 13:30 h
Local: GO  Registro: 21/03/2022  Postagens: 13
Bom Dia!,
Amigo muito obrigado!

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal