Doc

Details

Grants

References

Dependencies

Code




Method Summary
 ACTLZR_EST( e_tipo VARCHAR2 , e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING )
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada. Tiene dos posibilidades, actualizar la línea
          correspondiente a los datos globales (identificada en la tabla con el id 0) o la línea correspondiente a un año en concreto (identificada en la tabla con el id YYYY).
          Para la actualización de los datos globales hay que indicar 'TOTAL' como parámetro de entrada en e_tipo.
          Para la actualización de los datos de un año hay que indicar 'ANUAL' como parámetro de entrada en e_tipo.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
 ACTLZR_EST_ANUAL( e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING )
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a un año determinado con los valores que recibe como parámetro de entrada.
          Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'ANUAL'.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
 ACTLZR_EST_GLOBAL( rsp OUT STRING )
          
          Actualiza todas las filas de la tabla ESTADISTICAS_DIRECCION.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          El procedimiento queda registrado en la tabla de LOGS.
          No tiene parámetros de entrada.
          
 ACTLZR_EST_TOTAL( e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING )
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a los datos globales con los valores que recibe como parámetro de entrada.
          Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'GLOBAL'.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
 ACTLZR_LIN_EST_D( e_periodo IN NUMBER , valores IN ESTADISTICAS_DIRECCION % ROWTYPE , rsp OUT STRING )
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
 BUSCAR_CIUDAD_BN_MAX( e_periodo IN NUMBER , ciudad OUT VARCHAR2 , bn_ciudad OUT NUMBER , rsp OUT STRING )
          
          Busca la ciudad con máximo beneficios para un periodo determinado que recibe como parámetro. Si hay dos ciudades con el mismo beneficio
          sólo devuelve los datos de una de ellas.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_D_UD_MAX( e_periodo IN NUMBER , dia OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING )
          
          Busca el día con más ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_D_UD_MIN( e_periodo IN NUMBER , dia OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING )
          
          Busca el día con menos ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_H_UD_MAX( e_periodo IN NUMBER , hora OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING )
          
          Busca la hora con más ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_H_UD_MIN( e_periodo IN NUMBER , hora OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING )
          
          Busca la hora con menos ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_PDT_UD_MAX( e_periodo IN NUMBER , cod_ean OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING )
          
          Busca el producto con más unidades vendidas para un periodo determinado y devuelve el código del producto y las unidades vendidas para ese producto.
          El procedimiento queda registrado en la tabla de LOGS.
          
 BUSCAR_TDA_BN_MAX( e_periodo IN NUMBER , tienda_id OUT NUMBER , bn_tienda OUT NUMBER , rsp OUT STRING )
          
          Busca la tienda con mayor beneficio para un periodo determinado y devuelve el código de la tienda y el beneficio generado por esa tienda.
          El procedimiento queda registrado en la tabla de LOGS.
          
 CAL_BN_AGREGADO( e_periodo IN NUMBER ) RETURN NUMBER ;
          
          Calcula en beneficio neto agregado de la cadena para un periodo determinado.
          El procedimiento queda registrado en la tabla de LOGS.
          
 CAL_PORC_VIRT( e_periodo IN NUMBER ) RETURN NUMBER ;
          
          Calcula el ratio de beneficio de las tiendas físicas sobre el total de beneficios de la cadena.
          para un periodo determinado.
          El procedimiento queda registrado en la tabla de LOGS.
          
 CIUDAD_DE_TIENDA( e_tienda_id IN NUMBER ) RETURN VARCHAR2 ;
          
          Busca el nombre de la ciudad en la que está ubicada una tienda.
          El procedimiento queda registrado en la tabla de LOGS.
          
 ES_VIRTUAL( e_tienda_id IN NUMBER ) RETURN NUMBER ;
          
          Indica mediante un código si una tienda es virtual o no.
          1 Es virtual.
          0 No es virtual.
          2 Si la tienda no existe.
          El procedimiento queda registrado en la tabla de LOGS.
          
 INSRTR_LIN_EST_D( e_periodo IN NUMBER , e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_dia IN NUMBER , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING )
          
          Inserta una fila en la tabla ESTADISTICAS_DIRECCION con los valores estadísticos necesarios. Esta tabla tiene una fila para cada periodo anual identificada por el año con el formato YYYY.
          Además tiene una línea identificada con 0 para almacenar los valores estadísticos globales. Por tanto, al insertar una línea es condición que no existan ventas y este procedimiento tomará los valores
          que recibe como parámetro como la única venta hasta el momento para dicho periodo.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
 OBTENER_CURSOR( e_tipo IN VARCHAR2 , e_año IN NUMBER ) RETURN SYS_REFCURSOR ;
          
          Proporciona un cursor SYS_REFCURSOR sobre la tabla ESTADISTICAS_DIRECCION considerando el tipo de datos que se requieren.
          Si se requieren todas las filas de la tabla hay que indicar 'GLOBAL' como primer parámetro de entrada. Si se requiere un año concreto
          hay que indicar 'INDIVIDUAL' como primer parámetro de entrada.
          El procedimiento queda registrado en la tabla de LOGS.
          

