Base de Conhecimento de Gestão Comercial de Saneamento

A maior base de documentação de GSAN do mercado mantida pela Consenso Tecnologia

Ferramentas do usuário

Ferramentas do site


casos_de_uso:postgres:arrecadacao:uc1691:menu

[UC1691] Confirmar Pagamento Cartão de Crédito

Projeto: GSAN

Histórico de Revisões

Data Autor Descrição Proposta
22/09/2015 Denys Tavares Criação do artefato.
02/10/2015 Denys Tavares Verificar existencia do aviso bancário para o arrecadador e data informada.


Introdução

Este documento especifica os casos de uso e requisitos não-funcionais (RNFs) do projeto intitulado GSAN - Sistema Integrado de Gestão de Serviços de Saneamento - 8.1.1.4RD, referente à etapa de especificação do Projeto de Software (Software Design) do GSDP - Processo de Desenvolvimento da Fábrica de Software da Consenso. O objetivo do documento é fornecer aos desenvolvedores e Stakeholders as informações necessárias para o projeto e implementação, assim como para a realização dos testes e homologação da aplicação.


Convenções, termos e abreviações utilizados nesse artefato

A correta interpretação deste documento exige o conhecimento de algumas convenções, termos específicos e abreviações, que são descritos a seguir:

a) Stakeholders - termo usado em diversas áreas como administração e arquitetura de software referente às partes interessadas que devem estar de acordo com as práticas de governança corporativa executadas pela empresa.

b) RNF (Requisitos Não Funcionais) - são os requisitos relacionados ao uso da aplicação em termos de desempenho, usabilidade, confiabilidade, segurança, disponibilidade, manutenibilidade e tecnologias envolvidas. Em geral, requisitos não-funcionais podem constituir restrições aos requisitos funcionais e não é preciso o cliente dizer sobre eles, pois eles são características mínimas de um software de qualidade, ficando a cargo do desenvolvedor optar por atender esses requisitos ou não.

c) Logado - Usuário deve ter informado suas credenciais (login e senha) para entrar no sistema GSAN de forma que o mesmo possa identificá-lo.

d) Radio Button - É um elemento de seleção de única escolha. De uma lista só é possível selecionar um item.


Atores

A tabela abaixo descreve brevemente cada ator da aplicação.

Ator Descrição
Usuário da Divisão de Arrecadação (complexo (1)). Usuários com acesso ao módulo Arrecadação do GSAN.


Casos de Uso

Essa seção apresenta todos os requisitos funcionais da aplicação, especificados como casos de uso.

Diagrama de Caso de Uso

PlantUML Graph

Prioridade: X Essencial Importante Desejável
Ator(es): Usuário da Divisão de Arrecadação (complexo (1)).


Descrição: Funcionalidade que permite gerar pagamentos recebidos através de cartão de crédito.
Pré-condições: O usuário deverá estar logado e deverá acessar a funcionalidade GSAN> Arrecadacao> Pagamento> Confirmar Pagamento Cartão de Crédito.
Pós-condições: Aviso Bancário e pagamentos incluídos na base de dados do GSAN.
Complexidade: Médio (1).
Casos de uso relacionados:


