dbo.SAAS_Usuarios_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

15
Name Data Type Length Description
@accion varchar 40
@p_user_id int 4
@p_saas_usuario int 4
@p_saas_cliente int 4
@p_username varchar 100
@p_sector varchar 100
@p_nombre varchar 100
@p_email varchar 100
@p_telefono varchar 100
@p_clave varchar 80
@p_clave_temporal tinyint 1
@p_datos_adicionales varchar -1
@p1_vigencia_desde varchar 10
@p1_vigencia_hasta varchar 10
@p_activo int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 30/10/2019
-- ABMC de la tabla SAAS_Usuarios -- @accion: INSERT, DELETE, MODIFY, SELECT, SELECTALL
-- Para delete, select solo basta con los 3 primeros parámetros.
-- Para selectall, mandar el saas_cliente
-- =============================================
/*
exec SAAS_Usuarios_ 'selectall',112991695,0,19,515494256
select * from SAAS_Usuarios
*/

CREATE OR ALTER PROCEDURE dbo.SAAS_Usuarios_ 
 @accion varchar(40),
 @p_user_id int = 0,
 @p_saas_usuario int = 0,

 @p_saas_cliente int = 0,

 @p_username varchar(100) = NULL,
 @p_sector varchar(100) = NULL,
 @p_nombre  varchar(100) = NULL,
 @p_email varchar(100) = NULL,
 @p_telefono varchar(100) = NULL,
 @p_clave varchar(80) = NULL,
 @p_clave_temporal tinyint = NULL,
 @p_datos_adicionales varchar(max) = NULL,
 @p1_vigencia_desde varchar(10) = NULL,
 @p1_vigencia_hasta varchar(10) =  NULL,
 @p_activo int = NULL