Method Detail

ACTLZR_EST

          ACTLZR_EST( e_tipo VARCHAR2 , e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING ) 
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada. Tiene dos posibilidades, actualizar la línea
          correspondiente a los datos globales (identificada en la tabla con el id 0) o la línea correspondiente a un año en concreto (identificada en la tabla con el id YYYY).
          Para la actualización de los datos globales hay que indicar 'TOTAL' como parámetro de entrada en e_tipo.
          Para la actualización de los datos de un año hay que indicar 'ANUAL' como parámetro de entrada en e_tipo.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
Parameters:
e_tipo - 'TOTAL' para actualizar la estadística global, 'ANUAL' para actualizar una estadística en concreto.
e_tienda_id - La tienda que genera la actualización a través de una venta.
e_cod_ean - El producto que genera la actualización a través de una venta.
e_fecha - La fecha de la venta que motiva la actualización.
e_hora - La hora de la venta que motiva la actualización.
e_ud_vendidas - Las unidades de la venta que motiva la actualización.
e_precio_bruto - El precio bruto unitario de la venta que motiva la actualización.
e_beneficio_neto - El beneficio neto unitario de la venta que motiva la actualización.
Returns:
rsp: 'Ok' si la ejecución es correcta.

ACTLZR_EST_ANUAL

          ACTLZR_EST_ANUAL( e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING ) 
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a un año determinado con los valores que recibe como parámetro de entrada.
          Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'ANUAL'.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
Parameters:
e_tienda_id - La tienda que genera la actualización a través de una venta.
e_cod_ean - El producto que genera la actualización a través de una venta.
e_fecha - La fecha de la venta que motiva la actualización.
e_hora - La hora de la venta que motiva la actualización.
e_ud_vendidas - Las unidades de la venta que motiva la actualización.
e_precio_bruto - El precio bruto unitario de la venta que motiva la actualización.
e_beneficio_neto - El beneficio neto unitario de la venta que motiva la actualización.
Returns:
rsp: 'Ok' si la ejecución es correcta.

ACTLZR_EST_GLOBAL

          ACTLZR_EST_GLOBAL( rsp OUT STRING ) 
          
          Actualiza todas las filas de la tabla ESTADISTICAS_DIRECCION.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          El procedimiento queda registrado en la tabla de LOGS.
          No tiene parámetros de entrada.
          
Returns:
rsp: 'Ok' si la ejecución es correcta.

ACTLZR_EST_TOTAL

          ACTLZR_EST_TOTAL( e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_fecha IN DATE , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING ) 
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a los datos globales con los valores que recibe como parámetro de entrada.
          Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'GLOBAL'.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
Parameters:
e_tienda_id - La tienda que genera la actualización a través de una venta.
e_cod_ean - El producto que genera la actualización a través de una venta.
e_fecha - La fecha de la venta que motiva la actualización.
e_hora - La hora de la venta que motiva la actualización.
e_ud_vendidas - Las unidades de la venta que motiva la actualización.
e_precio_bruto - El precio bruto unitario de la venta que motiva la actualización.
e_beneficio_neto - El beneficio neto unitario de la venta que motiva la actualización.
Returns:
rsp: 'Ok' si la ejecución es correcta.

ACTLZR_LIN_EST_D

          ACTLZR_LIN_EST_D( e_periodo IN NUMBER , valores IN ESTADISTICAS_DIRECCION % ROWTYPE , rsp OUT STRING ) 
          
          Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
