dbo.LN_verificar_balance_contraparte

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@p_contraparte int 4

SQL Script

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

Para devolver una consulta de un registro con la columna balance (1 / 0) si
la contraparte pasada como parámetro debe tener producto balance en función
de la asociación de familias, productos, cliente y estado activo/no activo

/* 10/10/2023
Hasta hoy para verificar el tema de Balance se fijaba si la familia de la contraparte tenia el producto Balance, 
antes se fijaba si el set de documentos de la familia tiene documento balance 
lo volvemos a verificar teniendo en cuenta que el set tenga documento balance */

*/

-- =============================================
--exec [LN_verificar_balance_contraparte] 207974


CREATE OR ALTER PROCEDURE dbo.LN_verificar_balance_contraparte 
 -- Add the parameters for the stored procedure here
 @p_contraparte           int
 
AS
BEGIN

/****************************************************************
17/01/2025: Se fija si tiene el producto o tiene el documento 
*****************************************************************/

 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 declare @producto int = 0
 declare @documento int = 0

 /* 10/10/2023
  Hasta hoy para verificar el tema de Balance se fijaba si la familia de la contraparte tenia el producto Balance, 
  antes se fijaba si el set de documentos de la familia tiene documento balance 
  lo volvemos a verificar teniendo en cuenta que el set tenga documento balance */


 /* -- Sacamos el 10/10/2023 -- Lo volvemos a poner 17/01/2025 */


 select  @producto = count(*)  
   from LN_cliente_productos
 inner join LN_productos ON LN_cliente_productos.producto = LN_productos.producto
 inner join LN_familia_productos ON LN_productos.producto = LN_familia_productos.producto
 inner join LN_contraparte_familias ON LN_familia_productos.familia = LN_contraparte_familias.familia
 inner join LN_familias ON (LN_familia_productos.familia = LN_familias.familia
           AND LN_cliente_productos.cliente = LN_familias.cliente)
 where LN_productos.balance = 1
 and LN_cliente_productos.activo = 1
 and LN_familia_productos.activo = 1
 and LN_contraparte_familias.activo = 1
 and LN_productos.visible = 1
 and LN_contraparte_familias.contraparte = @p_contraparte
 /**/
 /* Cambiamos el criterio de si le corresponde balance, en lugar de producto que sea por documento balance que debe proporcionar */
 /* Se saco el 19/06/2019 */
 /* lo volvemos a poner 10/10/2023 */
 
 select @documento = count(*)  
  from LN_tipos_doc
   inner join LN_set_tipo_doc on LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
   inner join LN_set_docs on LN_set_tipo_doc.set_doc = LN_set_docs.set_doc
   inner join LN_familias on LN_set_docs.set_doc = LN_familias.set_doc
   inner join LN_contraparte_familias on LN_familias.familia = LN_contraparte_familias.familia

  where LN_contraparte_familias.contraparte =  @p_contraparte --207974 
  and LN_contraparte_familias.activo = 1
  and LN_familias.visible = 1
  and LN_set_tipo_doc.activo = 1
  and (LN_tipos_doc.es_balance = 1 OR LN_tipos_doc.es_manif_bienes = 1)
 
 --select 1 as balance

 select iif(@producto + @documento=0,0,1) as balance

  
 
END
GO

Used By

1