dbo.LED_control_login

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

6
Name Data Type Length Description
@p_action varchar 10
@p_identificador varchar 10
@p_numero varchar 30
@p_clave varchar 20
@p_nueva_clave varchar 20
@p_confirmar_clave varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LED_control_login
 -- Add the parameters for the stored procedure here
 @p_action      varchar(10),
 @p_identificador    varchar(10),
 @p_numero      varchar(30),
 @p_clave      varchar(20),
 @p_nueva_clave     varchar(20),
 @p_confirmar_clave    varchar(20)
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 IF (@p_action = 'LOGIN') BEGIN

  IF (@p_identificador IS NOT NULL AND @p_numero IS NOT NULL AND @p_clave IS NOT NULL) BEGIN

   IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
      WHERE identificador = @p_identificador
      AND numero = @p_numero) BEGIN

    IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
       WHERE identificador = @p_identificador
       AND numero = @p_numero
       AND activa = 1) BEGIN

     IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
        WHERE identificador = @p_identificador
        AND numero = @p_numero
        AND password = @p_clave
        AND activa = 1) BEGIN

      SELECT ej.entidad_juridica, ej.nombre_entidad_juridica, ej.cliente,
        ej.identificador, ej.numero, ej.email_contacto, ej.idioma,
        ej.nombre_contacto, ej.email_contacto, ej.telefono1,
        ej.fecha_cierre_ej, ej.password,
        ej.changed_pwd, ej.expira_pwd, ej.cliente3, ej.inicio_actividades,
        clientes.nombre_cliente, clientes_3ros.nombre_cliente3,
        identificadores.abreviatura, identificadores.country_code, country.country_name,
        idiomas.nombre_idioma, idiomas.codigo_idioma,
       

        CASE
         WHEN ej.changed_pwd > 0 THEN
          CASE
           WHEN ej.expira_pwd > GETDATE() THEN 0
          ELSE 2 END
         ELSE 1
        END AS result,

        CASE
         WHEN ej.changed_pwd > 0 THEN
          CASE
           WHEN ej.expira_pwd > GETDATE() THEN 'OK'
          ELSE 'Su clave se encuentra expirada, debe generar una nueva clave.' END
         ELSE 'Su clave de acceso es temporaria. Debe generar una nueva clave.'
        END AS errortext,

        CASE
         WHEN ISNULL(ej.expira_pwd, DATEFROMPARTS(2000,0,1)) < GETDATE() THEN 1
        ELSE 0 END AS expired_pwd


      FROM gdl_entidad_juridica_legajo ej
      INNER JOIN identificadores ON ej.identificador = identificadores.identificador
      INNER JOIN country ON identificadores.country_code = country.country_code
      INNER JOIN clientes ON ej.cliente = clientes.cliente
      LEFT OUTER JOIN idiomas ON ej.idioma = idiomas.idioma
      LEFT OUTER JOIN clientes_3ros ON ej.cliente3 = clientes_3ros.cliente3
      WHERE ej.identificador = @p_identificador
      AND ej.numero = @p_numero
      AND ej.password = @p_clave
      AND ej.activa = 1



     END ELSE
      SELECT 3 AS result, 'La contraseña indicada es incorrecta.' AS errortext

    END ELSE
     SELECT 4 AS result, 'Su usuario no se encuentra activo' AS errortext

   END ELSE
    SELECT 5 AS result, 'La identificación fiscal indicada no se encuentra registrada o es incorrecta.' AS errortext

  END ELSE
   SELECT 99 AS result, 'Datos incompletos para iniciar sesión' AS errortext

 END ELSE

  IF (@p_action = 'RECOVER') BEGIN

   IF (@p_identificador IS NOT NULL AND @p_numero IS NOT NULL) BEGIN

    IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
       WHERE identificador = @p_identificador
       AND numero = @p_numero) BEGIN

     IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
        WHERE identificador = @p_identificador
        AND numero = @p_numero
        AND activa = 1) BEGIN


      SELECT ej.entidad_juridica, ej.nombre_entidad_juridica, ej.cliente,
        ej.identificador, ej.numero, ej.email_contacto, ej.idioma,
        ej.nombre_contacto, ej.email_contacto, ej.telefono1,
        ej.fecha_cierre_ej, ej.password,
        ej.changed_pwd, ej.expira_pwd, ej.cliente3, ej.inicio_actividades,
        clientes.nombre_cliente, clientes_3ros.nombre_cliente3,
        identificadores.abreviatura, identificadores.country_code, country.country_name,
        idiomas.nombre_idioma, idiomas.codigo_idioma,
       

        CASE
         WHEN ej.changed_pwd > 0 THEN
          CASE
           WHEN ej.expira_pwd > GETDATE() THEN 0
          ELSE 2 END
         ELSE 1
        END AS result,

        CASE
         WHEN ej.changed_pwd > 0 THEN
          CASE
           WHEN ej.expira_pwd > GETDATE() THEN 'OK'
          ELSE 'Su clave se encuentra expirada, debe generar una nueva clave.' END
         ELSE 'Su clave es temporaria. Debe generar una nueva clave.'
        END AS errortext,

        CASE
         WHEN ISNULL(ej.expira_pwd, DATEFROMPARTS(2000,0,1)) < GETDATE() THEN 1
        ELSE 0 END AS expired_pwd


      FROM gdl_entidad_juridica_legajo ej
      INNER JOIN identificadores ON ej.identificador = identificadores.identificador
      INNER JOIN country ON identificadores.country_code = country.country_code
      INNER JOIN clientes ON ej.cliente = clientes.cliente
      LEFT OUTER JOIN idiomas ON ej.idioma = idiomas.idioma
      LEFT OUTER JOIN clientes_3ros ON ej.cliente3 = clientes_3ros.cliente3
      WHERE ej.identificador = @p_identificador
      AND ej.numero = @p_numero
      AND ej.activa = 1


     END ELSE
      SELECT 2 AS result, 'Su usuario no se encuentra activo' AS errortext

    END ELSE
     SELECT 1 AS result, 'La identificación fiscal indicada no se encuentra registrada o es incorrecta.' AS errortext

   END ELSE
    SELECT 99 AS result, 'Datos incompletos para recuperar la contraseña.' AS errortext

  END ELSE

   IF (@p_action = 'CHANGE') BEGIN

    IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
       WHERE identificador = @p_identificador
       AND numero = @p_numero
       AND activa = 1) BEGIN

     IF EXISTS (SELECT * FROM gdl_entidad_juridica_legajo
        WHERE identificador = @p_identificador
        AND numero = @p_numero
        AND password = @p_clave
        AND activa = 1) BEGIN

      IF (@p_nueva_clave IS NOT NULL) BEGIN

       IF (UPPER(@p_nueva_clave) = UPPER(@p_confirmar_clave)) BEGIN

        UPDATE gdl_entidad_juridica_legajo SET
        password = @p_nueva_clave,
        changed_pwd = 1,
        expira_pwd = '2099-12-31 23:59:59'
        WHERE identificador = @p_identificador
        AND numero = @p_numero
        AND password = @p_clave
        AND activa = 1

        SELECT 0 AS result, 'La contraseña fue cambiada exitosamente.' AS errortext

       END ELSE

        SELECT 2 AS result, 'La nueva contraseña y su confirmación no coinciden.' AS errortext

      END ELSE

       SELECT 2 AS result, 'La nueva contraseña no puede estar en blanco.' AS errortext

     END ELSE

      SELECT 2 AS result, 'La contraseña actual es incorrecta.' AS errortext
    
    END ELSE
    
     SELECT 2 AS result, 'El usuario no se encuentra activo o no existe la identificación fiscal.' AS errortext

   END
 
END

GO

Used By

No items found