Parameters:
e_periodo - El periodo cuya línea se quiere modificar.
valores - Dato con los valores actualizados de la línea a modificar.
Returns:
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_CIUDAD_BN_MAX

          BUSCAR_CIUDAD_BN_MAX( e_periodo IN NUMBER , ciudad OUT VARCHAR2 , bn_ciudad OUT NUMBER , rsp OUT STRING ) 
          
          Busca la ciudad con máximo beneficios para un periodo determinado que recibe como parámetro. Si hay dos ciudades con el mismo beneficio
          sólo devuelve los datos de una de ellas.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
ciudad: La ciudad con el máximo beneficio para ese periodo. NULL en caso de que no haya ventas.
bn_ciudad: El beneficio neto correspondiente a la ciudad. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_D_UD_MAX

          BUSCAR_D_UD_MAX( e_periodo IN NUMBER , dia OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING ) 
          
          Busca el día con más ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
dia: El día con más ventas para ese periodo. 0 en caso de que no haya ventas.
unidades: Unidades vendidas correspondientes a ese día. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_D_UD_MIN

          BUSCAR_D_UD_MIN( e_periodo IN NUMBER , dia OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING ) 
          
          Busca el día con menos ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
dia: El día con menos ventas para ese periodo. 0 en caso de que no haya ventas.
unidades: Unidades vendidas correspondientes a ese día. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_H_UD_MAX

          BUSCAR_H_UD_MAX( e_periodo IN NUMBER , hora OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING ) 
          
          Busca la hora con más ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
hora: La hora con más ventas para ese periodo. 0 en caso de que no haya ventas.
unidades: Unidades vendidas correspondientes a esa hora. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_H_UD_MIN

          BUSCAR_H_UD_MIN( e_periodo IN NUMBER , hora OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING ) 
          
          Busca la hora con menos ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
hora: La hora con menos ventas para ese periodo. 0 en caso de que no haya ventas.
unidades: Unidades vendidas correspondientes a esa hora. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_PDT_UD_MAX

          BUSCAR_PDT_UD_MAX( e_periodo IN NUMBER , cod_ean OUT NUMBER , unidades OUT NUMBER , rsp OUT STRING ) 
          
          Busca el producto con más unidades vendidas para un periodo determinado y devuelve el código del producto y las unidades vendidas para ese producto.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
cod_ean: El código del producto con más ventas para ese periodo. Cadena vacía en caso de que no haya ventas.
unidades: Unidades vendidas correspondientes a ese producto. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

BUSCAR_TDA_BN_MAX

          BUSCAR_TDA_BN_MAX( e_periodo IN NUMBER , tienda_id OUT NUMBER , bn_tienda OUT NUMBER , rsp OUT STRING ) 
          
          Busca la tienda con mayor beneficio para un periodo determinado y devuelve el código de la tienda y el beneficio generado por esa tienda.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
tienda_id: El código de la tienda con más beneficio para ese periodo. 0 en caso de que no haya ventas.
bn_tienda: Beneficio correspondientes a esa tienda. 0 en caso de que no haya ventas.
rsp: 'Ok' si la ejecución es correcta.

CAL_BN_AGREGADO

          CAL_BN_AGREGADO( e_periodo IN NUMBER ) RETURN NUMBER ; 
          
          Calcula en beneficio neto agregado de la cadena para un periodo determinado.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo para el que se quiere tener el dato.
Returns:
el beneficio neto agregado de la cadena para el periodo.

CAL_PORC_VIRT

          CAL_PORC_VIRT( e_periodo IN NUMBER ) RETURN NUMBER ; 
          
          Calcula el ratio de beneficio de las tiendas físicas sobre el total de beneficios de la cadena.
          para un periodo determinado.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_periodo - El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
Returns:
el ratio de beneficio de las tiendas físicas sobre el total de beneficios de la cadena expresado en "tanto por uno".

CIUDAD_DE_TIENDA

          CIUDAD_DE_TIENDA( e_tienda_id IN NUMBER ) RETURN VARCHAR2 ; 
          
          Busca el nombre de la ciudad en la que está ubicada una tienda.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_tienda_id - El identificador de la tienda de la que se quiere saber su ciudad.
Returns:
el nombre de la ciudad donde se ubica la tienda. Si no existe valor devuelve una cadena vacía.

