dbo.SAAS_Verifica_CUIT

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

Used By

No items found