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 transferência de título por rotina automática (execauto) FINA060.

03. SOLUÇÃO

Disponibilizado a transferência por rotina automática.

04. DEMAIS INFORMAÇÕES

#Include "Protheus.ch"
#Include "TBICONN.ch"

User function AUTO060TRA()

    Local aTit          := {}
    Local cPrefixo      := "001"
    Local cNumero       := "000000001"
    Local cParcela      := "001"
    Local cTipo         := "NF"
    Local cBanco        := "001"
    Local cAgencia      := "001"
    Local cConta        := "001"
    Local cSituaca      := "1"
    Local cNumBco       := "132456"
    Local dDataMov      := CToD("29/03/2019")

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

    //Para retornar o título para carteira é necessário informar o banco em "branco"
    If cSituaca == "0"
        cBanco      := ""
        cAgencia    := ""
        cConta      := ""
        cNumBco     := ""
    EndIf

    //Chave do título

    AAdd(aTit, {"E1_PREFIXO",   PadR(cPrefixo,  TamSX3("E1_PREFIXO")[1]),   Nil})
    AAdd(aTit, {"E1_NUM",       PadR(cNumero,   TamSX3("E1_NUM")[1]),       Nil})
    AAdd(aTit, {"E1_PARCELA",   PadR(cParcela,  TamSX3("E1_PARCELA")[1]),   Nil})
    AAdd(aTit, {"E1_TIPO",      PadR(cTipo,     TamSX3("E1_TIPO")[1]),      Nil})

    //Informações bancárias

    AAdd(aTit, {"AUTDATAMOV",   dDataMov,       Nil})
    AAdd(aTit, {"AUTBANCO",     PadR(cBanco,    TamSX3("A6_COD")[1]),       Nil})
    AAdd(aTit, {"AUTAGENCIA",   PadR(cAgencia,  TamSX3("A6_AGENCIA")[1]),   Nil})
    AAdd(aTit, {"AUTCONTA",     PadR(cConta,    TamSX3("A6_NUMCON")[1]),    Nil})
    AAdd(aTit, {"AUTSITUACA",   PadR(cSituaca,  TamSX3("E1_SITUACA")[1]),   Nil})
    AAdd(aTit, {"AUTNUMBCO",    PadR(cNumBco,   TamSX3("E1_NUMBCO")[1]),    Nil})
    AAdd(aTit, {"AUTGRVFI2",    .T.,            Nil})

    //Carteira descontada deve ser encaminhado o valor de crédito, desconto e IOF já calculados
    If cSituaca $ "2|7"
        AAdd(aTit, {"AUTDESCONT",   090,    Nil})
        AAdd(aTit, {"AUTCREDIT",    750,    Nil})
        AAdd(aTit, {"AUTIOF",       010,    Nil})
    EndIf

    MsExecAuto({|operacao, titulo| FINA060(operacao, titulo)}, 2, aTit)

    If lMsErroAuto
        aErroAuto := GetAutoGRLog()
        
        For nCntErr := 1 To Len(aErroAuto)
            cErroRet += aErroAuto[nCntErr]
        Next nCntErr

        Conout(cErroRet)
    EndIf

Return Nil



User Function AUT60TRA()

Local aTit :={}
Local cPrefixo := "001"
Local cNumero := "000000001"
Local cParcela := "001"
Local cTipo := "NF"
Local cBanco := "001"
Local cAgencia := "001"
Local cConta := "001"
Local cSituaca := "1"
Local cNumBco := "132456"
Local nDesconto := 0
Local nValCred := 0
Local nVlIof := 0
Local dDataMov := Ctod("29/03/2019")

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

//Para retornar o título para carteira é necessário informar o banco em "branco"
If cSituaca ="0"

cBanco := ""
cAgencia := ""
cConta := ""
cNumBco := ""

EndIf

//Chave do título

aAdd(aTit, {"E1_PREFIXO" , PadR(cPrefixo , TamSX3("E1_PREFIXO")[1]) ,Nil})
aAdd(aTit, {"E1_NUM" , PadR(cNumero , TamSX3("E1_NUM")[1]) ,Nil})
aAdd(aTit, {"E1_PARCELA" , PadR(cParcela , TamSX3("E1_PARCELA")[1]) ,Nil})
aAdd(aTit, {"E1_TIPO" , PadR(cTipo , TamSX3("E1_TIPO")[1]) ,Nil})

//Informações bancárias

aAdd(aTit, {"AUTDATAMOV" , dDataMov ,Nil})
aAdd(aTit, {"AUTBANCO" , PadR(cBanco ,TamSX3("A6_COD")[1]) ,Nil})
aAdd(aTit, {"AUTAGENCIA" , PadR(cAgencia ,TamSX3("A6_AGENCIA")[1]) ,Nil})
aAdd(aTit, {"AUTCONTA" , PadR(cConta ,TamSX3("A6_NUMCON")[1]) ,Nil})
aAdd(aTit, {"AUTSITUACA" , PadR(cSituaca ,TamSX3("E1_SITUACA")[1]) ,Nil})
aAdd(aTit, {"AUTNUMBCO" , PadR(cNumBco ,TamSX3("E1_NUMBCO")[1]) ,Nil})

aAdd(aTit, {"AUTGRVFI2", .T., Nil})


//Carteira descontada deve ser encaminhado o valor de crédito, desconto e IOF já calculados
If cSituaca ="2"

nDesconto := 90
nValCred := 750
nVlIof := 10
aAdd(aTit, {"AUTDESCONT" , nDesconto ,Nil})
aAdd(aTit, {"AUTCREDIT" , nValCred ,Nil})
aAdd(aTit, {"AUTIOF" , nVlIof ,Nil})

EndIf

MSExecAuto({|a, b| FINA060(a, b)}, 2,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>