Linha de Produto: | Microsiga Protheus |
---|---|
Segmento: | Serviços |
Módulo: | SIGAFIN |
Função: | FINA060 |
Requisito/Story/Issue (informe o requisito relacionado) : | DSERFINR-19055 |
Implementação da inclusão de borderô por rotina automática (execauto) FINA060.
Disponibilizada a inclusão de borderô por rotina automática.
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. |
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
<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> |