Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Backoffice
Módulo:Financeiro
Função:

FINA430 - Retorno de Comunicação Bancária - Pagar

02. DESCRIÇÃO

O ponto de entrada F430VAR tem como finalidade tratar os dados para baixa CNAB. Antes de verificar a espécie do título,

...

permitirá que qualquer exceção ou necessidade seja tratada no ponto de entrada

...

através do paramIXB.

Esse ponto de entrada é executado em dois momentos diferentes, sendo uma durante a leitura do CNAB Modelo 1 (MV_PAR10 = 1) e CNAB Modelo 2 (MV_PAR10 = 2). A quantidade de posições passadas por parâmetro difere entre as duas execuções e está melhor descrita no item "3 - Parâmetros").

03. PARÂMETROS

Execução do ponto de entrada para CNAB Modelo 1 (MV_PAR10 = 1):

Nome

Tipo

Descrição

Conteúdo

paramIXB[1]

Array

Array de valores referentes a linha atual lida.

Posição do arrayDescriçãoVariável Private equivalente 
paramIXB[1][01]Número do TítulocNumTit
paramIXB[1][02]Data da BaixadBaixa
paramIXB[1][03]Tipo do TítulocTipo
paramIXB[1][04]Nosso NúmerocNsNum
paramIXB[1][05]Valor da DespesanDespes
paramIXB[1][06]Valor do DescontonDescont
paramIXB[1][07]Valor do AbatimentonAbatim
paramIXB[1][08]Valor do PagamentonValPgto
paramIXB[1][09]JurosnJuros
paramIXB[1][10]MultanMulta
paramIXB[1][11]FornecedorcForne
paramIXB[1][12]OcorrênciacOcorr
paramIXB[1][13]CGCcCGC
paramIXB[1][14]CM (buscar descrição)nCM
paramIXB[1][15]Rejeição-
paramIXB[1][16]Linha inteira-


Execução do ponto de entrada para CNAB Modelo 2 (MV_PAR10 = 2):

Nome

Tipo

Descrição

Conteúdo

paramIXB[1]

logical

lRefresh - se a execução é através do botão Atualizar ou não.

Falso

04. RETORNO

...

Nome

...

Tipo

...

Descrição

...

nIndex

...

array

Array de valores referentes a linha atual lida.

Posição do arrayDescriçãoVariável Private equivalente
paramIXB[1][01]Número do TítulocNumTit
paramIXB[1][02]Data da BaixadBaixa
paramIXB[1][03]Tipo do TítulocTipo
paramIXB[1][04]Nosso NúmerocNsNum
paramIXB[1][05]Valor da DespesanDespes
paramIXB[1][06]Valor do DescontonDescont
paramIXB[1][07]Valor do AbatimentonAbatim
paramIXB[1][08]Valor do PagamentonValPgto
paramIXB[1][09]JurosnJuros
paramIXB[1][10]MultanMulta
paramIXB[1][11]FornecedorcForne
paramIXB[1][12]OcorrênciacOcorr
paramIXB[1][13]CGCcCGC
paramIXB[1][14]CM (buscar descrição)nCM
paramIXB[1][15]Rejeição-
paramIXB[1][16]Linha inteira-
paramIXB[1][17]AutenticaçãocAutentica
paramIXB[1][18]BancocBanco
paramIXB[1][19]AgênciacAgencia
paramIXB[1][20]ContacConta

04. RETORNO

Não se aplica.

05. EXEMPLO DE UTILIZAÇÃO

Bloco de código
languagevb
themeMidnight
firstline1
titleF240IND F430VAR
linenumberstrue
#Include "TOTVS.CH"

