Essa é uma revisão anterior do documento!
Tabela de conteúdos
[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 do GSAN. 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 Arrecadação | Usuários que tem acesso ao modulo 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 – [UC1691] Confirmar Pagamento Cartão de Crédito
Prioridade: | X | Essencial | Importante | Desejável | ||
Ator(es): | Usuário da Divisão Arrecadação. |
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.
Casos de uso relacionados:
Fluxo Principal:
- O usuário seleciona a opção Confirmar pagamento de cartão de crédito.
- Informa a Data do Vencimento no formato DD/MM/AAAA (obrigatório) [FS0001 - Validar Data do Vencimento]
- Seleciona o Arrecadador (obrigatório):
- 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”).
- Informa o Valor do Crédito (obrigatório);
- Caso o usuário tecle no botão “Selecionar”:
- Verificar existencia do aviso bancário [IT0001 – Verificar existência de aviso bancário]:
- Caso o aviso já exista:
- exibe dados do aviso:
- Data do lançamento (AVBC_DTLANCAMENTO);
- Valor informado (AVBC_VLARRECADACAOINFORMADO);
- Valor calculado (AVBC_VLARRECADACAOCALCULADO);
- Quantidade de guias pagas [IT0002 – Obter quantidade de guias pagas];
- O sistema deverá exibir mensagem: “Já existe aviso bancário para este Arrecadador/Data.” e volta para o passo 1 do fluxo principal.
- 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:
- NSU (PACC_NNIDENTIFICADORTRANSACAO da tabela COBRANCA_PARCEL_PAGTO_CARTAO_CRED para PARC_ID = PARC_ID da tabela GUIA_PAGAMENTO);
- Data Parcelamento no formato DD/MM/AAAA (PARC_TMPARCELAMENTO da tabela COBRANCA_PARCELAMENTO para PARC_ID = PARC_ID da tabela GUIA_PAGAMENTO);
- Valor do Débito (GPAG_VLDEBITO);
- O sistema exibe também:
- O percentual de tarifa cobrado pelo cliente arrecadador (ACTF_PCTARIFA da tabela ARRECADADOR_CONTRATO_TAR),caso exista;
- O valor da tarifa cobrado pelo serviço (percentual da tarifa sobre o valor total das guias),caso exista;
- O valor total das guias;
- e a diferença (valor de crédito informado - (valor total das guias - valor da tarifa)), caso exista.
- Caso contrário, retorna ao passo inicial.
- Caso o usuário clique no botão “Inserir pagamentos”:
- 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?”
- Caso contrário, solicita apenas confirmação: “Confirma Inclusão?”
- Caso o usuário confirme:
- [SB0001 - Incluir Aviso Bancário], FS0003 - Verificar sucesso da transação];
- Caso o valor da tarifa seja diferente de zero, [SB0003 - Incluir Devolução], [FS0003 - Verificar sucesso da transação];
- Para cada guia de pagamento da lista o sistema inclui um pagamento correspondente.[SB0002 - Incluir Pagamentos], [FS0003 - Verificar sucesso da transação].
- 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
- 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
- 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 a 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
.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.
.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.