Advertisement
DjonathanKrause

Derrubada alocação contra buffer

Feb 2nd, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. SET serveroutput ON;
  3. DECLARE
  4.   v_chamado VARCHAR(25) := 'CHAMADO';
  5.   v_count int := 0;
  6.  
  7.   CURSOR c1 IS
  8.     SELECT DISTINCT wh_id, order_number FROM t_pick_detail
  9.     WHERE order_number IN ('ALOCAÇÃO')
  10.     AND wh_id = 'ARMAZEM';  
  11.    
  12. BEGIN
  13.   FOR r1 IN c1 LOOP
  14.     -- Verifica se a alocação é contra buffer
  15.     SELECT COUNT(1)
  16.     INTO v_count
  17.     FROM t_order
  18.     WHERE order_number = r1.order_number
  19.     AND wh_id = r1.wh_id
  20.     AND cust_po_number IS NULL;
  21.    
  22.     -- Se a alocação for contra buffer, executa a derrubada
  23.     IF(v_count > 0) THEN
  24.      
  25.       -- Prepara a t_pick_detail para a derrubada
  26.       UPDATE t_pick_detail
  27.       SET stacking_sequence = planned_quantity, container_id = 'DISO'
  28.       WHERE order_number = r1.order_number
  29.       AND wh_id = r1.wh_id;
  30.      
  31.       -- Chama a procedure de derrubada
  32.      -- begin br_usp_derruba_inbound('DISO', r1.wh_id, r1.order_number); end;
  33.      
  34.       -- Printa
  35.       dbms_output.put_line('Alocação ' || r1.order_number || ' derrubada');
  36.      
  37.       -- Insere transação
  38.       INSERT INTO t_tran_log_holding(tran_log_holding_id, tran_type, description, control_number, wh_id, start_tran_date)
  39.       VALUES(NULL, '999', 'Alocação derrubada. Chamado ' || v_chamado, r1.order_number, r1.wh_id, TRUNC(SYSDATE));
  40.      
  41.       -- Zera count
  42.       v_count := 0;
  43.    
  44.     -- Senão, avisa que não é contra buffer  
  45.     ELSE
  46.       dbms_output.put_line('Alocação ' || r1.order_number || ' não é contra buffer');
  47.      
  48.       -- Zera count
  49.       v_count := 0;
  50.     END IF;  
  51.   END LOOP;
  52. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement