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
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
Depends On
5Used By
No items found