Tempo aproximado para leitura: 00:08 min
Dúvida
Como configurar o ExecAuto para a rotina de Transferência de Títulos (FINA060)?
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - Financeiro - Todas as versões
Solução
Parâmetros para a inclusão de borderô por rotina automática FINA060:
| Parâmetro 1 | Numérico | nOpcAuto - 3 Inclusão de borderô. |
|---|---|---|
| Parâmetro 2 | Array | Array com 2 dimensões, sendo a primeira um array com informações do borderô e a segunda um array com os títulos. |
Estrutura do array com informações do borderô:
| AUTBANCO | Caracter | Código do banco. |
|---|---|---|
| AUTAGENCIA | Caracter | Código da agência. |
| AUTCONTA | Caracter | Código da conta. |
| AUTSITUACA | Caracter | Situação a ser transferida o título. |
| AUTNUMBOR | Caracter | Número do borderô. |
| AUTDATAMOV | Data | Data do movimento. |
| AUTTXDESC | Numérico | Taxa de desconto para carteira descontada. |
| AUTTXIOF | Numérico | Taxa de IOF para carteira descontada. |
| AUTSUBCONTA | Caracter | Número da subconta do banco |
| AUTESPECIE | Caracter | Código da espécie do pagamento (contida na tabela F77) |
| AUTBOLAPI | Logico | Define se o borderô em questão será transmitido via API (Boletos) |
Estrutura do array com informações dos títulos ( chave de busca para o índice 1 ) :
| E1_FILIAL | Caracter | Filial do título |
|---|---|---|
| E1_PREFIXO | Caracter | Prefixo do título. |
| E1_NUM | Caracter | Número do título. |
| E1_PARCELA | Caracter | Parcela do título. |
| E1_TIPO | Caracter | Tipo do do título. |
Exemplo:
User function AUTO060BOR()
Local cTmp := "TMPBOR"
Local cFiltro := ""
Local aTit := {}
Local aBor := {}
Local cBanco := "001"
Local cAgencia := "001"
Local cConta := "001"
Local cSituaca := "1"
Local cNumBor := ""
Local dDataMov := ""
Local cEspecie := '99'
Local cSubconta := '001'
//-- Variáveis utilizadas para o controle de erro da rotina automática
Local aErroAuto :={}
Local cErroRet :=""
Local nCntErr :=0
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private lAutoErrNoFile := .T.
PREPARE ENVIRONMENT EMPRESA "XX" FILIAL "XX " USER "admin"
dDataMov := Ctod("19/04/2019")
// Filtro SQL para para adicionar os titulos no borderô
cFiltro := "%"+"E1_PREFIXO = 'BOR' AND E1_TIPO ='NF'"+"%"
If Select( cTmp ) > 0
(cTmp)->( dbCloseArea() )
EndIf
BeginSQL Alias cTmp
SELECT
E1_FILIAL,
E1_PREFIXO,
E1_NUM,
E1_PARCELA,
E1_TIPO
FROM
%table:SE1%
WHERE
%exp:cFiltro%
AND E1_SALDO > 0
AND %NotDel%
EndSQL
//Adiciona os títulos no array
While (cTmp)→(!EOF())
aAdd(aTit,;
{;
{"E1_FILIAL" ,(cTmp)->E1_FILIAL },;
{"E1_PREFIXO" ,(cTmp)->E1_PREFIXO },;
{"E1_NUM" ,(cTmp)->E1_NUM },;
{"E1_PARCELA" ,(cTmp)->E1_PARCELA },;
{"E1_TIPO" ,(cTmp)->E1_TIPO };
})
(cTmp)→(dbSkip())
EndDo
(cTmp)->(dbCloseArea()) //Fecho a tabela temporária
If Empty(aTit) .OR. cSituaca == "0" //Caso não encontre títulos ou situação 0 deve sair da rotina.
RETURN(.F.)
EndIf
//Informações bacárias para o borderô
aAdd(aBor, {"AUTBANCO" , PadR(cBanco ,TamSX3("A6_COD")[1]) })
aAdd(aBor, {"AUTAGENCIA" , PadR(cAgencia ,TamSX3("A6_AGENCIA")[1]) })
aAdd(aBor, {"AUTCONTA" , PadR(cConta ,TamSX3("A6_NUMCON")[1]) })
aAdd(aBor, {"AUTSITUACA" , PadR(cSituaca ,TamSX3("E1_SITUACA")[1]) })
aAdd(aBor, {"AUTNUMBOR" , PadR(cNumBor ,TamSX3("E1_NUMBOR")[1]) }) // Caso não seja passado o número será obtido o próximo pelo padrão do sistema
aAdd(aBor, {"AUTSUBCONTA" , PadR(cSubconta,TamSX3("EA_SUBCTA")[1]) })
aAdd(aBor, {"AUTESPECIE" , PadR(cEspecie,TamSX3("EA_ESPECIE")[1]) })
If cSituaca $ "2|7" // Carteira descontada deve ser informada as taxas e data do movimento
aAdd(aBor, {"AUTTXDESC" ,10})
aAdd(aBor, {"AUTTXIOF" ,5})
aAdd(aBor, {"AUTDATAMOV" ,dDataMov})
EndIf
MSExecAuto({|a, b| FINA060(a, b)}, 3,{aBor,aTit})
If lMsErroAuto
aErroAuto := GetAutoGRLog()
For nCntErr := 1 To Len(aErroAuto)
cErroRet += aErroAuto[nCntErr]
Next
Conout(cErroRet)
EndIf
Return
Saiba mais
FIN0084 - DT Rotina automática FINA060 - Inclusão de borderô
0 Comentários