66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# EVENTI_DET_OSPITI_TRG_AI
|
|
|
|
## Informazioni
|
|
|
|
- **Tabella**: EVENTI_DET_OSPITI
|
|
- **Evento**: UPDATE
|
|
- **Tipo**: AFTER EACH ROW
|
|
- **Stato**: ENABLED
|
|
|
|
## Codice Sorgente
|
|
|
|
```sql
|
|
TRIGGER "APOLLINARECATERINGPROD"."EVENTI_DET_OSPITI_TRG_AI"
|
|
--AFTER INSERT OR UPDATE OR DELETE ON EVENTI_DET_OSPITI
|
|
AFTER UPDATE ON EVENTI_DET_OSPITI
|
|
FOR EACH ROW
|
|
|
|
-- solo update, tutti i tipi ospiti vengono inseriti con l'inserimento della testata dell'evento con QTA def = 0
|
|
|
|
declare
|
|
|
|
v_cod_art varchar2(10);
|
|
v_coeff number;
|
|
v_ospiti number;
|
|
v_azione varchar2(10);
|
|
v_id_evento number;
|
|
v_count number;
|
|
|
|
BEGIN
|
|
|
|
v_azione := '';
|
|
v_id_evento := nvl(:NEW.ID_EVENTO,:OLD.ID_EVENTO);
|
|
|
|
--RAISE_APPLICATION_ERROR(-20001,'ididididididid: ' + to_char('hhhhhhhhhhh') );
|
|
|
|
if DELETING THEN
|
|
--RAISE_APPLICATION_ERROR(-20000, ':NEW.NUMERO' || :NEW.NUMERO || ':OLD.NUMERO' || :OLD.NUMERO);
|
|
v_azione := 'DELETE';
|
|
v_id_evento := :OLD.ID_EVENTO;
|
|
elsif INSERTING THEN
|
|
v_azione := 'INSERT';
|
|
v_id_evento := :NEW.ID_EVENTO;
|
|
END IF;
|
|
--/*
|
|
--Controllo esistenza id testata (caso default righe dett)
|
|
-- v_count := 0;
|
|
-- select count(*) into v_count
|
|
-- from eventi where id = :NEW.ID_EVENTO;
|
|
|
|
-- if v_count > 0 then
|
|
|
|
--RAISE_APPLICATION_ERROR(-20000,'id: ' + to_char(v_id_evento) + ' :NEW.NUMERO' || to_char(:NEW.NUMERO) || ' :OLD.NUMERO' || to_char(:OLD.NUMERO) + ' azione: ' + v_azione);
|
|
--Calcola la qta tot ospiti di Testata:
|
|
--EVENTI_AGGIORNA_N_OSPITI(v_id_evento,:NEW.NUMERO,:OLD.NUMERO,v_azione);
|
|
|
|
-- end if;
|
|
--*/
|
|
exception when others
|
|
then
|
|
RAISE_APPLICATION_ERROR(-20000, 'Errore: ' || SQLCODE || ' - ' || SUBSTR(SQLERRM, 1 , 64));
|
|
|
|
END;
|
|
|
|
|
|
```
|