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

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




<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>