ComprobarTarjeta

De FdIwiki ABD
Revisión a fecha de 15:31 20 may 2015; Alhuertis (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

create or replace FUNCTION ComprobarTarjeta( Tdni compras.DNI%TYPE, numTar compras.NUMT%TYPE, numF compras.NUMF%TYPE, fecha compras.FECHA%TYPE, tienda compras.TIENDA%TYPE, Timporte compras.IMPORTE%TYPE ) return INT as


--Variables

Tsaldo INT; num INT;

BEGIN

 lock table tienet in exclusive mode;

SELECT numT, saldo

   INTO  num, Tsaldo 
   FROM tienet
   WHERE numT = numTar;
   DBMS_output.put_line('Compruebo la tarjeta');
   IF Tsaldo > Timporte THEN  -- si tiene importe suficiente devuelvo el numero de tarjeta
     DBMS_output.put_line('La tarjeta es valida');
   	return num;
   ELSE  -- si no busco que tenga otra tarjeta valida y la devuelvo, si no tiene devuelvo un 0
   	for tarjeta_cur IN (
   		SELECT *
   		FROM tienet
   		WHERE dni = Tdni)
   	LOOP
   		IF tarjeta_cur.saldo >= Timporte  THEN
         DBMS_output.put_line('He encontrado una tarjeta valida');
   			return tarjeta_cur.numT;
         
     end if;
   	END LOOP;
     
     end if;
     
     return 0;

END ComprobarTarjeta;