dbo.LN_set_tipo_doc_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

12
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
@p_carga varchar 1
@p_verifica varchar 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================

-- exec LN_set_tipo_doc_ 'insert',120,1104,15,0,1, 45,1, '422946826',0,'F','C'


CREATE OR ALTER PROCEDURE dbo.LN_set_tipo_doc_ 
 -- 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, 
 @p_carga varchar(1) = 'L', 
 @p_verifica varchar(1) = 'F'
 
AS

-- select * from LN_set_docs where nombre_set = 'Empresas S.A. y S.R.L.'

-- exec LN_set_tipo_doc_ 'search',214

/* exec LN_set_tipo_doc_ 'insert',117,1122,15,1,0,10,1,422946826,1,'C','N'
  
  select * from LN_set_tipo_doc where set_doc=117
  select * from LN_tipos_doc_carga_verif where tipo_doc = 1122

  select * from clientes where cliente in (6063454,42014167,601116452)
*/


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 (@p_carga != 'F' and @p_carga != 'C') set @p_carga = 'L' --> default, carga contraparte desde legajos
 if (@p_verifica != 'C' and @p_verifica != 'N') set @p_verifica = 'F'               --> default, verifica Fidelitas
 declare @p_cliente int = (select cliente from LN_set_docs where set_doc = @p_set_doc) 

 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)



   if (@p_carga != 'L' or @p_verifica != 'F') 
   begin 
 -- declare @p_cliente int = (select cliente from LN_set_docs where set_doc = @p_set_doc) 
  
    insert into LN_tipos_doc_carga_verif(cliente, tipo_doc, quien_carga, quien_verifica, activo, created, created_by) 
    values (@p_cliente, @p_tipo_doc, @p_carga, @p_verifica, @p_activo, GETDATE(), @p_user_id)
   end 

   -- 29/07/2020 Actualiza legajos de las contrapartes que tienen este set de doc.
   EXEC [LN_set_tipo_doc_legajos]  @p_set_doc

   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

    IF exists (select * from LN_tipos_doc_carga_verif where cliente = @p_cliente and tipo_doc = @p_tipo_doc) 
    BEGIN
     update LN_tipos_doc_carga_verif 
      set quien_carga = @p_carga, 
       quien_verifica = @p_verifica, 
       activo = @p_activo, 
       modified = GETDATE(), 
       modified_by = @p_user_id
      where cliente = @p_cliente 
      and tipo_doc = @p_tipo_doc
    END 
    ELSE
    BEGIN 
     if (@p_carga != 'L' or @p_verifica != 'F') 
        insert into LN_tipos_doc_carga_verif(cliente, tipo_doc, quien_carga, quien_verifica, activo, created, created_by) 
       values (@p_cliente, @p_tipo_doc, @p_carga, @p_verifica, @p_activo, GETDATE(), @p_user_id)
    END 

    -- 29/07/2020 Actualiza legajos de las contrapartes que tienen este set de doc.
    EXEC [LN_set_tipo_doc_legajos]  @p_set_doc
    
    select 0 as error

   end try

   begin catch
    select 1 as error
   end catch

  end else

   if (@accion = 'select') begin

    select distinct 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, 
      isnull(LN_tipos_doc_carga_verif.quien_carga, 'L') as quien_carga, 
      isnull(LN_tipos_doc_carga_verif.quien_verifica,'F') as quien_verifica,consentimiento


    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
    left outer join LN_tipos_doc_carga_verif on (LN_tipos_doc_carga_verif.tipo_doc = LN_tipos_doc.tipo_doc and LN_tipos_doc_carga_verif.cliente = @p_cliente)

    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  distinct 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, 
       isnull(LN_tipos_doc_carga_verif.quien_carga, 'L') as quien_carga, 
       isnull(LN_tipos_doc_carga_verif.quien_verifica,'F') as quien_verifica,consentimiento

     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
     left outer join LN_tipos_doc_carga_verif on (LN_tipos_doc_carga_verif.tipo_doc = LN_tipos_doc.tipo_doc and LN_tipos_doc_carga_verif.cliente = @p_cliente)
     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

          delete from LN_tipos_doc_carga_verif 
            where tipo_doc = @p_tipo_doc 
              and cliente = @p_cliente

         end

         -- 29/07/2020 Actualiza legajos de las contrapartes que tienen este set de doc.
         EXEC [LN_set_tipo_doc_legajos]  @p_set_doc

         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