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);