Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


  1. Alteração de jornada:
Data alteração       Motivo O que mudou?   AprovadoresVersão






       2. O que fazer?

Desenvolver integração para consulta e utilização de limite de crédito com a retaguarda

...

draw.io Diagram
1200
bordertrue
diagramNameJornada limite de crédito
simpleViewerfalse
width
linksauto
tbstyletop
diagramDisplayNameLimite de crédito
lboxtrue
diagramWidth18753581
revision622

Por que fazer?


Dores e necessidades

Efetuar a consulta de limite de crédito 

Negócio

No PDV e Pedido deve ser possível efetuar a consulta do saldo de crédito disponível para   exibição em tela para o usuário 

Entrega de valor

usuário poderá consultar no sistema PDV Omni o saldo de crédito disponível para o consumidor no momento da venda

Dores e necessidades

Necessidade de exibir limite de crédito por forma de pagamento na identificação do cliente

Negócio

Ao efetuar a identificação de um cliente no PDV ou Pedido quando houver limite de crédito diferente por forma de pagamento deve ser exibido na tela de detalhes do cliente os valores de limite separados por forme.

Entrega de valor

O processo irá garantir que o vendedor tenha a visualição nos detalhes do cliente do valor de limite de crédito por forma de pagamento

Dores e necessidades

Definir quais formas de pagamento devem consumir o limite de crédito

Negócio

Na integração das formas de pagamento deve ser identificado quais delas devem consumir limite de crédito na utilização no PDV e no pedido de venda

Entrega de valor

O processo de integração irá descer as informações necessárias para que o PDV e pedido possa validar o processo de limite de crédito 

Dores e necessidades

Atualizar o saldo do limite de crédito na utilização

Negócio

Na utilização de um meio de pagamento que utilize limite de crédito, após a finalização da compra deve ser atualizado o limite de crédito do cliente 

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o meio de pagamento que 

consuma o limite de crédito 


Dores e necessidades

cancelar uma venda atualizar o saldo de limite de crédito 

Negócio

Ao efetuar o cancelamento de uma venda com meio de pagamento que tenha consumido limite de crédito o valor do saldo deve ser atualizado de acordo com o valor da venda cancelada

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o cancelamento de uma 

venda


Dores e necessidades

Permitir vender com mais de uma forma de pagamento e limite de crédito 

Negócio

ao efetuar uma venda com mais de um meio de pagamento onde apenas um controla limite de crédito o valor de atualização do saldo deve ocorrer referente apenas ao valor pago com o meio de pagamento que controla limite de crédito

Entrega de valor

O processo irá garantir que na utilização o saldo de limite de crédito será atualizado de acordo com o meio de pagamento que controla limite de crédito 

Dores e necessidades

Necessidade de valor excedente de liberação de limite de crédito

Negócio

Parametro no cadastro da loja com o percentual de valor excedente de limite de crédito para operação na venda, quando ultrapassar o valor do limite de crédito deve ser validado se existe percentual no cadastro da loja para validação

Entrega de valor

Permitir que uma venda possa ultrapassar o valor de limite de acordo com o percentual cadastrado na loja



3. Tabelas e campos novos - PDV Omni

3.1 Tabela: pagamento_forma

Nome do campoTipo do campoObrigatorio
utiliza_limite_creditobooleanopcional 


3.2 Tabela: loja

Nome do campoTipo do campoObrigatorio
limite_credito_forma_pagamentobooleanopcional 



4. Definição de contratos de API:


4.1 Contrato de consulta de limite de crédito 

  • Endpoint: /api/pdvsyncserver/retaguarda/v2/processoonlinelimitecredito/{IdInquilino}/{IdRetaguardaLoja}
  • Método: Get
  • Autenticação: Bearer token
  • Permissão: Client


Request:

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim


cpfCnpjstringDocumento do cliente

Header

Sim


Response:

Campo

Tipo

Descrição

Obrigatório

Observação

successboolIndica se a consulta de limite de crédito ocorreu corretamenteSimExemplo: Se o cliente não foi encontrado, deve ser retornado "false", pois a partir disso o PDV sabe que não haverá objeto de limite de crédito para exibir e sim apenas a mensagem justificando a ausência efetiva do limite de crédito.
messagestringMensagem de retorno de errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
limitesCreditoLista de objetosLista com dos limites de créditos retornadosNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCredito.saldoDisponiveldoubleSaldo do crédito disponívelNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCredito.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão

Exemplos

Sucesso:

{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
      "saldo": 1000.00 ,
      "idRetaguardaLimiteCredito": null
    }
  ]
}


Erro:

{
  "success": false,
  "message": "Cliente com XPTO não encontrado na base de dados da retaguarda"
}


4.2 Contrato de consulta de limite de crédito detalhado 

  • Endpoint: /api/pdvsyncserver/retaguarda/v2/processoonlinelimitecreditodetalhes/{IdInquilino}/{IdRetaguardaLoja}
  • Método: Get
  • Autenticação: Bearer token
  • Permissão: Client


Request:

Campo

Tipo

Descrição

Tipo Parâmetro

Obrigatório

Observação

IdInquilinostringIdentificador do InquilinoParameter/Path/Query Params*Sim

*Usado apenas pelo PDV.

Retaguarda não precisa criar API com esse parâmetro, pois o Sync já irá direcionar para o IP correto.

IdRetaguardaLojastringIdentificador da loja na retaguarda

Parameter/Path/Query Params

Sim


cpfCnpjstringDocumento do cliente

Header

Sim



Response:

Campo

Tipo

Descrição

Obrigatório

Observação

