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 não é possível visualizar a data e hora que o pedido realizado no mobile foi transmitido ( sincronizado) para o servidor, desta forma será necessário acrescentar os campos datatransmissao e horatransmissao com a descrição "Data/hora sincronização:" na aba de complemento do pedido através do módulo de configuração do pedido engine, permitindo assim, a exibição ou não dos campos conforme a necessidade.
Dentro da tela "Configuração" → "Configuração pedido" → "Complemento" deverá ser adicionado o seguinte campo:
"Data/hora sincronização:"
Campo: datatransmissao;
Chave da label: Label:standard.pedido.complemento.data.hora.transmissao;
Label: "Data/hora sincronização:";
Permite visualizar: "Sim";
Permite editar: "Não";
Permite Cadastrar: "Não";
Obrigatório: "Não";
O Campo datatransmissao deverá exibir a informação dos campos datatransmissao e horatransmissao concatenados, por exemplo: [datatransmissao] [horatransmissao] ("25/03/2022 16:00:12")
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.
O SFA também não permite nenhuma ação de edição ou reabertura dos pedidos com PIX cujas transações tenham sido canceladas ou que expiraram.
Com a melhoria proposta neste escopo, será possível configurar o tempo desejado para que cada transação PIX expire caso não haja confirmação do pagamento.
Também será possível configurar qual ação deve ser aplicada automaticamente sobre o pedido, no momento em que o serviço de atualização de status identificar que a transação vinculada a tal pedido expirou ou foi cancelada.
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:
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'; |