dbo.ws_consulta

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

Used By

No items found