successboolIndica se a consulta de limite de crédito ocorreu corretamenteSimExemplo: Se o cliente não foi encontrado, deve ser retornado "false", pois a partir disso o PDV sabe que não haverá objeto de limite de crédito para exibir e sim apenas a mensagem justificando a ausência efetiva do limite de crédito.
messagestringMensagem de retorno de errosNãoSempre que possível em caso de erro justificar o erro nesse campo.
limitesCreditoLista de objetosLista com dos limites de créditos retornadosNãoDeve ser enviado sempre que houver retorno de true no atributo "success".
limitesCredito.saldoDisponiveldoubleSaldo do crédito disponívelSimCaso o ERP não encontre nenhum registro de limite de crédito para o cliente, deve retornar saldo disponível igual a zero.
limitesCredito.idRetaguardaLimiteCreditostringIdentificador do limite de crédito caso existaNão
limitesCredito.valorUtilizadodoubleValor já consumido do limite de créditoSim
limitesCredito.valorTotaldoubleValor total do limite de créditoSimEsse valor é composto pela somatória do valorUtilizado e o saldoDisponivel.
limitesCredito.DetalhesValorUtilizadoLista de objetosLista de detalhamento da composição do limite de crédito 

...

já utilizado.Não
  • Deve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
    • Deve ser preenchido com ao menos um item no objeto.
limitesCredito.DetalhesValorUtilizado.totaldoubleValor total já utilizado.NãoDeve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.
limitesCredito.DetalhesValorUtilizado.tipostringTipo da origem de utilização do crédito.NãoDeve ser preenchido caso o atributo  "valorUtilizado" seja maior que zero.

Exemplos

Sucesso:

{
  "success": true,
  "message": null,
  "limitesCredito":
  [
    {
      "saldoDisponível": 1000.00,
      "idRetaguardaLimiteCredito": null,
      "valorUtilizado": 3000.00,
      "valorTotal": 4000.00,
      "DetalhesValorUtilizado":
      [
        {
          "":1000.00
          "tipo": "Contas a receber"
        },
        {
          "total":2000.00
          "tipo": "Pedidos a faturar"
        }
      ]
    }
  ]
}


Erro:

{
  "success": false,
  "message": "Não foi possível encontrar limite de crédito para o cliente selecionado."
}



4.3 Contrato descida de dado forma de pagamento

  • Adicionar o atributo "utilizaLimiteCredito" na API de POST de forma de pagamento (v3.2)  - Forma de pagamento#2612513
    • O atributo novo deve ser criado direto na data do payload, conforme exemplo abaixo:
      • Image Added
        • O novo campo será opcional e booleano.
          • O default desse campo será falso
            • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

Campo

Tipo

Descrição

Obrigatório

Campo PDV

Observação

utilizaLimiteCreditoboolIndica se a forma de pagamento é elegível a utilizar limite de crédito.Não

Tabela - pagamento_forma 

campo - utiliza_limite_credito

  • O default desse campo será falso.
  • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

4.4 Contrato descida de dado tabela loja

  • Adicionar o atributo "limiteCreditoFormaPagamento" na API de POST de loja (v3.2)  - Cadastro de Loja#Vers%C3%A3o3.2
    • O atributo novo deve ser criado direto na data do payload, conforme exemplo abaixo:
      • Image Added


Campo

Tipo

Descrição

Obrigatório

Campo PDV

Observação

limiteCreditoFormaPagamentoboolIndica se a loja trabalha com limite de crédito por forma de pagamento.Não

Tabela - loja

campo - limite_credito_forma_pagamento

  • O default desse campo será falso.
  • Caso a retaguarda/erp não envie esse campo, o mesmo será considerado false para o Sync e o PDV.

4.5 Contrato utilização de saldo 


4.6 Contrato cancelamento de venda 



5. Premissas:


6. Restrições:


7. Pontos de atenção: 

  • desenvolvimento na issue
    Jira
    serverJIRA
    serverId0c783de1-186e-383b-975c-a1acd7d76cb5
    keyDPDVSUPER-2560
    onde para calcular o valor do limite de crédito disponível, deverá ser feito da seguinte forma
    • (Limite de Crédito *  % Exceção) - Valor títulos em aberto - Valor venda pendente
  • Para QA, considerar:
    • cenários com e sem parâmetro da finalizadora (132)
    • cenários com cliente não cadastrado
    • cenários de limite de crédito de cliente:
      • cenários de margem da 132 (% máximo para exceder limite de crédito) passando e nao passando o limite
      • cenários de limite por cobrança 
      • cenários com titulo em aberto passando e nao passando o limite
      • cenários com venda pendente passando e nao passando o limite
      • cenários com cliente válido com a venda aberta
      • cenários com cliente válido com a venda fechada
      • cenários com cliente com saldo negativo
    • cenários de limite de crédito de cliente principal:
      • cenários de margem da 132 (% máximo para exceder limite de crédito) passando e não passando o limite
      • cenários de limite por cobrança 
      • cenários com titulo em aberto passando e não passando o limite
      • cenários com venda pendente passando e não passando o limite
      • cenários com cliente principal válido com a venda aberta
      • cenários com cliente principal válido com a venda fechada
      • cenários com cliente principal com saldo negativo
      • Cenários com limite de crédito com saldo com mais de 7 digitos 
    • comparar cenários com a 2030
  • verificar o fluxo para não validação do limite para cartão (crédito, débito, etc)
  • verificar qual parâmetro habilita o limite de crédito na cobrança no PDV e no Pedido: "Validar Limite de Crédito ECF" ou "Validar Limite de crédito", conforme 522