trabajo semestral (apocalíptico).pdf

Upload: zirgatzu-delaw

Post on 27-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Trabajo Semestral (Apocalptico).pdf

    1/3

    Trabajo Semestral (Apocalptico)

    Asignatura : Programacin de Base de Datos.Profesor : Orlando SeplvedaFecha de entrega : 20-06-2016, antes de que cenicienta pierda el zapato

    Use el script proporcionado para crear la base

    El ingeniero a cargo del departamento de informtica de una cadena de supermercados, le ha asignado a Ud. la tarea de

    construir una serie de procesos que permitan automatizar la gestin de las ventas diarias y el manejo de stock de los

    productos. Para ello, y de acuerdo con la arquitectura del sistema, los procesos deben considerar lo siguiente:

    1.

    Un Package que contenga los siguientes constructores pblicos

    a) Una variable de tipo EXCEPTION llamada sueldoNovalido.

    b) Una funcin que retorne el total de los montos de la boletas emitidas por un empleado en un da de un mes y

    ao en particular, ingresados como parmetros.

    c) Una funcin pblica que devuelva un arreglo (TABLE OF) con el detalle de una boleta, cuya id se proporcione,

    incluyendo el nombre de cada producto.

    d)

    Una variable de tipo TABLE OF que pueda ser devuelta por la funcin anterior.

    e)

    Al efectuar el pago, los clientes pueden adjudicarse un descuento, para ello pueden deben presentar un cupn

    de descuento o una tarjeta. Se solicita implementar una funcin sobrecargada que devuelva el monto del

    descuento sobre el monto de una boleta, de acuerdo con los siguientes requerimientos:

    o Si la tarjeta es Platinum 20%o Si la tarjeta es Gold 15%o Si la tarjeta es Silver 10%o 0% sin tarjeta

    o Si el cupn es de tipo 1 10%o Si el cupn es de tipo 2 7%o Si el cupn es de tipo 3 5%o 0% sin cupn

    f)

    La Gerencia desea contar con un procedimiento que permita aumentar el sueldo de un vendedor cuya id sepase como parmetro con el monto en dinero que se especifique como parmetro. El procedimiento debe

    usar una funcin local, (la que se indica en el punto g) para verificar si el sueldo del empleado, ms el monto

    del aumento est dentro del rango permitido para su categora. Si el sueldo aumentado est dentro del rango

    permitido, el procedimiento debe actualizar el sueldo del empleado con el monto del aumento especificado,

    en caso contrario, use un error de usuario para capturar la excepcin producida, mostrando el mensaje El

    sueldo est fuera del rango para esta categora.

    g)

    Una funcin local que realice la verificacin del sueldo aumentado requerida por el procedimiento anterior.

    2. Una funcin almacenada que retorne el nmero de ventas efectuadas por un empleado (cuntas) en un da de un mes

    y ao en particular, ingresados como parmetros.

  • 7/25/2019 Trabajo Semestral (Apocalptico).pdf

    2/3

    3. Un procedimiento almacenado que permita procesar todas las ventas efectuadas durante un mes y ao en

    particular, los que se ingresarn como parmetros, segn los siguientes requerimientos:

    a)

    Se deben procesar todas las ventas diarias efectuadas durante el mes y ao ingresados como parmetros.

    b) Por cada da procesado, se deben almacenar en tabla VENTAS_DIARIAS_VENDEDOR las ventas atendidas

    por cada vendedor. En esta tabla se debe almacenar la identificacin del vendedor, total de ventas

    efectuadas (usar para obtener este valor, la funcin almacenada solicitada en el punto 2) y el monto total

    de las ventas efectuadas (usar funcin solicitada en letra b del package).

    El proceso debe considerar todos los vendedores, por lo que, si alguno de ellos no efectu ventas en el da

    procesado, los valores de total de ventas y monto total de las ventas efectuadas deben quedar en cero

    para ese vendedor.

    De producirse algn error, debe procurar que el programa no se interrumpa, guardando las excepciones

    producidas en una tabla preparada para tal efecto con (id_de_error, nombresubprograma, numero de

    error oracle y mensaje de error oracle). Para la id del error cree una secuencia.

    c) Adems, por cada da procesado se debe almacenar en tabla RESUMEN_VENTAS_DIARIAS el total de

    ventas efectuadas y el monto total de las ventas para ese da.

    Testear la procedure con el mes de mayo de 2016Al finalizar el proceso, los valores resultantes en las tablas deben ser los siguientes:

    TABLA VENTAS_DIARIAS_VENDEDOR TABLA RESUMEN_VENTAS_DIARIAS

    4. Elabore un procedimiento almacenado que permita testear la funcin del punto c del paquete. El procedimiento

    debe recorrer el arreglo y mostrar el detalle de la boleta, indicando rut del cliente y del empleado que la emiti y el

    monto total de la misma. Tambin se debe mostrar el monto del descuento (funcin del punto e del package)

    suponiendo que el cliente paga con alguno de los cupones o alguna de las tarjetas. La salida debe ser similar a la

    siguiente. (Los valores mostrados pueden ser distintos).

    5. La Gerencia desea que se puedan controlar las transacciones que se efectan sobre la tabla DETALLE_BOLETA. Para

    ello, Ud. deber implementar un trigger que permita asegurar que slo se pueda insertar, eliminar o actualizar una

    fila de esta tabla de lunes a viernes y en horario laboral (entre las 08:00 y las 18:00). Si alguien inserta, elimina o

    actualiza datos en da u horario no laborales se debe abortar la transaccin.

  • 7/25/2019 Trabajo Semestral (Apocalptico).pdf

    3/3

    6. Un trigger que permita dejar registro en una tabla creada para tal efecto, de las transacciones en la tabla

    DETALLE_BOLETA. Se debe vigilar inserciones, borrados y actualizacin de los campos cantidad y valor_unitario

    (indicando, en este caso, con lujo de detalle, cul fue la modificacin efectuada), la ip de la estacin desde la que se

    hizo la modificacin y el usuario de sistema operativo utilizado. La tabla de registro, llamada auditadetalles debe

    contar con los campos

    fecha date

    hora varchar2(8)

    tabla varchar2(30)transaccion char(1)

    observaciones varchar2(500)

    usuario_oracle varchar2(30)

    ip varchar2(15)

    os_user varchar2(30)

    7. Otras de las modificaciones que la Gerencia desea incorporar al Sistemas Informtico, es que cuando se ingrese,

    actualice o elimine una lnea de detalle de alguna boleta, se actualice automticamente el stock de los productos de

    forma que:

    Si se inserta una nueva lnea de detalle, se debe restar del stock actual la cantidad vendida del producto quecorresponde.

    Si se actualiza la cantidad vendida de un producto en una boleta, se debe actualizar el stock actual segn la nuevacantidad modificada del producto.

    Si se elimina una lnea de detalle, la cantidad del o los productos de esa boleta deben ser sumados al stock actual

    de ese producto.

    8.

    Otras de las modificaciones que la Gerencia desea incorporar al Sistemas Informtico, es que cuando se ingrese u

    empleado o se actualice el supervisor de un empleado, un proceso verifique si el supervisor tiene el nmero de

    empleados a cargo que especifica la regla de negocio. La regla dice que un supervisor no puede tener ms de 9

    empleados a cargo; de violarse la regla, el proceso debe anular la transaccin.