← Índice de manuales
Manual funcional · Sistema Plenario v14

Reportes — Clientes y Asociados

Catálogo de los stored procedures de reportería del módulo Clientes / Asociados de Plenario v14. Cada entrada documenta el SP tal como existe en el fuente (VPNET_Database\Stored Procedures\Clientes\), sus parámetros…

Módulo: ReportesVersión: 1.0Actualizado: 2026-06-23

Reportes — Clientes y Asociados

Catálogo de los stored procedures de reportería del módulo Clientes / Asociados de Plenario v14. Cada entrada documenta el SP tal como existe en el fuente (VPNET_Database\Stored Procedures\Clientes\), sus parámetros, los módulos/tablas que cruza y el SQL completo. Varios SP arman el SELECT dinámicamente con SQL concatenado (Exec(@SQLString)) para soportar filtros opcionales.


Listado de Aportes (impagos / pendientes)

  • SP/archivo: Clientes_Aportes_Listado.proc.sql
  • Tipo: Reporte
  • Parámetros: @FechaDesde (datetime, def. 01/01/1900), @FechaHasta (datetime, def. 01/01/2900)
  • Relación con módulos: Clientes (Clientes) + Aportes de asociados (Clientes_Aportes)

Lista los asociados con aporte impago (ImportePago < ImporteTotal) cuya fecha de vencimiento de aporte cae en el rango indicado. Devuelve nro. de asociado, nombre, importe pagado/total y fechas de vencimiento y último aporte.


Create Proc [dbo].[Clientes_Aportes_Listado]
                @FechaDesde datetime = '01/01/1900',
                @FechaHasta datetime = '01/01/2900'
As

Select Clientes.Id_Asociado, Clientes.Nombre, Clientes_Aportes.ImportePago, Clientes_Aportes.ImporteTotal, Clientes.FechaVencimientoAporte, Clientes_Aportes.FechaUltimoAporte
From clientes inner join clientes_aportes on Clientes_Aportes.Id_Cliente=Clientes.Id
Where ImportePago < ImporteTotal and FechaVencimientoAporte Between @FechaDesde and @FechaHasta



Informe Diario de Asociados (altas / bajas / reingresos)

  • SP/archivo: Clientes_Asociados_InformeDiario.proc.sql
  • Tipo: Reporte
  • Parámetros: @intId_Operacion (int, def. 3 — 1=Alta, 2=Baja, 3=Reingreso), @Fecha_Desde (date), @Fecha_Hasta (date), @intId_Organismo (int — medio de cobro/entidad), @intId_Filiales (int — sucursal), @intId_Comercializador (int), @intId_Motivos (int)
  • Relación con módulos: Clientes; Motivos de cliente (Clientes_Motivos, Clientes_Motivos_Relacion); Comercializadores (Prestamos_Comercializadores); Sucursales/Filiales (Sucursales); Medios de cobro (Gestion_MediosDeCobro, Prestamos_Entidades) + función dbo.ObtenerDatosAdicionales_MediosDeCobro

Reporte dinámico de movimientos de altas, bajas y reingresos de asociados en un período. Arma el SELECT con SQL concatenado según los filtros provistos y resuelve para cada socio su último estado, motivo, comercializador, filial y medio de cobro. La operación (Id_Utilidad) determina si se filtran altas (1), bajas (2) o reingresos (3).

--================================================================================================================================================================
--================================================================================================================================================================
--================================================================================================================================================================
/*
IMPORTANTE: NO MODIFICAR ESTE CÓDIGO YA QUE FUE GENERADO AUTOMÁTICAMENTE.


<CompoundXmlDocument>
  <User Name="PLENARIO\frocha" />
</CompoundXmlDocument>
*/



CREATE Procedure [dbo].[Clientes_Asociados_InformeDiario]
@intId_Operacion int = 3,
@Fecha_Desde date = '25/08/2011',
@Fecha_Hasta date = '31/08/2011',
@intId_Organismo int = 0,
@intId_Filiales int = 0,
@intId_Comercializador int = 0,
@intId_Motivos int = 0

As

Set NoCount On

Declare @Where     VarChar(4000), 
        @Columns   VarChar(4000), 
        @SQLString VarChar(4000), 
        @Inner     VarChar(4000)

Set @Where = ''
Set @Columns = 'CodCliente = Clientes.Id, NroAsociado = Id_Asociado,NombreCliente = Clientes.nombre,TipoDoc,NroDoc,

        UltimoEstadoSocio = (Case When Fecha_Baja IS Null Then ''Activo'' Else ''Baja'' End),

        TipoEstado = (Case When Clientes_Motivos.Id_Utilidad = 1 Then ''Alta''
                      When Clientes_Motivos.Id_Utilidad = 3 Then ''Reingreso''
                     Else ''baja'' End),

        Motivo = Clientes_Motivos.Descripcion,

        FechaOperacion = Clientes_Motivos_Relacion.Fecha,

        UltimaFechaBaja = (select MAX(Fecha) from Clientes_Motivos_Relacion 
                    Inner Join Clientes_Motivos ON Clientes_Motivos_Relacion.Id_Clientes_Motivos =  Clientes_Motivos.Id
                    where Id_Entidad = Clientes.id and Clientes_Motivos.Id_Utilidad = 2),

        UltimaFechaAlta = (select MAX(Fecha) from Clientes_Motivos_Relacion 
                    Inner Join Clientes_Motivos ON Clientes_Motivos_Relacion.Id_Clientes_Motivos =  Clientes_Motivos.Id
                    where Id_Entidad = Clientes.id and (Clientes_Motivos.Id_Utilidad = 1 Or Clientes_Motivos.Id_Utilidad = 3)),

        Comercializador = Prestamos_Comercializadores.Nombre,
        Filial = Sucursales.Descripcion,

        MediosDeCobro = Prestamos_Entidades.Nombre,

        MedioCobroValores = dbo.ObtenerDatosAdicionales_MediosDeCobro (Clientes.Id_MediosDeCobro)'


