[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

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:

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.

Confirmar Pagamento Cartão de Crédito

Termos Principais

Arrecadação

<<Voltar UCs Arrecadação