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_user_id | int | 4 | |
| @p_saas_usuario_contrato | int | 4 | |
| @p_cuit | varchar | 100 | |
| @p_id_padron | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 13/11/2019
-- Cuando se consulta un CUIT en saas
-- 1) Según el saas_usuario_contrato, buscamos a que cliente de fidelitas pertenece
-- 2) Si el cuit consultado no está cargado como contraparte del cliente, lo damos de alta (ln_contrapartes, ln_gestiones, ln_contraparte_familia)
-- 3) Calculamos todos los scores, los guardamos
-- el score de balances como se calcula por php, lo tenemos que calcular antes para el cuit y mandarlo como parámetro
-- 4) Si cualquiera de todos los score es Rojo, el score final dará Rojo
-- En la tabla ln_cliente_nivel tienen que estar cargados los rangos de rojo, amarillo, verde para todos los indicadores de score
-- =============================================
/*
select * from ln_contrapartes where contraparte = 45126
select * from ln_contraparte_familias where contraparte = 45126
select * from ln_contraparte_indicadores where contraparte = 45126
select * from padrones where id_padron = 2619792
exec [SAAS_Consulta_CUIT] 94437923,1,'30715315676',0,147,100
*/
CREATE OR ALTER PROCEDURE dbo.SAAS_Verifica_CUIT
@p_user_id int,
@p_saas_usuario_contrato int,
@p_cuit varchar(100),
@p_id_padron int
AS
BEGIN
SET NOCOUNT ON;
declare @country varchar(2)
declare @contraparte int, @gest int
if (isnull(@p_saas_usuario_contrato,0) = 0)
begin
select 'error' as error
return
end
if (isnull(@p_cuit,'') = '' and isnull(@p_id_padron,0) = 0)
begin
select 'error' as error
return
end
declare @cliente int = null
set @cliente = (SELECT cliente from saas_clientes
where saas_cliente = (SELECT SAAS_Usuarios_Contratos.saas_cliente
FROM SAAS_Usuarios_Contratos
WHERE saas_usuario_contrato = @p_saas_usuario_contrato))
if (isnull(@p_user_id,0) = 0)
set @p_user_id = (SELECT SAAS_Usuarios_Contratos.saas_usuario
FROM SAAS_Usuarios_Contratos
WHERE saas_usuario_contrato = @p_saas_usuario_contrato)
if (@cliente is null)
begin
select 'error' as error
return
end
if (isnull(@p_cuit,'') != '')
select top 1 @p_id_padron = id_padron,
@country = isnull(country_code, 'AR')
from padrones
left join identificadores on identificadores.identificador = padrones.identificador
where identificacion = @p_cuit
and habilitado = 1
else
if (isnull(@p_id_padron,0) != 0)
select top 1 @p_id_padron = id_padron,
@country = isnull(country_code, 'AR'),
@p_cuit = identificacion
from padrones
left join identificadores on identificadores.identificador = padrones.identificador
where id_padron = @p_id_padron
and habilitado = 1
--> Buscamos si ese CUIT ya está cargado como contraparte del Cliente.
--> si no fue consultado ==> OK, se puede consultar
--> si fue consultado y aprobado ==> No se puede consultar
--> si fue consultado y rechazado ==> se puede volver a consultar
if not exists (select * from LN_contrapartes
where LN_contrapartes.cliente = @cliente
and LN_contrapartes.id_padron = @p_id_padron
and LN_contrapartes.activo = 1
and LN_contrapartes.subcontratista = 0)
begin
select 'OK' as error
return
end
else
begin
set @contraparte = (select LN_contrapartes.contraparte from LN_contrapartes
where LN_contrapartes.cliente = @cliente
and LN_contrapartes.id_padron = @p_id_padron
and LN_contrapartes.activo = 1
and LN_contrapartes.subcontratista = 0)
declare @ultimo_estado char(1) = (select top 1 estado
from SAAS_Historial_Consultas
where contraparte = @contraparte and saas_usuario_contrato = @p_saas_usuario_contrato
order by fecha_consulta desc)
if (@ultimo_estado = 'V')
begin
select 'Ya consultado' as error
return
end
else
begin
select 'OK' as error
end
end
END
GO
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 13/11/2019
-- Cuando se consulta un CUIT en saas
-- 1) Según el saas_usuario_contrato, buscamos a que cliente de fidelitas pertenece
-- 2) Si el cuit consultado no está cargado como contraparte del cliente, lo damos de alta (ln_contrapartes, ln_gestiones, ln_contraparte_familia)
-- 3) Calculamos todos los scores, los guardamos
-- el score de balances como se calcula por php, lo tenemos que calcular antes para el cuit y mandarlo como parámetro
-- 4) Si cualquiera de todos los score es Rojo, el score final dará Rojo
-- En la tabla ln_cliente_nivel tienen que estar cargados los rangos de rojo, amarillo, verde para todos los indicadores de score
-- =============================================
/*
select * from ln_contrapartes where contraparte = 45126
select * from ln_contraparte_familias where contraparte = 45126
select * from ln_contraparte_indicadores where contraparte = 45126
select * from padrones where id_padron = 2619792
exec [SAAS_Consulta_CUIT] 94437923,1,'30715315676',0,147,100
*/
CREATE OR ALTER PROCEDURE dbo.SAAS_Verifica_CUIT
@p_user_id int,
@p_saas_usuario_contrato int,
@p_cuit varchar(100),
@p_id_padron int
AS
BEGIN
SET NOCOUNT ON;
declare @country varchar(2)
declare @contraparte int, @gest int
if (isnull(@p_saas_usuario_contrato,0) = 0)
begin
select 'error' as error
return
end
if (isnull(@p_cuit,'') = '' and isnull(@p_id_padron,0) = 0)
begin
select 'error' as error
return
end
declare @cliente int = null
set @cliente = (SELECT cliente from saas_clientes
where saas_cliente = (SELECT SAAS_Usuarios_Contratos.saas_cliente
FROM SAAS_Usuarios_Contratos
WHERE saas_usuario_contrato = @p_saas_usuario_contrato))
if (isnull(@p_user_id,0) = 0)
set @p_user_id = (SELECT SAAS_Usuarios_Contratos.saas_usuario
FROM SAAS_Usuarios_Contratos
WHERE saas_usuario_contrato = @p_saas_usuario_contrato)
if (@cliente is null)
begin
select 'error' as error
return
end
if (isnull(@p_cuit,'') != '')
select top 1 @p_id_padron = id_padron,
@country = isnull(country_code, 'AR')
from padrones
left join identificadores on identificadores.identificador = padrones.identificador
where identificacion = @p_cuit
and habilitado = 1
else
if (isnull(@p_id_padron,0) != 0)
select top 1 @p_id_padron = id_padron,
@country = isnull(country_code, 'AR'),
@p_cuit = identificacion
from padrones
left join identificadores on identificadores.identificador = padrones.identificador
where id_padron = @p_id_padron
and habilitado = 1
--> Buscamos si ese CUIT ya está cargado como contraparte del Cliente.
--> si no fue consultado ==> OK, se puede consultar
--> si fue consultado y aprobado ==> No se puede consultar
--> si fue consultado y rechazado ==> se puede volver a consultar
if not exists (select * from LN_contrapartes
where LN_contrapartes.cliente = @cliente
and LN_contrapartes.id_padron = @p_id_padron
and LN_contrapartes.activo = 1
and LN_contrapartes.subcontratista = 0)
begin
select 'OK' as error
return
end
else
begin
set @contraparte = (select LN_contrapartes.contraparte from LN_contrapartes
where LN_contrapartes.cliente = @cliente
and LN_contrapartes.id_padron = @p_id_padron
and LN_contrapartes.activo = 1
and LN_contrapartes.subcontratista = 0)
declare @ultimo_estado char(1) = (select top 1 estado
from SAAS_Historial_Consultas
where contraparte = @contraparte and saas_usuario_contrato = @p_saas_usuario_contrato
order by fecha_consulta desc)
if (@ultimo_estado = 'V')
begin
select 'Ya consultado' as error
return
end
else
begin
select 'OK' as error
end
end
END
GO
Depends On
6Used By
No items found