AS
BEGIN

 SET NOCOUNT ON;

 if (@p1_vigencia_desde = '') set @p1_vigencia_desde = null
 if (@p1_vigencia_hasta = '') set @p1_vigencia_hasta = null

 declare @p_vigencia_desde date = CONVERT(date, @p1_vigencia_desde) 
 declare @p_vigencia_hasta date = CONVERT(date, @p1_vigencia_hasta) 

 IF (@accion = 'INSERT') BEGIN

  IF not (isnull(@p_username,'') != '' AND @p_saas_cliente > 0) 
  begin
     select '1' as error, 'No se puede dar de alta el registro, por falta de datos' as mensaje, null as saas_usuario
  end 
  else 
  begin
   DECLARE @saas_usuario int


   INSERT INTO SAAS_Usuarios ( saas_cliente,
      username, 
      sector,
      nombre,
      email,
      telefono,
      clave,
      clave_temporal,
      datos_adicionales,
      vigencia_desde,
      vigencia_hasta,
      activo,
      created, 
      created_by)

    VALUES ( @p_saas_cliente,
      @p_username,
      @p_sector,
      @p_nombre,
      @p_email,
      @p_telefono,
      @p_clave,
      @p_clave_temporal, 
      @p_datos_adicionales,
      @p_vigencia_desde,
      @p_vigencia_hasta,
      @p_activo, 
      GETDATE(), 
      @p_user_id)


   SET @saas_usuario = SCOPE_IDENTITY()

   SELECT '0' as error, 'Alta OK' as mensaje, @saas_usuario as saas_usuario  

  end
 end 


 IF (@accion = 'UPDATE') BEGIN

  IF not (@p_saas_usuario > 0) 
  begin
     select '1' as error, 'No se puede dar modificar el registro, por falta de datos' as mensaje, @p_saas_usuario as saas_usuario 
  end 
  else 
  begin
   UPDATE SAAS_Usuarios
      SET saas_cliente  = @p_saas_cliente, 
     username   = @p_username, 
     sector    = @p_sector, 
     nombre    = @p_nombre, 
     email    = @p_email,
     telefono   = @p_telefono,
     clave    = @p_clave,
     clave_temporal  = @p_clave_temporal,
     datos_adicionales = @p_datos_adicionales,
     vigencia_desde  = @p_vigencia_desde,
     vigencia_hasta  = @p_vigencia_hasta,
     activo    = @p_activo, 
     modified   = GETDATE(), 
     modified_by   = @p_user_id
   WHERE saas_usuario = @p_saas_usuario
     select '0' as error, 'Modificacion OK' as mensaje, @p_saas_usuario as saas_usuario 

  end
 end 

 IF (@accion = 'DELETE') BEGIN --> Pasa el registro a inactivo (activo = 0)

  IF not (@p_saas_usuario > 0) 
  begin
     select '1' as error, 'No se puede dar de baja el registro, por falta de datos' as mensaje, @p_saas_usuario as saas_usuario 
  end 
  else 
  begin
   UPDATE saas_usuarios
       SET
    activo = 0,
    modified =  GETDATE(), 
    modified_by =  @p_user_id
   WHERE saas_usuario = @p_saas_usuario
      select '0' as error, 'Baja OK' as mensaje, @p_saas_usuario as saas_usuario 

  end
 end 


 IF (@accion = 'SELECT') BEGIN 

  IF not (@p_saas_usuario > 0) 
  begin
     select '1' as error, 'No se puede consultar el registro, por falta de datos' as mensaje, @p_saas_usuario as saas_usuario 
  end 
  else 
  begin
   SELECT SAAS_Usuarios.*, 
       convert(varchar, SAAS_Usuarios.vigencia_desde, 103) AS vigencia_usuario_desde,  
          convert(varchar, SAAS_Usuarios.vigencia_hasta, 103) AS vigencia_usuario_hasta,  
          SAAS_Clientes.cliente_saas, 
          convert(varchar, SAAS_Clientes.vigencia_desde, 103)  AS vigencia_cliente_desde,  
          convert(varchar, SAAS_Clientes.vigencia_hasta, 103) AS vigencia_cliente_hasta  

     FROM SAAS_Usuarios
     inner join SAAS_Clientes ON SAAS_Clientes.saas_cliente = SAAS_Usuarios.saas_cliente
   WHERE saas_usuario = @p_saas_usuario
  end
 end 

 IF (@accion = 'SELECTALL') BEGIN 

   SELECT SAAS_Usuarios.*, 
       isnull(contratos.cantidad,0) as cant_contratos, 
       ISNULL(primer_contrato.nro_contrato, '') as nro_contrato,
       iif(isnull(contratos.cantidad,0)-1>0, ' + ' +  convert(varchar,(isnull(contratos.cantidad,0)-1)), '') as mas_contratos
     FROM SAAS_Usuarios
       left join (select saas_usuario, count(*) as cantidad 
                  from SAAS_Usuarios_contratos con
        where con.activo = 1 
       and con.saas_cliente = @p_saas_cliente and activo = 1
       group by saas_usuario) contratos on contratos.saas_usuario = SAAS_Usuarios.saas_usuario
    left join (select saas_usuario, min(SAAS_Contratos.nro_contrato) as nro_contrato
                  from SAAS_Usuarios_contratos usu2
         inner join SAAS_Contratos on (SAAS_Contratos.saas_contrato = usu2.saas_contrato and SAAS_Contratos.activo = 1) 
       where usu2.saas_cliente = @p_saas_cliente 
       and usu2.activo = 1
       group by saas_usuario
       --and SAAS_Contratos.nro_contrato = (select MIN(nro_contrato) from SAAS_Contratos where saas_usuario = usu2.saas_usuario and activo = 1) 
       ) primer_contrato on primer_contrato.saas_usuario = SAAS_Usuarios.saas_usuario
     where SAAS_Usuarios.saas_cliente = @p_saas_cliente --and SAAS_Usuarios.activo = 1 
     order by username
 end 
 
END

GO

Used By

No items found