/*/{Protheus.doc} F240INDF430VAR
Ponto de entrada para manipulaçãotratar deos índicedados dapara tela de borderô (FINA240).
Baixa CNAB.

@owner		TOTVS
@version    P12
@since      1024/09/2021
@return     numeric, índice a ser posicionado
@obs        Função utilizada nas rotinas FINA240
/*/
User Function F240INDF430VAR() As Numeric

    Local aIndices  As Array//Carrega todos os dados Refrente ao titulo
    Local lRefreshaParam  As LogicalArray
    Local nIndexcAlert    As NumericCharacter

    nIndexaParam := AClone(paramIXB)

    := 1
    lRefresh    := paramIXB[1]//Variaveis disponivel para customização conforme atenda a necessidade do Cliente
    aIndicescAlert := "Numero do Titulo:= paramIXB[2] //somente é carregado" na execução via botão Atualizar (quando lRefresh está como verdadeiro)

    //Escolha do indice inicial da tabela
+ aParam[1][01]       + CRLF
    cAlert += "Data:        If !lRefresh
       " If+ MsgYesNo("Desejar ordenar por Código do Fornecedor?", "F240IND - Alterar o Indice")
DToS(aParam[1][02]) + CRLF
    cAlert += "Tipo:                nIndex" := 6
+ aParam[1][03]       + EndIfCRLF
    Else
cAlert += "Nosso numero:     //Chamada via botão refresh" da tabela de borderô - Permite a troca do índice atual+ aParam[1][04]       + CRLF
    cAlert += "Valor da //Suadespesa: lógica para seleção de" índice - Exemplo utilizando List Box+ Str(aParam[1][05])  + CRLF
    cAlert += "Valor da nIndexdesconto: := U_SelIndex(aIndices)
 " +  EndIf

Return nIndex

/*/{Protheus.doc} SelIndex
Rotina para seleção de índice no botão refresh da tela de seleção de borderô.

@version    P12
@since      10/09/2021
@param Str(aParam[1][06])  + CRLF
    cAlert += "Valor de abatimento: " + Str(aParam[1][07])  + CRLF
    cAlert += "Valor pagamento:     aIndices" array, array de índices que poderão ser selecionados
@return     numeric, indice a ser utilizado na tela de seleção de borderô
/*/
User Function SelIndex(aIndices As Array) As Numeric

    Local nVar      As Numeric
    Local nOpca     As Numeric
    Local nSE2Index As Numeric
    Local oList     As Object
    Local oDlg      As Object

	nOpca       := 2

	DEFINE MSDIALOG oDlg TITLE "Seleção de Índice" From 9, 0 To 32, 74 OF oMainWnd

	@0.5, 0.3 TO 12.2, 32.2 LABEL "Índices" OF oDlg
	@2.3, 3.0 Say OemToAnsi("  ")
	@1.0, 0.7 LISTBOX oList VAR nVar Fields HEADER "Índice" SIZE 250, 150 NOSCROLL ON DBLCLICK (nSE2Index := aIndices[oList:nAt][1], nOpca := 1, oDlg:End())

	oList:SetArray(aIndices)
	oList:bLine := {|| {aIndices[oList:nAt][2]}}

	DEFINE SBUTTON FROM 10.0, 260 TYPE 1 ACTION (nOpca := 1, nSE2Index := aIndices[oList:nAt][1], oDlg:End()) ENABLE OF oDlg
	DEFINE SBUTTON FROM 22.5, 260 TYPE 2 ACTION oDlg:End() ENABLE OF oDlg

    ACTIVATE MSDIALOG oDlg CENTERED

    //Caso cancelada a seleção, automaticamente seleciona o primeiro índice
    If nOpca == 2
        nSE2Index := 1
    EndIf

Return nSE2Index+ Str(aParam[1][08])  + CRLF
    cAlert += "Valor juros:         " + Str(aParam[1][09])  + CRLF
    cAlert += "Valor multa:         " + Str(aParam[1][10])  + CRLF
    cAlert += "Fornecedor:          " + aParam[1][11]       + CRLF
    cAlert += "Ocorrência:          " + aParam[1][12]       + CRLF
    cAlert += "CGC:                 " + aParam[1][13]       + CRLF
    cAlert += "CM:                  " + Str(aParam[1][14])  + CRLF

    FwAlertInfo(cAlert)
    
    //TODO - Lógica conforme necessidade do cliente

Return Nil





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