38 lines
1.0 KiB
SQL
38 lines
1.0 KiB
SQL
alter session set "_ORACLE_SCRIPT"=true;
|
|
set serveroutput on;
|
|
|
|
CREATE TABLE PEDIDOS_COPIA AS (SELECT * FROM PEDIDOS);
|
|
|
|
DROP TRIGGER PEDIDO_LLEGA_TARDE;
|
|
|
|
CREATE OR REPLACE TRIGGER PEDIDO_LLEGA_TARDE
|
|
--AFTER
|
|
BEFORE
|
|
INSERT OR UPDATE OF FECHAESPERADA OR UPDATE OF FECHAENTREGA
|
|
ON PEDIDOS_COPIA
|
|
FOR EACH ROW
|
|
BEGIN
|
|
IF :NEW.FECHAESPERADA < :NEW.FECHAENTREGA
|
|
THEN
|
|
:NEW.COMENTARIOS := 'Pedido con retraso';
|
|
--UPDATE PEDIDOS_COPIA SET COMENTARIOS='Pedido con retraso' WHERE CODIGOPEDIDO=:NEW.CODIGOPEDIDO;
|
|
END IF;
|
|
END;
|
|
/
|
|
|
|
CREATE OR REPLACE TRIGGER PRODUCTO_SIN_STOCK
|
|
BEFORE
|
|
INSERT OR UPDATE OF CODIGOPRODUCTO OR UPDATE OF CANTIDAD
|
|
ON DETALLEPEDIDOS
|
|
FOR EACH ROW
|
|
DECLARE
|
|
STOCK PRODUCTOS.CANTIDADENSTOCK%type;
|
|
BEGIN
|
|
SELECT CANTIDADENSTOCK INTO STOCK FROM PRODUCTOS WHERE CODIGOPRODUCTO=:NEW.CODIGOPRODUCTO;
|
|
|
|
IF STOCK < :NEW.CANTIDAD
|
|
THEN
|
|
raise_application_error(-20669, 'Not enough of product in stock.');
|
|
END IF;
|
|
END;
|
|
/ |