ES_VIRTUAL

          ES_VIRTUAL( e_tienda_id IN NUMBER ) RETURN NUMBER ; 
          
          Indica mediante un código si una tienda es virtual o no.
          1 Es virtual.
          0 No es virtual.
          2 Si la tienda no existe.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_tienda_id - El código de la tienda del que se quiere conocer si es virtual o no.
Returns:
NUMBER indicando si la tienda es virtual o física o si la tienda no existe.

INSRTR_LIN_EST_D

          INSRTR_LIN_EST_D( e_periodo IN NUMBER , e_tienda_id IN NUMBER , e_cod_ean IN NUMBER , e_dia IN NUMBER , e_hora IN NUMBER , e_ud_vendidas IN NUMBER , e_precio_bruto IN NUMBER , e_beneficio_neto IN NUMBER , rsp OUT STRING ) 
          
          Inserta una fila en la tabla ESTADISTICAS_DIRECCION con los valores estadísticos necesarios. Esta tabla tiene una fila para cada periodo anual identificada por el año con el formato YYYY.
          Además tiene una línea identificada con 0 para almacenar los valores estadísticos globales. Por tanto, al insertar una línea es condición que no existan ventas y este procedimiento tomará los valores
          que recibe como parámetro como la única venta hasta el momento para dicho periodo.
          El procedimiento queda registrado en la tabla de LOGS.
          No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
          
Parameters:
e_periodo - El periodo para el que se quiere insertar una línea.
e_tienda_id - La tienda que hace la venta.
e_cod_ean - el producto vendido.
e_dia - El día en que se produce la venta.
e_hora - La hora en que se produce la venta.
e_ud_vendidas - Las unidades vendidas.
e_precio_bruto - El precio bruto unitario del producto vendido.
e_beneficio_neto - El beneficio neto unitario del producto vendido.
Returns:
rsp: 'Ok' si la ejecución es correcta.

OBTENER_CURSOR

          OBTENER_CURSOR( e_tipo IN VARCHAR2 , e_año IN NUMBER ) RETURN SYS_REFCURSOR ; 
          
          Proporciona un cursor SYS_REFCURSOR sobre la tabla ESTADISTICAS_DIRECCION considerando el tipo de datos que se requieren.
          Si se requieren todas las filas de la tabla hay que indicar 'GLOBAL' como primer parámetro de entrada. Si se requiere un año concreto
          hay que indicar 'INDIVIDUAL' como primer parámetro de entrada.
          El procedimiento queda registrado en la tabla de LOGS.
          
Parameters:
e_tipo - El tipo de datos que se requiere. 'INDIVIDUAL' o 'GLOBAL'.
e_año - El año para el que se quieren los datos. Si se ha indicado 'INDIVIDUAL' no es relevante y no se tiene en cuenta.
Returns:
cursor SYS_REFCURSOR sobre la tabla ESTADISTICAS_DIRECCION.

NAME VALUE
OWNER DWH_TIENDAS_ADM
OBJECT_NAME PKG_EST_DIR
SUBOBJECT_NAME null
OBJECT_ID 24665
DATA_OBJECT_ID null
OBJECT_TYPE PACKAGE
CREATED 08/01/16
LAST_DDL_TIME 08/01/16
TIMESTAMP 2016-01-08:12:26:19
STATUS VALID
TEMPORARY N
GENERATED N
SECONDARY N
NAMESPACE 1
EDITION_NAME null
PRIVILEGE GRANTEE GRANTABLE GRANTOR OBJECT_NAME
NAME OWNER TYPE OBJECT_ID STATUS TYPE_LINK
PKG_EST_DIR DWH_TIENDAS_ADM PACKAGE BODY 24666 VALID PACKAGE
N_EMPLEADOS_TR1 DWH_TIENDAS_ADM TRIGGER 24675 VALID TRIGGER
VENTAS_TR1 DWH_TIENDAS_ADM TRIGGER 24676 VALID TRIGGER
PKG_VENTA DWH_TIENDAS_ADM PACKAGE BODY 24670 VALID PACKAGE
NAME OWNER TYPE OBJECT_ID STATUS TYPE_LINK
ESTADISTICAS_DIRECCION DWH_TIENDAS_ADM TABLE 24649 VALID TABLE
PACKAGE PKG_EST_DIR IS
	NOMPAQUETE CHAR(20) := 'PKG_EST_DIR';
  

