casos_de_uso:postgres:arrecadacao:uc1678:menu
Essa é uma revisão anterior do documento!
Tabela de conteúdos
[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:
- 1. O sistema recebe os seguintes parâmetros do caso de uso que chamou esta funcionalidade:
- 1.1. Arrecadador
- 1.2. Arquivo de movimento de arrecadador
- 2. 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]; - 3. O sistema insere o movimento do arrecadador.
[SB0002 - Inserir o movimento do arrecadador]; - 4. A partir do segundo e para cada registro guardado na coleção, o sistema:
- 4.1. Atribui o valor “OK” ao campo Descrição da Ocorrência do Movimento;
- 4.2. Atribui o valor 1 (SIM) ao Indicador de Aceitação do Registro do Movimento;
- 4.3.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];
- 5. Insere a sequência do cartão
[SB0007 - Inserir sequencia do cartão]; - 6. 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
- 1. 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
- 1. 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 |
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
- 1. 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.
- 1. 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 efetuado 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
- 1. Atribuir “Cartão de Débito” à Descrição da Ocorrência do Movimento deste caso de uso;
- 2. Atribuir “Sim” ao Indicador de Aceitação do Registro do Movimento;
- 3. Caso o Indicador de Aceitação do Registro do Movimento corresponda a 1 (SIM), o sistema:
- 4. 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
- 1. 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
- 1. 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.
casos_de_uso/postgres/arrecadacao/uc1678/menu.1465237691.txt.gz · Última modificação: 31/08/2017 01:11 (edição externa)