Data alteração | Motivo | O que mudou? | Aprovadores | Versão |
---|---|---|---|---|
2. O que fazer?
Desenvolver integração de para consulta e utilização de saldo de limite de crédito com a retaguarda
...
draw.io Diagram | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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 campo | Tipo do campo | Obrigatorio |
---|---|---|
utiliza_limite_credito | boolean | opcional |
3.2 Tabela: loja
Nome do campo | Tipo do campo | Obrigatorio |
---|---|---|
limite_credito_forma_pagamento | boolean | opcional |
4. Definição de contratos de API:
4.1 Contrato de consulta de limite de crédito
Request:
Campo | Tipo | Descrição | Tipo Parâmetro | Obrigatório | Observação |
---|---|---|---|---|---|
IdInquilino | string | Identificador do Inquilino | Parameter/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. |
IdRetaguardaLoja | string | Identificador da loja na retaguarda | Parameter/Path/Query Params | Sim | |
cpfCnpj | string | Documento do cliente | Header | Sim |
Response:
Campo | Tipo | Descrição | Obrigatório | Observação |
---|---|---|---|---|
success | bool | Indica se a consulta de limite de crédito ocorreu corretamente | Sim | Exemplo: 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. |
message | string | Mensagem de retorno de erros | Não | Sempre que possível em caso de erro justificar o erro nesse campo. |
limitesCredito | Lista de objetos | Lista com dos limites de créditos retornados | Não | Deve ser enviado sempre que houver retorno de true no atributo "success". |
limitesCredito.saldoDisponivel | double | Saldo do crédito disponível | Não | Deve ser enviado sempre que houver retorno de true no atributo "success". |
limitesCredito.idRetaguardaLimiteCredito | string | Identificador do limite de crédito caso exista | Nã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
Request:
Campo | Tipo | Descrição | Tipo Parâmetro | Obrigatório | Observação |
---|---|---|---|---|---|
IdInquilino | string | Identificador do Inquilino | Parameter/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. |
IdRetaguardaLoja | string | Identificador da loja na retaguarda | Parameter/Path/Query Params | Sim | |
cpfCnpj | string | Documento do cliente | Header | Sim |
Response:
Campo | Tipo | Descrição | Obrigatório | Observação |
---|---|---|---|---|
success | bool | Indica se a consulta de limite de crédito ocorreu corretamente | Sim | Exemplo: 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. |
message | string | Mensagem de retorno de erros | Não | Sempre que possível em caso de erro justificar o erro nesse campo. |
limitesCredito | Lista de objetos | Lista com dos limites de créditos retornados | Não | Deve ser enviado sempre que houver retorno de true no atributo "success". |
limitesCredito.saldoDisponivel | double | Saldo do crédito disponível | Sim | Caso o ERP não encontre nenhum registro de limite de crédito para o cliente, deve retornar saldo disponível igual a zero. |
limitesCredito.idRetaguardaLimiteCredito | string | Identificador do limite de crédito caso exista | Não | |
limitesCredito.valorUtilizado | double | Valor já consumido do limite de crédito | Sim | |
limitesCredito.valorTotal | double | Valor total do limite de crédito | Sim | Esse valor é composto pela somatória do valorUtilizado e o saldoDisponivel. |
limitesCredito.DetalhesValorUtilizado | Lista de objetos | Lista de detalhamento da composição do limite de crédito |
...
já utilizado. | Não |
| ||
limitesCredito.DetalhesValorUtilizado.total | double | Valor total já utilizado. | Não | Deve ser preenchido caso o atributo "valorUtilizado" seja maior que zero. |
limitesCredito.DetalhesValorUtilizado.tipo | string | Tipo da origem de utilização do crédito. | Não | Deve 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
Campo | Tipo | Descrição | Obrigatório | Campo PDV | Observação |
---|---|---|---|---|---|
utilizaLimiteCredito | bool | Indica se a forma de pagamento é elegível a utilizar limite de crédito. | Não | Tabela - pagamento_forma campo - utiliza_limite_credito |
|
4.4 Contrato descida de dado tabela loja
Campo | Tipo | Descrição | Obrigatório | Campo PDV | Observação |
---|---|---|---|---|---|
limiteCreditoFormaPagamento | bool | Indica se a loja trabalha com limite de crédito por forma de pagamento. | Não | Tabela - loja campo - limite_credito_forma_pagamento |
|
4.5 Contrato utilização de saldo
4.6 Contrato cancelamento de venda
5. Premissas:
6. Restrições:
7. Pontos de atenção:
Jira | ||||||
---|---|---|---|---|---|---|
|