Produto: | TOTVS CRM Automação da Força de Vendas | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: | Linha TOTVS CRM SFA | ||||||||||||||||
Módulo: | Venda | ||||||||||||||||
Função: | ComplementoPedido | ||||||||||||||||
Ticket: | |||||||||||||||||
Requisito/Story/Issue: |
| ||||||||||||||||
Status do Documento | Pendente de aprovação pelo clienteComprometido |
Atualmente as transações PIX são geradas com o tempo padrão de expiração de 1 hora. Não é possível via SFA, configurar um tempo maior para expiração de cada transação, de acordo com a necessidade de cada cliente.
...
Será permitido optar pela ação de reabrir o pedido e permitir a edição por parte do usuário gerador, ou então a ação de cancelar o pedido obrigando que um novo pedido seja gerado caso uma nova transação tenha que ser gerada.
Alterar via Tools opção 3, a tabela PEDIDOPAGAMENTO:
Bloco de código | ||||
---|---|---|---|---|
| ||||
alter table pedidopagamento add column dataexpiracao timestamp; |
Adicionar na tela do plugin de Pagamento PIX, os campos conforme protótipo abaixo:
A definir após aprovação do cliente.
Bloco de código | ||
---|---|---|
| ||
Campo "Duração máxima transação PIX antes de expirar"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'TPI',
codigoelemento: TPI,
agrupador: 0,
sglcampo: TPI_EXPIRATIONDATE
valor: {padrão 1440}
Campo "Ação automática sobre o pedido quando o serviço de atualização de status identificar que a transação expirou"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'TPI',
codigoelemento: TPI,
agrupador: 0,
sglcampo: TPI_OPEN
valor: {O ou 1, padrão 1}
Campo "Ação automática sobre o pedido quando o serviço de atualização de status identificar que a transação expirou"
idpluginintegracao: select idpluginintegracao from pluginintegracao where codigo = 'TPI',
codigoelemento: TPI,
agrupador: 0,
sglcampo: TPI_CANCEL
valor: {0 ou 1, padrão 0} |
...
Utilizar o script abaixo para obter a data e hora para expirar da transação:
Bloco de código | ||||
---|---|---|---|---|
| ||||
SELECT current_timestamp +(SELECT cast(valor as integer) FROM pluginintconfig WHERE sglcampo = 'TPI_EXPIRATIONDATE' AND codigoelemento = 'TPI') * interval '1 minute' AS data_expirar; |
Usar o script abaixo para obter qual ação foi cadastrada pelo usuário:
Bloco de código | ||||
---|---|---|---|---|
| ||||
select case when sglcampo ='TPI_OPEN' then valor end as REABRIR, case when sglcampo ='TPI_CANCEL' then valor end as CANCELAR from pluginintconfig p where sglcampo in('TPI_OPEN','TPI_CANCEL') |
Utilizar a consulta abaixo para identificar os pedidos que devem ter a situação atualizada:
Bloco de código | ||||
---|---|---|---|---|
| ||||
SELECT p.idpedido
FROM pedido p
INNER JOIN pedidopagamento pp
ON p.idpedido = pp.idpedido
INNER JOIN tiposituacaopagamento t
ON t.idtiposituacaopagamento = pp.idtiposituacaopagamento
INNER JOIN tiposituacaopedido tp
ON tp.idtiposituacaopedido = p.idtiposituacaopedido
WHERE t.sgltiposituacaopagamento = 'EXP'
AND (SELECT Count(idpedido)
FROM pedidopagamento p2
INNER JOIN tiposituacaopagamento t2
ON
t2.idtiposituacaopagamento = p2.idtiposituacaopagamento
WHERE t2.sgltiposituacaopagamento in ('PEND', 'APR')
AND p2.idpedido = p.idpedido) = 0
AND p.idnexportadoerp = 0
AND tp.sgltiposituacaopedido = 'PP'; |