Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
2| Name | Data Type | Length | Description |
|---|---|---|---|
| @p_cliente | int | 4 | |
| @p_servicio | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec Reporte_cumplimiento 5546348, 47
*/
CREATE OR ALTER PROCEDURE dbo.Reporte_cumplimiento
@p_cliente int = 7500717,
@p_servicio int = 47
AS
BEGIN
SET NOCOUNT ON;
declare @resultado table (contraparte int, gest int, pais char(2), nombre varchar(1000), cuit varchar(20), familia varchar(100), desde date, hasta date, limite_carga_inicial date, carga_inicial bit, cd decimal(4,1), cdv decimal(4,1))
DECLARE @cd decimal(4,1)=0, @cdv decimal(4,1)=0, @icd int = NULL
declare @estado_doc char(1), @doc_id int, @tipo_doc int, @vers int
DECLARE @cantidad int = 0, @cumplidos int = 0, @cantidad_verificados int = 0
declare @contraparte int,
@gest int,
@pais varchar(10),
@nombre varchar(1000),
@cuit varchar(50),
@desde date,
@hasta date,
@limite_carga_inicial date,
@carga_inicial bit,
@familia varchar(100)
DECLARE C_Cursor CURSOR FOR
select c.contraparte, g.gestion, c.country_code, p.nombre_persona, p.identificacion, z.nombre_familia, g.desde, g.hasta, c.limite_carga_inicial, c.carga_inicial
from ln_contrapartes c
inner join padrones p on p.id_padron = c.id_padron
inner join ln_gestiones g on g.contraparte = c.contraparte and g.vigente = 1
inner join ln_contraparte_familias f on f.contraparte = c.contraparte
inner join LN_familias z on z.familia = f.familia
where c.cliente = @p_cliente and c.activo = 1 and c.servicio_contratado = @p_servicio and c.subcontratista = 0
and exists (select * from LN_docs d where d.contraparte = c.contraparte and d.gestion = g.gestion and d.aplica = 1)
OPEN C_Cursor
fetch next from C_Cursor into @contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial
while @@FETCH_STATUS=0 begin
set @cantidad = null
set @cumplidos = null
set @cd = null
set @cantidad = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc <> 'X'
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
if (@cantidad) > 0
begin
set @cumplidos = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc in ('I','V')
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
SET @cd = convert(float, @cumplidos) / convert(float, @cantidad) * 100
set @cantidad_verificados = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc in ('V')
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
SET @cdv = convert(float, @cantidad_verificados) / convert(float, @cantidad) * 100
end
insert into @resultado values(@contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial, @cd, @cdv)
fetch next from C_Cursor into @contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial
END
CLOSE C_Cursor
DEALLOCATE C_Cursor
select contraparte,
pais,
nombre,
cuit,
familia,
desde,
limite_carga_inicial,
iif(carga_inicial=1,'SI','NO') as 'carga',
cd as cumplimiento,
cdv as verificados
from @resultado
END
GO
GO
/*
exec Reporte_cumplimiento 5546348, 47
*/
CREATE OR ALTER PROCEDURE dbo.Reporte_cumplimiento
@p_cliente int = 7500717,
@p_servicio int = 47
AS
BEGIN
SET NOCOUNT ON;
declare @resultado table (contraparte int, gest int, pais char(2), nombre varchar(1000), cuit varchar(20), familia varchar(100), desde date, hasta date, limite_carga_inicial date, carga_inicial bit, cd decimal(4,1), cdv decimal(4,1))
DECLARE @cd decimal(4,1)=0, @cdv decimal(4,1)=0, @icd int = NULL
declare @estado_doc char(1), @doc_id int, @tipo_doc int, @vers int
DECLARE @cantidad int = 0, @cumplidos int = 0, @cantidad_verificados int = 0
declare @contraparte int,
@gest int,
@pais varchar(10),
@nombre varchar(1000),
@cuit varchar(50),
@desde date,
@hasta date,
@limite_carga_inicial date,
@carga_inicial bit,
@familia varchar(100)
DECLARE C_Cursor CURSOR FOR
select c.contraparte, g.gestion, c.country_code, p.nombre_persona, p.identificacion, z.nombre_familia, g.desde, g.hasta, c.limite_carga_inicial, c.carga_inicial
from ln_contrapartes c
inner join padrones p on p.id_padron = c.id_padron
inner join ln_gestiones g on g.contraparte = c.contraparte and g.vigente = 1
inner join ln_contraparte_familias f on f.contraparte = c.contraparte
inner join LN_familias z on z.familia = f.familia
where c.cliente = @p_cliente and c.activo = 1 and c.servicio_contratado = @p_servicio and c.subcontratista = 0
and exists (select * from LN_docs d where d.contraparte = c.contraparte and d.gestion = g.gestion and d.aplica = 1)
OPEN C_Cursor
fetch next from C_Cursor into @contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial
while @@FETCH_STATUS=0 begin
set @cantidad = null
set @cumplidos = null
set @cd = null
set @cantidad = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc <> 'X'
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
if (@cantidad) > 0
begin
set @cumplidos = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc in ('I','V')
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
SET @cd = convert(float, @cumplidos) / convert(float, @cantidad) * 100
set @cantidad_verificados = (SELECT COUNT(*)
FROM LN_docs
INNER JOIN LN_contraparte_familias ON LN_docs.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_docs.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
WHERE LN_docs.contraparte = @contraparte
AND LN_docs.estado_doc in ('V')
AND LN_docs.gestion = @gest
AND LN_docs.aplica = 1)
SET @cdv = convert(float, @cantidad_verificados) / convert(float, @cantidad) * 100
end
insert into @resultado values(@contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial, @cd, @cdv)
fetch next from C_Cursor into @contraparte, @gest, @pais, @nombre, @cuit, @familia, @desde, @hasta, @limite_carga_inicial, @carga_inicial
END
CLOSE C_Cursor
DEALLOCATE C_Cursor
select contraparte,
pais,
nombre,
cuit,
familia,
desde,
limite_carga_inicial,
iif(carga_inicial=1,'SI','NO') as 'carga',
cd as cumplimiento,
cdv as verificados
from @resultado
END
GO
Depends On
7Used By
No items found