Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
21| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 40 | |
| @p_user_id | int | 4 | |
| @p_saas_cliente | varchar | 50 | |
| @p_cliente | int | 4 | |
| @p_cliente_saas | varchar | 100 | |
| @p_id_padron | int | 4 | |
| @p_domicilio | varchar | 200 | |
| @p_localidad | varchar | 100 | |
| @p_provincia | varchar | 100 | |
| @p_pais | varchar | 50 | |
| @p_codpos | varchar | 20 | |
| @p_telefono | varchar | 100 | |
| @p_nombre_contacto | varchar | 100 | |
| @p_email_contacto | varchar | 100 | |
| @p_telefono_contacto | varchar | 100 | |
| @p_datos_adicionales | varchar | -1 | |
| @p_clave | varchar | 80 | |
| @p_clave_temporal | tinyint | 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_CLIENTES -- @accion: INSERT, DELETE, MODIFY, SELECT, SELECTALL
-- Para delete, select solo basta con los 3 primeros parámetros.
-- =============================================
--exec [SAAS_Clientes_] 'selectall'
CREATE OR ALTER PROCEDURE dbo.SAAS_Clientes_
@accion varchar(40),
@p_user_id int = 0,
@p_saas_cliente varchar(50) = 0,
@p_cliente int = 0,
@p_cliente_saas varchar(100) = null,
@p_id_padron int = 0,
@p_domicilio varchar(200) = null,
@p_localidad varchar(100) = null,
@p_provincia varchar(100) = null,
@p_pais varchar(50) = null,
@p_codpos varchar(20) = null,
@p_telefono varchar(100) = null,
@p_nombre_contacto varchar(100) = null,
@p_email_contacto varchar(100) = null,
@p_telefono_contacto varchar(100) = null,
@p_datos_adicionales varchar(max) = null,
@p_clave varchar(80) = null,
@p_clave_temporal tinyint = null,
@p1_vigencia_desde varchar(10) = null,
@p1_vigencia_hasta varchar(10) = null,
@p_activo int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @country_code VARCHAR(2)
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_id_padron > 0 AND @p_cliente > 0)
begin
select '1' as error, 'No se puede dar de alta el registro, por falta de datos' as mensaje, null as saas_Cliente
end
else
begin
DECLARE @saas_cliente int
SELECT @country_code = identificadores.country_code
FROM identificadores INNER JOIN padrones ON identificadores.identificador = padrones.identificador
WHERE padrones.id_padron = @p_id_padron
INSERT INTO SAAS_Clientes (cliente,
cliente_saas,
id_padron,
country_code,
domicilio,
localidad,
provincia,
pais,
codpos,
telefono,
nombre_contacto,
email_contacto,
telefono_contacto,
datos_adicionales,
clave,
clave_temporal,
vigencia_desde,
vigencia_hasta,
activo,
created,
created_by)
VALUES ( @p_cliente,
@p_cliente_saas,
@p_id_padron,
@country_code,
@p_domicilio,
@p_localidad,
@p_provincia,
@p_pais,
@p_codpos,
@p_telefono,
@p_nombre_contacto,
@p_email_contacto,
@p_telefono_contacto,
@p_datos_adicionales,
@p_clave,
@p_clave_temporal,
@p_vigencia_desde,
@p_vigencia_hasta,
1,
GETDATE(),
@p_user_id)
SET @saas_cliente = SCOPE_IDENTITY()
SELECT '0' as error, 'Alta OK' as mensaje, @saas_cliente as saas_cliente
end
end
IF (@accion = 'UPDATE') BEGIN
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede dar modificar el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
UPDATE SAAS_Clientes
SET
cliente_saas = @p_cliente_saas,
domicilio = @p_domicilio,
localidad = @p_localidad,
provincia = @p_provincia,
pais = @p_pais,
codpos = @p_codpos,
telefono = @p_telefono,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
datos_adicionales = @p_datos_adicionales,
clave = @p_clave,
clave_temporal = @p_clave_temporal,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
activo = @p_activo,
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_cliente = @p_saas_cliente
select '0' as error, 'Modificacion OK' as mensaje, @p_saas_cliente as saas_Cliente
end
end
IF (@accion = 'DELETE') BEGIN --> Pasa el registro a inactivo (activo = 0)
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede dar de baja el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
UPDATE SAAS_Clientes
SET
activo = 0,
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_cliente = @p_saas_cliente
select '0' as error, 'Baja OK' as mensaje, @p_saas_cliente as saas_Cliente
end
end
IF (@accion = 'SELECT') BEGIN
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede consultar el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
SELECT padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre, SAAS_Clientes.*
FROM SAAS_Clientes
inner join padrones on padrones.id_padron = SAAS_Clientes.id_padron
WHERE saas_cliente = @p_saas_cliente
end
end
IF (@accion = 'SELECTALL') BEGIN
SELECT padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre, SAAS_Clientes.*
FROM SAAS_Clientes
inner join padrones on padrones.id_padron = SAAS_Clientes.id_padron
where SAAS_Clientes.activo = 1
order by nombre
end
IF (@accion = 'ADMINISTRACION') BEGIN
SELECT cli.saas_cliente, cli.cliente_saas, padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre,
padrones.id_padron,
cli.country_code as pais,
isnull(contratos.cantidad,0) as contratos ,
isnull(usuarios.cantidad,0) as usuarios
FROM SAAS_Clientes cli
inner join padrones on padrones.id_padron = cli.id_padron
left join (select saas_cliente, count(*) as cantidad
from SAAS_Contratos cont
where cont.activo = 1
and isnull(cont.vigencia_desde,'1901-01-01') <= getdate()
and isnull(cont.vigencia_hasta,'2999-01-01') >= getdate()
and cont.saas_cliente in (select saas_cliente from SAAS_Clientes where cliente = @p_cliente and activo = 1)
group by saas_cliente) contratos on contratos.saas_cliente = cli.saas_cliente
left join (select saas_cliente, count(*) as cantidad
from SAAS_Usuarios usu
where usu.activo = 1
and isnull(usu.vigencia_desde,'1901-01-01') <= getdate()
and isnull(usu.vigencia_hasta,'2999-01-01') >= getdate()
and usu.saas_cliente in (select saas_cliente from SAAS_Clientes where cliente = @p_cliente and activo = 1)
group by saas_cliente) usuarios on usuarios.saas_cliente = cli.saas_cliente
where cli.activo = 1 and cli.cliente = @p_cliente
order by nombre
end
END
GO
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 30/10/2019
-- ABMC de la tabla SAAS_CLIENTES -- @accion: INSERT, DELETE, MODIFY, SELECT, SELECTALL
-- Para delete, select solo basta con los 3 primeros parámetros.
-- =============================================
--exec [SAAS_Clientes_] 'selectall'
CREATE OR ALTER PROCEDURE dbo.SAAS_Clientes_
@accion varchar(40),
@p_user_id int = 0,
@p_saas_cliente varchar(50) = 0,
@p_cliente int = 0,
@p_cliente_saas varchar(100) = null,
@p_id_padron int = 0,
@p_domicilio varchar(200) = null,
@p_localidad varchar(100) = null,
@p_provincia varchar(100) = null,
@p_pais varchar(50) = null,
@p_codpos varchar(20) = null,
@p_telefono varchar(100) = null,
@p_nombre_contacto varchar(100) = null,
@p_email_contacto varchar(100) = null,
@p_telefono_contacto varchar(100) = null,
@p_datos_adicionales varchar(max) = null,
@p_clave varchar(80) = null,
@p_clave_temporal tinyint = null,
@p1_vigencia_desde varchar(10) = null,
@p1_vigencia_hasta varchar(10) = null,
@p_activo int = null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @country_code VARCHAR(2)
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_id_padron > 0 AND @p_cliente > 0)
begin
select '1' as error, 'No se puede dar de alta el registro, por falta de datos' as mensaje, null as saas_Cliente
end
else
begin
DECLARE @saas_cliente int
SELECT @country_code = identificadores.country_code
FROM identificadores INNER JOIN padrones ON identificadores.identificador = padrones.identificador
WHERE padrones.id_padron = @p_id_padron
INSERT INTO SAAS_Clientes (cliente,
cliente_saas,
id_padron,
country_code,
domicilio,
localidad,
provincia,
pais,
codpos,
telefono,
nombre_contacto,
email_contacto,
telefono_contacto,
datos_adicionales,
clave,
clave_temporal,
vigencia_desde,
vigencia_hasta,
activo,
created,
created_by)
VALUES ( @p_cliente,
@p_cliente_saas,
@p_id_padron,
@country_code,
@p_domicilio,
@p_localidad,
@p_provincia,
@p_pais,
@p_codpos,
@p_telefono,
@p_nombre_contacto,
@p_email_contacto,
@p_telefono_contacto,
@p_datos_adicionales,
@p_clave,
@p_clave_temporal,
@p_vigencia_desde,
@p_vigencia_hasta,
1,
GETDATE(),
@p_user_id)
SET @saas_cliente = SCOPE_IDENTITY()
SELECT '0' as error, 'Alta OK' as mensaje, @saas_cliente as saas_cliente
end
end
IF (@accion = 'UPDATE') BEGIN
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede dar modificar el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
UPDATE SAAS_Clientes
SET
cliente_saas = @p_cliente_saas,
domicilio = @p_domicilio,
localidad = @p_localidad,
provincia = @p_provincia,
pais = @p_pais,
codpos = @p_codpos,
telefono = @p_telefono,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
datos_adicionales = @p_datos_adicionales,
clave = @p_clave,
clave_temporal = @p_clave_temporal,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
activo = @p_activo,
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_cliente = @p_saas_cliente
select '0' as error, 'Modificacion OK' as mensaje, @p_saas_cliente as saas_Cliente
end
end
IF (@accion = 'DELETE') BEGIN --> Pasa el registro a inactivo (activo = 0)
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede dar de baja el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
UPDATE SAAS_Clientes
SET
activo = 0,
modified = GETDATE(),
modified_by = @p_user_id
WHERE saas_cliente = @p_saas_cliente
select '0' as error, 'Baja OK' as mensaje, @p_saas_cliente as saas_Cliente
end
end
IF (@accion = 'SELECT') BEGIN
IF not (@p_saas_cliente > 0)
begin
select '1' as error, 'No se puede consultar el registro, por falta de datos' as mensaje, @p_saas_cliente as saas_Cliente
end
else
begin
SELECT padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre, SAAS_Clientes.*
FROM SAAS_Clientes
inner join padrones on padrones.id_padron = SAAS_Clientes.id_padron
WHERE saas_cliente = @p_saas_cliente
end
end
IF (@accion = 'SELECTALL') BEGIN
SELECT padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre, SAAS_Clientes.*
FROM SAAS_Clientes
inner join padrones on padrones.id_padron = SAAS_Clientes.id_padron
where SAAS_Clientes.activo = 1
order by nombre
end
IF (@accion = 'ADMINISTRACION') BEGIN
SELECT cli.saas_cliente, cli.cliente_saas, padrones.identificador, padrones.identificacion, padrones.nombre_persona as nombre,
padrones.id_padron,
cli.country_code as pais,
isnull(contratos.cantidad,0) as contratos ,
isnull(usuarios.cantidad,0) as usuarios
FROM SAAS_Clientes cli
inner join padrones on padrones.id_padron = cli.id_padron
left join (select saas_cliente, count(*) as cantidad
from SAAS_Contratos cont
where cont.activo = 1
and isnull(cont.vigencia_desde,'1901-01-01') <= getdate()
and isnull(cont.vigencia_hasta,'2999-01-01') >= getdate()
and cont.saas_cliente in (select saas_cliente from SAAS_Clientes where cliente = @p_cliente and activo = 1)
group by saas_cliente) contratos on contratos.saas_cliente = cli.saas_cliente
left join (select saas_cliente, count(*) as cantidad
from SAAS_Usuarios usu
where usu.activo = 1
and isnull(usu.vigencia_desde,'1901-01-01') <= getdate()
and isnull(usu.vigencia_hasta,'2999-01-01') >= getdate()
and usu.saas_cliente in (select saas_cliente from SAAS_Clientes where cliente = @p_cliente and activo = 1)
group by saas_cliente) usuarios on usuarios.saas_cliente = cli.saas_cliente
where cli.activo = 1 and cli.cliente = @p_cliente
order by nombre
end
END
GO
Depends On
6Used By
No items found