/*
Busca el nombre de la ciudad en la que está ubicada una tienda.
El procedimiento queda registrado en la tabla de LOGS.
@param e_tienda_id: El identificador de la tienda de la que se quiere saber su ciudad.
@return el nombre de la ciudad donde se ubica la tienda. Si no existe valor devuelve una cadena vacía.
*/
FUNCTION CIUDAD_DE_TIENDA(
  e_tienda_id IN NUMBER
)
RETURN VARCHAR2;  


/*
Calcula el ratio de beneficio de las tiendas físicas sobre el total de beneficios de la cadena.
para un periodo determinado.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return el ratio de beneficio de las tiendas físicas sobre el total de beneficios de la cadena expresado en "tanto por uno".
*/
FUNCTION CAL_PORC_VIRT (
    e_periodo IN NUMBER
)
RETURN NUMBER;


/*
Busca la ciudad con máximo beneficios para un periodo determinado que recibe como parámetro. Si hay dos ciudades con el mismo beneficio
sólo devuelve los datos de una de ellas.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return ciudad: La ciudad con el máximo beneficio para ese periodo. NULL en caso de que no haya ventas.
@return bn_ciudad: El beneficio neto correspondiente a la ciudad. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_CIUDAD_BN_MAX(
    e_periodo IN NUMBER
,   ciudad OUT VARCHAR2
,   bn_ciudad OUT NUMBER
,   rsp OUT STRING
);


/*
Busca el día con menos ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return dia: El día con menos ventas para ese periodo. 0 en caso de que no haya ventas.
@return unidades: Unidades vendidas correspondientes a ese día. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_D_UD_MIN(
   e_periodo IN NUMBER
,  dia OUT NUMBER
,  unidades OUT NUMBER
,  rsp OUT STRING
);


/*
Busca el día con más ventas para un periodo determinado y devuelve el número de día y las unidades vendidas para ese día.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return dia: El día con más ventas para ese periodo. 0 en caso de que no haya ventas.
@return unidades: Unidades vendidas correspondientes a ese día. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_D_UD_MAX (
   e_periodo IN NUMBER
,  dia OUT NUMBER
,  unidades OUT NUMBER
,  rsp OUT STRING
);


/*
Busca la hora con menos ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return hora: La hora con menos ventas para ese periodo. 0 en caso de que no haya ventas.
@return unidades: Unidades vendidas correspondientes a esa hora. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_H_UD_MIN (
   e_periodo IN NUMBER
,  hora OUT NUMBER
,  unidades OUT NUMBER
,  rsp OUT STRING
);


/*
Busca la hora con más ventas para un periodo determinado y devuelve la hora y las unidades vendidas para esa hora.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return hora: La hora con más ventas para ese periodo. 0 en caso de que no haya ventas.
@return unidades: Unidades vendidas correspondientes a esa hora. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_H_UD_MAX (
   e_periodo IN NUMBER
,  hora OUT NUMBER
,  unidades OUT NUMBER
,  rsp OUT STRING
);


/*
Busca el producto con más unidades vendidas para un periodo determinado y devuelve el código del producto y las unidades vendidas para ese producto.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return cod_ean: El código del producto con más ventas para ese periodo. Cadena vacía en caso de que no haya ventas.
@return unidades: Unidades vendidas correspondientes a ese producto. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_PDT_UD_MAX (
   e_periodo IN NUMBER
,  cod_ean OUT NUMBER
,  unidades OUT NUMBER
,  rsp OUT STRING
);


/*
Busca la tienda con mayor beneficio para un periodo determinado y devuelve el código de la tienda y el beneficio generado por esa tienda.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo de cálculo expresado en YYYY. Si es para todos los años indicar 0.
@return tienda_id: El código de la tienda con más beneficio para ese periodo. 0 en caso de que no haya ventas.
@return bn_tienda: Beneficio correspondientes a esa tienda. 0 en caso de que no haya ventas.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE BUSCAR_TDA_BN_MAX (
   e_periodo IN NUMBER
,  tienda_id OUT NUMBER
,  bn_tienda OUT NUMBER
,  rsp OUT STRING
);


/*
Indica mediante un código si una tienda es virtual o no. 
1 Es virtual.
0 No es virtual.
2 Si la tienda no existe.
El procedimiento queda registrado en la tabla de LOGS.
@param e_tienda_id: El código de la tienda del que se quiere conocer si es virtual o no.
@return NUMBER indicando si la tienda es virtual o física o si la tienda no existe.
*/
FUNCTION ES_VIRTUAL(
    e_tienda_id IN NUMBER
)
RETURN NUMBER;