Set @Inner = 'Left Join Prestamos_Comercializadores ON Clientes.Id_Comercializador = Prestamos_Comercializadores.Id
                Left Join Sucursales ON Clientes.Id_Sucursal = Sucursales.Id

                Inner Join Clientes_Motivos_Relacion ON Clientes.id = Clientes_Motivos_Relacion.Id_Entidad
                Left Join Clientes_Motivos ON Clientes_Motivos_Relacion.Id_Clientes_Motivos = Clientes_Motivos.Id

                Left Join Gestion_MediosDeCobro ON Clientes.Id_MediosDeCobro =  Gestion_MediosDeCobro.Id
                Left Join Prestamos_Entidades ON Gestion_MediosDeCobro.Id_Entidad = Prestamos_Entidades.Id '

If @intId_Operacion <> 0
    Begin
        If @intId_Operacion = 1
            If @Where <> ''
                Set @Where = @Where + ' And Clientes_Motivos.Id_Utilidad = 1'
            Else
                Set @Where = @Where + ' Clientes_Motivos.Id_Utilidad = 1'

        If @intId_Operacion = 2
            If @Where <> ''
                Set @Where = @Where + ' And Clientes_Motivos.Id_Utilidad = 2'
            Else
                Set @Where = @Where + ' Clientes_Motivos.Id_Utilidad = 2'

        If @intId_Operacion = 3
            If @Where <> ''
                Set @Where = @Where + ' And Clientes_Motivos.Id_Utilidad = 3'
            Else
                Set @Where = @Where + ' Clientes_Motivos.Id_Utilidad = 3'
    End

If @Fecha_Desde <> '01/01/1900' And @Fecha_Hasta <> '01/01/1900'
    Begin

        If @Where <> ''
            Set @Where = @Where + ' And Clientes_Motivos_Relacion.Fecha Between ''' + RTrim(Convert(Char,@Fecha_Desde,103)) + ''' And ''' + RTrim(Convert(Char,@Fecha_Hasta,103)) + ''''
        Else
            Set @Where = @Where + ' Clientes_Motivos_Relacion.Fecha Between ''' + RTrim(Convert(Char,@Fecha_Desde,103)) + ''' And ''' + RTrim(Convert(Char,@Fecha_Hasta,103)) + ''''        

    End

If @intId_Organismo <> 0
        If @Where <> ''
                Set @Where = @Where + ' And Prestamos_Entidades.Id = ' + RTrim(Convert(Char,@intId_Organismo))
        Else
                Set @Where = @Where + ' Prestamos_Entidades.Id = ' + RTrim(Convert(Char,@intId_Organismo))  

If @intId_Filiales <> 0
        If @Where <> ''
                Set @Where = @Where + ' And Sucursales.Id = ' + RTrim(Convert(Char,@intId_Filiales))
        Else
                Set @Where = @Where + ' Sucursales.Id = ' + RTrim(Convert(Char,@intId_Filiales))    

If @intId_Comercializador <> 0
        If @Where <> ''
                Set @Where = @Where + ' And Prestamos_Comercializadores.Id = ' + RTrim(Convert(Char,@intId_Comercializador))
        Else
                Set @Where = @Where + ' Prestamos_Comercializadores.Id = ' + RTrim(Convert(Char,@intId_Comercializador))

If @intId_Motivos <> 0
        If @Where <> ''
                Set @Where = @Where + ' And Clientes.Id_Motivo = ' + RTrim(Convert(Char,@intId_Motivos))
        Else
                Set @Where = @Where + ' Clientes.Id_Motivo = ' + RTrim(Convert(Char,@intId_Motivos))

If @Where <> '' 
        Set @SQLString = 'Select ' + @Columns + ' From Clientes ' + @Inner + ' Where ' + @Where
Else 
        Set @SQLString = 'Select ' + @Columns + ' From Clientes ' + @Inner

Exec(@SQLString)
Print @SQLString

Listado de Asociados (padrón / nómina con domicilio)

  • SP/archivo: Clientes_Listado_Asociados.proc.sql
  • Tipo: Reporte
  • Parámetros: @Id_Asociado_Desde (int), @Id_Asociado_Hasta (int), @NombreDesde (varchar 80), @NombreHasta (varchar 80), @Orden (varchar 80 — cláusula ORDER BY a concatenar), @Fecha_Asociado_Desde (varchar 20), @Fecha_Asociado_Hasta (varchar 20), @Dado_de_Baja (int)
  • Relación con módulos: Clientes; Condición IVA (TiposIva); Sucursales/Sedes (Sucursales)

Padrón de asociados con datos de contacto y domicilio armado (dirección + nro + piso + dpto). Filtra por rango de nro. de asociado, nombre, fecha de alta y opcionalmente solo activos/suspendidos (@Dado_de_Baja=1). Permite ordenamiento variable mediante @Orden.

Nota del fuente: el SELECT dinámico se ejecuta únicamente cuando @Where <> ''; si no se aplica ningún filtro, @SQLString queda sin asignar.

CREATE PROCEDURE [dbo].[Clientes_Listado_Asociados]
    @Id_Asociado_Desde Int = 0,
    @Id_Asociado_Hasta Int = 0,
    @NombreDesde Varchar(80) = '',    
    @NombreHasta Varchar(80) = '',
    @Orden Varchar(80) = '',
    @Fecha_Asociado_Desde varchar(20) = '',
    @Fecha_Asociado_Hasta varchar(20) = '',
    @Dado_de_Baja int =0
AS
Begin
    Declare 
    @Where     VarChar(1000), 
    @Columns   VarChar(1000), 
    @SQLString VarChar(1000) 

    Set @Where = ''
    Set @Columns = 'Clientes.Id,
                Clientes.Id_Asociado,
                Clientes.Nombre, 
                Fecha_Cliente = Clientes.Fecha_Alta,
                Fecha_Alta = Clientes.Fecha_Asociado,
                Clientes.Fecha_Nacimiento,
                TiposIva.abrev as Condicion,
                Direccion=Clientes.direccion + SPACE(2) + Clientes.Domicilio_nro + SPACE(2) + Clientes.Domicilio_Piso + SPACE(2) + Clientes.Domicilio_Dpto, 
                Clientes.Telefono,
                Clientes.CodPos,
                Clientes.Localidad,
                Clientes.Cuit,
                Sede=ISNULL(Sucursales.Descripcion,'''')
                from Clientes Inner Join TiposIva on TiposIva.Id = Clientes.Condicion Left Join Sucursales on Sucursales.ID=Clientes.Id_Sucursal '


