dbo.buscar_clientes_2023

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_cli_codigo varchar 40
@p_cli_cuit varchar 40
@p_cli_nombre varchar 100
@plataforma varchar -1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

/*

exec [buscar_clientes_2023] '15355','','"BANCO" NEAR "NACION"',null

exec [buscar_clientes_2023] '','30500010912','"BANCO" NEAR "NACION"',null

exec [buscar_clientes_2023] '','','"BANCO" NEAR "NACION"',null

exec [buscar_clientes_2023] '','','pistrelli',10

exec [buscar_clientes_2023] '','','roche',47

*/


CREATE OR ALTER PROCEDURE dbo.buscar_clientes_2023
@p_cli_codigo varchar(40),
@p_cli_cuit varchar(40),
@p_cli_nombre varchar(100),
@plataforma varchar(max) = null

AS
BEGIN 

 if (@plataforma is null)
 begin
  select @plataforma = (SELECT top 1 STUFF((SELECT ',' + convert(varchar(max),producto) FROM productos FOR XML PATH(''), TYPE).value('text()[1]', 'nvarchar(max)'), 1, LEN(','), '') AS XmlPathList FROM productos GROUP BY productos.producto) 
 end


IF (@p_cli_codigo IS NOT NULL) AND (LEN(@p_cli_codigo) > 0)
 SELECT distinct top 20 ltrim(rtrim(cuit)) as cli_cuit, clientes.cli_codigo, nombre_cliente as cli_nombre,clientes.cliente, country_code, estado_cliente 
 from clientes inner join clientes_productos on clientes.cliente = clientes_productos.cliente
 INNER JOIN dbo.DelimitedSplit8K(@plataforma, ',') exceptuados ON clientes_productos.id_producto = convert(int,exceptuados.Item) 
 WHERE convert(varchar(40), clientes_productos.cli_codigo)  = @p_cli_codigo

ELSE IF (@p_cli_nombre IS NOT NULL) AND (LEN(@p_cli_nombre) > 0)
 SELECT distinct top 20 ltrim(rtrim(cuit)) as cli_cuit, clientes.cli_codigo, nombre_cliente as cli_nombre,clientes.cliente, country_code, estado_cliente 
 from clientes inner join clientes_productos on clientes.cliente = clientes_productos.cliente
 INNER JOIN dbo.DelimitedSplit8K(@plataforma, ',') exceptuados ON clientes_productos.id_producto = convert(int,exceptuados.Item) 
 WHERE CONTAINS(nombre_cliente,@p_cli_nombre) and clientes.cli_codigo is not null and clientes.cli_codigo != 0 AND estado_cliente = 'A'
 
 /*
  CAMBIADO 24/06/2020 PARA FILTRAR SOLO ACTIVOS CON PRODUCTOS Y USUARIOS ACTIVOS
 
  select top 20 clientes.cuit as cli_cuit, clientes.cli_codigo, clientes.nombre_cliente as cli_nombre, clientes.cliente
  from clientes
  inner join clientes_productos on clientes.cliente = clientes_productos.cliente
  inner join usuarios_productos on (clientes_productos.cliente = usuarios_productos.cliente
  and clientes_productos.id_producto = usuarios_productos.id_producto)
  inner join users on usuarios_productos.user_id = users.user_id
 
  where clientes.estado_cliente = 'A'
  and ISNULL(clientes.cli_codigo, 0) > 0
  and clientes_productos.activo = 1
  and clientes_productos.fecha_desde <= GETDATE()
  and clientes_productos.fecha_hasta >= GETDATE()
  and usuarios_productos.activo = 1
  and users.active_user = 'Y'
  and CONTAINS(clientes.nombre_cliente, @p_cli_nombre)
  group by clientes.cuit, clientes.cli_codigo, clientes.nombre_cliente, clientes.cliente
  order by clientes.nombre_cliente */



ELSE IF (@p_cli_cuit IS NOT NULL) AND (LEN(@p_cli_cuit) > 0)
 SELECT distinct top 20 ltrim(rtrim(cuit)) as cli_cuit, clientes.cli_codigo, nombre_cliente as cli_nombre,clientes.cliente, country_code, estado_cliente 
 from clientes inner join clientes_productos on clientes.cliente = clientes_productos.cliente
 INNER JOIN dbo.DelimitedSplit8K(@plataforma, ',') exceptuados ON clientes_productos.id_producto = convert(int,exceptuados.Item) 

 WHERE CONTAINS(cuit,@p_cli_cuit) and clientes.cli_codigo is not null and clientes.cli_codigo != 0

END
GO

Used By

No items found