bom dia. Vamos liberar saldo negativo para os itens que são matéria prima, e tem tipo de requisição igual a transferencia, os itens que são requisitados junto ao reporte, pelo cp0311. O ideal para a gente seria que o saldo negativo fosse permitido somente no deposito PRO. Algo tipo, se o item estiver parametrizado para permitir saldo negaitvo no CE0330, o saldo negativo somente fosse permitido no deposito PRO, Voces sabem se é possivel alguma UPC na CEAPI001 para implementar este controle ? Att;
Olá... Tenho UPC no ceapi001 para não permitir determinados usuários movimentarem em determinados depósitos, creio que seria algo na mesma linha mas validando se o movimento deixaria o saldo negativo ou não (sege parte do código): Código: {utp/ut-glob.i} {include/i-epc200.i1} {cep/ceapi001.i} DEFINE TEMP-TABLE tt-movto-upc LIKE tt-movto. DEFINE VARIABLE htt-movto AS HANDLE NO-UNDO. DEFINE VARIABLE hqr-movto AS HANDLE NO-UNDO. DEFINE VARIABLE hbf-movto AS HANDLE NO-UNDO. DEFINE VARIABLE hbf-movto-upc AS HANDLE NO-UNDO. DEFINE VARIABLE htt-erro AS HANDLE NO-UNDO. DEFINE TEMP-TABLE tt-erro FIELD i-sequen AS INTEGER FIELD cd-erro AS INTEGER FIELD mensagem AS CHARACTER. DEFINE VARIABLE d-total-req AS DECIMAL NO-UNDO. PROCEDURE piInicio-pi-valida-lote: DEF VAR l-alternativo AS LOGICAL NO-UNDO. DEFINE INPUT PARAMETER p-ind-event AS CHARACTER NO-UNDO. DEFINE INPUT-OUTPUT PARAMETER TABLE FOR tt-epc. FOR EACH tt-epc NO-LOCK WHERE tt-epc.cod-event = p-ind-event AND tt-epc.cod-parameter = "tt-movto(handle)": ASSIGN htt-movto = HANDLE(tt-epc.val-parameter) hbf-movto = htt-movto:DEFAULT-BUFFER-HANDLE. hbf-movto:FIND-CURRENT(NO-LOCK). ASSIGN hbf-movto-upc = TEMP-TABLE tt-movto-upc:DEFAULT-BUFFER-HANDLE. IF hbf-movto:AVAILABLE THEN DO: hbf-movto-upc:BUFFER-CREATE(). hbf-movto-upc:BUFFER-COPY(hbf-movto). END. END. FIND FIRST tt-epc NO-LOCK WHERE tt-epc.cod-event = p-ind-event AND tt-epc.cod-parameter = "tt-erro(handle)" NO-ERROR. IF AVAIL tt-epc THEN ASSIGN htt-erro = HANDLE(tt-epc.val-parameter) htt-erro = htt-erro:DEFAULT-BUFFER-HANDLE. /* HD 133501 - Nao permitir que o PCP realize REQ pelo CE0205 do dep¢sito 1 no estabel 121 */ FOR EACH tt-movto-upc WHERE tt-movto-upc.cod-estabel = "121" AND tt-movto-upc.esp-docto = 28 /*REQ*/ : IF tt-movto-upc.cod-prog-orig = "v08in218" /*viewer do CE0205 que fica no registro da movimentacao*/ THEN DO: IF tt-movto-upc.nr-ord-prod <> 0 AND tt-movto-upc.cod-depos = "1" THEN DO: IF NOT CAN-FIND(FIRST ord-manut WHERE ord-manut.nr-ord-prod = tt-movto-upc.nr-ord-prod) THEN DO: htt-erro:BUFFER-CREATE. ASSIGN htt-erro:BUFFER-FIELD(1):BUFFER-VALUE = 1 htt-erro:BUFFER-FIELD(2):BUFFER-VALUE = 2 htt-erro:BUFFER-FIELD(3):BUFFER-VALUE = "OP nao pode requisitar em Dep 1". RETURN "NOK":U. END. END. END. END. /* Fim HD 133501 */ END PROCEDURE.
eu fui mais hardcore, fui direto na trigger, qualquer coisa que fizer write na tabela, já filtra. fui mais