/*
Inserta una fila en la tabla ESTADISTICAS_DIRECCION con los valores estadísticos necesarios. Esta tabla tiene una fila para cada periodo anual identificada por el año con el formato YYYY. 
Además tiene una línea identificada con 0 para almacenar los valores estadísticos globales. Por tanto, al insertar una línea es condición que no existan ventas y este procedimiento tomará los valores
que recibe como parámetro como la única venta hasta el momento para dicho periodo.
El procedimiento queda registrado en la tabla de LOGS.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
@param   e_periodo: El periodo para el que se quiere insertar una línea.
@param   e_tienda_id: La tienda que hace la venta.
@param   e_cod_ean: el producto vendido.
@param   e_dia: El día en que se produce la venta.
@param   e_hora: La hora en que se produce la venta.
@param   e_ud_vendidas:  Las unidades vendidas.
@param   e_precio_bruto: El precio bruto unitario del producto vendido.
@param   e_beneficio_neto: El beneficio neto unitario del producto vendido.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR. No se ha podido insertar nueva línea de estadística.' Si no se puede insertar la línea.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE INSRTR_LIN_EST_D  (
    e_periodo IN NUMBER
,   e_tienda_id IN NUMBER
,   e_cod_ean IN NUMBER
,   e_dia IN NUMBER
,   e_hora IN NUMBER
,   e_ud_vendidas IN NUMBER
,   e_precio_bruto IN NUMBER
,   e_beneficio_neto IN NUMBER
,   rsp OUT STRING
);


/*
Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada.
El procedimiento queda registrado en la tabla de LOGS.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
@param e_periodo: El periodo cuya línea se quiere modificar.
@param valores: Dato con los valores actualizados de la línea a modificar.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR. No se ha podido actualizar la estadística.' Si no se ha podido actualizar la tabla.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE ACTLZR_LIN_EST_D  (
   e_periodo IN NUMBER
,  valores IN ESTADISTICAS_DIRECCION%ROWTYPE
,  rsp OUT STRING
);


/*
Proporciona un cursor SYS_REFCURSOR sobre la tabla ESTADISTICAS_DIRECCION considerando el tipo de datos que se requieren.
Si se requieren todas las filas de la tabla hay que indicar 'GLOBAL' como primer parámetro de entrada. Si se requiere un año concreto
hay que indicar 'INDIVIDUAL' como primer parámetro de entrada.
El procedimiento queda registrado en la tabla de LOGS.
@param e_tipo: El tipo de datos que se requiere. 'INDIVIDUAL' o 'GLOBAL'.
@param e_año: El año para el que se quieren los datos. Si se ha indicado 'INDIVIDUAL' no es relevante y no se tiene en cuenta.
@return cursor SYS_REFCURSOR sobre la tabla ESTADISTICAS_DIRECCION.
*/
FUNCTION OBTENER_CURSOR(
   e_tipo IN VARCHAR2
,  e_año IN NUMBER
)
RETURN SYS_REFCURSOR ;


