eventos de bloqueio de devolução
Conceito
O objeto OperacaoPedidoDevolucao permite que interfaces diferentes declarem classes de eventos de bloqueio específicos a serem ignoradas durante o estorno de baixas.
Utilização
A propriedade 'bloqueiosQueNaoImpedemADevolucao' deve conter um array com a lista das classes de eventos de bloqueios a serem ignoradas durante a execução do método estorna(). Caso uma baixa contenha algum evento de bloqueio relacionado (listado na propriedade 'pedidoCab.eventobloqueiodevolucao') que a classe não esteja listada na propriedade 'bloqueiosQueNaoImpedemADevolucao' durante o estorno de baixa, será retornado erro indicando o bloqueio.
Scripts envolvidos
0100 UNUMerp infrastructure.ic (-1897052500)
OperacaoPedidoDevolucao.ijs (-1898188315)
BloqueioDeDevolucaoDeBaixa.it (-1897035544)
Exemplo
var op = new OperacaoPedidoBaixaAutomatica();
op.nova();
... (inserção dos dados do pedido) ...
var chCriacao = op.pedidoCab.chcriacao;
// CRIAÇÃO DO EVENTO DE BLOQUEIO
var dsBloqueio = new DataSet();
dbCache.copyTableStructure("EVENTO", dsBloqueio);
dsBloqueio.insertWithKey = true
dsBloqueio.create();
dsBloqueio.append();
dsBloqueio.classe = -1897035547 /* Bloqueio de Devolução */;
dsBloqueio.motivo = -1896045480 /* Venda realizada no frente de loja */
dsBloqueio.crpedido = chCriacao;
dsBloqueio.post();
var chBloqueio = dsBloqueio.chave;
dsBloqueio.applyUpdates();
op.pedidoCab.eventobloqueiodevolucao = chBloqueio;
//GRAVAÇÃO DO PEDIDO COM BAIXA AUTOMATICA
op.aprova();
op.grava();
// Estorna ignorando bloqueio - FUNCIONA NORMALMENTE
var opDevol = new OperacaoPedidoDevolucao();
opDevol.bloqueiosQueNaoImpedemADevolucao = [-1897035547 /* Bloqueio de Devolução */]
opDevol.estorna("CHCRIACAO = " + chCriacao);
// Tentar estornar sem ignorar bloqueio - GERA ERRO DE BLOQUEIO
var opDevol = new OperacaoPedidoDevolucao();
opDevol.estorna("CHCRIACAO = " + chCriacao);