Serviço externo padrão - Aplica Desconto Customizado Contrato Financeiro
Este serviço será responsável por aplicar um desconto nas parcelas de um contrato financeiro que já apresentam títulos gerados ou sem parcelas geradas(neste caso, é aplicado apenas no contrato), respeitando algumas regras. Podendo customizar o desconto sobrescrevendo algumas informações informações já preenchidas anteriormente no cadastro do desconto. Contudo, o cadastro do desconto não é alterado, apenas é aplicado com informações diferentes para o cenário específico indicado na requisição.
- Caso for informado um o Pes_id de um responsável especifico o desconto somente será aplicado para aquele responsável do contrato financeiro porém, caso não informado nenhum responsável será aplicado para todos os responsáveis daquele contrato.
- Os parâmetros (Id do contrato financeiro e Id do desconto) são obrigatórios, ou seja caso não informados terá uma validação informando um erro ao usuário.
- Pode ser passado um data base para filtrar as parcelas. Exemplo: 12/10/22, neste casso ele irá pegar somente as parcelas que possuem o vencimento igual e superior a esta data. Caso não for informado irá pegar sempre a data atual.
- Todo desconto incluso será vinculado aos responsáveis financeiros do contrato (tb_responsavel_desacr), caso seja solicitado para incluir um desconto que já foi aplicado as parcelas não serão alteradas.
- Só será possível indicar “porcentagem” ou “valor” do desconto, não podendo customizar no desconto informando os dois valores, uma vez que só é pode ser aplicado um dos dois valores no desconto.
Deve-se passar no cabeçalho da requisição, o parâmetro token. O valor deste parâmetro é gerado pelo serviço de geração de token.
1. Parâmetros para chamada do serviço externo
Parâmetro | Descrição | Obrigatório | Tipo | Observação |
---|---|---|---|---|
contratoFinanceiroId | Identificador do contrato financeiro | Sim | Interger | Se for passado null ou informado 0, será lançado uma exceção. |
descontoId | Identificador do desconto que será incluso | Sim | Interger | Se for passado null ou informado 0, será lançado uma exceção. |
percentualDesconto | Porcentagem de aplicação do desconto | Não | NUMERIC(18,2) | Se não for passado não será aplicado a customização do banco, recuperando o valor indicado no cadastro do desconto com o id indicado no parâmetro anterior. |
valorDesconto | Valor de aplicação do desconto | Não | NUMERIC(18,2) | Se não for passado não será aplicado a customização do banco, recuperando o valor indicado no cadastro do desconto com o id indicado no parâmetro anterior. |
dataValInicialDesconto | Data de validade inicial do desconto | Não | Date | Se não for passado o valor não preenchido no cadastro da aplicação do desconto, ficando um valor vazio. |
dataValFinalDesconto | Data de validade final do desconto | Não | Date | Se não for passado o valor não preenchido no cadastro da aplicação do desconto, ficando um valor vazio. |
observacaoDesconto | Observação do desconto | Não | VARCHAR(255) | Se não for passado o valor não preenchido no cadastro da aplicação do desconto, ficando um valor vazio. |
tipoOrdemDescAcrescDesconto | Tipo de ordem de desconto | Não | VARCHAR(10) | Quando desejar indicar esse campo na requisição, só poderá ser enviado um os seguintes valores: VALBRU (Valor bruto), RESPON (Responsável), PLANO (Plano de pagamento), FAMILIA (Família). Caso não for informado o parâmetro, seguirá a seguinte regra de escolha do tipo: se for o primeiro desconto a ser aplicado ao responsavel financeiro é atribuito VALBRU, caso contrário é atribuído RESPON. |
responsavelContratoFinanceiroPesId | Pes_id do responsavel financeiro | Não | Interger | Caso informado será aplicado o desconto somente para esse responsável do contrato financeiro |
vencimentoBase | Filtro de data que será aplicado para recuperar as parcelas | Não | Date | Formato: DD/MM/YYYY“ / Caso não informado será utilizado o dia atual |
2. Exemplo de chamada do serviço
URL: http://IP:PORTA/APLICACAO/rest/servicoexterno/execute/aplicaDescontoCustomContratoFin
2.1. Exemplo da passagem de parâmetros por Json:
{ "contratoFinanceiroId": 87220, "descontoId": 357, "percentualDesconto": 15.00, "valorDesconto": null, "dataValInicialDesconto": "11/04/2023 00:00:00", "dataValFinalDesconto": "11/04/2023 00:00:00", "observacaoDesconto": "Observação de Teste", "tipoOrdemDescAcrescDesconto": "VALBRU", "responsavelContratoFinanceiroPesId": 68639, "vencimentoBase": "11/04/2023 18:00:00" }
3. Retorno do serviço (Json)
Retorno de Sucesso:
{ "valor": { "totalParcelasAlteradas":1, "logs": [ "SUCESSO - Total de parcelas alteradas":2, "SUCESSO - Alteração de parcela", "SUCESSO - Contrato: Teste Postman", "SUCESSO - Parcela 1, conta financeiroa 260, do responsável 10109125 - XXXX, data de vencimento 21/10/2022:<b>alterada com sucesso.<bb>", "COM ADVERTENCIAS - Geração de titulos bancários", "COM ADVERTENCIAS - Parcela 1, da conta financeiroa 260, do responsável 10109125 - XXXX com vencimento em 31/10/2022 foi gerado novo título bancário." ] }, "resultado": "SUCESSO" }
Exemplo de retorno Json para erro na regra de negócio:
{ "valor": { "totalParcelasAlteradas": 0, "logs":[ "Responsável financeiro 222, não possuí vínculo com o contrato financeiro 248.774, por gentileza verificar.", "Não foram encontradas parcelas para este contrato financeiro": 248774 ] }, }
Exemplo de retorno Json para erro de desconto não concomitante:
{ "valor": { "totalParcelasAlteradas": 0, "logs":[ "COM ADVERTENCIAS - Alteração de parcela"\ "COM ADVERTENCIAS - contrato: Teste Postman", "COM ADVERTENCIAS - Parcela número: 1 com vencimento em 31/10/2022, com valor bruto de 50,00, do responsável 10109125 - XXXX, não teve o desconto/acréscimo 589 - 13,726% (Desconto EAD COMERCIAL), proveniente do responsável aplicado. Motivo: Desconto não concomitante.", "COM ADVERTENCIAS - Parcela 1, conta financeira 260, do responsável 10109125 - XXXX, data de vencimento 31/10/2022: <b> não teve alteração. </b>", "FALHA - Nenhuma parcela foi alterada no processo. \r\n" ] }, }
Exemplo de retorno Json para erro desconto já aplicado:
{ "valor": { "totalParcelasAlteradas": 0, "logs":[ "COM ADVERTENCIAS - Alteração de parcela"\ "COM ADVERTENCIAS - contrato: Teste Postman", "COM ADVERTENCIAS - Parcela 1, conta financeira 260, do responsável 10109125 - XXXX, data de vencimento 31/10/2022: <b> não teve alteração. </b>", "FALHA - Nenhuma parcela foi alterada no processo. \r\n" ] }, "resultado": "SUCESSO" }
Exemplo de retorno Json para desconto aplicado em contrato sem parcelas:
{ "valor": { "totalParcelasAlteradas": 0, "logs":[ "Não foram encontradas parcelas para este contrato financeiro: 128.390"] }, "resultado": "SUCESSO" }