Fluxo Principal:

  1. O usuário seleciona a opção Confirmar pagamento de cartão de crédito.
  2. Informa a Data do Vencimento no formato DD/MM/AAAA (obrigatório) [FS0001 - Validar Data do Vencimento]
  3. Seleciona o Arrecadador (obrigatório):
    1. O sistema apresenta uma lista dos clientes arrecadadores para cartão de crédito (CLIE_NMCLIENTE da tabela CLIENTE para CLIE_ID=CLIE_ID da tabela ARRECADADOR com ARRC_ID=ARRC_ID da tabela ARRECADADOR_CONTRATO com ARCT_ID=ARCT_ID da tabela ARRECADADOR_CONTRATO_TAR para ARFM_ID correspondente a CARTÃO DE CRÉDITO).
  4. Informa o Valor do Crédito (obrigatório);
  5. Caso o usuário tecle no botão Selecionar:
    1. Verificar existencia do aviso bancário [IT0001 – Verificar existência de aviso bancário]:
    2. Caso o aviso já exista:
      1. exibe dados do aviso:
        1. Data do lançamento (AVBC_DTLANCAMENTO);
        2. Valor informado (AVBC_VLARRECADACAOINFORMADO);
        3. Valor calculado (AVBC_VLARRECADACAOCALCULADO);
        4. Quantidade de guias pagas [IT0002 – Obter quantidade de guias pagas];
        5. O sistema deverá exibir mensagem: Já existe aviso bancário para este Arrecadador/Data e volta para o passo 1 do fluxo principal.
    3. Caso contrário o sistema exibe uma lista das guias de pagamento do cliente arrecadador [IT0003 – Obter guias de pagamento pendentes], [FS0002 - Verificar existência de guias de pagamento] com os seguintes dados:
      1. NSU (PACC_NNIDENTIFICADORTRANSACAO da tabela COBRANCA_PARCEL_PAGTO_CARTAO_CRED para PARC_ID = PARC_ID da tabela GUIA_PAGAMENTO);
      2. Data Parcelamento no formato DD/MM/AAAA (PARC_TMPARCELAMENTO da tabela COBRANCA_PARCELAMENTO para PARC_ID = PARC_ID da tabela GUIA_PAGAMENTO);
      3. Valor do Débito (GPAG_VLDEBITO);
    4. O sistema exibe também:
      1. O percentual de tarifa cobrado pelo cliente arrecadador (ACTF_PCTARIFA da tabela ARRECADADOR_CONTRATO_TAR),caso exista;
      2. O valor da tarifa cobrado pelo serviço (percentual da tarifa sobre o valor total das guias),caso exista;
      3. O valor total das guias;
      4. e a diferença (valor de crédito informado - (valor total das guias - valor da tarifa)), caso exista.
  6. Caso contrário, retorna ao passo inicial.
  7. Caso o usuário clique no botão Inserir pagamentos:
    1. Caso o valor total das guias seja diferente do valor de crédito informado o sistema deverá exibir mensagem solicitando confirmação: Valor total das guias é diferente do valor informado. Confirma Inclusão?
    2. Caso contrário, solicita apenas confirmação: Confirma Inclusão?
  8. Caso o usuário confirme:
    1. [SB0001 - Incluir Aviso Bancário], FS0003 - Verificar sucesso da transação];
    2. Caso o valor da tarifa seja diferente de zero, [SB0003 - Incluir Devolução], [FS0003 - Verificar sucesso da transação];
    3. Para cada guia de pagamento da lista o sistema inclui um pagamento correspondente.[SB0002 - Incluir Pagamentos], [FS0003 - Verificar sucesso da transação].
    4. Registra a transação de confirmação de pagamento de cartão de crédito:
      «Inclui» [UC0107 – Registrar Transação].


Subfluxos:

[SB0001] - Incluir Aviso Bancário

  1. Inclui o aviso bancário na tabela AVISO_BANCARIO com os seguintes valores:
AVBC_ID Id gerado pelo sistema
AVBC_DTLANCAMENTO Data de vencimento informada
AVBC_NNSEQUENCIAL 1
AVBC_DTPREVISTA Data de vencimento informada
AVBC_DTREALIZADA Data de vencimento informada
AVBC_VLREALIZADO Valor do Crédito informado
AVBC_VLARRECADACAOINFORMADO Valor do Crédito informado
AVBC_VLDEVOLUCAOINFORMADO Zero
AVBC_VLARRECADACAOCALCULADO Valor total das guias
AVBC_VLDEVOLUCAOCALCULADO (valor total das guias) - (valor da tarifa)
AVBC_VLCONTABILIZADO Zero
AVBC_AMREFERENCIAARRECADACAO Maior ano/mês entre o ano/mês da data de lançamento (AVBC_DTLANCAMENTO) e o ano/mês da arrecadação (PARM_AMREFERENCIAARRECADACAO da tabela SISTEMA_PARAMETROS)
AVBC_ICCREDITODEBITO 1
AVBC_NNDOCUMENTO Zero
ARRC_ID ARRC_ID do cliente arrecadador selecionado
CTBC_ID CTBC_IDDEPOSITOARRECADACAO DA TABELA ARRECADADOR_CONTRATO PARA O ARRECADADOR INFORMADO E CONVENIO INFORMADO
ARMV_ID Nulo
AVBC _TMULTIMAALTERACAO CURRENT TIMESTAMP
ARFM_ID ARFM_ID da tabela ARRECADACAO_FORMA para ARFM_ID correspondente a CARTÃO DE CRÉDITO.


[SB0002] - Incluir pagamentos

