dbo.LN_tipo_doc_campos_puntos_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

7
Name Data Type Length Description
@accion varchar 100
@cliente int 4
@set int 4
@doc int 4
@seccion int 4
@campo int 4
@values varchar 1000

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: María Inés Soria
-- Create date: 9/5/2023
-- Description: Se usa para la valoracion de campos de los documentos de un cliente 
-- =============================================
/*
exec [LN_tipo_doc_campos_puntos_]  'campos',5546348,165,1234
select * from LN_tipo_doc_campos_puntos --> tiene la especifiación de los puntos por los campos de los formularios
select * from LN_docs_campos_puntos --> tiene los puntos del campo por doc_id
*/

CREATE OR ALTER PROCEDURE dbo.LN_tipo_doc_campos_puntos_ 
 @accion varchar(100), 
 @cliente int, 
 @set int = null, 
 @doc int = null,
 @seccion int = null,
 @campo int = null,
 @values varchar(1000) = null 

AS
BEGIN

 SET NOCOUNT ON;

 if (@accion = 'grabar')
 begin
  if exists (select * from LN_tipo_doc_campos_puntos where cliente = @cliente and set_doc = @set and tipo_doc = @doc and seccion = @seccion and campo = @campo) 
  begin
   update LN_tipo_doc_campos_puntos 
      set opciones_puntos = @values 
    where cliente = @cliente and set_doc = @set and tipo_doc = @doc and seccion = @seccion and campo = @campo
  end
  else
  begin 
   insert into LN_tipo_doc_campos_puntos (cliente,  set_doc, tipo_doc, seccion,  campo,  opciones_puntos) 
                                  values (@cliente, @set,    @doc,     @seccion, @campo, @values)
  end 
  select 'ok' as respuesta
 end 

 if (@accion = 'campos')
 begin 
  SELECT distinct LN_familias.set_doc, LN_set_docs.nombre_set, LN_tipos_doc.tipo_doc, LN_tipos_doc.nombre_tipo_doc, 
  LN_tipo_doc_secciones.seccion as nro_seccion, LN_tipo_doc_secciones.titulo_seccion as seccion, 
  LN_campos.campo, LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, 
  iif(LN_campos.tipo_campo = 'B', 'SI|NO^1|0', convert(varchar(max),LN_campos.opciones)) as opciones, 
  LN_tipo_doc_campos.orden, P.opciones_puntos
  FROM LN_familias 
  inner join LN_set_tipo_doc on LN_set_tipo_doc.set_doc = LN_familias.set_doc
  inner join LN_set_docs on LN_set_docs.set_doc = LN_familias.set_doc
  inner join LN_tipos_doc on LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
  inner join LN_tipo_doc_campos on LN_tipo_doc_campos.tipo_doc = LN_set_tipo_doc.tipo_doc
  inner join LN_tipo_doc_secciones on (LN_tipo_doc_secciones.tipo_doc = LN_set_tipo_doc.tipo_doc and LN_tipo_doc_secciones.seccion = LN_tipo_doc_campos.seccion) 
  inner join LN_campos on LN_campos.campo = LN_tipo_doc_campos.campo 
  left join LN_tipo_doc_campos_puntos P on (P.cliente = @cliente and 
                                            P.set_doc = LN_set_tipo_doc.set_doc and P.seccion = LN_tipo_doc_secciones.seccion and 
              P.tipo_doc = LN_tipos_doc.tipo_doc  and P.campo = LN_campos.campo)
  WHERE LN_familias.cliente = @cliente and LN_familias.set_doc is not null and LN_familias.visible = 1 
  and LN_set_tipo_doc.activo = 1 
  and LN_campos.opciones is not null and LN_campos.tipo_campo in ('S','R','C','B') 
  and (LN_campos.opciones like '%|%' or LN_campos.tipo_campo = 'B')  -- tiene más de una opción 
  and (@set is null or LN_set_tipo_doc.set_doc = @set) and (@doc is null or LN_tipos_doc.tipo_doc = @doc) 
  order by LN_familias.set_doc, LN_tipos_doc.tipo_doc,
     LN_tipo_doc_secciones.seccion, LN_tipo_doc_campos.orden 
 end

 if (@accion = 'documentos')
 begin 
  SELECT distinct LN_familias.set_doc, LN_set_docs.nombre_set, LN_tipos_doc.tipo_doc, LN_tipos_doc.nombre_tipo_doc
  FROM LN_familias 
  inner join LN_set_tipo_doc on LN_set_tipo_doc.set_doc = LN_familias.set_doc
  inner join LN_set_docs on LN_set_docs.set_doc = LN_familias.set_doc
  inner join LN_tipos_doc on LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
  inner join LN_tipo_doc_campos on LN_tipo_doc_campos.tipo_doc = LN_set_tipo_doc.tipo_doc
  inner join LN_tipo_doc_secciones on (LN_tipo_doc_secciones.tipo_doc = LN_set_tipo_doc.tipo_doc and LN_tipo_doc_secciones.seccion = LN_tipo_doc_campos.seccion) 
  inner join LN_campos on LN_campos.campo = LN_tipo_doc_campos.campo 
  WHERE LN_familias.cliente = @cliente and LN_familias.set_doc is not null and LN_familias.visible = 1 
  and LN_set_tipo_doc.activo = 1 
  and LN_campos.opciones is not null and LN_campos.tipo_campo in ('S','R','C','B') 
  and (LN_campos.opciones like '%|%' or LN_campos.tipo_campo = 'B')  -- tiene más de una opción  
  order by LN_set_docs.nombre_set, LN_tipos_doc.nombre_tipo_doc
 end
 
END

GO

Used By

No items found