Definição da Regra de Negócio
Atualmente a rotina de Processos SERASA gera lotes para envio ao SERASA que contemplam o layout FAC Simples. Este layout foi construído no MILE para que seja gerado o arquivo de envio ao SERASA de cada lote gerado, com base no modelo de dados existente na rotina de Processos SERASA. Os lotes gerados para envio de arquivo no layout FAC Boleto deverão gravar na tabela FW8 uma informação para identificação do lote, como sendo um lote de títulos com boleto e o modelo de dados deverá conter uma estrutura adicional para que sejam contemplados mais dois canais de envio, baseados na tabela FW9.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
FINA770 – Processos SERASA | Alteração | Atualizações -> Contas a Receber-> SERASA - Processos | - |
FINA770A | Alteração | Não se aplica | - |
Estrutura do arquivo de layout FAC Simples x FAC Boleto
Abaixo o comparativo das estruturas dos arquivos FAC Simples e FAC Boleto:
FAC Simples | FAC Boleto |
---|
Registro 0 - Header | Registro 0 - Header |
Registro 1 - Detalhes | Registro 1 - Detalhes |
- | Registro 2 - Dados para emissão do boleto |
- | Registro 3 - Instruções do boleto |
Registro 9 - Trailler | Registro 9 - Trailler |
Estrutura do modelo de dados e canais MILE
A estrutura do modelo de dados atual da rotina de Processos SERASA, correspondente ao layout FAC Simples, é utilizada da seguinte maneira:
Canal/Model | Registro |
---|
Canal MASTERFW8/MASTERFW8 | Registro 0 - Header |
Canal TITULOFW9/TITULOFW9 | Registro 1 - Detalhe |
Canal VIRTUAL/VIRTUAL | Registro 9 - Trailler |
Para o layout FAC Boleto, a estrutura do modelo deverá contemplar os models abaixo:
Canal/Model | Registro |
---|
Canal MASTERFW8/MASTERFW8 | Registro 0 - Header |
Canal TITULOFW9/TITULOFW9 | Registro 1 - Detalhe |
Canal TITAUX1/TITAUX1 | Registro 2 - Dados para emissão do boleto |
Canal TITAUX2/TITAUX2 | Registro 3 - Instruções do boleto |
Canal VIRTUAL/VIRTUAL | Registro 9 - Trailler |
O modelo de dados MVC da rotina de Processos SERASA conta com a estrutura a seguir (seguindo a hierarquia):
- MASTERFW8 - Tabela FW8
- TITULOFW9 - Tabela FW9
- SITTITFWA - Tabela FWA
- MOVTITFWB - Tabela FWB
- VIRTUAL - Tabela FW8
- CONTADOR - Contador e totalizador da tabela FW9 (não deve ser utilizado no MILE)
Para que seja possível gerar, através do MILE, o arquivo no layout FAC Boleto, o modelo de dados deverá conter a seguinte estrutura*:
- MASTERFW8 - Tabela FW8
- TITULOFW9 - Tabela FW9
- SITTITFWA - Tabela FWA
- MOVTITFWB - Tabela FWB
- TITAUX1 - Tabela FW9**
- TITAUX2 - Tabela FW8**
- VIRTUAL - Tabela FW8
- CONTADOR - Contador e totalizador da tabela FW9 (não deve ser utilizado no MILE)
*A construção dos models deve respeitar a sequencia acima dentro da ModelDef(), caso contrário, a inserção das linhas no arquivo será feita de forma incorreta.
**Ambos os models auxiliares não devem ser habilitados para que sejam gravados na inclusão, alteração ou exclusão do lote, pois serão utilizados apenas como referência para geração do arquivo através do MILE.
Para cada linha da tabela FW9 (título), uma linha correspondente será inserida no arquivo. Os lotes gerados de títulos com boleto serão preenchidos com uma linha de detalhe de cada título, uma linha com os dados de emissão do boleto para cada título contido no lote e, caso necessário, uma linha com as instruções do boleto deve ser inserido no arquivo.
Estrutura do layout FAC Boleto
A estrutura do layout FAC Boleto é muito parecida com a estrutura do FAC Simples, sendo que as grandes diferenças entre os layouts é que no FAC Boleto existem os registros "2" e "3". A construção dos registros "0" e "1" são muito semelhantes as do FAC Simples, havendo a inserção de um ou outro dado complementar, conforme detalhado abaixo:
Sequência | Início | Tamanho | Tipo | Descrição | Preenchimento |
01 | 001 | 001 | C | Código do registro | "0" |
02 | 002 | 009 | C | CNPJ da instituição informante | SM0->M0_CGC |
03 | 011 | 008 | C | Data do movimento | dDataBase |
04 | 019 | 004 | C | Brancos | Space(4) |
05 | 023 | 008 | C | Brancos | Space(8) |
06 | 031 | 004 | C | Brancos | Space(4) |
07 | 035 | 070 | C | Brancos | Space(70) |
08 | 105 | 015 | C | Identificação do arquivo | "SERASA-CONVEM04" |
09 | 120 | 006 | C | Número da remessa | F770GETARQ() |
10 | 126 | 001 | C | Código de envio do arquivo: "E" - Entrada "R" - Retorno | "E" |
11 | 127 | 004 | C | Brancos | Space(4) |
12 | 131 | 011 | C | Brancos | Space(11) |
13 | 142 | 012 | C | Filial do arquivo | FW8->FW8_FILIAL |
14 | 154 | 001 | C | Identificador FAC Boleto | "B" |
15 | 155 | 379 | C | Brancos | Space(379) |
16 | 534 | 060 | C | Brancos | Space(60) |
17 | 594 | 007 | C | Sequencial do registro no arquivo | F770SEQREG() |
Registro "1" - Detalhes
Sequência | Início | Tamanho | Tipo | Descrição | Preenchimento |
01 | 001 | 001 | C | Código do registro | "1" |
02 | 002 | 001 | C | Código da Operação I - Inclusão E - Exclusão | FA770GETOP() |
03 | 003 | 006 | C | Brancos | Space(6) |
04 | 009 | 008 | C | Data da ocorrência ( AAAAMMDD) – data do vencimento da dívida, não superior a 4 anos e 11 meses. | F770VENCTO() |
05 | 017 | 008 | C | Data do término do contrato – formato “AAAAMMDD” . Caso não possua , repetir a data da ocorrência (vide observação 1 para natureza “DC”) | F770VENCTO() |
06 | 025 | 003 | C | Código de natureza da operação | FW9_TIPO |
07 | 028 | 004 | C | Brancos | Space(4) |
08 | 032 | 001 | C | Tipo de pessoa do principal: F – Física ou J – Jurídica | F770CLIENT(1) |
09 | 033 | 001 | C | Tipo do primeiro docto. do principal: 1 – CNPJ ou 2 – CPF | F770BTip() |
10 | 034 | 015 | C | Primeiro documento do principal: CPF completo à base + dígito ou CNPJ completo à base + filial + dígito Ajustado à direita e preenchido com zeros à esquerda | F770CLIENT(2) |
11 | 049 | 002 | C | Brancos | Space(2) |
12 | 051 | 001 | C | Branco | Space(1) |
13 | 052 | 015 | C | Brancos | Space(15) |
14 | 067 | 002 | C | UF quando documento for RG, se não, espaços. | F770BEst() |
15 | 069 | 001 | C | Branco | Space(1) |
16 | 070 | 001 | C | Branco | Space(1) |
17 | 071 | 015 | C | Brancos | Space(15) |
18 | 086 | 002 | C | Brancos | Space(2) |
19 | 088 | 001 | C | Branco | Space(1) |
20 | 089 | 015 | C | Brancos | Space(15) |
21 | 104 | 002 | C | Brancos | Space(2) |
22 | 106 | 070 | C | Brancos | Space(70) |
23 | 176 | 008 | C | Brancos | Space(8) |
24 | 184 | 070 | C | Brancos | Space(70) |
25 | 254 | 070 | C | Brancos | Space(70) |
26 | 324 | 045 | C | Endereço completo | F770CLIENT(3) |
27 | 369 | 020 | C | Bairro correspondente | F770CLIENT(4) |
28 | 389 | 025 | C | Município correspondente | F770CLIENT(5) |
29 | 414 | 002 | C | UF | F770CLIENT(6) |
30 | 416 | 008 | C | CEP | F770CLIENT(7) |
31 | 424 | 015 | C | Valor | F770VALTIT() |
32 | 439 | 050 | C | Chave do título | FW9->(FW9_FILORI+FW9_PREFIX+FW9_NUM+FW9_PARCEL) |
33 | 489 | 004 | C | DDD do devedor | F770CLIENT(8) |
34 | 493 | 009 | C | Número do telefone do devedor | F770CLIENT(9) |
35 | 502 | 008 | C | Data do compromisso assumido pelo devedor | F770VENCTO() |
36 | 510 | 015 | C | Valor total do compromisso assumido pelo devedor | F770VALTIT() |
37 | 525 | 006 | C | Brancos | Space(7) |
38 | 531 | 001 | C | Indicativo do Tipo de Comunicado ao Devedor: B - Comunicado com Boleto Bancário | "B" |
39 | 532 | 002 | C | Brancos | Space(2) |
40 | 534 | 060 | C | Brancos | Space(60) |
41 | 594 | 007 | C | Sequencia do registro no arquivo | F770SEQREG() |
Registro "2" - Emissão do boleto
Sequência | Início | Tamanho | Tipo | Descrição | Preenchimento |
01 | 001 | 001 | C | Código do registro | "2" |
02 | 002 | 003 | C | Código do banco | F770BANCO(1) |
03 | 005 | 001 | C | Dígito do banco | F770Banco(2) |
04 | 006 | 015 | C | Nome do banco | F770Banco(3) |
05 | 021 | 005 | C | Primeiro campo da linha digitável | F770LinDig(1)* |
06 | 026 | 005 | C | Segundo campo da linha digitável | F770LinDig(1)* |
07 | 031 | 005 | C | Terceiro campo da linha digitável | F770LinDig(1)* |
08 | 036 | 006 | C | Quarto campo da linha digitável | F770LinDig(1)* |
09 | 042 | 005 | C | Quinto campo da linha digitável | F770LinDig(1)* |
10 | 047 | 006 | C | Sexto campo da linha digitável | F770LinDig(1)* |
11 | 053 | 001 | C | Sétimo campo da linha digitável | F770LinDig(1)* |
12 | 054 | 014 | C | Oitavo campo da linha digitável | F770LinDig(1)* |
13 | 068 | 070 | C | Texto lo local de pagamento Ex.: "Pagável em qualquer banco até o vencimento" | GetMV(MV_TXTLPAG) |
14 | 138 | 070 | C | Brancos | Space(70) |
15 | 208 | 008 | C | Data do vencimento do boleto (se enviado em branco, será gerado o boleto com a informação "CONTRA APRESENTAÇÃO") | F770Vencto("TITAUX1") |
16 | 216 | 001 | C | Tipo de pessoa do cedente: "F" - Física "J" - Jurídica | F770CLIENT(1,"TITAUX1") |
17 | 217 | 001 | C | Tipo do documento do cedente: "1" - CNPJ "2" - CPF | SM0->M0_TPINSC |
18 | 218 | 015 | C | Documento do cedente: CPF completo (base mais dígito) CNPJ completo (base mais filial mais dígito) Ajustado à direito e preenchido com zeros à esquerda. Obs.: Caso não informado será atribuído o CNPJ mais filial da Instituição Informante | SM0->M0_CGC |
19 | 233 | 040 | C | Nome do cedente do título Obs.: Caso não informado, será atribuído a razão social da Instituição Informante | SM0->M0_NOMECOM |
20 | 273 | 025 | C | Código e dígito da agência mais Código e dígito do cedente | F770Banco(5) |
21 | 298 | 008 | C | Data do documento | F770Titulo(1) |
22 | 306 | 025 | C | Número do documento | FW9_NUM |
23 | 331 | 005 | C | Tipo do documento | FW9_TIPO |
24 | 336 | 003 | C | Brancos | Space(3) |
25 | 339 | 017 | C | Brancos | Space(17) |
26 | 356 | 003 | C | Brancos | Space(3) |
27 | 359 | 008 | C | Data de processamento | dDataBase |
28 | 367 | 025 | C | Nosso número | F770Titulo(2)** |
29 | 392 | 005 | C | Número da carteira | F770Banco(4)*** |
30 | 397 | 003 | C | Espécie de moeda | F770Titulo(3) |
31 | 400 | 009 | C | Brancos | Space(9) |
32 | 409 | 001 | C | Branco | Space(1) |
33 | 410 | 009 | C | Brancos | Space(9) |
34 | 419 | 015 | C | Valor do boleto | F770VALTIT("TITAUX1") |
35 | 434 | 015 | C | Valor do desconto, se houver | F770Titulo(4) |
36 | 449 | 015 | C | Valor de outras deduções, se houver | F770Titulo(5) |
37 | 464 | 015 | C | Valor da mora ou multa, se houver | F770Titulo(6) |
38 | 479 | 015 | C | Valor de outros acréscimos, se houver | F770Titulo(7) |
39 | 494 | 015 | C | Valor total a ser cobrado | F770ValTot() |
40 | 509 | 001 | C | Tipo de pessoa do sacador: "F" - Física "J" - Jurídica | F770CLIENT(1,"TITAUX1") |
41 | 510 | 001 | C | Tipo do primeiro documento do sacador: "1" - CNPJ "2" - CPF | F770BTip("TITAUX1") |
42 | 511 | 015 | C | Documento do sacador: CPF completo (base mais dígito) CNPJ completo (base mais filial mais dígito) Ajustado à direito e preenchido com zeros à esquerda. Obs.: Caso não informado será atribuído o CNPJ mais filial da Instituição Informante | F770CLIENT(2,"TITAUX1") |
43 | 526 | 050 | C | Nome do Sacador / Avalista | F770Client(10,"TITAUX1") |
44 | 576 | 018 | C | Brancos | Space(18) |
45 | 594 | 007 | C | Sequencia do registro no arquivo | F770SEQREG() |
*A função para retornar os dados da Linha Digitável obterá os dados do campo E1_CODDIG, ficando a cargo do cliente o preenchimento por meio de customização.
**A função para retornar os dados do Nosso Número obterá os dados do campo E1_NUMBCO ficando a cargo do cliente o preenchimento por meio de customização.
***O código da carteira deverá ser específico para cada banco, havendo a necessidade de retornar o código da carteira conforme o banco informado (campo A6_CARTEIR).
Registro "3" - Dados do boleto
Sequência | Início | Tamanho | Tipo | Descrição | Preenchimento |
01 | 001 | 001 | C | Código do registro | "3" |
02 | 002 | 070 | C | Linha de instrução - 1 | GetMV(MV_INSBOL1) |
03 | 072 | 070 | C | Linha de instrução - 2 | GetMV(MV_INSBOL2) |
04 | 142 | 070 | C | Linha de instrução - 3 | GetMV(MV_INSBOL3) |
05 | 212 | 070 | C | Linha de instrução - 4 | GetMV(MV_INSBOL4) |
06 | 282 | 070 | C | Linha de instrução - 5 | GetMV(MV_INSBOL5) |
07 | 352 | 070 | C | Linha de instrução - 6 | GetMV(MV_INSBOL6) |
08 | 422 | 070 | C | Linha de instrução - 7 | GetMV(MV_INSBOL7) |
09 | 492 | 070 | C | Linha de instrução - 8 | GetMV(MV_INSBOL8) |
10 | 562 | 032 | C | Brancos | Space(32) |
11 | 594 | 007 | C | Sequencia do registro no arquivo | F770SEQREG() |
Registro "9" - Trailler
Sequência | Início | Tamanho | Tipo | Descrição | Preenchimento |
01 | 001 | 001 | C | Código do registro | "9" |
02 | 002 | 001 | C | Branco | Space(1) |
03 | 003 | 591 | C | Brancos | Space(591) |
04 | 594 | 007 | C | Sequencia do registro no arquivo | F770SEQREG() |
Geração de Lotes do tipo FAC Boleto
Na geração do lote, deverá ser exibida uma pergunta adicional nos parâmetros, que permita ao usuário selecionar se aquele lote a ser gerado será um lote normal ou um lote de boletos. Caso seja selecionada a opção de lote de boletos, deverá ser apresentado ao usuário a relação dos títulos contendo apenas os títulos que possuem boleto. Para isso, a query de seleção deverá ser complementada para que retorne esses títulos quando selecionado a opção de lote de boleto.
Ao confirmar a gravação do lote de boleto, o campo FW8_TPFAC deverá ser gravado com o valor "B", que representa que o lote em questão é do tipo boleto. A gravação desse campo permitirá que o processamento do arquivo seja feito de corretamento quando o lote do tipo boleto.
Geração do arquivo de entrada no layout FAC Boleto
Deverá ser incluída no menudef do FINA770 uma opção exclusiva para a geração de arquivo de lotes FAC Boleto. A chamada deverá ser igual a que é feita para a função F770Export, que é a função responsável pela geração do FAC Simples.
Identificador do layout FAC Boleto no MILE
O layout do FAC Boleto no MILE deverá ser identificado como "SERA_FAC" no MILE, assim, quando for chamado pela função de exportação de FAC Boleto, não haverá ambiguidade com relação ao layout FAC Simples "SERA_ENV".
Tabelas Utilizadas
- FW8 – Cadastro de Contas a Pagar
- FW9 – Detalhes do Lote Serasa