/*
Actualiza la línea de la tabla ESTADISTICAS_DIRECCION con los valores que recibe como parámetro de entrada. Tiene dos posibilidades, actualizar la línea
correspondiente a los datos globales (identificada en la tabla con el id 0) o la línea correspondiente a un año en concreto (identificada en la tabla con el id YYYY).
Para la actualización de los datos globales hay que indicar 'TOTAL' como parámetro de entrada en e_tipo. 
Para la actualización de los datos de un año hay que indicar 'ANUAL' como parámetro de entrada en e_tipo.
El procedimiento queda registrado en la tabla de LOGS.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
@param   e_tipo: 'TOTAL'  para actualizar la estadística global, 'ANUAL' para actualizar una estadística en concreto.
@param   e_tienda_id: La tienda que genera la actualización a través de una venta.
@param   e_cod_ean: El producto que genera la actualización a través de una venta.
@param   e_fecha: La fecha de la venta que motiva la actualización.
@param   e_hora: La hora de la venta que motiva la actualización.
@param   e_ud_vendidas: Las unidades de la venta que motiva la actualización.
@param   e_precio_bruto: El precio bruto unitario de la venta que motiva la actualización.
@param   e_beneficio_neto: El beneficio neto unitario de la venta que motiva la actualización.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR.'ERROR. No se ha podido insertar nueva línea de estadística.' Si no se ha podido actualizar la tabla.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE ACTLZR_EST (
   e_tipo VARCHAR2
,  e_tienda_id IN NUMBER
,  e_cod_ean IN NUMBER
,  e_fecha IN DATE
,  e_hora IN NUMBER
,  e_ud_vendidas IN NUMBER  
,  e_precio_bruto IN NUMBER 
,  e_beneficio_neto IN NUMBER
,  rsp OUT STRING);


/*
Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a los datos globales con los valores que recibe como parámetro de entrada. 
Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'GLOBAL'.
El procedimiento queda registrado en la tabla de LOGS.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
@param   e_tienda_id: La tienda que genera la actualización a través de una venta.
@param   e_cod_ean: El producto que genera la actualización a través de una venta.
@param   e_fecha: La fecha de la venta que motiva la actualización.
@param   e_hora: La hora de la venta que motiva la actualización.
@param   e_ud_vendidas: Las unidades de la venta que motiva la actualización.
@param   e_precio_bruto: El precio bruto unitario de la venta que motiva la actualización.
@param   e_beneficio_neto: El beneficio neto unitario de la venta que motiva la actualización.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE ACTLZR_EST_TOTAL (
   e_tienda_id IN NUMBER
,  e_cod_ean IN NUMBER
,  e_fecha IN DATE
,  e_hora IN NUMBER
,  e_ud_vendidas IN NUMBER  
,  e_precio_bruto IN NUMBER 
,  e_beneficio_neto IN NUMBER
,  rsp OUT STRING
)
;


/*
Actualiza la línea de la tabla ESTADISTICAS_DIRECCION correspondiente a un año determinado con los valores que recibe como parámetro de entrada. 
Para ello utiliza el procedimiento ACTLRZR_EST indicando como tipo de actualización 'ANUAL'.
El procedimiento queda registrado en la tabla de LOGS.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
@param   e_tienda_id: La tienda que genera la actualización a través de una venta.
@param   e_cod_ean: El producto que genera la actualización a través de una venta.
@param   e_fecha: La fecha de la venta que motiva la actualización.
@param   e_hora: La hora de la venta que motiva la actualización.
@param   e_ud_vendidas: Las unidades de la venta que motiva la actualización.
@param   e_precio_bruto: El precio bruto unitario de la venta que motiva la actualización.
@param   e_beneficio_neto: El beneficio neto unitario de la venta que motiva la actualización.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE ACTLZR_EST_ANUAL (
   e_tienda_id IN NUMBER
,  e_cod_ean IN NUMBER
,  e_fecha IN DATE
,  e_hora IN NUMBER
,  e_ud_vendidas IN NUMBER  
,  e_precio_bruto IN NUMBER 
,  e_beneficio_neto IN NUMBER
,  rsp OUT STRING
);


/*
Actualiza todas las filas de la tabla ESTADISTICAS_DIRECCION.
No confirma las modificaciones en la Base de Datos, NO COMMIT INSIDE.
El procedimiento queda registrado en la tabla de LOGS.
No tiene parámetros de entrada.
@return rsp: 'Ok' si la ejecución es correcta.
             'ERROR. No se puede guardar el log de la transacción' si no se puede guardar el registro de log.
             'ERROR + Tipo de error' en otro caso.
*/
PROCEDURE ACTLZR_EST_GLOBAL (
   rsp OUT STRING
);


/*
Calcula en beneficio neto agregado de la cadena para un periodo determinado.
El procedimiento queda registrado en la tabla de LOGS.
@param e_periodo: El periodo para el que se quiere tener el dato.
@return el beneficio neto agregado de la cadena para el periodo.
*/
FUNCTION CAL_BN_AGREGADO (
    e_periodo IN NUMBER
) RETURN NUMBER;

END PKG_EST_DIR;