Exemplos de Fórmulas
Nosso Número
01 function NOSSONUMERO()
02 Dim Soma, Digito, Resultado, Reduzido_Empresa, Numero_Seq, NossoNumero
03 Reduzido_Empresa = "12345"
04 Numero_Seq = "123"
05 Soma = HBK.SomaParaCalculoDV_ComPesos(Reduzido_Empresa &
HBK.StrZero(Numero_Seq,5),Array(2,3,4,5,6,7))
06 Resultado = (Soma mod 11)
07 Digito = 11 - Resultado
08 if Resultado = 1 then
09 Digito = 0
10 end if
11 NossoNumero = Reduzido_Empresa & HBK.StrZero(Numero_Seq,5) & Digito
12 end function
Veja a seguir a explanação desta função linha a linha:
Linha | Explicação |
01 | Declara o nome da função (ou o nome da fórmula). Observe que ao entrar no Editor de Fórmulas o sistema já coloca essa informação automaticamente, não sendo necessário alterá-la. Caso necessite mudar o nome, saia da fórmula e altere o nome dela, pois caso contrário esta não funcionará corretamente. |
02 | Declara todas as variáveis que serão utilizadas nas fórmulas. No nosso exemplo, os nomes das variáveis são: Soma, Digito, Resultado, Reduzido_Empresa, Numero_Seq, NossoNumero |
03 | Atribui a constante "12345" à variável Reduzido_Empresa |
04 | Atribui a constante "123" à variável Numero_Seq |
05 | Na variável Soma será atribuído o resultado obtido através da função HBK.SomaParaCalculoDV_ComPesos. Observe que os parâmetros passados para essa função foram a variável Reduzido_Empresa "12345" concatenada (&) com a o resultado da função HBK.StrZero, onde na função HBK.StrZero foi solicitado a formatação de zeros a esquerda da variável Numero_Seq "123" com 5 posições, o que retornará "00123". Sendo assim, o 1o parâmetro a ser passado na função HBK.SomaParaCalculoDV_ComPesos será a string "1234500123" e o segundo parâmetro será o Array(2,3,4,5,6,7), o que resultará no valor 81. (Maiores informações consulte a documentação das funções) |
06 | Atribui o resto da divisão entre a variável Soma e o número 11 à variável Resultado |
07 | Atribui a subtração entre o número 11 e a variável Resultado à variável Digito |
08 | Compara se a variável Resultado é igual a 1 |
09 | Caso a variável Resultado seja igual a 1, atribui a constante "0" à variável Digito |
10 | Finaliza a comparação |
11 | Atribui à variável Nosso_Numero o conteúdo da variável Reduzido_Empresa concatenado com o resultado da função HBK.StrZero concatenado com o conteúdo da variável Digito. |
Os números exibidos no código da fórmula não devem ser digitados. Eles foram colocados no exemplo somente para facilitar a explanação de cada linha de código. A fórmula citada acima é somente um exemplo a fim de auxiliar a montagem do Nosso Número em outros bancos. Verifique no Manual de cada Banco qual o procedimento a ser adotado.
Código de Barras
function CODIGOBARRAS()
' AGENCIA = "1234"
' CONTA_CORRENTE ="12345-67"
' DATA_VENCTO = cdate("01/01/01")
' NUMERO_SEQ = 1234
' VALOR = 123.45
Dim Banco,Moeda,sValor,po,FtVencto,sAgencia,sCCorrente
Dim sNNumero,CampoFixo,CampoLivre,CodigoBarras,DAC_CodigoBarras
sValor = HBK.FormataValor(VALOR,10)
FtVencto = HBK.FatorVencto(DATA_VENCTO)
sAgencia = HBK.LeftPadCh(HBK.ApenasNumeros(AGENCIA),"0",4)
sCCorrente = HBK.LeftPadCh(HBK.ApenasNumeros(CONTA_CORRENTE),"0",7)
sNNumero = FUNC.NOSSONUMERO()
CampoFixo = "3999" & FtVencto & sValor
CampoLivre = sNNumero & sAgencia & sCCorrente & "001"
CodigoBarras = CampoFixo & CampoLivre
DAC_CodigoBarras = HBK.CalculaDV_Modulo11_Base2a9(CodigoBarras,"1","1")
CODIGOBARRAS = HBK.Copia(CodigoBarras,1,4) & DAC_CodigoBarras &
HBK.Copia(CodigoBarras,5,HBK.Tamanho(CodigoBarras)-4)
end function
A fórmula citada acima é somente um exemplo a fim de auxiliar a montagem do Código de Barras em outros bancos. Verifique no Manual de cada banco qual o procedimento a ser adotado.
Conta para pagamento/depósito da Caixa Econômica Federal
Nos pagamentos e depósitos feitos para contas da Caixa Econômica Federal, o campo "conta do favorecido" possui a seguinte regra de composição:
No campo "Conta para crédito", informe primeiro o Código da Operação, composto por 3 dígitos e, em seguida, o número da Conta, composto por 8 dígitos. Caso a conta informada não possua 8 dígitos, inclua zeros entre o código da operação e a conta até completar os 8 dígitos da conta informada.
Exemplo:
Banco: 104 - CAIXA ECONÔMICA FEDERAL
Agência: 9999
Operação: 001
Conta: 8888-8
Fonte consultada: Receita Federal do Brasil - Clientes Caixa Econômica Federal
No Office Banking, essa particularidade das contas da Caixa Econômica Federal pode ser tratada através de uma fórmula criada no Gerador de Formatos conforme o exemplo a seguir:
function CONTA_CEF()
Dim vCONTA_CEF, vOperacao, vBanco, vConta, vTipoConta
vBanco = T_Contas_a_Pagar.Field("CAID_BAN_IN_NUMERO").AsInteger
vConta = HBK.CCorrenteSemDigito(T_Contas_a_Pagar.Field("CAID_ST_CONTACORR").AsString)
vTipoConta = T_Contas_a_Pagar.Field("CAID_CH_TIPOCONTA").AsString
if vBanco = 104 then
if vTipoConta = "C" then
vOperacao = "001"
else
vOperacao = "013"
end if
vCONTA_CEF = vOperacao + HBK.LeftPadCh(vConta, "0", 8)
else
vCONTA_CEF = HBK.LeftPadCh(vConta, "0", 11)
end if
return vCONTA_CEF
end function
A fórmula citada acima é somente um exemplo a fim de auxiliar na configuração do Formato de Office Banking.