[UC1678] - Registrar Movimento Cartão de Débito EEVD

Este caso de uso permite o registro do movimento de cartão de crédito/débito.

Ator: Usuário da Divisão de Arrecadação (complexo (1)).
Prioridade: Essencial.
Pré-condição: Existência do arquivo de movimento de arrecadador.
Pós-condição: Movimento de Arrecadador Registrado.
Complexidade: Complexo (1).
Histórico de Alterações:

Data	Analista	Descrição da Alteração
27/03/2015	Vivianne Sousa	Versão Inicial

Diagrama do caso de uso

Fluxo Principal:

O sistema recebe os seguintes parâmetros do caso de uso que chamou esta funcionalidade: Arrecadador Arquivo de movimento de arrecadador O sistema distribui e valida o header e trailer do arquivo de movimento de arrecadador. [SB0001 - Distribuir e Validar o Header e Trailer do arquivo]; O sistema insere o movimento do arrecadador. [SB0002 - Inserir o movimento do arrecadador]; A partir do segundo e para cada registro guardado na coleção, o sistema: Atribui o valor OK ao campo Descrição da Ocorrência do Movimento; Atribui o valor 1 (SIM) ao Indicador de Aceitação do Registro do Movimento; Caso o tipo de registro = 05 (D01 = 05), o sistema distribui os dados do conteúdo do registro de movimento do arrecadador, [SB0004 - Distribuir Dados do Registro de Movimento de Cartão]; Insere a sequência do cartão [SB0007 - Inserir sequencia do cartão]; Confirma as operações efetuadas no banco de dados [FS0002 - Verificar sucesso da transação].

Subfluxo:

[SB0001] - Distribuir e Validar o Header e Trailer do arquivo

O sistema distribui os dados do conteúdo do registro código 00 do movimento do arrecadador:

Coluna	Tam.	Tipo	Descrição do campo
A01	2	Num.	Tipo de registro
A02	9	Num.	Nº de filiação da matriz ou grupo comercial
A03	8	Num.	Data de emissão
A04	8	Num.	Data de movimento
A05	39	Alfa	Movimentação Diária - Cartões de Débito
A06	8	Alfa	Rede
A07	26	Alfa	Nome comercial do estabelecimento
A08	6	Num.	Sequência de movimento
A09	15	Alfa	Tipo de processamento (Diário/Reprocessamento)
A10	20	Alfa	Versão do arquivo (V1.04 – 07/10 – EEVD)
2. Caso o código do registro (campo A01) não corresponda a 00, exibir a mensagem: Arquivo de Movimento de Arrecadador sem Header e encerrar o caso de uso. 3. O sistema seleciona o estabelecimento matriz que corresponda ao da empresa que está recebendo o arquivo (ARCT_NNCONTRATO da tabela ARRECADACAO.ARRECADADOR_CONTRATO com ARRC_ID = ARRC_ID do arrecadador selecionado e com ARFM_ID = id correspondente a Cartão de Débito) 3.1. Caso não exista ARCT_NNCONTRATO, exibir a mensagem: Arrecadador informado não possui contrato de Cartão de Débito e encerrar o caso de uso. 3.2. Caso (campo A02) diferente do ARCT_NNCONTRATO, exibir a mensagem: Número do contrato inválido e encerrar o caso de uso. 4. O sistema verifica se o arquivo já foi processado, verificando se a sequência do arquivo já está na tabela de registros (SEQUENCIA (A08) existe na tabela ARRECADACAO.SEQUENCIA_CARTAO com SEQU_NNNSA = SEQUENCIA (A08) e com ARFM_ID = id correspondente a Cartão de Débito). 4.1. Caso exista o sistema exibe a mensagem: Arquivo já processado e encerrar o caso de uso. 5. O sistema lê o arquivo de movimento de arrecadador sequencialmente até encontrar o registro código 04, contando a quantidade total registros e guardando os registros código 05 lidos em uma coleção. [FS0001 - Verificar a existência do registro código 04]. 6. O sistema distribui os dados do conteúdo do registro 04 do movimento do arrecadador:
Coluna	Tam.	Tipo	Descrição do campo
Z01	2	Num.	Tipo de registro
Z02	9	Num.	Nº de filiação da matriz ou grupo comercial
Z03	6	Num.	Quantidade de Resumos de Vendas
Z04	6	Num.	Quantidade de Comprovantes de Vendas
Z05	15	9(13)V99	Total bruto
Z06	15	9(13)V99	Total desconto
Z07	15	9(13)V99	Total líquido
Z08	15	9(13)V99	Valor bruto pré-datado
Z09	15	9(13)V99	Desconto pré-datado
Z10	15	9(13)V99	Líquido pré-datado
Z11	6	Num.	Total de registros no arquivo
7. Caso a quantidade total de registros não seja igual ao total de registros do arquivo (campo Z(11)) exibir a mensagem: Total de registros do arquivo de movimento inválido e encerrar o caso de uso.

[SB0002] - Inserir Movimento do Arrecadador

