Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
6| Name | Data Type | Length | Description |
|---|---|---|---|
| @W_Username | varchar | 120 | |
| @W_Password | varchar | 120 | |
| @W_Sucursal | smallint | 2 | |
| @W_Nombre | varchar | 70 | |
| @W_Cuit | varchar | 20 | |
| @W_NroDoc | varchar | 20 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
--exec ws_consulta 'sistemas','sISTEMAS_0','0',null,'27208925658',null
CREATE OR ALTER PROCEDURE dbo.ws_consulta
@W_Username VARCHAR(120),
@W_Password VARCHAR(120),
@W_Sucursal SMALLINT,
@W_Nombre VARCHAR(70),
@W_Cuit VARCHAR(20),
@W_NroDoc VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
set @W_Cuit = (select replace(@W_Cuit,'-',''))
set @W_Cuit = (select replace(@W_Cuit,'.',''))
set @W_Cuit = (select replace(@W_Cuit,'/',''))
set @W_Cuit = (select replace(@W_Cuit,' ',''))
set @W_Cuit = (select ltrim(rtrim(@W_Cuit)))
/*
Devuelve fecha, nombre_cliente, respuesta, nro_consulta
Respuestas:
"U" Usuario no autorizado a usar el sistema
"E" Consulta incompleta - Error en los parametros enviados
"C" Cuit invalido
"X" Cuit no existe
"A" Consulta OK - Sin Antecedentes
"R" Consulta OK - Con Antecedentes
*/
declare @w_user_id int = 0
declare @w_id_cliente int = 0
declare @w_nro_consulta int = 0
declare @w_respuesta char(1) = 'A'
declare @p_error char(1) = '0'
declare @w_id_producto int = 12 -- VER QUE CODIGO DE PRODUCTO CORRESPONDE
declare @w_usuario_habilitado smallint = 0
declare @w_cliente_habilitado smallint = 0
declare @w_existe_cuit int = 0
declare @w_cant_bcra int = 0
declare @w_cant_cheques int = 0
declare @w_cant_arba int = 0
declare @w_cant_juicios int = 0
declare @w_cant_morosidad int = 0
declare @w_cant_agip int = 0
declare @w_valida_cuit bit = 0
declare @w_nombre_cliente varchar(200) = null
-- Valida login
declare @w_estado_login int
declare @valida_usuario table (
user_id int,
username varchar(60),
first_name varchar(150),
last_name varchar(150),
email varchar(150),
login_state varchar(1),
last_login datetime,
last_access datetime,
login_expiration datetime,
estado INT,
status_Message varchar(100),
UserSessionTimeoutDB DATETIME
)
/*insert into @valida_usuario
exec user_login @W_Username, @W_Password,'90','3','10','0','LOGIN',NULL
set @w_estado_login = (select estado from @valida_usuario)
if (@w_estado_login != 0)
begin
set @p_error = 'U'
end
*/
-- Verifico que existe el cliente y tiene el producto
if @p_error = '0'
begin
select distinct @w_user_id = users.user_id,
@w_id_cliente = usuarios_productos.cliente
from users
left join usuarios_productos
on usuarios_productos.user_id = users.user_id
where users.username = @w_Username
-- select @w_id_cliente, @w_user_id
if (@w_id_cliente = 0 or @w_id_cliente is null)
begin
set @p_error = 'U'
end
else
begin
set @w_usuario_habilitado = (select count(*) from usuarios_productos
where user_id = @W_user_id
and id_producto = @w_id_producto
and activo = '1')
set @w_cliente_habilitado = (select count(*) from clientes_productos
where cliente = @w_id_cliente
and id_producto = @w_id_producto
and activo = '1')
if (@w_usuario_habilitado = 0 or @w_cliente_habilitado = 0)
begin
set @p_error = 'U'
end
end
--SELECT @w_usuario_habilitado, @w_cliente_habilitado
end
if @p_error = '0'
begin
-- Verifico que haya enviado CUIT, que sea valido y que exista en padrones
if (@w_cuit is null or @w_cuit = '')
begin
set @p_error = 'E'
end
else
begin
EXEC @w_valida_cuit = ws_valida_cuit @W_Cuit
if (@w_valida_cuit = 0)
begin
set @p_error = 'C'
end
else
begin
EXEC @w_existe_cuit = ws_existe_padron @w_cuit, 'CUIT'
if (@w_existe_cuit = 0)
begin
set @p_error = 'X'
end
end
end
end
set @w_nombre_cliente = (select nombre_cliente from clientes where cliente = @w_id_cliente)
if @p_error = '0'
begin
-- Cargo los datos en la tabla consultas_ws
insert into consultas_ws
(
id_cliente,
sucursal,
fecha_consulta,
nombre,
nrodoc,
cuit
)
values
(
@w_id_cliente,
@W_Sucursal ,
getdate() ,
@W_Nombre ,
@W_NroDoc,
@W_Cuit
)
set @w_nro_consulta = (SELECT @@IDENTITY)
set @w_respuesta = 'A'
-- Cuando va generando el informe, ve si tienen antecedentes negativos, y pasa la respuesta a "R"
/*
-- Veo si tiene BCRA
EXEC @w_cant_bcra = ws_tiene_bcra @w_cuit
-- Veo si tiene Cheques
EXEC @w_cant_cheques = ws_tiene_cheques @w_cuit
-- Veo si tiene ARBA
EXEC @w_cant_arba = ws_tiene_arba @w_cuit
-- Veo si tiene Juicios
EXEC @w_cant_juicios = ws_tiene_juicios @w_cuit
-- Veo si tiene Morosidad Comercial / Incumplimientos Fiscales / Impositivos
EXEC @w_cant_morosidad = ws_tiene_morosidad @w_cuit
-- Veo si tiene AGIP
EXEC @w_cant_agip = ws_tiene_agip @w_cuit
*/
/*
if (@w_cant_bcra > 0 or
@w_cant_cheques > 0 or
@w_cant_arba > 0 or
@w_cant_juicios > 0 or
@w_cant_morosidad > 0 or
@w_cant_agip > 0)
begin
set @W_respuesta = 'R'
end
*/
-- insert en la tabla de consumos
insert into usuarios_consumos (user_id,
cuit_consultado,
id_producto,
created,
nro_consulta,
respuesta,
bcra,
cheques,
arba,
juicios,
morosidad,
agip)
values (@w_user_id,
@w_cuit,
@w_id_producto,
getdate(),
@w_nro_consulta,
@w_respuesta,
@w_cant_bcra,
@w_cant_cheques,
@w_cant_arba,
@w_cant_juicios,
@w_cant_morosidad,
@w_cant_agip)
end
else
begin
set @W_Respuesta = @p_error
end
-- Para respuesta A o R
select convert(varchar(19),getdate(),103) as fecha, @w_nombre_cliente as nombre_cliente, @W_respuesta as respuesta, @w_nro_consulta as nro_consulta
END
GO
GO
--exec ws_consulta 'sistemas','sISTEMAS_0','0',null,'27208925658',null
CREATE OR ALTER PROCEDURE dbo.ws_consulta
@W_Username VARCHAR(120),
@W_Password VARCHAR(120),
@W_Sucursal SMALLINT,
@W_Nombre VARCHAR(70),
@W_Cuit VARCHAR(20),
@W_NroDoc VARCHAR(20)
AS
BEGIN
SET NOCOUNT ON;
set @W_Cuit = (select replace(@W_Cuit,'-',''))
set @W_Cuit = (select replace(@W_Cuit,'.',''))
set @W_Cuit = (select replace(@W_Cuit,'/',''))
set @W_Cuit = (select replace(@W_Cuit,' ',''))
set @W_Cuit = (select ltrim(rtrim(@W_Cuit)))
/*
Devuelve fecha, nombre_cliente, respuesta, nro_consulta
Respuestas:
"U" Usuario no autorizado a usar el sistema
"E" Consulta incompleta - Error en los parametros enviados
"C" Cuit invalido
"X" Cuit no existe
"A" Consulta OK - Sin Antecedentes
"R" Consulta OK - Con Antecedentes
*/
declare @w_user_id int = 0
declare @w_id_cliente int = 0
declare @w_nro_consulta int = 0
declare @w_respuesta char(1) = 'A'
declare @p_error char(1) = '0'
declare @w_id_producto int = 12 -- VER QUE CODIGO DE PRODUCTO CORRESPONDE
declare @w_usuario_habilitado smallint = 0
declare @w_cliente_habilitado smallint = 0
declare @w_existe_cuit int = 0
declare @w_cant_bcra int = 0
declare @w_cant_cheques int = 0
declare @w_cant_arba int = 0
declare @w_cant_juicios int = 0
declare @w_cant_morosidad int = 0
declare @w_cant_agip int = 0
declare @w_valida_cuit bit = 0
declare @w_nombre_cliente varchar(200) = null
-- Valida login
declare @w_estado_login int
declare @valida_usuario table (
user_id int,
username varchar(60),
first_name varchar(150),
last_name varchar(150),
email varchar(150),
login_state varchar(1),
last_login datetime,
last_access datetime,
login_expiration datetime,
estado INT,
status_Message varchar(100),
UserSessionTimeoutDB DATETIME
)
/*insert into @valida_usuario
exec user_login @W_Username, @W_Password,'90','3','10','0','LOGIN',NULL
set @w_estado_login = (select estado from @valida_usuario)
if (@w_estado_login != 0)
begin
set @p_error = 'U'
end
*/
-- Verifico que existe el cliente y tiene el producto
if @p_error = '0'
begin
select distinct @w_user_id = users.user_id,
@w_id_cliente = usuarios_productos.cliente
from users
left join usuarios_productos
on usuarios_productos.user_id = users.user_id
where users.username = @w_Username
-- select @w_id_cliente, @w_user_id
if (@w_id_cliente = 0 or @w_id_cliente is null)
begin
set @p_error = 'U'
end
else
begin
set @w_usuario_habilitado = (select count(*) from usuarios_productos
where user_id = @W_user_id
and id_producto = @w_id_producto
and activo = '1')
set @w_cliente_habilitado = (select count(*) from clientes_productos
where cliente = @w_id_cliente
and id_producto = @w_id_producto
and activo = '1')
if (@w_usuario_habilitado = 0 or @w_cliente_habilitado = 0)
begin
set @p_error = 'U'
end
end
--SELECT @w_usuario_habilitado, @w_cliente_habilitado
end
if @p_error = '0'
begin
-- Verifico que haya enviado CUIT, que sea valido y que exista en padrones
if (@w_cuit is null or @w_cuit = '')
begin
set @p_error = 'E'
end
else
begin
EXEC @w_valida_cuit = ws_valida_cuit @W_Cuit
if (@w_valida_cuit = 0)
begin
set @p_error = 'C'
end
else
begin
EXEC @w_existe_cuit = ws_existe_padron @w_cuit, 'CUIT'
if (@w_existe_cuit = 0)
begin
set @p_error = 'X'
end
end
end
end
set @w_nombre_cliente = (select nombre_cliente from clientes where cliente = @w_id_cliente)
if @p_error = '0'
begin
-- Cargo los datos en la tabla consultas_ws
insert into consultas_ws
(
id_cliente,
sucursal,
fecha_consulta,
nombre,
nrodoc,
cuit
)
values
(
@w_id_cliente,
@W_Sucursal ,
getdate() ,
@W_Nombre ,
@W_NroDoc,
@W_Cuit
)
set @w_nro_consulta = (SELECT @@IDENTITY)
set @w_respuesta = 'A'
-- Cuando va generando el informe, ve si tienen antecedentes negativos, y pasa la respuesta a "R"
/*
-- Veo si tiene BCRA
EXEC @w_cant_bcra = ws_tiene_bcra @w_cuit
-- Veo si tiene Cheques
EXEC @w_cant_cheques = ws_tiene_cheques @w_cuit
-- Veo si tiene ARBA
EXEC @w_cant_arba = ws_tiene_arba @w_cuit
-- Veo si tiene Juicios
EXEC @w_cant_juicios = ws_tiene_juicios @w_cuit
-- Veo si tiene Morosidad Comercial / Incumplimientos Fiscales / Impositivos
EXEC @w_cant_morosidad = ws_tiene_morosidad @w_cuit
-- Veo si tiene AGIP
EXEC @w_cant_agip = ws_tiene_agip @w_cuit
*/
/*
if (@w_cant_bcra > 0 or
@w_cant_cheques > 0 or
@w_cant_arba > 0 or
@w_cant_juicios > 0 or
@w_cant_morosidad > 0 or
@w_cant_agip > 0)
begin
set @W_respuesta = 'R'
end
*/
-- insert en la tabla de consumos
insert into usuarios_consumos (user_id,
cuit_consultado,
id_producto,
created,
nro_consulta,
respuesta,
bcra,
cheques,
arba,
juicios,
morosidad,
agip)
values (@w_user_id,
@w_cuit,
@w_id_producto,
getdate(),
@w_nro_consulta,
@w_respuesta,
@w_cant_bcra,
@w_cant_cheques,
@w_cant_arba,
@w_cant_juicios,
@w_cant_morosidad,
@w_cant_agip)
end
else
begin
set @W_Respuesta = @p_error
end
-- Para respuesta A o R
select convert(varchar(19),getdate(),103) as fecha, @w_nombre_cliente as nombre_cliente, @W_respuesta as respuesta, @w_nro_consulta as nro_consulta
END
GO
Depends On
6Used By
No items found