dbo.LN_set_tipo_doc_ant_

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 20
@p_set_doc int 4
@p_tipo_doc int 4
@p_tolerancia_carga tinyint 1
@p_verifica_backend tinyint 1
@p_verifica_cliente tinyint 1
@p_peso_score decimal 5
@p_activo tinyint 1
@p_user_id int 4
@p_killer bit 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_set_tipo_doc_ant_ 
 -- Add the parameters for the stored procedure here

 @accion           varchar(20),
 @p_set_doc          int = null,
 @p_tipo_doc          int = null,
 @p_tolerancia_carga        tinyint = 15,
 @p_verifica_backend        tinyint = 1,
 @p_verifica_cliente        tinyint = 0,
 @p_peso_score         decimal(5,2) = 0,
 @p_activo          tinyint = 1,
 @p_user_id          int = null,
 @p_killer          bit = 0
 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here

 DECLARE @orden int, @tipo_doc int, @cant int

 if (@accion = 'insert') begin

  begin try

   select @orden = ISNULL(MAX(orden), 0)+1
   from LN_set_tipo_doc
   where set_doc = @p_set_doc
   
   insert into LN_set_tipo_doc
    (set_doc, tipo_doc, tolerancia_carga, orden, verifica_backend,
     verifica_cliente, peso_score, killer, activo, created, created_by)
   values
    (@p_set_doc, @p_tipo_doc, @p_tolerancia_carga, @orden, @p_verifica_backend,
     @p_verifica_cliente, @p_peso_score, @p_killer, @p_activo, GETDATE(), @p_user_id)

   select 0 as error
  end try

  begin catch
   select 1 as error
  end catch


 end else

  if (@accion = 'update') begin

   begin try

    update LN_set_tipo_doc set
     tolerancia_carga = @p_tolerancia_carga, 
     verifica_backend = @p_verifica_backend,
     verifica_cliente = @p_verifica_cliente, 
     peso_score = @p_peso_score, 
     killer = @p_killer,
     activo = @p_activo, 
     modified = GETDATE(), 
     modified_by = @p_user_id
    where set_doc = @p_set_doc
    and tipo_doc = @p_tipo_doc

    select 0 as error

   end try

   begin catch
    select 1 as error
   end catch

  end else

   if (@accion = 'select') begin

    select LN_set_tipo_doc.*, 
      LN_set_docs.nombre_set, 
      clientes.nombre_cliente,
      LN_tipos_doc.nombre_tipo_doc,
      users1.first_name + ' ' + users1.last_name as created_by_user,
      users2.first_name + ' ' + users2.last_name as modified_by_user

    from LN_set_tipo_doc
    inner join LN_set_docs on LN_set_tipo_doc.set_doc = LN_set_docs.set_doc
    inner join LN_tipos_doc on LN_set_tipo_doc.tipo_doc = LN_tipos_doc.tipo_doc
    left outer join clientes on LN_set_docs.cliente = clientes.cliente
    left outer join users as users1 on LN_set_tipo_doc.created_by = users1.user_id
    left outer join users as users2 on LN_set_tipo_doc.modified_by = users2.user_id
    where LN_set_tipo_doc.set_doc = @p_set_doc
    and LN_set_tipo_doc.tipo_doc = @p_tipo_doc

   end else

    if (@accion = 'search') begin

     select LN_set_tipo_doc.*, 
       LN_set_docs.nombre_set, 
       clientes.nombre_cliente,
       LN_tipos_doc.nombre_tipo_doc,
       users1.first_name + ' ' + users1.last_name as created_by_user,
       users2.first_name + ' ' + users2.last_name as modified_by_user

     from LN_set_tipo_doc
     inner join LN_set_docs on LN_set_tipo_doc.set_doc = LN_set_docs.set_doc
     inner join LN_tipos_doc on LN_set_tipo_doc.tipo_doc = LN_tipos_doc.tipo_doc
     left outer join clientes on LN_set_docs.cliente = clientes.cliente
     left outer join users as users1 on LN_set_tipo_doc.created_by = users1.user_id
     left outer join users as users2 on LN_set_tipo_doc.modified_by = users2.user_id
     where LN_set_tipo_doc.set_doc = @p_set_doc
     order by LN_set_tipo_doc.orden

    end else

     if (@accion = 'up') begin

      select @orden = LN_set_tipo_doc.orden
      from LN_set_tipo_doc
      where LN_set_tipo_doc.set_doc = @p_set_doc
      and LN_set_tipo_doc.tipo_doc = @p_tipo_doc

      if (@orden > 1) begin

       select @tipo_doc = tipo_doc
       from LN_set_tipo_doc
       where LN_set_tipo_doc.set_doc = @p_set_doc
       and LN_set_tipo_doc.orden = @orden - 1

       if (@tipo_doc is not null) begin
        
        update LN_set_tipo_doc set orden = @orden - 1
        where set_doc = @p_set_doc
        and tipo_doc = @p_tipo_doc

        update LN_set_tipo_doc set orden = @orden
        where set_doc = @p_set_doc
        and tipo_doc = @tipo_doc
        
       end

      end

      select 0 as error

     end else

      if (@accion = 'down') begin

       select @cant = COUNT(*)
       from LN_set_tipo_doc 
       where set_doc = @p_set_doc

       select @orden = LN_set_tipo_doc.orden
       from LN_set_tipo_doc
       where LN_set_tipo_doc.set_doc = @p_set_doc
       and LN_set_tipo_doc.tipo_doc = @p_tipo_doc

       if (@orden < @cant) begin

        select @tipo_doc = tipo_doc
        from LN_set_tipo_doc
        where LN_set_tipo_doc.set_doc = @p_set_doc
        and LN_set_tipo_doc.orden = @orden + 1

        if (@tipo_doc is not null) begin
        
         update LN_set_tipo_doc set orden = @orden + 1
         where set_doc = @p_set_doc
         and tipo_doc = @p_tipo_doc

         update LN_set_tipo_doc set orden = @orden
         where set_doc = @p_set_doc
         and tipo_doc = @tipo_doc
        
        end

       end

       select 0 as error

      end else

       if (@accion = 'delete') begin

        begin try

         select @orden = LN_set_tipo_doc.orden
         from LN_set_tipo_doc
         where LN_set_tipo_doc.set_doc = @p_set_doc
         and LN_set_tipo_doc.tipo_doc = @p_tipo_doc

         if (@orden is not null) begin

          update LN_set_tipo_doc set orden = orden - 1
          where LN_set_tipo_doc.set_doc = @p_set_doc
          and LN_set_tipo_doc.orden > @orden

          delete from LN_set_tipo_doc
          where LN_set_tipo_doc.set_doc = @p_set_doc
          and LN_set_tipo_doc.tipo_doc = @p_tipo_doc

         end

         select 0 as error

        end try

        begin catch
         select 1 as error
        end catch


       end else

        if (@accion = 'available') begin

         select LN_tipos_doc.*
         from LN_tipos_doc
         where LN_tipos_doc.tipo_doc NOT IN
          (select tipo_doc
          from LN_set_tipo_doc
          where set_doc = @p_set_doc)
         order by LN_tipos_doc.nombre_tipo_doc

        end

 
END
GO

Used By

No items found