01. DADOS GERAIS
Linha de Produto: | Microsiga Protheus |
---|---|
Segmento: | Serviços |
Módulo: | SIGAFIN |
Função: | FINA060 |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERFINR-19055 |
02. SITUAÇÃO/REQUISITO
Implementação da inclusão de borderô por rotina automática (execauto) FINA060.
03. SOLUÇÃO
Disponibilizada a inclusão de borderô por rotina automática.
04. DEMAIS INFORMAÇÕES
Parâmetros para a inclusão de borderô por rotina automática FINA060:
Elemento
Tipo
Descrição
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ô:
Elemento
Tipo
Descrição
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 ):
Elemento
Tipo
Descrição
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
05. ASSUNTOS RELACIONADOS
- FIN0083 - DT Rotina automática FINA060 - Transferência
- FIN0085 - DT Rotina automática FINA060 - Cancelamento de borderô