Árvore de páginas

Descrição

Ponto de Entrada para customização, disponível após a gravação dos registros da tabela SLV - Tabela de Transação TEF na Baixa de Títulos - na Retaguarda, na execução do job LjGrvBatch().

Os dados virão em forma de Array, agrupados por número do título (LV_PREFIXO/LV_NUMERO/LV_PARCELA/LV_TIPO), sendo que cada linha corresponde a uma transação TEF.

VersõesProtheus 12
Parâmetros

PARAMIXB[1] :
PARAMIXB[1] [1] - Carácter, Prefixo (LV_PREFIXO)
PARAMIXB[1] [2] - Carácter, Número  (LV_NUMERO)
PARAMIXB[1] [3] - Carácter, Parcela (LV_PARCELA)
PARAMIXB[1] [4] - Carácter, Tipo (LV_TIPO)
PARAMIXB[1] [5] - Carácter, Sequência (LV_SEQ)
PARAMIXB[1] [6] - Carácter, Filial de Origem (LV_FILORIG)
PARAMIXB[1] [7] - Carácter, Código do Cliente (LV_CLIENTE)
PARAMIXB[1] [8] - Carácter, Loja do Cliente (LV_LOJA)
PARAMIXB[1] [9] - Carácter, Forma de Pagamento (LV_FORMA)
PARAMIXB[1] [10] - Numérico, Valor (LV_VALOR)
PARAMIXB[1] [11] - Carácter formato AAAAMMDD, Data da transação TEF  (LV_DATATEF)

PARAMIXB[1] [12] - Carácter, Hora da transação TEF (LV_HORATEF)
PARAMIXB[1] [13] - Carácter, Número do Documento TEF (LV_DOCTEF)

PARAMIXB[1] [14] - Carácter, Código de Autorização TEF (LV_AUTORIZ)

PARAMIXB[1] [15] - Carácter, Instituição TEF (LV_INSTITU)

PARAMIXB[1] [16] - Carácter, NSU TEF (LV_NSUTEF)

PARAMIXB[1] [17] - Carácter, Tipo de Cartão (LV_TIPCART)

PARAMIXB[1] [18] - Carácter, Sequência de Operação (LV_SEQOPER)


A partir da versão 12.1.30:

PARAMIXB[1] [23] - Carácter, Código da Administradora ou Bandeira (LV_BANDEIR)

PARAMIXB[1] [24] - Carácter, Código da Rede Autorizada ou Adquirência (LV_REDEAUT)


PARAMIXB[2]: Lógico, indica a gravação bem-sucedida. Default .T.

PARAMIXB[3]: Lógico, após aparecer a mensagem de alerta "O estorno do recebimento será feito porque, ao menos, uma operação de estorno TEF foi realizada." # "Utilize a rotina de Cancelamento Manual TEF para as demais transações." Default .F.


RetornoNulo
Programa FonteLOJXREC.PRW
Exemplo

User FUNCTION LjRecSlv()



Local aDados    := ParamIxb[1]      //Todos os dados do registro SLV. Maiores infos, https://tdn.totvs.com/pages/viewpage.action?pageId=552089217
Local lRet      := ParamIxb[2]      //Retorno, se .T. ou .F. Default: .T.
Local lAlerta   := ParamIxb[3]      //Recebeu MSG de Alerta "O estorno do recebimento será feito porque, ao menos, uma operação de estorno TEF foi realizada."#"Utilize a rotina de Cancelamento Manual TEF para as demais transações." Default: .F.
Local nTamLvNum := TamSX3("LV_NUMERO")[1]
Local nTamLvPar := TamSX3("LV_PARCELA")[1]
Local aMDMArea  := MDM->(GetArea())
Local aMDNArea  := MDN->(GetArea())
Local nX := 0

IF lRet .AND. ValType(aDados) <> "U"        //Retorno positivo
    MDM->(DbSetOrder(1))    //MDM_FILIAL+MDM_BXFILI+MDM_PREFIX+MDM_NUM+MDM_PARCEL+MDM_TIPO+MDM_SEQ+MDM_LOTE
    MDN->(DbSetOrder(2))    //MDN_FILIAL+MDN_LOTE                                                                                           

    For nX := 1 to Len(aDados)

        ConOut("SLV: Titulo " + aDados[nX,1]+Substr(aDados[nX,2],1,nTamLvNum)+SubStr(aDados[nX,3],1,nTamLvPar)+", Sequencia "+aDados[nX,5])
        ConOut("SLV: Data, Hora e Autorizacao TEF: "+aDados[nX,11]+" "+aDados[nX,12]+"-"+aDados[nX,14])

        //Pesquisa tabela MDM-Log de Titulos Baixados
        If MDM->(Dbseek(xFilial("MDM")+aDados[nX,6]+aDados[nX,1]+Substr(aDados[nX,2],1,nTamLvNum)+SubStr(aDados[nX,3],1,nTamLvPar)+;
                                                                                                                        aDados[nX,4]))

            While !MDM->(Eof()) .AND. ;
            aDados[nX,6]+aDados[nX,1]+Substr(aDados[nX,2],1,nTamLvNum)+SubStr(aDados[nX,3],1,nTamLvPar)+aDados[nX,4];
                                                = MDM->MDM_BXFILI+MDM->MDM_PREFIX+MDM->MDM_NUM+MDM->MDM_PARCEL

                If MDM->MDM_ESTORN <> "1"       //Se não foi estornado
                    ConOut("MDM: Lote do titulo "+MDM->MDM_PREFIX+MDM->MDM_NUM+MDM->MDM_PARCEL+ ": " + MDM->MDM_LOTE)

                    //Pesquisa tabela MDN-Log de Titulos Gerados
                    If MDN->(Dbseek(xFilial("MDN")+MDM->MDM_LOTE))
                        While !MDN->(EOF()) .AND. MDM->MDM_LOTE = MDN->MDN_LOTE

                            ConOut("MDN: Numero de sequencia do lote "+ MDN->MDN_LOTE+ ": " + MDN->MDN_NUM)
                            MDN->(DbSkip())
                        EndDo
                    EndIf
                EndIf

                MDM->(DbSkip())
            EndDo

        EndIf

    Next
EndIf

IF lAlerta
    ConOut("Exemplo: Alerta de Estorno citado anteriormente!")
EndIf

RestArea(aMDMArea)
RestArea(aMDNArea)

Return nil