Trewsdf

Solo disponible en BuenasTareas
  • Páginas : 5 (1052 palabras )
  • Descarga(s) : 13
  • Publicado : 28 de agosto de 2010
Leer documento completo
Vista previa del texto
El siguiente diagrama esquematiza de manera simplificada un sistema de reclamos de una compañía que tiene varios sistemas utilizados por múltiples usuarios del sector comercial. El sistema de reclamos permite ser cargado por el mismo usuario vía web, o bien un funcionario del Dpto. de Atención al Cliente de la compañía registra el reclamo recibido a través de una llamada telefónica. En amboscasos los reclamos recibidos son clasificados y asignados al departamento que corresponda y se sigue su trámite hasta la finalización. Algunos tipos de incidencias son:
- Falla del Sistema (el usuario identifica la aplicación y el programa) ( Se asigna al Dpto. de Sistemas
- El usuario no tiene permiso o no puede acceder ( se asigna al Dpto. de Seguridad
El tipo de operación determina el nivelde resolución. Una vez que el funcionario asignado dé el finiquito, el incidente queda resuelto y se cierra el RECLAMO (CERRADO).
[pic]

Tema 1: (40P) : (10 P por la especificación correcta. 20 P por la primera función y 10 para la segunda).
Cree el paquete PK_RECLAMOS que conste de:
• La tabla indexada T_RECLAMOS compuesta de los siguientes elementos:
- ID_RECLAMO
-NOMYAPELL _USUARIO
- FECHA_RECLAMO
- NOMBRE_AREA_ACTUAL
- FECHA_MOVIMIENTO
- OBSERVACION
- DIAS_ATRASO
• La función F_VERIFICAR_ATRASADOS que retorna una tabla del tipo T_RECLAMOS con la lista de reclamos cuyo estado no sea ‘CERRADO’ y que ya hayan superado el plazo asignado (FECHA_PLAZO). Nótese que para ocurrencia debe determinarse el área en el que se encuentraactualmente
• Redefina la función para que reciba como parámetro el nombre de una empresa (saber todos los reclamos atrasados de la empresa).

CREATE OR REPLACE PACKAGE PK_RECLAMOS AS
TYPE R_RECLAMO IS RECORD
(ID_RECLAMO NUMBER(10),
NOMYAPELL_USUARIO VARCHAR2(60),
FECHA_RECLAMO DATE,
NOMBRE_AREA_ACTUAL VARCHAR2(30),
FECHA_MOVIMIENTO DATE,
OBSERVACION VARCHAR2(2000),DIAS_ATRASO NUMBER(3));
TYPE T_RECLAMOS IS TABLE OF R_RECLAMO
INDEX BY BINARY_INTEGER;
FUNCTION F_VERIFICAR_ATRASADOS RETURN T_RECLAMOS;
FUNCTION F_VERIFICAR_ATRASADOS(P_EMPRESA VARCHAR2) RETURN T_RECLAMOS;
END;
/

CREATE OR REPLACE PACKAGE BODY PK_RECLAMOS IS
-- Función sin parámetros --
FUNCTION F_VERIFICAR_ATRASADOS RETURN T_RECLAMOS IS
CURSORC_RECLAMOS IS
SELECT R.ID_RECLAMO, RTRIM(U.NOMBRE)||', '|| U.APELLIDO NOMYAPELL,
R.FECHA_RECLAMO,ROUND(SYSDATE-R.FECHA_PLAZO) DIAS_ATRASO
FROM RECLAMOS R, USUARIOS U, ESTADOS_RECLAMOS E
WHERE U.ID_USUARIO = R.ID_USUARIO
AND E.ID_ESTADO = R.ID_ESTADO
AND E.DESCRIPCION 'CERRADO'AND SYSDATE > FECHA_PLAZO;
CURSOR C_TAREA_ACTUAL(P_RECLAMO NUMBER) IS
SELECT A.DESCRIPCION NOMBRE_AREA,
T.FECHA_MOV, T.OBSERVACION
FROM TAREAS T, EMPLEADOS E, AREAS A
WHERE E.CEDULA = T.CEDULA
AND A.ID_AREA = E.ID_AREA
AND T.FECHA_MOV = (SELECTMAX(FECHA_MOV)
FROM TAREAS
WHERE ID_RECLAMO = P_RECLAMO)
AND T.ID_RECLAMO = P_RECLAMO;
V_RECLAMO T_RECLAMOS;
V_IND NUMBER := 0;
BEGIN
FOR REGREC IN C_RECLAMOS LOOP
V_RECLAMO(V_IND).ID_RECLAMO := REGREC.ID_RECLAMO;V_RECLAMO(V_IND).NOMYAPELL_USUARIO := REGREC.NOMYAPELL;
V_RECLAMO(V_IND).FECHA_RECLAMO := REGREC.FECHA_RECLAMO;
V_RECLAMO(V_IND).DIAS_ATRASO := REGREC.DIAS_ATRASO;
FOR REGT IN C_TAREA_ACTUAL(REGREC.ID_RECLAMO) LOOP
V_RECLAMO(V_IND).NOMBRE_AREA_ACTUAL := REGT.NOMBRE_AREA;
V_RECLAMO(V_IND).FECHA_MOVIMIENTO := REGT.FECHA_MOV;...
tracking img