Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.                                                             

  

Informações Gerais

 

Especificação

Produto

Microsiga Protheus

Módulo

SIGAFIN

Segmento Executor

Serviços & Jurídico

Projeto

M_SER_CTR010

IRM

PCREQ-XXXX

Requisito

PCREQ-XXXX

Subtarefa

M_CTR010-XXX

Release de Entrega Planejada

12.1.11

Réplica

 

País

( x ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

 

  

Objetivo

 Disponibilizar possibilidade de geração de registro de instrução de cobrança em caso de baixa ou negociação de um titulo que esteja em cobrança bancária.

Definição da Regra de Negócio

Atualmente, ao se baixar ou renegociar um titulo de cobrança, caso este esteja em cobrança bancária, não existe a possibilidade de se gerar uma instrução bancária para a baixa do mesmo junto a instituição financeira.

Para atender esta necessidade, será criado processo de geração de registro de instrução de cobrança para a baixa do titulo junto a instituição financeira nos seguintes processos:

  • Baixa Manual 
  • Baixa em Lote
  • Baixa Automática
  • Renegociação de títulos via Fatura
  • Renegociação de títulos via Liquidação
  • Compensação de títulos com adiantamentos
  • Compensação entre carteiras
  • Recebimentos Diversos

O processo de envio das instruções de baixa da cobrança junto a instituição financeira permanece da mesma forma, sendo o envio realizado via geração de arquivo de instrução de cobrança (CNAB).

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

FINXBX

Alteração

Não se Aplica

-

FINA040AlteraçãoAtualizações -> Contas a Receber -> Contas a receber-

FINA070

Alteração

Atualizações -> Contas a Receber -> Baixas a Receber

-

FINA110

Alteração

Atualizações -> Contas a Receber -> Baixas Automáticas de Contas a Receber

-

FINA280AlteraçãoAtualizações -> Contas a Receber -> Faturas a Receber-
FINA330AlteraçãoAtualizações -> Contas a Receber -> Compensação CR-
FINA450AlteraçãoAtualizações -> Contas a Receber -> Compensação entre carteiras-
FINA460AlteraçãoAtualizações -> Contas a Receber -> Liquidação a Receber-
FINA460AAlteraçãoAtualizações -> Contas a Receber -> Simulação de Liquidação-
FINA087AAlteraçãoAtualizações -> Contas a Receber -> Recebimentos Diversos-
FINA022EnvolvidaAtualizações -> Contas a Receber -> Situação de Cobrança-
FINA150EnvolvidaAtualizações -> Comunicação Bancaria -> Arquivo de Cobranças-
FINA200EnvolvidaAtualizações ->Comunicação Bancaria -> Retorno Cobranças-
FINA630EnvolvidaAtualizações -> Contas a Receber -> Aprovação e Rejeição da Transferência-

 

Definição da Regra de Negócio

Será criada parametrização para definição quanto ao comportamento dos processos quanto a instrução de cobrança:

  • Todos - Para todos os processos definidos abaixo, será gerada instrução para baixa de cobrança
  • Negociação - Apenas para os processos de Faturas ou Liquidação será gerada instrução para baixa de cobrança
  • Não Gerar - Não haverá geração de instrução para baixa de cobrança nos processos abaixo (default)

Quando houver ação sobre um titulo de cobrança, dentre os processos abaixo descritos, dependendo da parametrização realizada, o processo pode gerar um registro de instrução de baixa de cobrança (retirada de cobrança) para posterior envio a instituição financeira:

  • Baixa Manual 
    • Quando parametrizado para Todos, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Em caso de rotina automática, não será apresentada a tela e será aplicada a definição do parâmetro.

  • Baixa em Lote
    • Quando parametrizado para Todos, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.

  • Baixa Automática
    • Quando parametrizado para Todos, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.

  • Renegociação de títulos via Fatura
    • Quando parametrizado para Todos ou Negociação, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.

  • Renegociação de títulos via Liquidação
    • Quando parametrizado para Todos ou Negociação, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.
  • Compensação de títulos com adiantamentos
    • Quando parametrizado para Todos, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.
  • Compensação entre carteiras
    • Quando parametrizado para Todos, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.
  • Recebimentos Diversos
    • Quando parametrizado para Todos ou Negociação, após a confirmação da baixa do título e estando este em cobrança bancária, será apresentada mensagem para o usuário para que confirme ou não a geração de instrução de baixa de cobrança.
      • Caso confirme, será gerada instrução de baixa de cobrança para posterior envio a instituição financeira.
      • Caso não confirme, não será gerada nenhuma instrução de cobrança.
    • Neste caso, a tela será apresentada apenas uma vez, no caso da primeira ocorrência. A resposta a este questionamento será aplicada a todas as demais ocorrências.

 

Detalhamento técnico.

Criação do parâmetro MV_INSCOB

Será criado parâmetro na tabela SX6 para definição quanto ao comportamento dos processos quanto a instrução de cobrança:

  • 0 - Não Gerar - Não haverá geração de instrução para baixa de cobrança nos processos detalhados abaixo (default)
  • 1 - Todos - Para todos os processos definidos abaixo, será gerada instrução para baixa de cobrança
  • 2 - Negociação - Apenas para os processos de Faturas ou Liquidação será gerada instrução para baixa de cobrança


Estrutura do Array aItensFI2 a ser utilizado nos casos de baixa de cobrança junto a instituição bancária.

  • aItemsFI2[x][1]: Ocorrência - "02"
  • aItemsFI2[x][2]: Titulo do campo (nao utilizado) -  <vazio>

  • aItemsFI2[x][3]: Valor anterior -  <vazio>

  • aItemsFI2[x][4]: Novo valor -  <vazio>

  • aItemsFI2[x][5]: Nome do campo -  <vazio>

  • aItemsFI2[x][6]: Tipo do campo -  <vazio>


Texto das Mensagens

Processo unitário
"Este título se encontra em cobrança bancária. Deseja gerar instrução de baixa de cobrança para a instituição financeira?"

Processo em Lote
"Caso existam títulos em cobrança bancária, deseja gerar instrução de baixa de cobrança para a instituição financeira?"


FINXBX - Funções Genéricas de Baixa

Desenvolver função genérica para gravação da tabela FI2 (Ocorrências CNAB).

  • Pode ser utilizada a função F040GrvFI2() contida no fonte FINA040 como base para o desenvolvimento desta.  
    Sugestão: Mover o código da F040GRVFI2() para essa nova função (FINGRVFI2())
  • Deve ser verificado:
    • Se já existe uma instrução de baixa do titulo e se esta não foi enviada ainda (FI2_GERADO = "2")
      • Utilizar o índice 1 da tabela FI2 (FI2_FILIAL+FI2_CARTEI+FI2_NUMBOR+FI2_PREFIX+FI2_TITULO+FI2_PARCEL+FI2_TIPO+FI2_CODCLI+FI2_LOJCLI+FI2_OCORR+FI2_GERADO)
      • A ocorrência a ser verificada será  a de código "02".
    • Caso exista, não será necessário gravar novamente.


FINA040 - Contas a Receber

Ajustar a função F040GrvFI2() para que a mesma passe apenas a chamar a FINGRVFI2(), mantendo compatibilidade com o legado.


FINA070 - Baixas de contas a receber

Baixa Manual

Após a baixa do titulo, caso o parâmetro MV_INSCOB == "1", verificar se o mesmo está em cobrança bancária:

  • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

  • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

  • Situação de cobrança utiliza banco (se E1_SITUACA $ FN022LSTCB(3))

Em caso positivo:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Caso confirme, chamar a função FINGRVFI2 passando as informações no array aItemsFI2

  • Sugere-se incluir este tratamento fora do controle de transação.

Baixa em Lote

Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1", o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.

  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.


FINA087A - Recebimentos diversos

Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1",, o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.


FINA110 - Baixas Automáticas de Contas a Receber

Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1", o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.

  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.

 

FINA280 - Baixas Automáticas de Contas a Receber

Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1", o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.


FINA330 - Compensação\ de Contas a Receber

 Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1",, o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.


FINA450 - Compensação\ entre carteiras

 Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB == "1", o procedimento será:

  • Caso a pergunta "Comp. Tit. Transf" = Sim, apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.


FINA460 - Liquidação de Contas a Receber

Após a a confirmação da tela inicial, caso o parâmetro MV_INSCOB $ "1|2", o procedimento será:

  • Apresentar mensagem ao usuário (MSGYESNO()) para que o mesmo confirme a geração de instrução de cobrança.
  • Utilizar o texto da mensagem para processos em lote
  • Caso confirme,  para cada título baixado, deve-se verificar:

    • Tipo do título diferente de abatimento, provisório, adiantamento ou crédito.

    • E1_IDCNAB e E1_NUMBOR estiverem preenchidos

    • Em caso positivo chamar a função FINGRVFI2 passando as informações no array aItemsFI2.

  • Esta mensagem será apresentada apenas uma vez e a resposta dada será aplicada a todos os títulos que estejam em cobrança bancária.

  • Sugere-se incluir este tratamento fora do controle de transação.

 

Tabelas Utilizadas

  • SE1 – Cadastro de Contas a Receber
  • SEB - Ocorrências da Transmissão.Bancária
  • FI2 – Ocorrências CNAB

Protótipo de Tela

Protótipo 01

Mensagem para processo unitário

 


 

 

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

 

FINXBX
Criar um função centralizadora que receba os dados dos títulos baixar e gere aItemsFI2, com os dados dos títulos baixados e Chamar a função F040GrvFI2 para gravar FI2.
Chamar a função XXXX passar os dados dos títulos baixados nos fontes abaixo caso o campo E1_IDCNAB e E1_NUMBOR estiver preenchido e não for abatimento, provisório, adiantamento e credito.
FINA070, FINA110, FINA280, FINA460/FINA460A, FINA330, FINA087A
Fontes apenas envolvidos
FINA040, FINA620/FINA630 (EXECAUTO, ADICIONAR TESTES), FINA150, FINA200
Especificação - 8 horas
Codificação/testes de desenvolvimento - 16 horas de codificação + 20 horas de testes.

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

 

Parâmetros

Nome da Variável

MV_LMVLDLQ

Tipo

Numérico

Descrição

Define limite em dias para a validade de uma simulação de liquidação a receber

Valor Padrão

0

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO