IF EXISTS ( SELECT * 
            FROM   sysobjects 
            WHERE  id = object_id(N'[dbo].[CP_Clientes_Deuda]') 
                   and OBJECTPROPERTY(id, N'IsProcedure') = 1 )
BEGIN
    DROP PROCEDURE [dbo].[CP_Clientes_Deuda] 
END
GO

CREATE PROCEDURE [dbo].[CP_Clientes_Deuda](
     @pUsuario    INT
   , @pEquate  SMALLINT
   , @pFechaDesde DATETIME
   , @pFechaHasta DATETIME
   , @pFiltroFecha SMALLINT
   , @pIncluirRelaciones SMALLINT
   , @pFiltrarCbtesSinTarjeta SMALLINT
   , @pUnidNegocio VARCHAR(1000)
   )
AS
 
  IF @pEquate = 0
     RETURN

  DECLARE @Id_Producto Varchar(14)
  ,@Id_Proveedor Int
  ,@Razon_Social VarChar(100)
  ,@Cuit Varchar(13)
  ,@Id_Iva Char(3)
  ,@Id_Alias_Cta_Cont Int
  ,@Id_Cta_Contable_H Int
  ,@Porc_Comision_Prov Decimal(7,2) 
  ,@Importe Decimal(12,2) 
  ,@IMPORTE_CREDITO Decimal(12,2) 
  ,@ID_TIPO_CBTE CHAR(4) 
  ,@FECHA DATETIME
  ,@Imp_prod_siva  Decimal(12,2) 
  ,@TRANS INT
  ,@Id_Cliente_Externo VARCHAR(14)
  ,@Id_Cta_Banco INT
  ,@Id_Cliente INT
  ,@EXISTE_TAG INT

  DECLARE @Sql		    VARCHAR(MAX)
  DECLARE @SqlSaldo	    VARCHAR(MAX)
  DECLARE @SqlSelect	VARCHAR(MAX)
  DECLARE @SqlInto	    VARCHAR(MAX)
  DECLARE @SqlFrom	    VARCHAR(MAX)
  DECLARE @SqlWhere  	VARCHAR(MAX)
  DECLARE @SqlGroup	    VARCHAR(MAX)

  SET @FECHA = (SELECT CAST(GETDATE() AS DATE))
  SET @EXISTE_TAG = 0
  SET @EXISTE_TAG = (SELECT COUNT(*) FROM TagFile_ TAG WHERE TAG.TBL = @pEquate AND TAG.USR = @pUsuario)

  SET @SqlSelect = ' SELECT c.id_cliente   
		  ,ISNULL(C.ID_CLIENTE_REF,0) AS ID_CLIENTE_REF
		  ,ISNULL(F.ID_COBRADOR,'''') as Id_Cobrador
		  ,CC.Fecha_Vence
		  ,CC.Descripcion
		  ,F.COMPROBANTE_NRO
		  ,CC.NRO_CUOTA
		  ,F.FECHA
		  ,VM.Signo
		  ,f.Cotizacion
		  ,CC.Importe
		  ,CC.Saldo
		  ,F.Imp_Total
		  ,Isnull(F.Suc_Destina,0) as sucursal
		  ,CC.ID_TRANS
		  ,F.Id_Centro_Costo
		  ,C.RAZON_SOCIAL
		  ,C.ID_PROVINCIA
		  ,C.ID_LOCALIDAD
		  ,C.Direccion
		  ,C.Id_cliente_Externo
		  ,C.Id_Tipo_Cli
		  ,TC.Descripcion as Descripcion_Tipo
		  ,C.Ult_Cuota_Paga
		  ,C.Telefono
		  ,ISNULL(C.Id_Transporte,0) AS Transporte 
		       '

  SET @SqlInto = ' '

  SET @SqlWhere = ' WHERE C.ACTIVO = 1
				AND CC.ID_Trans = F.Id_Trans 
				AND VM.Id_Moneda = F.Id_Moneda
				AND CC.id_estado_cbte in (1,4) 
				AND f.id_tipo_cbte = TF.id_tipo_cbte 
				AND TF.Compromete_Factura in (1,-1)
				AND ISNULL(C.Id_Tipo_Cli,0) = Isnull(TC.Id_Tipo_Cli,0)
				AND TF.Letra <> ''L''
				AND CC.SALDO <> 0 '

  IF @EXISTE_TAG > 0
      BEGIN
        SET @SqlFrom = ' FROM Clientes_Ctacte CC, cbtes f, Cbtes_Tipos TF, Clientes C,TagFile_ TAG, Valores_Monedas VM , Clientes_Tipos TC '

        SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + '	AND (CC.Id_Cliente = TAG.VAL AND TAG.TBL = ' + Cast(@pEquate as varchar(10)) + ' AND TAG.USR = '+  Cast(@pUsuario as varchar(10)) +')'
      END
	ELSE
	  BEGIN
		SET @SqlFrom = ' FROM Clientes_Ctacte CC, cbtes f, Cbtes_Tipos TF, Clientes C, Valores_Monedas VM, Clientes_Tipos TC '

      END

  IF @pFiltroFecha = 0
     BEGIN
         SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + 'AND F.Fecha >= '''+ CONVERT(VARCHAR(8),@pFechaDesde,112) +'''   
			 	                                    AND F.Fecha < ''' + CONVERT(VARCHAR(8),@pFechaHasta+1,112) +'''' 
     END
   ELSE
     BEGIN
         SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + 'AND CC.Fecha_VENCE >= '''+ CONVERT(VARCHAR(8),@pFechaDesde,112) +'''   
			 	                                    AND CC.Fecha_VENCE < ''' + CONVERT(VARCHAR(8),@pFechaHasta+1,112) +'''' 
     END   
	 
   IF RTRIM(LTRIM(@pUnidNegocio)) <> '' 
	  SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + ' AND TF.Id_Unid_Negocio in '+ Cast(@pUnidNegocio as varchar(1000))

   IF @pIncluirRelaciones = 0
	  SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + ' AND CC.Id_Cliente = C.Id_Cliente '
	Else
	  SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + ' AND CC.Id_Cliente = C.Id_Cliente '

   IF @pFiltrarCbtesSinTarjeta = 1

	  SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + ' AND dbo.CF_Cbtes_Por_Debito(CC.ID_Trans,1) = 0 '

--	  SET @SqlWhere = RTRIM(LTRIM(@SqlWhere)) + ' AND (CC.Id_Cliente = C.Id_Cliente  Or CC.Id_Cliente = C.Id_Cliente_Ref )'

	  SET @Sql = @SqlSelect + ' ' + @SqlInto +' '+ @SqlFrom + ' ' + @SqlWhere 
	  
	  print @Sql

	  EXEC(@sql)

  
  

--  exec dbo.CP_Clientes_Deuda -1,400,'19631222','20211231',1,1,1,'(1)'

--EXEC CP_Clientes_Deuda -1,400,'19631223','20210621',0,1,1,''




