Documentos de Académico
Documentos de Profesional
Documentos de Cultura
if(rescount=0)then
reservada:=0;
else
for row in (select * from reservacion_temp) loop
if(fecha_iniciov between row.fecha_inicio AND row.fecha_fin OR
fecha_finv between row.fecha_inicio AND row.fecha_fin) then
reservada := 1;
end if;
end loop;
end if;
if(existe!=1)THEN
dbms_output.put_line('Habitación inexistente');
rollback;
elsif(reservada=1) then
dbms_output.put_line('La habitacion esta ocupada o reservada');
rollback;
elsif(usuariorico<costototal) then
dbms_output.put_line('El usuario no cuenta con saldo suficiente,
srry :(');
rollback;
else
update usuario set saldo = saldo - costototal where id_ = fk_usrv;
dbms_output.put_line('Numero de reservación: ' || num_res);
dbms_output.put_line('Numero de habitación: ' || fk_habv);
dbms_output.put_line('El total de dias reservados es: ' || dias);
dbms_output.put_line('Fecha inicio: ' || fecha_iniciov || ' Fecha
fin: ' || fecha_finv);
dbms_output.put_line('Monto a pagar: ' || costototal);
dbms_output.put_line('El status ahora es: RESERVADA');
dbms_output.put_line(' ');
dbms_output.put_line('FAVOR DE CONSERVAR SU NUMERO DE RESERVACIÓN,
YA QUE SERA NECESARIO A LA HORA DE OCUPAR LA HABITACIÓN O EN CASO DE
CANCELAR');
execute immediate 'truncate table reservacion_temp';
commit;
end if;
end;
Cancelar habitación
if(existe=0)then
dbms_output.put_line('La reservación no existe');
rollback;
elsif(ocupada=1) THEN
devol:=costo_hab*0.60;
deposito(usuario,devol, 'Devolución');
commit;
elsif(reservada=1)THEN
devol:=costo_hab*0.90;
deposito(usuario,devol, 'Devolución');
commit;
end if;
end;
Ocupar Habitación
if(existe=0)then
dbms_output.put_line('La reservación no existe, ya esta ocupada o ha
sido cancelada');
rollback;
else
update reservacion set reservacion.status='OCUPADA' where
id=numero_rev;
commit;
end if;
end;
Finalizar reservación
if(existe=0)then
dbms_output.put_line('La reservación no existe o ya ha sido
finalizada');
rollback;
end if;
if(sysdate=fechaxd)then
update reservacion set reservacion.status='FINALIZADA' where
id=numero_rev;
dbms_output.put_line('Vuelva pronto :)');
commit;
elsif(sysdate<fechaxd)then
dbms_output.put_line('Por que se va antes? :(, no le gustó ¿verdad?
anyways, no hay devoluciones');
commit;
else
select fk_usr into usu_id from reservacion where id=numero_rev;
select fk_hab into hab_id from reservacion where id=numero_rev;
select saldo into usuariorico from usuario where id_=usu_id;
select costo into costototal from habitacion where id=hab_id;
dias:=fechaxd-sysdate;
cobro:=dias*costototal;
if(cobro>usuariorico)then
dbms_output.put_line('LLAMANDO A LA POLICIA');
rollback;
else
retiro(usu_id,cobro);
dbms_output.put_line('Se le han cobrado los dias extra, se puede
retirar');
commit;
end if;
end if;
end;