software‎ > ‎módulos‎ > ‎compra‎ > ‎manuais técnicos‎ > ‎

eventos de bloqueio de pedido


Conceito

O objeto OperacaoPedido permite que interfaces diferentes declarem classes de eventos de bloqueio específicos a serem ignoradas durante a gravação de um pedido. 

Utilização

A propriedade 'bloqueiosQueNaoImpedemAGravacaoDaOperacao' deve conter um array com a lista das classes de eventos de bloqueios a serem ignoradas durante a execução do método grava(). Caso um pedido contenha algum evento de bloqueio relacionado (listado na propriedade 'pedidoCab.eventobloqueio') que a classe não esteja listada na propriedade 'bloqueiosQueNaoImpedemAGravacaoDaOperacao' durante a gravação, será retornado erro indicando o bloqueio da gravação.

Exemplo

var op = new OperacaoPedido();

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 = 45045580;
dsBloqueio.motivo = -1897036504 /* Venda com saída do depósi */
dsBloqueio.crpedido = chCriacao;
dsBloqueio.post();
var chBloqueio = dsBloqueio.chave;
dsBloqueio.applyUpdates();

//ATRIBUIÇÃO DO EVENTO AO BLOQUEIO
op.pedidoCab.eventobloqueio = chBloqueio;

//GRAVAÇÃO DO PEDIDO
op.calcula();
op.grava();

// Modificar ignorando bloqueio - FUNCIONA NORMALMENTE
var op2 = new OperacaoPedido()
op2.abre(chCriacao);
op2.bloqueiosQueNaoImpedemAGravacaoDaOperacao = [45045580]
... (Modificação do pedido) ...
op2.calcula();
op2.grava();

// Tentar Modificar sem ignorar bloqueio - GERA ERRO DE BLOQUEIO
var op3 = new OperacaoPedido()
op3.abre(chCriacao);
... (Modificação do pedido) ...
op3.calcula();
op3.grava();





Comments