Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
3| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 50 | |
| @p_contraparte | int | 4 | |
| @p_clave_indicador | varchar | 50 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: Luis Prenafeta
-- Create date: 05/04/2019
-- Description: Algunas funciones adicionales para la obtención de indicadores de una contraparte en la gestión activa
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_contraparte_indicadores_
-- Add the parameters for the stored procedure here
@accion varchar(50),
@p_contraparte int = NULL,
@p_clave_indicador varchar(50) = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
/* La acción status devuelve todos los indicadores de cálculo AUTOMATICO que le corresponden a la contraparte
y le adiciona una columna adicional de cuántos días han transcurrido desde la última actualización.
En caso de que nunca se haya calculad, esa columna se setea en 30 días de manera que la regla
que invoca a esta funcionalidad sepa que debe ser actualizado
Esta lógica es ideal para enviar a calcular los indicadores automáticos en el momento del alta de contraparte
o cuando se visualiza el detalle de la misma
*/
if (@accion = 'status') begin
/* contraparte requerida */
if (@p_contraparte > 0)
if (@p_clave_indicador is null)
SELECT indica.*, datos.*,
ISNULL(datos.modified, datos.created) as ultima_actualizacion,
ISNULL(DATEDIFF(DAY,datos.modified,GETDATE()), ISNULL(DATEDIFF(DAY,datos.created,GETDATE()),30)) as dias_ultima_actualizacion
FROM
(select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 0
and LN_indicadores.valoracion = 'A'
union
select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
inner join LN_cliente_indicadores on (LN_cliente_productos.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 1
and LN_indicadores.valoracion = 'A') indica
LEFT OUTER JOIN
(SELECT LN_contraparte_indicadores.contraparte,
LN_contraparte_indicadores.indicador,
LN_contraparte_indicadores.gestion,
LN_contraparte_indicadores.created,
LN_contraparte_indicadores.modified
FROM LN_contraparte_indicadores
INNER JOIN LN_gestiones ON LN_contraparte_indicadores.contraparte = LN_gestiones.contraparte
WHERE LN_contraparte_indicadores.contraparte = @p_contraparte
AND LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()) datos ON indica.indicador = datos.indicador
ORDER BY indica.orden_producto, indica.orden
else
SELECT indica.*, datos.*,
ISNULL(datos.modified, datos.created) as ultima_actualizacion,
ISNULL(DATEDIFF(DAY,datos.modified,GETDATE()), ISNULL(DATEDIFF(DAY,datos.created,GETDATE()),30)) as dias_ultima_actualizacion
FROM
(select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 0
and LN_indicadores.valoracion = 'A'
union
select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
inner join LN_cliente_indicadores on (LN_cliente_productos.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 1
and LN_indicadores.valoracion = 'A') indica
LEFT OUTER JOIN
(SELECT LN_contraparte_indicadores.contraparte,
LN_contraparte_indicadores.indicador,
LN_contraparte_indicadores.gestion,
LN_contraparte_indicadores.created,
LN_contraparte_indicadores.modified
FROM LN_contraparte_indicadores
INNER JOIN LN_gestiones ON LN_contraparte_indicadores.contraparte = LN_gestiones.contraparte
WHERE LN_contraparte_indicadores.contraparte = @p_contraparte
AND LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()) datos ON indica.indicador = datos.indicador
WHERE indica.clave_indicador = @p_clave_indicador
ORDER BY indica.orden_producto, indica.orden
end
/** Esta accion 'status_manual' devuelve una consulta con los indicadores de input manual de balance para una contraparte o todas
con el objeto de visualizar y actualizar sus valores **/
if (@accion = 'indicadores_manuales_balance') begin
if (@p_contraparte is null)
SELECT clientes.nombre_cliente, country.country_code, country.country_name,
padrones.nombre_persona, identificadores.abreviatura, padrones.identificacion,
LN_contrapartes.contraparte, LN_productos.producto, LN_productos.nombre_producto,
LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.tipo_dato,
LN_indicadores.opciones, LN_indicadores.nombre_indicador,
LN_contraparte_indicadores.valor_fecha, LN_contraparte_indicadores.valor_numerico,
LN_contraparte_indicadores.valor_texto, LN_contraparte_indicadores.valor_memo
FROM LN_contrapartes
INNER JOIN LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
INNER JOIN LN_cliente_productos ON LN_contrapartes.cliente = LN_cliente_productos.cliente
INNER JOIN LN_productos ON LN_cliente_productos.producto = LN_productos.producto
INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
AND LN_productos.producto = LN_familia_productos.producto)
INNER JOIN LN_indicadores ON LN_productos.producto = LN_indicadores.producto
INNER JOIN LN_cliente_indicadores ON (LN_contrapartes.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
LEFT OUTER JOIN LN_contraparte_indicadores ON (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte
AND LN_gestiones.gestion = LN_contraparte_indicadores.gestion
AND LN_indicadores.indicador = LN_contraparte_indicadores.indicador)
WHERE LN_gestiones.desde <= GETDATE()
AND LN_gestiones.hasta >= GETDATE()
AND LN_contraparte_familias.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_familia_productos.activo = 1
AND LN_productos.balance = 1
AND LN_indicadores.valoracion = 'F'
ORDER BY clientes.nombre_cliente, country.country_name, padrones.nombre_persona,
LN_productos.nombre_producto, LN_indicadores.orden
else
SELECT clientes.nombre_cliente, country.country_code, country.country_name,
padrones.nombre_persona, identificadores.abreviatura, padrones.identificacion,
LN_contrapartes.contraparte, LN_productos.producto, LN_productos.nombre_producto,
LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.tipo_dato,
LN_indicadores.opciones, LN_indicadores.nombre_indicador,
LN_contraparte_indicadores.valor_fecha, LN_contraparte_indicadores.valor_numerico,
LN_contraparte_indicadores.valor_texto, LN_contraparte_indicadores.valor_memo
FROM LN_contrapartes
INNER JOIN LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
INNER JOIN LN_cliente_productos ON LN_contrapartes.cliente = LN_cliente_productos.cliente
INNER JOIN LN_productos ON LN_cliente_productos.producto = LN_productos.producto
INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
AND LN_productos.producto = LN_familia_productos.producto)
INNER JOIN LN_indicadores ON LN_productos.producto = LN_indicadores.producto
INNER JOIN LN_cliente_indicadores ON (LN_contrapartes.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
LEFT OUTER JOIN LN_contraparte_indicadores ON (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte
AND LN_gestiones.gestion = LN_contraparte_indicadores.gestion
AND LN_indicadores.indicador = LN_contraparte_indicadores.indicador)
WHERE LN_gestiones.desde <= GETDATE()
AND LN_gestiones.hasta >= GETDATE()
AND LN_contraparte_familias.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_familia_productos.activo = 1
AND LN_productos.balance = 1
AND LN_indicadores.valoracion = 'F'
AND LN_contrapartes.contraparte = @p_contraparte
ORDER BY clientes.nombre_cliente, country.country_name, padrones.nombre_persona,
LN_productos.nombre_producto, LN_indicadores.orden
end
END
GO
GO
-- =============================================
-- Author: Luis Prenafeta
-- Create date: 05/04/2019
-- Description: Algunas funciones adicionales para la obtención de indicadores de una contraparte en la gestión activa
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_contraparte_indicadores_
-- Add the parameters for the stored procedure here
@accion varchar(50),
@p_contraparte int = NULL,
@p_clave_indicador varchar(50) = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
/* La acción status devuelve todos los indicadores de cálculo AUTOMATICO que le corresponden a la contraparte
y le adiciona una columna adicional de cuántos días han transcurrido desde la última actualización.
En caso de que nunca se haya calculad, esa columna se setea en 30 días de manera que la regla
que invoca a esta funcionalidad sepa que debe ser actualizado
Esta lógica es ideal para enviar a calcular los indicadores automáticos en el momento del alta de contraparte
o cuando se visualiza el detalle de la misma
*/
if (@accion = 'status') begin
/* contraparte requerida */
if (@p_contraparte > 0)
if (@p_clave_indicador is null)
SELECT indica.*, datos.*,
ISNULL(datos.modified, datos.created) as ultima_actualizacion,
ISNULL(DATEDIFF(DAY,datos.modified,GETDATE()), ISNULL(DATEDIFF(DAY,datos.created,GETDATE()),30)) as dias_ultima_actualizacion
FROM
(select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 0
and LN_indicadores.valoracion = 'A'
union
select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
inner join LN_cliente_indicadores on (LN_cliente_productos.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 1
and LN_indicadores.valoracion = 'A') indica
LEFT OUTER JOIN
(SELECT LN_contraparte_indicadores.contraparte,
LN_contraparte_indicadores.indicador,
LN_contraparte_indicadores.gestion,
LN_contraparte_indicadores.created,
LN_contraparte_indicadores.modified
FROM LN_contraparte_indicadores
INNER JOIN LN_gestiones ON LN_contraparte_indicadores.contraparte = LN_gestiones.contraparte
WHERE LN_contraparte_indicadores.contraparte = @p_contraparte
AND LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()) datos ON indica.indicador = datos.indicador
ORDER BY indica.orden_producto, indica.orden
else
SELECT indica.*, datos.*,
ISNULL(datos.modified, datos.created) as ultima_actualizacion,
ISNULL(DATEDIFF(DAY,datos.modified,GETDATE()), ISNULL(DATEDIFF(DAY,datos.created,GETDATE()),30)) as dias_ultima_actualizacion
FROM
(select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 0
and LN_indicadores.valoracion = 'A'
union
select LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.producto,
LN_contraparte_familias.contraparte, ISNULL(LN_productos.balance, 0) as balance,
LN_cliente_productos.orden_producto, LN_indicadores.orden, LN_contrapartes.cliente
from LN_indicadores inner join LN_productos on LN_indicadores.producto = LN_productos.producto
inner join LN_cliente_productos on LN_productos.producto = LN_cliente_productos.producto
inner join LN_familia_productos on LN_cliente_productos.producto = LN_familia_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
inner join LN_contrapartes on (LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
and LN_cliente_productos.cliente = LN_contrapartes.cliente)
inner join LN_cliente_indicadores on (LN_cliente_productos.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
where LN_contrapartes.contraparte = @p_contraparte
and LN_productos.visible = 1
and LN_cliente_productos.activo = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_productos.balance, 0) = 1
and LN_indicadores.valoracion = 'A') indica
LEFT OUTER JOIN
(SELECT LN_contraparte_indicadores.contraparte,
LN_contraparte_indicadores.indicador,
LN_contraparte_indicadores.gestion,
LN_contraparte_indicadores.created,
LN_contraparte_indicadores.modified
FROM LN_contraparte_indicadores
INNER JOIN LN_gestiones ON LN_contraparte_indicadores.contraparte = LN_gestiones.contraparte
WHERE LN_contraparte_indicadores.contraparte = @p_contraparte
AND LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()) datos ON indica.indicador = datos.indicador
WHERE indica.clave_indicador = @p_clave_indicador
ORDER BY indica.orden_producto, indica.orden
end
/** Esta accion 'status_manual' devuelve una consulta con los indicadores de input manual de balance para una contraparte o todas
con el objeto de visualizar y actualizar sus valores **/
if (@accion = 'indicadores_manuales_balance') begin
if (@p_contraparte is null)
SELECT clientes.nombre_cliente, country.country_code, country.country_name,
padrones.nombre_persona, identificadores.abreviatura, padrones.identificacion,
LN_contrapartes.contraparte, LN_productos.producto, LN_productos.nombre_producto,
LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.tipo_dato,
LN_indicadores.opciones, LN_indicadores.nombre_indicador,
LN_contraparte_indicadores.valor_fecha, LN_contraparte_indicadores.valor_numerico,
LN_contraparte_indicadores.valor_texto, LN_contraparte_indicadores.valor_memo
FROM LN_contrapartes
INNER JOIN LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
INNER JOIN LN_cliente_productos ON LN_contrapartes.cliente = LN_cliente_productos.cliente
INNER JOIN LN_productos ON LN_cliente_productos.producto = LN_productos.producto
INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
AND LN_productos.producto = LN_familia_productos.producto)
INNER JOIN LN_indicadores ON LN_productos.producto = LN_indicadores.producto
INNER JOIN LN_cliente_indicadores ON (LN_contrapartes.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
LEFT OUTER JOIN LN_contraparte_indicadores ON (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte
AND LN_gestiones.gestion = LN_contraparte_indicadores.gestion
AND LN_indicadores.indicador = LN_contraparte_indicadores.indicador)
WHERE LN_gestiones.desde <= GETDATE()
AND LN_gestiones.hasta >= GETDATE()
AND LN_contraparte_familias.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_familia_productos.activo = 1
AND LN_productos.balance = 1
AND LN_indicadores.valoracion = 'F'
ORDER BY clientes.nombre_cliente, country.country_name, padrones.nombre_persona,
LN_productos.nombre_producto, LN_indicadores.orden
else
SELECT clientes.nombre_cliente, country.country_code, country.country_name,
padrones.nombre_persona, identificadores.abreviatura, padrones.identificacion,
LN_contrapartes.contraparte, LN_productos.producto, LN_productos.nombre_producto,
LN_indicadores.indicador, LN_indicadores.clave_indicador, LN_indicadores.tipo_dato,
LN_indicadores.opciones, LN_indicadores.nombre_indicador,
LN_contraparte_indicadores.valor_fecha, LN_contraparte_indicadores.valor_numerico,
LN_contraparte_indicadores.valor_texto, LN_contraparte_indicadores.valor_memo
FROM LN_contrapartes
INNER JOIN LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
INNER JOIN LN_cliente_productos ON LN_contrapartes.cliente = LN_cliente_productos.cliente
INNER JOIN LN_productos ON LN_cliente_productos.producto = LN_productos.producto
INNER JOIN LN_familia_productos ON (LN_contraparte_familias.familia = LN_familia_productos.familia
AND LN_productos.producto = LN_familia_productos.producto)
INNER JOIN LN_indicadores ON LN_productos.producto = LN_indicadores.producto
INNER JOIN LN_cliente_indicadores ON (LN_contrapartes.cliente = LN_cliente_indicadores.cliente
AND LN_indicadores.indicador = LN_cliente_indicadores.indicador)
LEFT OUTER JOIN LN_contraparte_indicadores ON (LN_contrapartes.contraparte = LN_contraparte_indicadores.contraparte
AND LN_gestiones.gestion = LN_contraparte_indicadores.gestion
AND LN_indicadores.indicador = LN_contraparte_indicadores.indicador)
WHERE LN_gestiones.desde <= GETDATE()
AND LN_gestiones.hasta >= GETDATE()
AND LN_contraparte_familias.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_familia_productos.activo = 1
AND LN_productos.balance = 1
AND LN_indicadores.valoracion = 'F'
AND LN_contrapartes.contraparte = @p_contraparte
ORDER BY clientes.nombre_cliente, country.country_name, padrones.nombre_persona,
LN_productos.nombre_producto, LN_indicadores.orden
end
END
GO
Depends On
14Used By
No items found