



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
hhgfdtsreardtryftugyihunbhvgcfxdfcyguvhb rtyuhikjhcgftyuvjhkbjlnkñms xcfghvajbsknxlcdkjbhvgscbhjfn dr fsoiaxjchugyftsayvdkjhli saghkjad
Tipo: Apuntes
1 / 7
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!




Crear una habitación create or replace procedure agregar_hab(ide in number, camas in number, precio in FLOAT) as numero number := 0 ; BEGIN select count(id) into numero from HABITACION where id = ide; if(precio <= 0 ) then dbms_output.put_line('El precio costo por dia tiene que ser mayor a 0 '); rollback; elsif (numero > 0 ) then dbms_output.put_line('Ya hay ' || numero || ' habitacion con el mismo numero'); rollback; elsif (numero = 0 AND precio > 0 ) THEN insert into habitacion (id,numero_camas, costo) values(ide, camas,precio); commit; end if; end; Modificar una habitación create or replace procedure modif_hab(ide in number, camas in number, precio in float) as BEGIN update HABITACION set numero_camas=camas, costo=precio where id=ide; end;
Eliminar una habitación create or replace procedure elim_hab(ide in number) as numero number:= 0 ; BEGIN select count(*) into numero from reservacion where fk_hab = ide AND reservacion.STATUS like '%RESERVADA' or reservacion.STATUS like '%ocupada'; if(numero > 0 ) THEN dbms_output.put_line('La habitacion esta ocupada o reservada'); rollback; else delete from habitacion where id=ide; commit; end if; end;
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 create or replace procedure cancel_hab(numero_rev in number) as existe number; reservada number; ocupada number; devol number; costo_hab number; usuario number; BEGIN select count() into ocupada from reservacion where id=numero_rev AND reservacion.STATUS like '%OCUPADA'; select count() into reservada from reservacion where id=numero_rev AND reservacion.STATUS like '%RESERVADA'; select count() into existe from reservacion where id=numero_rev AND reservacion.STATUS like '%RESERVADA' OR reservacion.STATUS like '%OCUPADA'; select costo_total into costo_hab from reservacion where id=numero_rev; select fk_usr into usuario from reservacion where id=numero_rev; update reservacion set reservacion.status='CANCELADO' where id=numero_rev; 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
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;