PGMT_ID Id do pagamento gerado pelo sistema.
PGMT_AMREFERENCIAPAGAMENTO Nulo.
PGMT_AMREFERENCIAARRECADACAO Caso o ano/mês da data do pagamento seja maior que a PARM_AMREFERENCIAARRECADACAO da tabela SISTEMA_PARAMETROS atribuir ano/mês da data do pagamento, caso contrário atribuir o PARM_AMREFERENCIAARRECADACAO.
PGMT_VLPAGAMENTO GPAG_VLDEBITO
PGMT_DTPAGAMENTO GPAG_DTVENCIMENTO
PGST_IDATUAL Nulo.
PGST_IDANTERIOR Nulo.
DBTP_ID DBTP_ID da guia de pagamento
CNTA_ID Nulo.
GPAG_ID GPAG_ID
DBAC_ID Nulo.
LOCA_ID LOCA_ID da guia de pagamento
DOTP_ID Valor correspondente a GUIA DE PAGAMENTO da tabela DOCUMENTO_TIPO.
AVBC_ID AVBC_ID do Aviso Bancário incluído
IMOV_ID Nulo.
AMIT_ID Nulo.
ARFM_ID ARFM_ID do Aviso Bancário incluído
PGMT_TMULTIMAALTERACAO CURRENT TIMESTAMP
CLIE_ID CLIE_ID do cliente arrecadador
PGMT_VLEXCEDENTE Nulo.
PGMT_ICEXPURGADO Nulo.
FATU_ID Nulo.
CBDO_ID Nulo.
DOTP_IDAGREGADOR Valor correspondente a GUIA DE PAGAMENTO da tabela DOCUMENTO_TIPO.
PGMT_TMPROCESSAMENTO CURRENT TIMESTAMP
PACD_ID Nulo.
PGMT_IDANTERIOR Nulo.


[SB0003] - Incluir Devolução

  1. Inclui a guia de devolução referente ao valor da tarifa, na tabela GUIA_DEVOLUCAO com os seguintes valores:
GDEV_ID Id da Guia de Devolução gerado pelo sistema
LOCA_ID LOCA_ID da guia de pagamento
IMOV_ID Nulo.
CLIE_ID ID do Cliente Arrecadador
GDEV_AMREFERENCIACONTABIL PARM_AMREFERENCIAARRECADACAO da tabela SISTEMA_PARAMETROS
GDEV_AMREFERENCIAGUIADEVOLUCAO Nulo
GDEV_DTEMISSAO Data corrente
GDEV_DTVALIDADE Data corrente
GDEV_VLDEVOLUCAO Valor da tarifa
RGAT_ID Nulo
ORSE_ID Nulo
LICT_ID LICT_ID da tabela CREDITO_TIPO com CRTP_ID com o valor correspondente a descontos concedidos
DCST_IDATUAL DCST_ID da tabela DEBITO_CREDITO_SITUACAO com o valor correspondente a Normal.
DCST_IDANTERIOR Nulo.
CRTI_ID CRTI_ID com o valor correspondente a descontos concedidos na tabela CREDITO_TIPO.
DOTP_ID Com o valor correspondente a devolução de valor da tabela DOCUMENTO_TIPO.
CNTA_ID Nulo
GPAG_ID Nulo
DBAC_ID Nulo
DBTP_ID Id do tipo de débito da tabela DEBITO_TIPO com o valor correspondente a outros
GDEV_TMULTIMAALTERACAO Data e hora correntes.
FUNC_IDANALISTA Nulo
FUNC_IDAUTORIZADOR Nulo
USUR_ID Id do usuário da sessão
  • 2. O sistema inclui na tabela DEVOLUCAO a devolução referente à guia de devolução gerada com os seguintes valores:
DEVL_ID Id da devolução gerado pelo sistema.
DEVL_AMREFERENCIADEVOLUCAO Nulo
DEVL_AMREFERENCIAARRECADACAO Caso o ano/mês da data da devolução seja maior que a PARM_AMREFERENCIAARRECADACAO da tabela SISTEMA_PARAMETROS atribuir ano/mês da data da devolução, caso contrário atribuir o PARM_AMREFERENCIAARRECADACAO.
DEVL_VLDEVOLUCAO Valor da Tarifa
DEVL_DTDEVOLUCAO Data do Vencimento informada
DVST_IDATUAL Nulo
DVST_IDANTERIOR Nulo
AVBC_ID ID do Aviso Bancário gerado
GDEV_ID Id da Guia de Devolução gerada
LOCA_ID LOCA_ID da guia de pagamento
IMOV_ID Nulo
CLIE_ID ID do Cliente Arrecadador
DBTP_ID Id do tipo de débito da tabela DEBITO_TIPO com o valor correspondente a outros
DEVL_TMULTIMAALTERACAO Data e hora correntes
CRAR_ID Nulo
CBDO_ID Nulo
DOTP_IDAGREGADOR Nulo
PGMT_TMPROCESSAMENTO Data e hora correntes


