Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
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] - Prefixo (LV_PREFIXO)
PARAMIXB[1] [2] - Número (LV_NUMERO)
PARAMIXB[1] [3] - Parcela (LV_PARCELA)
PARAMIXB[1] [4] - Tipo (LV_TIPO)
PARAMIXB[1] [5] - Sequência (LV_SEQ)
PARAMIXB[1] [6] - Filial de Origem (LV_FILORIG)
PARAMIXB[1] [7] - Código do Cliente (LV_CLIENTE)
PARAMIXB[1] [8] - Loja do Cliente (LV_LOJA)
PARAMIXB[1] [9] - Forma de Pagamento (LV_FORMA)
PARAMIXB[1] [10] - Valor (LV_VALOR)
PARAMIXB[1] [11] - Data da transação TEF (LV_DATATEF)

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

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

PARAMIXB[1] [15] - Instituição TEF (LV_INSTITU)

PARAMIXB[1] [16] - NSU TEF (LV_NSUTEF)

PARAMIXB[1] [17] - Tipo de Cartão (LV_TIPCART)

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


RetornoNulo
Programa Fonte
Exemplo

#Include 'Protheus.ch'

 STRECFCX

User 

Function

FUNCTION LjRecSlv()



Local aPaym      aSE5Dados :=  PARAMIXB ParamIxb[1] 
Local sCaixa     nTamLvNum :=  PARAMIXB[2 TamSX3("LV_NUMERO")[1]
Local sEstacao   nTamLvPar :=  PARAMIXB[3 TamSX3("LV_PARCELA")[1]
Local sPdv       aMDMArea  :=  PARAMIXB[4] MDM->(GetArea())
Local sDtAbert   aMDNArea  :=  PARAMIXB[5] MDN->(GetArea())
Local sAbHora    nX :=  PARAMIXB[6] 
Local sDtFech   :=  PARAMIXB[7
Local sFcHora   :=  PARAMIXB[8]
Local sNumMov   :=  PARAMIXB[9]
Local cTexto    :=  ""
Local nTotApu   :=  0
Local nTotDig   :=  0
Local cCRLF     :=  Chr(13) + Chr(10
Local nX        :=  0
cTexto := cCRLF + cCRLF 
cTexto += 'caixa.....: ' + sCaixa   + cCRLF  
cTexto += 'estação...: ' + sEstacao + cCRLF  
cTexto += 'pdv.......: ' + sPdv     + cCRLF 
cTexto += 'abertura..: ' + sDtAbert + ' - ' + 'hora: ' + AllTrim(sAbHora) + cCRLF 
cTexto += 'fechamento: ' + sDtFech  + ' - ' + 'hora: ' + AllTrim(sFcHora) + cCRLF 
cTexto += 'movimento.: ' + sNumMov      + cCRLF
cTexto += cCRLF + cCRLF
 
cTexto += 'Forma !Descrição                ! Valor Dig !  Valor Ap.'
cTexto += cCRLF
For nX := 1 To Len(aPaym)
    cTexto += aPaym[nX][1] + '!' + SubStr(aPaym[nX][2],1,22) + Space(3) + '!' + Str(Val(aPaym[nX][7]),10,2) + '!' + Str(aPaym[nX][8],10,2) + cCRLF
    nTotApu := nTotApu + aPaym[nX][8]
    nTotDig := nTotDig + Val(aPaym[nX][7])
Next nX
cTexto += cCRLF + cCRLF
cTexto += cCRLF + "Total Apurado :" + Str(nTotApu,10,2)
cTexto += cCRLF + "Total Digitado:" + Str(nTotDig,10,2)
cTexto += cCRLF + 'ass. caixa    :' + Replic("_",28)
cTexto += cCRLF + 'ass. superior :' + Replic("_",28) + cCRLF 
Return  cTexto0

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(aSE5Dados)

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

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

        While !MDM->(Eof()) .AND. ;
        aSE5Dados[nX,6]+aSE5Dados[nX,1]+Substr(aSE5Dados[nX,2],1,nTamLvNum)+SubStr(aSE5Dados[nX,3],1,nTamLvPar)+aSE5Dados[nX,4] = SLV->LV_FILORIG+SLV->LV_PREFIXO+SLV->LV_NUMERO+SLV->LV_PARCELA

            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

            MDM->(DbSkip())
        EndDo

    EndIf

Next

RestArea(aMDMArea)
RestArea(aMDNArea)

Return nil




HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>