If @Id_Asociado_Desde <> 0 And @Id_Asociado_Hasta <> 0
    If @Where <> ''
        Set @Where = @Where + ' And Clientes.Id_Asociado between ' + RTrim(Convert(Char,@Id_Asociado_Desde))+ ' and ' + RTrim(Convert(Char,@Id_Asociado_Hasta))

    Else
        Set @Where = @Where + ' Clientes.Id_Asociado between ' + RTrim(Convert(Char,@Id_Asociado_Desde))+ ' and ' + RTrim(Convert(Char,@Id_Asociado_Hasta))

If @NombreDesde <> '' And @NombreHasta <> ''
    If @Where <> ''
        Set @Where = @Where + ' And Clientes.nombre >= ' + RTrim(Convert(Char,@NombreDesde)) + ' and Clientes.nombre <= ' + RTrim(Convert(Char,@NombreHasta))
    Else
        Set @Where = @Where + ' Clientes.nombre >= ' + RTrim(Convert(Char,@NombreDesde)) + ' and Clientes.nombre <= ' + RTrim(Convert(Char,@NombreHasta))

If @Fecha_Asociado_Desde <> '' And @Fecha_Asociado_Hasta <> '' 
    If @Where <> '' 
        Set @Where = @Where + ' And Clientes.fecha_alta >= ''' + RTrim(Convert(Char,@Fecha_Asociado_Desde)) + ''' and Clientes.fecha_alta <= ''' + RTrim(Convert(Char,@Fecha_Asociado_Hasta)) + '''' 
    Else
        Set @Where = @Where + ' Clientes.fecha_alta >= ''' + RTrim(Convert(Char,@Fecha_Asociado_Desde)) + ''' and Clientes.fecha_alta <= ''' + RTrim(Convert(Char,@Fecha_Asociado_Hasta)) + ''''

if @Dado_de_Baja=1
begin
    If @Where <> ''
        set @where=@where+' and '

    set @where=@where +' (Fecha_Baja is null or Fecha_Baja_Suspendida is not null) '
end

If @Where <> '' 
    Set @SQLString = 'Select ' + @Columns + ' Where ' + @Where 


    Set @SQLString = @SQLString +  @Orden


Exec(@SQLString)
Print @SQLString

END 

Listado de Clientes por Línea de Crédito

  • SP/archivo: Clientes_Listado_Lineas.proc.sql
  • Tipo: Reporte
  • Parámetros: @intIdProvinciaDesde (int, 0), @intIdProvinciaHasta (int, 100), @intIdLineaDesde (int, 0), @intIdLineaHasta (int, 100), @intIdClienteDesde (int, 0), @intIdClienteHasta (int, 10000)
  • Relación con módulos: Clientes; Condición IVA (TiposIva); Créditos/Líneas (Prestamos_Creditos, Prestamos_Lineas); Provincias (Provincias)

Lista clientes según la última línea de crédito operada (la del crédito más reciente por fecha_operacion), con datos de domicilio y provincia. Filtra por rango de provincia, línea y cliente. Usa tabla temporal #tmpListado y devuelve distinct.


Create PROCEDURE [dbo].[Clientes_Listado_Lineas] 
                @intIdProvinciaDesde int =0,
                @intIdProvinciaHasta int =100,
                @intIdLineaDesde int =0,
                @intIdLineaHasta int =100,
                @intIdClienteDesde int =0,
                @intIdClienteHasta int =10000
AS

Select  
Clientes.Id,
Clientes.Nombre,
Clientes.Fecha_Alta,
Clientes.Dni1,
Condicion = TiposIva.abrev,
Linea = (Select Descripcion From Prestamos_lineas Where Id=Prestamos_Creditos.Id_Linea),
Direccion = Clientes.Direccion + ' ' + Clientes.Domicilio_Nro + ' ' + Clientes.Domicilio_Piso + ' ' + Clientes.Domicilio_Dpto,
Clientes.Telefono,
Clientes.CodPos, 
Clientes.Localidad, 
Provincia = (Select Nombre From Provincias Where Id=Clientes.Provincia)
Into #tmpListado
From Clientes 
Inner Join TiposIva on TiposIva.Id = Clientes.Condicion 
Inner Join Prestamos_Creditos On Id_Cliente=Clientes.Id
Where Clientes.id Between @intIdClienteDesde and @intIdClienteHasta And 
Clientes.Provincia Between @intIdProvinciaDesde and @intIdProvinciaHasta And 
Prestamos_Creditos.Id_Linea Between @intIdLineaDesde and @intIdLineaHasta And 
Prestamos_Creditos.Id_linea = (Select Top 1
       id_linea 
           From prestamos_creditos 
           Where id_cliente=Clientes.id Order by fecha_operacion DESC
           ) And Prestamos_Creditos.Id_Linea <> 0

Select distinct * From #tmpListado 

Drop Table #tmpListado


Listado de Netos Contables por Cliente

  • SP/archivo: Clientes_Listado_NetosContables.proc.sql
  • Tipo: Reporte
  • Parámetros: @Id_Cliente_desde (int, 0), @Id_Cliente_Hasta (int, 9999)
  • Relación con módulos: Clientes; Liquidaciones (Liquidaciones, Liquidaciones_Detalle); Documentos/Cheques (Documentos); Cuenta corriente del cliente (Clientes_CtaCte)

Calcula el neto contable por cliente sumando: (1) netos de documentos no acreditados de liquidaciones de gestión (Dto_Gestion = 2), (2) netos de documentos acreditados pero sin fecha de pago de gestión, y (3) saldo (Ingreso − Egreso) de cuenta corriente en especie 1. Devuelve solo clientes con neto distinto de cero.

CREATE procedure [dbo].[Clientes_Listado_NetosContables] 
@Id_Cliente_desde int = 0,
@Id_Cliente_Hasta int = 9999
as 
Select Id, Nombre, CUIT, Neto_Contable  = IsNull((Select Sum(Liquidaciones_Detalle.Neto) 
From Liquidaciones_Detalle 
Inner Join Documentos On Documentos.Id = Liquidaciones_Detalle.Id_Documento 
Inner Join Liquidaciones On Liquidaciones.Id = Liquidaciones_Detalle.Id_Liquidacion 
Where Documentos.Fecha_Acreditado is Null And 
    Anulado = 0 And Documentos.Id_Cliente = clientes.id And 
    Liquidaciones.Dto_Gestion = 2),0) + IsNull((Select Sum(Liquidaciones_Detalle.Neto)  From Liquidaciones_Detalle 
                                               Inner Join Documentos On Documentos.Id = Liquidaciones_Detalle.Id_Documento 
                                               Inner Join Liquidaciones On Liquidaciones.Id = Liquidaciones_Detalle.Id_Liquidacion 
                                               Where Documentos.Fecha_Acreditado is Not Null And 
                                                     Anulado = 0 And 
                                                     Documentos.Id_Cliente = clientes.id And 
                                                     Documentos.Fecha_pago_gestion is null And 
                                                     Liquidaciones.Dto_Gestion = 2),0) + IsNull((Select Sum(Ingreso - Egreso) From Clientes_CtaCte 
                                                                                                 Where Id_Cliente = clientes.id And Id_Especie = 1),0) into #TMP from clientes where id between @id_cliente_desde and @Id_Cliente_Hasta
select * from #TMP where Neto_Contable <> 0
drop table #TMP

Medios de Cobro del Cliente (listado + valores)

  • SP/archivo: Clientes_MediosDeCobro_GetMediosDeCobro_Listado.proc.sql
  • Tipo: Reporte
  • Parámetros: @Id_Cliente (int, 0), @TipoOperacion (int, -1 = Todos / 0 = Sin utilización / 1 = Solicitudes / 2 = Créditos / 3 = Servicios), @Id_Operacion (int, 0)
  • Relación con módulos: Medios de cobro del cliente (Clientes_MediosDeCobro, Clientes_MediosDeCobro_Valores); Entidades (Prestamos_Entidades, Clientes_Entidades, campos adicionales); Bancos/CBU (Bancos); Tarjetas (Gestion_TarjetasDeCredito); Especies (Especies); Cobradores (Gestion_Cobradores); Servicios (Gestion_Servicios, Gestion_Servicios_Clientes); Créditos y Solicitudes (Prestamos_Creditos, Prestamos_Solicitudes)

Devuelve dos resultsets: (1) los medios de cobro activos del cliente con su entidad/banco/tarjeta/especie/cobrador y la operación asociada (servicio, crédito o solicitud), y (2) el detalle de valores (CBU, BCRA, sucursal, cuenta, tarjeta, vencimiento, titular, etc.) de esos medios. Resuelve la entidad concreta según el Id_MedioDeCobro mediante CASE.


Create Procedure [dbo].[Clientes_MediosDeCobro_GetMediosDeCobro_Listado]
    @Id_Cliente Int = 0,
    @TipoOperacion Int = -1, -- -1 Todos / 0 Sin utilizacion / 1 Solicitudes / 2 Creditos / 3 Servicios 
    @Id_Operacion Int = 0

As

Select  Id = Clientes_MediosDeCobro.Id,
        Id_Entidad =    (Case When Clientes_MediosDeCobro.Id_MedioDeCobro = 2 Then (RTrim('ENT ' + Convert(Char, Prestamos_Entidades.Id)))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 3 Then RTrim('BCRA ' + IsNull(Convert(Char, Bancos.CodigoBCRA), ''))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 11 Then RTrim('BCRA ' + IsNull(Convert(Char, Bancos02.CodigoBCRA), ''))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 10 Then RTrim('TARJ ' + Convert(Char, Gestion_TarjetasDeCredito.Id))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 1 Then RTrim('ESP ' + Convert(Char, Especies.Id))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 7 Then RTrim('COB ' + Convert(Char, Gestion_Cobradores.Id))
                        Else '' End),
        Clientes_MediosDeCobro.Id_MedioDeCobro,
        Nombre_Entidad = (Case When Clientes_MediosDeCobro.Id_MedioDeCobro = 2 Then Prestamos_Entidades.Nombre
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 3 Then ('CBU ' + IsNull(Bancos.Nombre, ''))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 11 Then ('Cuenta ' + IsNull(Bancos02.Nombre, ''))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 10 Then RTrim('Tarjeta ' + Convert(Char, Gestion_TarjetasDeCredito.Descripcion))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 1 Then RTrim('Especie ' + Convert(Char, Especies.Descripcion))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 7 Then RTrim('Cobrador ' + Convert(Char, Gestion_Cobradores.Nombre))
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 5 Then RTrim('Pago Facil')
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 6 Then RTrim('Rapi Pago')
                        When Clientes_MediosDeCobro.Id_MedioDeCobro = 8 Then RTrim('Varios')
                        Else '' End),
        TipoOperacion = (Case When Clientes_MediosDeCobro.Id_TipoOperacion = 3 Then 'Servicios'
                        When Clientes_MediosDeCobro.Id_TipoOperacion = 2 Then 'Creditos'
                        When Clientes_MediosDeCobro.Id_TipoOperacion = 1 Then 'Solicitudes' 
                        Else 'No utilizado a?n' End),
        Operacion =     (Case When Gestion_Servicios.Descripcion Is Not Null Then Gestion_Servicios.Descripcion 
                        When Prestamos_Creditos.Id Is Not Null Then ('Nro. ' + Convert(Char, Prestamos_Creditos.Id))
                        When Prestamos_Solicitudes.Id Is Not Null Then ('Nro. ' + Convert(Char, Prestamos_Solicitudes.Id)) 
                        Else '-' End),
        Importe = Clientes_MediosDeCobro.Importe
From Clientes_MediosDeCobro 
Left Outer Join Clientes_Entidades On Clientes_Entidades.Id = Clientes_MediosDeCobro.Id_Clientes_Entidades
Left Outer Join Prestamos_Entidades On Prestamos_Entidades.Id = Clientes_Entidades.Id_Entidad
Left Outer Join Gestion_Servicios_Clientes On Gestion_Servicios_Clientes.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 3
Left Outer Join Gestion_Servicios On Gestion_Servicios.Id = Gestion_Servicios_Clientes.Id_Servicio
Left Outer Join Prestamos_Creditos On Prestamos_Creditos.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 2
Left Outer Join Prestamos_Solicitudes On Prestamos_Solicitudes.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 1
Left Outer Join Bancos On Bancos.CodigoBCRA = (Select Top 1 Substring(Valor, 1 ,3) From Clientes_MediosDeCobro_Valores Where Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro.Id And Id_TipoDato = 1) And Clientes_MediosDeCobro.Id_MedioDeCobro = 3
Left Outer Join Bancos As Bancos02 On Bancos02.CodigoBCRA = (Select Top 1 Valor From Clientes_MediosDeCobro_Valores Where Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro.Id And Id_TipoDato = 2) And Clientes_MediosDeCobro.Id_MedioDeCobro = 11
Left Outer Join Especies On Especies.Id = (Select Top 1 Valor From Clientes_MediosDeCobro_Valores Where Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro.Id And Id_TipoDato = 5) And Clientes_MediosDeCobro.Id_MedioDeCobro = 1
Left Outer Join Gestion_Cobradores On Gestion_Cobradores.Id = (Select Top 1 Valor From Clientes_MediosDeCobro_Valores Where Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro.Id And Id_TipoDato = 7) And Clientes_MediosDeCobro.Id_MedioDeCobro = 7
Left Outer Join Gestion_TarjetasDeCredito On Gestion_TarjetasDeCredito.Id = (Select Top 1 Valor From Clientes_MediosDeCobro_Valores Where Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro.Id And Id_TipoDato = 13) And Clientes_MediosDeCobro.Id_MedioDeCobro = 10
Where   Clientes_MediosDeCobro.Id_Cliente = @Id_Cliente
        And Clientes_MediosDeCobro.Id_TipoOperacion = (Case When @TipoOperacion <> - 1 Then @TipoOperacion Else Clientes_MediosDeCobro.Id_TipoOperacion End)
        And Clientes_MediosDeCobro.Id_Operacion = (Case When @Id_Operacion <> 0 Then @Id_Operacion Else Clientes_MediosDeCobro.Id_Operacion End)
        And Clientes_MediosDeCobro.Fecha_Baja Is Null


Select  Id_Clientes_MediosDeCobro = Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro,
        CodCampo =  (Case When Clientes_MediosDeCobro_Valores.Id_TipoDato = 18 Then 'Cod Desc' 
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 1 Then 'CBU' 
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 2 Then 'BCRA'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 3 Then 'Suc'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 4 Then 'Cuenta'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 6 Then 'Tipo Cta'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 13 Then 'Tarjeta'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 14 Then 'Numero'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 15 Then 'Vto'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 16 Then 'Titular'
                    When Clientes_MediosDeCobro_Valores.Id_TipoDato = 8 Then 'Obs'
                    Else IsNull((Select CodCampo From Prestamos_Entidades_CamposAdicionales Where Id = Clientes_MediosDeCobro_Valores.Id_CampoAdicional), '')
                    End),
        Valor = Case when Clientes_MediosDeCobro_Valores.Valor IS Null then ' ' else Clientes_MediosDeCobro_Valores.Valor End           
From Clientes_MediosDeCobro_Valores
Inner Join Clientes_MediosDeCobro On Clientes_MediosDeCobro.Id = Clientes_MediosDeCobro_Valores.Id_Clientes_MediosDeCobro 
Left Outer Join Clientes_Entidades On Clientes_Entidades.Id = Clientes_MediosDeCobro.Id_Clientes_Entidades
Left Outer Join Prestamos_Entidades_Entidades_CamposAdicionales On Prestamos_Entidades_Entidades_CamposAdicionales.Id_CampoAdicional = Clientes_MediosDeCobro_Valores.Id_CampoAdicional And Prestamos_Entidades_Entidades_CamposAdicionales.Id_Entidad = Clientes_Entidades.Id_Entidad
Where Id_Clientes_MediosDeCobro In (
    Select  Clientes_MediosDeCobro.Id
    From Clientes_MediosDeCobro 
    Left Outer Join Clientes_Entidades On Clientes_Entidades.Id = Clientes_MediosDeCobro.Id_Clientes_Entidades
    Left Outer Join Prestamos_Entidades On Prestamos_Entidades.Id = Clientes_Entidades.Id_Entidad
    Left Outer Join Gestion_Servicios_Clientes On Gestion_Servicios_Clientes.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 3
    Left Outer Join Prestamos_Creditos On Prestamos_Creditos.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 2
    Left Outer Join Prestamos_Solicitudes On Prestamos_Solicitudes.Id = Clientes_MediosDeCobro.Id_Operacion And Clientes_MediosDeCobro.Id_TipoOperacion = 1
    Where   Clientes_MediosDeCobro.Id_Cliente = @Id_Cliente
            And Clientes_MediosDeCobro.Id_TipoOperacion = (Case When @TipoOperacion <> - 1 Then @TipoOperacion Else Clientes_MediosDeCobro.Id_TipoOperacion End)
            And Clientes_MediosDeCobro.Id_Operacion = (Case When @Id_Operacion <> 0 Then @Id_Operacion Else Clientes_MediosDeCobro.Id_Operacion End)
            And Clientes_MediosDeCobro.Fecha_Baja Is Null
)

Informe de Notas de Clientes

  • SP/archivo: Clientes_Notas_Informe.proc.sql
  • Tipo: Reporte
  • Parámetros: @Cliente_Desde (int, 0), @Cliente_Hasta (int, 9999), @Fecha_Desde (datetime, 01/01/1900), @Fecha_Hasta (datetime, 01/01/2020), @Concepto_Desde (int, 0), @Concepto_Hasta (int, 999999)
  • Relación con módulos: Notas de cliente (Clientes_Notas, Clientes_Notas_Tipos, Clientes_Notas_Sectores); Clientes; Seguridad/Usuarios (Seguridad_Usuarios)

Lista las notas registradas sobre clientes en un rango de fecha, cliente y concepto (tipo de nota). Muestra concepto (código + descripción), nombre del cliente, fecha, descripción, usuario que la cargó y sector. Normaliza las fechas de entrada a dd/mm/yyyy antes de filtrar. Ordena por tipo de nota y cliente.



CREATE Procedure [dbo].[Clientes_Notas_Informe]
                            @Cliente_Desde Int = 0,
                            @Cliente_Hasta Int = 9999,
                            @Fecha_Desde Datetime = '01/01/1900',
                            @Fecha_Hasta Datetime = '01/01/2020',
                            @Concepto_Desde Int=0,
                            @Concepto_Hasta Int=999999

As

Declare @Fecha_Desde_Formateada Datetime
Declare @Fecha_Hasta_Formateada Datetime
Set @Fecha_Desde_Formateada = Convert(Datetime, Rtrim(Convert(Char,Day(@Fecha_Desde))) + Convert(Char,'/') + Rtrim(Convert(Char,Month(@Fecha_Desde))) + '/' + Rtrim(Convert(Char,Year(@Fecha_Desde))))
Set @Fecha_Hasta_Formateada = Convert(Datetime, Rtrim(Convert(Char,Day(@Fecha_Hasta))) + Convert(Char,'/') + Rtrim(Convert(Char,Month(@Fecha_Hasta))) + '/' + Rtrim(Convert(Char,Year(@Fecha_Hasta))))

Select  Concepto = Right('0000' + Rtrim(Convert(Char,Clientes_Notas_Tipos.Id)),3) + ' - ' + Rtrim(Convert(Char,Clientes_Notas_Tipos.Descripcion)),
        Cliente_Nombre = Rtrim(Clientes.Nombre),
        Fecha = Clientes_Notas.Fecha,
        Descripcion = Clientes_Notas.Descripcion,
        UserAdd = Seguridad_Usuarios.Nombre,
        Sector = Clientes_Notas_Sectores.Descripcion
From Clientes_Notas 
Inner Join Clientes_Notas_Tipos On Clientes_Notas_Tipos.Id = Clientes_Notas.Id_TipoNota
Inner Join Clientes_Notas_Sectores On Clientes_Notas_Sectores.Id = Clientes_Notas.Id_Sector
Inner Join Clientes On Clientes.Id = Clientes_Notas.Id_Cliente
Inner Join Seguridad_Usuarios On Seguridad_Usuarios.Id = Clientes_Notas.Id_Usuario_Add
Where   Fecha Between @Fecha_Desde_Formateada And @Fecha_Hasta_Formateada And
        Id_Cliente Between @Cliente_Desde And @Cliente_Hasta
        And Clientes_Notas_Tipos.Id Between @Concepto_Desde And @Concepto_Hasta
Order By Id_TipoNota, Id_Cliente



Nómina de Asociados UIF / INAES (informe regulatorio)

  • SP/archivo: UIF_INAES_Informes_NominaAsociados.proc.sql
  • Tipo: Reporte
  • Parámetros: @Fecha_Desde (datetime, 19000101), @Fecha_Hasta (datetime, 20300101)
  • Relación con módulos: Clientes; Registro de asociados (Clientes_RegistrodeAsociados, Clientes_RegistrodeAsociados_Movimientos); Provincias (Provincias, con Id_UIF); Localidades UIF/INAES (Localidades_UIF_INAES)

Genera la nómina de asociados con altas, bajas y modificaciones en el período, en el formato de columnas posicionales (C00–C25) exigido por INAES/UIF. Mapea tipo de persona, tipo y nro. de documento, CUIT sin guiones, domicilio, provincia y localidad codificadas según tablas UIF, capital suscripto/integrado, fechas de ingreso/resolución/egreso y el tipo de cambio del registro (A=Alta, B=Baja, M=Modificación). Toma para cada asociado el movimiento más reciente dentro del rango.

CREATE PROCEDURE [dbo].[UIF_INAES_Informes_NominaAsociados]
    @Fecha_Desde DATETIME = '19000101',
    @Fecha_Hasta DATETIME = '20300101'

As
    SELECT  
        /* TIPOPERSONA  */  C00 =   CASE WHEN C.Id_TipoPersona = 1 THEN 'F' ELSE 'J' END,
        /* CATEGORIA    */  C01 =   '', --0,
        /* NRO ASOC     */  C02 =   C.Id_Asociado,
        /* APELLIDO     */  C03 =   CASE C.Id_TipoPersona WHEN 1 THEN LEFT(C.ApellidoFisico,60) ELSE '' END,
        /* NOMBRE       */  C04 =   CASE C.Id_TipoPersona WHEN 1 THEN LEFT(C.NombreFisico,60) ELSE '' END,
        /* DENOMIN      */  C05 =   CASE C.Id_TipoPersona WHEN 2 THEN LEFT(C.Nombre,255) ELSE '' END,
        /* TIPO DOC     */  C06 =   CASE C.Id_TipoPersona 
                                        WHEN 1 THEN 
                                            CASE C.TipoDoc 
                                                WHEN 'CI' THEN convert(varchar(1),1)
                                                WHEN 'DNI' THEN convert(varchar(1),2)
                                                WHEN 'LC' THEN convert(varchar(1),3)
                                                WHEN 'LE' THEN convert(varchar(1),4)
                                                ELSE ''
                                            END
                                        ELSE ''
                                    END,
        /* NRO DOC      */  C07 =   CASE C.Id_TipoPersona WHEN 1 THEN CONVERT(VARCHAR(8),C.NroDoc) ELSE '' END,
        /* CUIT         */  C08 =   REPLACE (C.CUIT,'-', ''),
        /* CALLE        */  C09 =   LEFT(C.direccion,100),
        /* NUMERO       */  C10 =   LEFT(C.Domicilio_Nro,100),
        /* PISO         */  C11 =   LEFT(C.Domicilio_Piso,10),
        /* DEPTO        */  C12 =   LEFT(C.Domicilio_Dpto,100),
        /* PROVINCIA    */  C13 =   P.Id_UIF,
        /* LOCALIDAD    */  C14 =   CASE C.Provincia 
                                        WHEN 0 THEN 0 
                                        ELSE ISNULL(LOC.ID_LOC_UIF, SIN_LOC.ID_SINLOC)
                                    END,
        /* COD POST     */  C15 = LEFT(C.codpos,8),
        /* F. INGRESO   */  C16 = ISNULL(REPLACE(CONVERT(VARCHAR, A.FechaAdd, 111),'/','-'),''),
        /* F. RESOLUC   */  C17 = ISNULL(REPLACE(CONVERT(VARCHAR, A.Fecha_Resolucion, 111),'/','-'),''),
        /* ORGANO EM    */  C18 = 'CONSEJO ADM',
        /* F. EGRESO    */  C19 = ISNULL(REPLACE(CONVERT(VARCHAR, A.Baja_Fecha, 111),'/','-'),''),
        /* CAUSA        */  C20 = ISNULL(A.Baja_Motivo,''),
        /* MEDIDA       */  C21 = '',
        /* CS SUSCR     */  C22 = ISNULL(CONVERT(INT,A.Suscripto_Cantidad),0),
        /* CS INTEGR    */  C23 = ISNULL(CONVERT(INT,A.Integrado_Cantidad),0),
        /* OBSERVAC     */  C24 = '',
        /* TIPOCAMBIO   */  C25 = CASE WHEN A.Fecha_Resolucion BETWEEN @Fecha_Desde and @Fecha_Hasta THEN 'A'
                                        WHEN A.Baja_Fecha BETWEEN @Fecha_Desde and @Fecha_Hasta THEN 'B'
                                        WHEN AM.Fecha BETWEEN @Fecha_Desde and @Fecha_Hasta THEN 'M' ELSE 'OTRO' END
    FROM Clientes C
    INNER JOIN Clientes_RegistrodeAsociados A on A.Id_Cliente = C.Id
    INNER JOIN (SELECT 
                    Id_Clientes_RegistrodeAsociados, 
                    Fecha = MAX(Fecha) 
                FROM Clientes_RegistrodeAsociados_Movimientos  
                WHERE Fecha BETWEEN @Fecha_Desde and @Fecha_Hasta 
                GROUP BY Id_Clientes_RegistrodeAsociados) AM on AM.Id_Clientes_RegistrodeAsociados = A.Id
    LEFT JOIN Provincias P ON P.id = C.provincia

    LEFT JOIN ( SELECT -- ESTE JOIN SIRVE PARA LOS C.P. INFORMADOS UNA SOLA VEX EN LOCALIDADES_UIF_INAES
                    CODIGO_POSTAL = ISNULL(Codigo_Postal,0), 
                    L.Id_Provincia_UIF, 
                    ID_LOC_UIF = MIN(L.Id)
                FROM Localidades_UIF_INAES L
                GROUP BY ISNULL(CODIGO_POSTAL,0), L.ID_PROVINCIA_UIF
                HAVING COUNT(1) = 1
            ) LOC ON LOC.CODIGO_POSTAL = C.CODPOS AND LOC.Id_Provincia_UIF = P.Id_UIF 

    LEFT JOIN ( SELECT -- ESTE JOIN ES PARA MOSTRAR "SIN LOCALIDAD" EN LOS CASOS QUE NO EXISTA EL CODIGO POSTAL PARA ESA PROVINCIA, O BIEN ESTE REPETIDO
                    ID_PROV = Id_Provincia_UIF, 
                    ID_SINLOC = ID  
                FROM Localidades_UIF_INAES 
                WHERE NOMBRE LIKE 'SIN LOCALIDAD%'
            ) SIN_LOC ON SIN_LOC.ID_PROV = P.Id_UIF


    WHERE C.Eliminado = 0
        AND (A.Fecha_Resolucion BETWEEN @Fecha_Desde AND @Fecha_Hasta   -- ALTAS
            OR A.Baja_Fecha BETWEEN @Fecha_Desde AND @Fecha_Hasta       -- BAJAS
            OR AM.Fecha BETWEEN @Fecha_Desde AND @Fecha_Hasta)          -- MODIFICACIONES

    ORDER BY Id_Asociado
¿Te resultó útil este manual?