38 lines
1.0 KiB
MySQL
38 lines
1.0 KiB
MySQL
|
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;
|
||
|
/
|