O sistema insere os dados dos registros códigos 00 e 04 na tabela ARRECADACAO.ARRECADADOR_MOVIMENTO com os seguintes valores:

ARMV_ID	Id do movimento gerado pelo sistema
ARMV_DTGERACAO	Data corrente
ARMV_NNNSA	Sequencia do movimento (Campo A08)
ARMV_CDCONVENIO	Campo A02
ARMV_NMEMPRESA	Campo A07
ARMV_CDBANCO	Código agente do arrecadador (ARRC_CDAGENTE da tabela ARRECADACAO. ARRECADADOR com ARRC_ID = ARRC_ID selecionado/informado)
ARMV_NNVERSAOLAYOUT	1
ARMV_CDREMESSA	1
ARMV_NMBANCO	CLIE_NMCLIENTE da tabela CADASTRO.CLIENTE com CLIE_ID = CLIE_ID da tabela ARRECADACAO.ARRECADADOR com ARRC_ID = ARRC_ID selecionado/informado
ARMV_DSIDENTIFICACAOSERVICO	Campo A05
ARMV_NNREGISTROSMOVIMENTO	Campo Z11 Número total de registros, não inclui header e trailler
ARMV_VLTOTALMOVIMENTO	Somatório dos valores contidos nos campos D05 - Valor bruto dos registros tipo 05
ARMV_TMULTIMAALTERACAO	Data e hora correntes

[SB0003] - Inserir o item de movimento do arrecadador

Insere o item de movimento do arrecadador na tabela ARRECADACAO.ARRECADADOR_MOVIMENTO_ITEM com os seguintes valores:

AMIT_ID	Id do item de movimento do arrecadador, gerado pelo sistema.
RGCD_ID	RGCD_ID da tabela ARRECADACAO.REGISTRO_CODIGO com RGCD_CDREGISTROCODIGO igual ao código do registro
AMIT_CNREGISTRO	Conteúdo do movimento com 200 posições
ARMV_ID	Id do movimento
AMIT_DSOCORRENCIA	Descrição da Ocorrência do Movimento
AMIT_ICACEITACAO	Indicador de Aceitação do Registro do Movimento
AMIT_TMULTIMAALTERACAO	Data e hora correntes
IMOV_ID	Nulo
1.1. Caso a descrição da ocorrência do movimento seja igual a Número do cartão de débito não localizado, [SB0006 - Inserir o movimento do cartão rejeitado].

[SB0004] - Distribuir Dados do Registro de Movimento de Cartão.

O sistema distribui os dados do conteúdo do registro 05 do movimento do arrecadador:

Coluna	Tam.	Tipo	Descrição do campo
D01	2	Num.	Tipo de registro
D02	9	Num.	N.º de filiação do Ponto de Venda
D03	9	Num.	N.º do Resumo de Vendas
D04	8	Num.	Data do CV (DDMMAAAA)
D05	15	9(13)V99	Valor bruto (para o Compre e Saque, este campo será composto pelo Valor da Compra + Valor do Saque)
D06	15	9(13)V99	Valor desconto
D07	15	9(13)V99	Valor líquido
D08	19	Alfa	Número do cartão
D09	1	Alfa	Tipo de transação
D10	12	Num.	Número do CV
D11	8	Num.	Data do crédito
D12	2	Num.	Status da transação (01 – acatada)
D13	6	Num.	Hora da transação (HHMMSS)
D14	8	Alfa	Número do terminal
D15	2	Num.	Tipo de captura
D16	5	Num.	Reservado
D17	15	9(13)V99	Valor da compra (para o Compre e Saque)
D18	15	9(13)V99	Valor do saque (para o Compre e Saque)
D19	1	Alfa	Bandeira
D20	7	Num.	Código da autorização
2. O sistema verifica se o registro informado é válido para o movimento corrente. 2.1. Caso o número do cartão não esteja informado (Campo D(08) com valor igual a zeros ou espaços), o sistema deverá desprezar o registro atribuindo à descrição da ocorrência a informação: (Número do cartão não informado). 2.2. Caso a data da transação de cartão de crédito não seja válida para o sistema de arrecadação atual (Campo D(04) menor que constante de data de implantação do sistema GSAN (PARM_DTIMPLANTACAOSISTEM da tabela CADASTRO.SISTEMA_PARAMETROS)), o sistema não deverá registrar o registro e atribuir à descrição da ocorrência a informação: (Transação efetuada no sistema anterior). 2.3. Caso o status da transação seja diferente de acatada (Campo D(12) com valor diferente 01), o sistema deverá desprezar o registro e atribuir à descrição da ocorrência o valor do conteúdo do campo. 2.4. Caso Contrário, o sistema deverá validar as informações do registro no cartão de débito. 2.4.1. O sistema deverá comparar o campo com a numeração do cartão de débito (Campo D(08)), após a criptografia do mesmo, com o valor do cartão informado na confirmação do pagamento por cartão de débito (a partir da tabela ARRECADACAO.PAGAMENTO_CARTAO_DEBITO onde PACC_NNNUMEROCARTAOCREDITO = numeração do cartão de débito, PACD_ICCONFIRMADOOPERADORA = 2 , PACD_VLPAGAMENTOS >= (Valor informado pela operadora (Campo D(05)) – 0,03)) e PACD_VLPAGAMENTOS ⇐ (Valor informado pela operadora (Campo D(05)) + 0,03)). 2.4.2. Caso o número tenha sido encontrado, o sistema deverá atualizar a confirmação do recebimento da operadora de cartão de débito (ARRECADACAO.PAGAMENTO_CARTAO_DEBITO):
PACD_ID	Id do cartão confirmado
PACD_ICCONFIRMADOOPERADORA	Indicador de Confirmação (atualizar com valor 1 (Sim)).
PACD_DTCONFIRMADOOPERADORA	Data da Confirmação (Campo D(04))
PACD_VLCONFIRMADOOPERADORA	Valor informado pela operadora (Campo D(05))
PACD_TMULTIMAALTERACAO	Data e Hora correntes
2.4.3. Caso Contrário, o número não tenha sido encontrado e atribuir à descrição da ocorrência a informação:“Número do cartão de débito não localizado” e não aceitar o registro. 2.5. Atribuir a Descrição da Ocorrência do Movimento à Descrição da Ocorrência do Movimento deste caso de uso; 2.6. Atribuir o Indicador de Aceitação do Registro do Movimento ao Indicador de Aceitação do Registro do Movimento deste caso de uso; 2.7. O sistema insere o item de movimento do arrecadador [SB0003 - Inserir o item de movimento do arrecadador]. 2.8. O sistema deverá atualizar as informações de recebimento no aviso bancário correspondente [SB0005 - Processar Pagamento Cartão de Débito].

