dbo.SAAS_Clientes_

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

Used By

No items found