Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
10| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 40 | |
| @p_user_id | int | 4 | |
| @p_saas_contrato | int | 4 | |
| @p_saas_cliente | int | 4 | |
| @p_nro_contrato | varchar | 50 | |
| @p_nro_poliza | varchar | 50 | |
| @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_Contratos -- @accion: INSERT, DELETE, MODIFY, SELECT, SELECTALL
-- Para delete, select solo basta con los 3 primeros parámetros.
-- Para selectall, mandar el saas_cliente
-- =============================================
-- select * from saas_contratos
-- exec SAAS_Contratos_ 'selectall2','499679932',0,25,515494256
CREATE OR ALTER PROCEDURE dbo.SAAS_Contratos_
@accion varchar(40),
@p_user_id int = 0,
@p_saas_contrato int = 0,
@p_saas_cliente int = 0,
@p_nro_contrato varchar(50) = NULL,
@p_nro_poliza varchar(50) = 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 (@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_contrato
end
else
begin
DECLARE @saas_contrato int
INSERT INTO SAAS_Contratos
(saas_cliente,
nro_contrato,
nro_poliza,
datos_adicionales,
vigencia_desde,
vigencia_hasta,
activo,
created,
created_by)
VALUES ( @p_saas_cliente,
@p_nro_contrato,
@p_nro_poliza,
@p_datos_adicionales,
@p_vigencia_desde,
@p_vigencia_hasta,
1,
GETDATE(),
@p_user_id)
SET @saas_contrato = SCOPE_IDENTITY()
SELECT '0' as error, 'Alta OK' as mensaje, @saas_contrato as saas_contrato
end
end
IF (@accion = 'UPDATE') BEGIN
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede dar modificar el registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
UPDATE SAAS_Contratos
SET saas_cliente = @p_saas_cliente,
nro_contrato = @p_nro_contrato,
nro_poliza = @p_nro_poliza,
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_contrato = @p_saas_contrato
select '0' as error, 'Modificacion OK' as mensaje, @p_saas_contrato as saas_contrato
end
end
IF (@accion = 'DELETE') BEGIN --> Pasa el registro a inactivo (activo = 0) / o activo si esta inactivo
declare @activo bit
select @p_nro_contrato = nro_contrato,
@p_nro_poliza = nro_poliza,
@activo = activo
from SAAS_Contratos
WHERE saas_contrato = @p_saas_contrato
-- Si se quiere activar controla que no haya otro contratos con los mismos datos ya activo
IF (@activo = 0 and exists (select * from SAAS_Contratos where nro_contrato = @p_nro_contrato and nro_poliza = @p_nro_poliza and saas_contrato != @p_saas_contrato and activo = 1 ))
begin
select '1' as error, 'No se puede activar porque ya existe otro contrato con los mismos datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede modificar el activo/inactivo del registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
UPDATE SAAS_Contratos
SET
activo = IIF(activo=1,0,1),
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_contrato = @p_saas_contrato
select '0' as error, 'Accion OK' as mensaje, @p_saas_contrato as saas_contrato
end
end
end
-- 296044
IF (@accion = 'SELECT') BEGIN
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede consultar el registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
SELECT SAAS_Contratos.*
FROM SAAS_Contratos
WHERE saas_contrato = @p_saas_contrato
end
end
IF (@accion = 'SELECTALL') BEGIN
SELECT SAAS_Contratos.*,
isnull(usuarios.cantidad,0) as cant_usuarios,
ISNULL(usuario.nombre, '') as usuario,
ISNULL(usuario.sector, '') as sector,
iif(isnull(usuarios.cantidad,0)-1>0, ' + ' + convert(varchar,(isnull(usuarios.cantidad,0)-1)), '') as mas_usuarios,
ISNULL(consultas.cantidad,0) as cant_consultas
FROM SAAS_Contratos
left join (select saas_contrato, count(*) as cantidad
from SAAS_Usuarios_contratos usu
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente and activo = 1
group by saas_contrato) usuarios on usuarios.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, count(*) as cantidad
from SAAS_Historial_Consultas con
inner join SAAS_Usuarios_contratos usu on usu.saas_usuario_contrato = con.saas_usuario_contrato
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente
group by saas_contrato) consultas on consultas.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, SAAS_Usuarios.nombre, SAAS_Usuarios.sector
from SAAS_Usuarios_contratos usu2
inner join SAAS_Usuarios on (SAAS_Usuarios.saas_usuario = usu2.saas_usuario and saas_usuarios.activo = 1)
where usu2.saas_cliente = @p_saas_cliente
and usu2.activo = 1
and usu2.saas_usuario_contrato = (select MIN (saas_usuario_contrato) from SAAS_Usuarios_Contratos usu3 where usu3.saas_contrato = usu2.saas_contrato and usu3.activo = 1)
) usuario on usuario.saas_contrato = SAAS_Contratos.saas_contrato
WHERE saas_cliente = @p_saas_cliente and activo = 1
order by saas_contrato
end
/*
select * from SAAS_Contratos where saas_cliente in (34,37,32)
select * from SAAS_Clientes where saas_cliente in (37,32)
select * from padrones where id_padron in (1983861,1856863)
613392 - 36
select * from saas_contratos where nro_contrato = 613392
select * from saas_contratos where saas_contrato = 36
UPDATE SAAS_Contratos
SET
activo = IIF(activo=1,0,1)
WHERE saas_contrato = 36
*/
IF (@accion = 'SELECTALL2') BEGIN
SELECT SAAS_Contratos.*,
isnull(usuarios.cantidad,0) as cant_usuarios,
ISNULL(usuario.nombre, '') as usuario,
ISNULL(usuario.sector, '') as sector,
iif(isnull(usuarios.cantidad,0)-1>0, ' + ' + convert(varchar,(isnull(usuarios.cantidad,0)-1)), '') as mas_usuarios,
ISNULL(consultas.cantidad,0) as cant_consultas
FROM SAAS_Contratos
left join (select saas_contrato, count(*) as cantidad
from SAAS_Usuarios_contratos usu
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente and activo = 1
group by saas_contrato) usuarios on usuarios.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, count(*) as cantidad
from SAAS_Historial_Consultas con
inner join SAAS_Usuarios_contratos usu on usu.saas_usuario_contrato = con.saas_usuario_contrato
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente
group by saas_contrato) consultas on consultas.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, SAAS_Usuarios.nombre, SAAS_Usuarios.sector
from SAAS_Usuarios_contratos usu2
inner join SAAS_Usuarios on (SAAS_Usuarios.saas_usuario = usu2.saas_usuario and saas_usuarios.activo = 1)
where usu2.saas_cliente = @p_saas_cliente
and usu2.activo = 1
and usu2.saas_usuario_contrato = (select MIN (saas_usuario_contrato) from SAAS_Usuarios_Contratos usu3 where usu3.saas_contrato = usu2.saas_contrato and usu3.activo = 1)
) usuario on usuario.saas_contrato = SAAS_Contratos.saas_contrato
WHERE saas_cliente = @p_saas_cliente /*and activo = 1 */
order by saas_contrato
end
END
GO
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 30/10/2019
-- ABMC de la tabla SAAS_Usuarios_Contratos -- @accion: INSERT, DELETE, MODIFY, SELECT, SELECTALL
-- Para delete, select solo basta con los 3 primeros parámetros.
-- Para selectall, mandar el saas_cliente
-- =============================================
-- select * from saas_contratos
-- exec SAAS_Contratos_ 'selectall2','499679932',0,25,515494256
CREATE OR ALTER PROCEDURE dbo.SAAS_Contratos_
@accion varchar(40),
@p_user_id int = 0,
@p_saas_contrato int = 0,
@p_saas_cliente int = 0,
@p_nro_contrato varchar(50) = NULL,
@p_nro_poliza varchar(50) = 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 (@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_contrato
end
else
begin
DECLARE @saas_contrato int
INSERT INTO SAAS_Contratos
(saas_cliente,
nro_contrato,
nro_poliza,
datos_adicionales,
vigencia_desde,
vigencia_hasta,
activo,
created,
created_by)
VALUES ( @p_saas_cliente,
@p_nro_contrato,
@p_nro_poliza,
@p_datos_adicionales,
@p_vigencia_desde,
@p_vigencia_hasta,
1,
GETDATE(),
@p_user_id)
SET @saas_contrato = SCOPE_IDENTITY()
SELECT '0' as error, 'Alta OK' as mensaje, @saas_contrato as saas_contrato
end
end
IF (@accion = 'UPDATE') BEGIN
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede dar modificar el registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
UPDATE SAAS_Contratos
SET saas_cliente = @p_saas_cliente,
nro_contrato = @p_nro_contrato,
nro_poliza = @p_nro_poliza,
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_contrato = @p_saas_contrato
select '0' as error, 'Modificacion OK' as mensaje, @p_saas_contrato as saas_contrato
end
end
IF (@accion = 'DELETE') BEGIN --> Pasa el registro a inactivo (activo = 0) / o activo si esta inactivo
declare @activo bit
select @p_nro_contrato = nro_contrato,
@p_nro_poliza = nro_poliza,
@activo = activo
from SAAS_Contratos
WHERE saas_contrato = @p_saas_contrato
-- Si se quiere activar controla que no haya otro contratos con los mismos datos ya activo
IF (@activo = 0 and exists (select * from SAAS_Contratos where nro_contrato = @p_nro_contrato and nro_poliza = @p_nro_poliza and saas_contrato != @p_saas_contrato and activo = 1 ))
begin
select '1' as error, 'No se puede activar porque ya existe otro contrato con los mismos datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede modificar el activo/inactivo del registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
UPDATE SAAS_Contratos
SET
activo = IIF(activo=1,0,1),
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_contrato = @p_saas_contrato
select '0' as error, 'Accion OK' as mensaje, @p_saas_contrato as saas_contrato
end
end
end
-- 296044
IF (@accion = 'SELECT') BEGIN
IF not (@p_saas_contrato > 0)
begin
select '1' as error, 'No se puede consultar el registro, por falta de datos' as mensaje, @p_saas_contrato as saas_contrato
end
else
begin
SELECT SAAS_Contratos.*
FROM SAAS_Contratos
WHERE saas_contrato = @p_saas_contrato
end
end
IF (@accion = 'SELECTALL') BEGIN
SELECT SAAS_Contratos.*,
isnull(usuarios.cantidad,0) as cant_usuarios,
ISNULL(usuario.nombre, '') as usuario,
ISNULL(usuario.sector, '') as sector,
iif(isnull(usuarios.cantidad,0)-1>0, ' + ' + convert(varchar,(isnull(usuarios.cantidad,0)-1)), '') as mas_usuarios,
ISNULL(consultas.cantidad,0) as cant_consultas
FROM SAAS_Contratos
left join (select saas_contrato, count(*) as cantidad
from SAAS_Usuarios_contratos usu
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente and activo = 1
group by saas_contrato) usuarios on usuarios.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, count(*) as cantidad
from SAAS_Historial_Consultas con
inner join SAAS_Usuarios_contratos usu on usu.saas_usuario_contrato = con.saas_usuario_contrato
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente
group by saas_contrato) consultas on consultas.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, SAAS_Usuarios.nombre, SAAS_Usuarios.sector
from SAAS_Usuarios_contratos usu2
inner join SAAS_Usuarios on (SAAS_Usuarios.saas_usuario = usu2.saas_usuario and saas_usuarios.activo = 1)
where usu2.saas_cliente = @p_saas_cliente
and usu2.activo = 1
and usu2.saas_usuario_contrato = (select MIN (saas_usuario_contrato) from SAAS_Usuarios_Contratos usu3 where usu3.saas_contrato = usu2.saas_contrato and usu3.activo = 1)
) usuario on usuario.saas_contrato = SAAS_Contratos.saas_contrato
WHERE saas_cliente = @p_saas_cliente and activo = 1
order by saas_contrato
end
/*
select * from SAAS_Contratos where saas_cliente in (34,37,32)
select * from SAAS_Clientes where saas_cliente in (37,32)
select * from padrones where id_padron in (1983861,1856863)
613392 - 36
select * from saas_contratos where nro_contrato = 613392
select * from saas_contratos where saas_contrato = 36
UPDATE SAAS_Contratos
SET
activo = IIF(activo=1,0,1)
WHERE saas_contrato = 36
*/
IF (@accion = 'SELECTALL2') BEGIN
SELECT SAAS_Contratos.*,
isnull(usuarios.cantidad,0) as cant_usuarios,
ISNULL(usuario.nombre, '') as usuario,
ISNULL(usuario.sector, '') as sector,
iif(isnull(usuarios.cantidad,0)-1>0, ' + ' + convert(varchar,(isnull(usuarios.cantidad,0)-1)), '') as mas_usuarios,
ISNULL(consultas.cantidad,0) as cant_consultas
FROM SAAS_Contratos
left join (select saas_contrato, count(*) as cantidad
from SAAS_Usuarios_contratos usu
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente and activo = 1
group by saas_contrato) usuarios on usuarios.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, count(*) as cantidad
from SAAS_Historial_Consultas con
inner join SAAS_Usuarios_contratos usu on usu.saas_usuario_contrato = con.saas_usuario_contrato
where usu.activo = 1
and usu.saas_cliente = @p_saas_cliente
group by saas_contrato) consultas on consultas.saas_contrato = SAAS_Contratos.saas_contrato
left join (select saas_contrato, SAAS_Usuarios.nombre, SAAS_Usuarios.sector
from SAAS_Usuarios_contratos usu2
inner join SAAS_Usuarios on (SAAS_Usuarios.saas_usuario = usu2.saas_usuario and saas_usuarios.activo = 1)
where usu2.saas_cliente = @p_saas_cliente
and usu2.activo = 1
and usu2.saas_usuario_contrato = (select MIN (saas_usuario_contrato) from SAAS_Usuarios_Contratos usu3 where usu3.saas_contrato = usu2.saas_contrato and usu3.activo = 1)
) usuario on usuario.saas_contrato = SAAS_Contratos.saas_contrato
WHERE saas_cliente = @p_saas_cliente /*and activo = 1 */
order by saas_contrato
end
END
GO
Depends On
4Used By
No items found