dbo.backend_abm_usuarios_productos

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

12
Name Data Type Length Description
@p_accion char 1
@p_cli_codigo int 4
@p_user_id int 4
@p_login varchar 60
@p_estado_login char 1
@p_prod_codigo int 4
@p_estado_producto bit 1
@p_email varchar 500
@p_usuario int 4
@first_name varchar 50
@last_name varchar 50
@password varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR ALTER PROCEDURE dbo.backend_abm_usuarios_productos
-- Parte 1: Carga el username, y estado del login.

@p_accion char(1), /*ACCIONES A = ALTA / D=DELETE / OTRA COSA = UPDATE */
@p_cli_codigo int, 
@p_user_id int, 
@p_login varchar(60), 
@p_estado_login char(1), 
@p_prod_codigo int, 
@p_estado_producto bit, 
@p_email varchar(500),
@p_usuario int,
@first_name varchar(50),
@last_name varchar(50),
@password varchar(20)


AS
BEGIN
 
    SET NOCOUNT ON;
 
 DECLARE @ok  char(1)
 DECLARE @p_rand int
 DECLARE @p_rand_char varchar(120)
 DECLARE @i      int


    set @p_login = ltrim(rtrim(@p_login))
    set @p_email = ltrim(rtrim(@p_email))
    set @first_name = ltrim(rtrim(@first_name))
    set @last_name = ltrim(rtrim(@last_name))
    set @password = ltrim(rtrim(@password))

 if (@p_accion = 'D') /*ELIMINAMOS UN USER ID DE UN CLIENTE EN PARTICULAR*/
 begin 
        delete usuarios_productos where user_id=@p_user_id and cliente in (select cliente from clientes where cli_codigo=@p_cli_codigo)
        delete clientes_usuarios where user_id=@p_user_id and cliente in (select cliente from clientes where cli_codigo=@p_cli_codigo)
        update users set cli_codigo=null where user_id=@p_user_id
        return
    end


    set @i = 0
 if (@p_accion = 'A') 
 begin 
    if (select count(*) from users where username = @p_login) = 0 
     begin
      set @ok = 'N'  
      --select @ok
      WHILE (@ok = 'N')
      BEGIN
         set @i = @i + 1
      set @p_rand = ROUND(((999999999 - 1) * RAND() + 1), 0)
      set @p_rand_char = convert(varchar(120),newid())
         if (select count(*) from users where user_id = @p_rand or cookie_id = @p_rand_char) = 0 
     begin 
       insert into users (user_id, cookie_id, cli_codigo, username, active_user, email, user_created,first_name,last_name,password) 
       values (@p_rand, @p_rand_char, @p_cli_codigo, @p_login, @p_estado_login, @p_email, getdate(),@first_name,@last_name,@password)
       set @ok = 'S'
       --select @ok
     end
      END   
         select '0' as error, 'Alta OK 1 ' as mensaje

     end
  else
     begin 
     if (select count(*) from users where username = @p_login and cli_codigo <> @p_cli_codigo) = 0 
      begin
    if ((select password from users where user_id = @p_user_id) != @password)
     begin
        update users 
        set active_user = @p_estado_login,
         email       = @p_email,
         first_name  = @first_name,
         last_name   = @last_name,
         password   = @password
      where username = @p_login
      select '0' as error, 'Alta OK 2'  as mensaje
     end
    else
     begin
       update users 
        set active_user = @p_estado_login,
         email       = @p_email,
         first_name  = @first_name,
         last_name   = @last_name
      where username = @p_login
      select '0' as error, 'Alta OK 2'  as mensaje
     end 
      end 
   else
      begin
     select '1' as error, 'Ese login ya está asignado a otro Cliente'
      end 

     end 
     
 end 
 else
 -- Modificacion
 begin  
   
  update users 
     set active_user = @p_estado_login,
         email = @p_email,
      first_name  = @first_name,
    last_name   = @last_name,
    password   = @password
      where user_id = @p_user_id 
  
  select '0' as error, 'Modificación OK' as mensaje
    
 end 
  
 update usuarios_productos set activo = @p_estado_producto where user_id = @p_user_id and id_producto = @p_prod_codigo

END

GO

Used By

No items found