[SB0005] - Processar Pagamento Cartão de Débito

Atribuir Cartão de Débito à Descrição da Ocorrência do Movimento deste caso de uso; Atribuir Sim ao Indicador de Aceitação do Registro do Movimento; Caso o Indicador de Aceitação do Registro do Movimento corresponda a 1 (SIM), o sistema: Seleciona o aviso bancário e atualiza o valor da arrecadação e valor realizado conforme descrito abaixo: (a partir da tabela ARRECADACAO.AVISO_BANCARIO onde AVBC_DTLANCAMENTO = Campo D11 (Data do crédito), ARFM_ID que tenha o ARFM_CDARRECADACAOFORMA= Cartão de Débito, (AVBC_DTPREVISTA = Campo D11 (Data do crédito) ou AVBC_DTREALIZADA = Campo D11 (Data do crédito)) , (AVBC_VLARRECADACAOCALCULADO com o valor zero ou com ARMV_ID com o id do movimento que está sendo processado) e ARRC_ID = ARRC_ID da tabela ARRECADACAO.ARRECADADOR onde ARRC_CDAGENTE = código agente do arrecadador inserido.
AVBC_VLARRECADACAOINFORMADO	Adiciona o valor bruto do pagamento
AVBC_VLREALIZADO	Adiciona o valor bruto do pagamento

[SB0006] - Inserir o movimento do cartão rejeitado

O sistema insere o movimento do cartão rejeitado na tabela ARRECADACAO.MOVIMENTO_CARTAO_REJEITA com os seguintes valores:

MCRE_ID	Id gerado pelo sistema
MCRE_NNCARTAO	Numero do cartão
MCRE_DTCOMPRA	Data em que o cliente realizou a compra
MCRE_VLVENDA	Valor da venda
MCRE_NNPARCELA	1
MCRE_NNPARCELADEBITO	1
AMIT_ID	Id do item do movimento do arrecadador
MCRE_TMULTIMAALTERACAO	Data e hora correntes

[SB0007] - Inserir sequencia do cartão

O sistema insere a sequência do cartão na tabela ARRECADACAO.SEQUENCIA_CARTAO com os seguintes valores:

SEQU_ID	Id gerado pelo sistema
SEQU_NNNSA	Sequencia do movimento (Campo A08)
ARRC_ID	Arrecadador
SEQU_TMULTIMAALRERACAO	Data e hora correntes
SEQU_CDOPCAOEXTRATO	1
ARFM_ID	Id correspondente a Cartão de Débito

Fluxo Secundário:

[FS0001] - Verificar a existência do registro 04

Caso até o final do arquivo não seja encontrado o registro código 04 ou, antes do fim do arquivo seja encontrado outro registro código 00 exibir a mensagem: Arquivo de Movimento Não Possui o registro código 04 (Total do Arquivo) e encerrar o caso de uso.

[FS0002] - Verificar sucesso da transação

Caso o código de retorno da operação efetuada no banco de dados seja diferente de zero, exibir a mensagem conforme o código de retorno e encerrar o caso de uso.

Referências

Registrar Movimento Cartão de Débito EEVD

Termos Principais

Arrecadação

<<Voltar UCs Arrecadação