/*Mise à jour de la note d'évaluation*/
CREATE OR REPLACE TRIGGER seg_note
AFTER INSERT OR UPDATE ON Evaluation
FOR EACH ROW
DECLARE Corretion_note EXCEPTION;
BEGIN
	IF(:new.note>5) UPDATE Evaluation SET note=5 WHERE Idev=:new.Idev;
	ELSE IF(:new.note<0) UPDATE Evaluation SET note=0 WHERE Idev=:new.Idev;
	END IF;
	EXCEPTION WHEN Corretion_note DBMS_OUT.PUT_LINE('La note que vous avez saisie n'' est pas compris entre 0 et 5 Elle a ete mise a jour');
END;
/
/*Mise à jour du nombre de place*/
CREATE OR REPLACE TRIGGER place_restante
AFTER INSERT OR UPDATE ON Covoiturage
FOR EACH ROW
DECLARE
	TotPlace Vehicule.Place%TYPE; /*Pour nombre de place que peut supporter la voiture*/
	UtiPlace Voyage.Place%TYPE; /*Pour le nombre de place déjà utiliser*/
	CURSOR FindPassager IS SELECT Place FROM Voyage WHERE Id=:new.Idv;
	CURSOR FindPlacevoiture IS SELECT Place INTO TotPlace FROM Vehicule
				   WHERE NVehicule= ALL(SELECT IdV FROM Voyage WHERE Id=Idv);
BEGIN
	OPEN FindPassager;
	FETCH;
	UtiPlace=FindPassager.Place;
	UPDATE Voyage SET (TotPlace-UtiPlace) WHERE Id=Idv;
	CLOSE FindPassager;
END;
/
/*
drop trigger place_restante;
drop trigger seg_note;
*/