Fluxo Secundário:

[FS0001] - Validar data do vencimento

  1. Caso a data do vencimento esteja inválida, exibir a mensagem: Data do Vencimento inválida e retornar para o passo correspondente no fluxo principal.
  2. Caso a data do vencimento seja posterior à data corrente, exibir mensagem: Data do Vencimento posterior à data corrente «data corrente» e retornar para o passo correspondente no fluxo principal.


[FS0002] - Verificar existência de guia de pagamento

Caso não exista nenhuma guia de pagamento para o filtro informado, exibir a mensagem: O arrecadador «código do cliente» não possui nenhuma guia de pagamento pendente para o filtro informado, e retornar para o passo correspondente no fluxo principal.


[FS0003] - 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.


[FS0004] – Verificar existência de aviso bancário

Verificar se existe AVISO_BANCARIO com ARRC_ID = (ARRC_ID da tabela ARRECADADOR_CONTRATO com ARCT_ID=ARCT_ID da tabela ARRECADADOR_CONTRATO_TAR para ARFM_ID correspondente a CARTÃO DE CRÉDITO) e AVBC_DTLANCAMENTO = data do vencimento informada e ARFM_ID da tabela ARRECADACAO_FORMA para ARFM_ID correspondente a CARTÃO DE CRÉDITO).


Informações técnicas adicionais

[IT0001] – Verificar existência de aviso bancário

Verificar se existe AVISO_BANCARIO com ARRC_ID = (ARRC_ID da tabela ARRECADADOR_CONTRATO com ARCT_ID=ARCT_ID da tabela ARRECADADOR_CONTRATO_TAR para ARFM_ID correspondente a CARTÃO DE CRÉDITO) e AVBC_DTLANCAMENTO = data do vencimento informada e ARFM_ID da tabela ARRECADACAO_FORMA para ARFM_ID correspondente a CARTÃO DE CRÉDITO).


[IT0002] – Obter quantidade de guias pagas

A partir da tabela GUIA_PAGAMENTO_GERAL, caso a guia esteja na tabela GUIA_PAGAMENTO ou GUIA_PAGAMENTO_HISTORICO, com CLIE_ID=CLIE_ID do cliente selecionado e DCST_IDATUAL com o valor correspondente a normal da tabela DEBITO_CREDITO_SITUACAO, GPAG_DTVENCIMENTO = data de vencimento informada, GPAG_ID = GPAG_ID da tabela COBRANCA.PAG_CARTAO_CRED_ITEM) e exista pagamento (Na tabela PAGAMENTO ou PGAMENTO_HISTORICO)


[IT0003] – Obter guias de pagamento pendentes

A partir da tabela GUIA_PAGAMENTO com CLIE_ID=CLIE_ID do cliente selecionado e DCST_IDATUAL com o valor correspondente a normal da tabela DEBITO_CREDITO_SITUACAO e GPAG_DTVENCIMENTO = data de vencimento informada e GPAG_ID = GPAG_ID da tabela COBRANCA.PAG_CARTAO_CRED_ITEM) sem pagamento ( GPAG_ID não existA na tabela PAGAMENTO)


Tabelas relacionadas

ARRECADACAO.ARRECADADOR
ARRECADACAO.ARRECADADOR_CONTRATO
ARRECADACAO.ARRECADADOR_CONTRATO_TAR
ARRECADACAO.AVISO_BANCARIO
ARRECADACAO.PAGAMENTO
ARRECADACAO.PAGAMENTO_HISTORICO
ARRECADACAO.DEVOLUCAO
ARRECADACAO.GUIA_DEVOLUCAO
FATURAMENTO.GUIA_PAGAMENTO
CADASTRO.CLIENTE
COBRANCA.PAG_CARTAO_CRED_ITEM


Referências

Nesta seção, são apresentadas as referências utilizadas para a elaboração deste documento.

Confirmar Pagamento Cartão de Crédito

Termos Principais

casos_de_uso/postgres/arrecadacao/uc1691/menu.txt · Última modificação: 13/08/2018 12:51 por tadeu.sarmento