ALTER  PROCEDURE [dbo].[sp_remCentralizacion_PRIXUS]
(
@definicion INT,
@ficini INT,
@ficfin INT,
@unineg INT,
@clasificar INT =0,
@dep INT =0,
@periodo INT = 0,
@mes INT = 0
)

AS
SET NOCOUNT ON
--DROP TABLE #TEMP_COMPRO
--DROP TABLE #TEMP_COMPROX
--DROP TABLE #TEMP_COMPRO3


--DECLARE @numdoc as varchar(10)
DECLARE @fecven as date
set @fecven=convert(date,getdate())
DECLARE @NUMERODOCTOCENTR AS bigint

set @NUMERODOCTOCENTR= ( select top 1 COALESCE((valor),0) FROM remFactores WHERE periodo=@periodo AND MES=@MES AND codigo=99)

--SELECT @fecven

--SELECT  @periodo=periodo,@mes=mes FROM remParametros
--SET @numdoc =  convert(varchar,@mes) + convert(varchar,@periodo) 
--DECLARE @vOutputDate DATETIME
--SET @vOutputDate = dateadd(mm, (@periodo - 1900) * 12 + @mes - 1 ,0)
--SET @fecven = DATEADD(DD, -1, DATEADD(M, 1, @vOutputDate))

--------------------------
--	RESULTADOS AL DEBE  --
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, ROUND(remMovimientosRM.valor,0) AS debe, 0 AS haber, 0 AS numlin, 
                      CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                       0 END AS ctacte,  item,
					   CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					    CASE WHEN conplancuentas.marcaDocumento = 1 THEN @NUMERODOCTOCENTR ELSE  0 END AS num_docto,
					    CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
					    adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                      CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
INTO #TEMP_DEBE
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosRM.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                      remMovimientosRM.ficha = remTrabajadores.ficha
WHERE     (remMovimientosRM.periodo = @periodo) 
AND (remMovimientosRM.mes = @mes) 
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.tipoConcepto = 3)                             
AND (remMovimientosRM.tipoConcepto = 'R') 
AND (remDetContabilizacion.imputacion = 1) --1 DEBE - 2 HABER
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosRM.valor,0) <> 0)
AND (remTrabajadores.activo=1)

UNION ALL

--------------------------
--	HABERES AL DEBE  --
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosHD.mes, remMovimientosHD.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, ROUND(remMovimientosHD.valor,0) AS debe, 0 AS haber, 0 AS numlin, 
                      CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                      0 END AS ctacte, item,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN remMovimientosHD.numerodocumento ELSE  0 END AS num_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
				      adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                      CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosHD AS remMovimientosHD ON remDetContabilizacion.concepto = remMovimientosHD.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosHD.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosHD.periodo = remTrabajadores.periodo AND remMovimientosHD.mes = remTrabajadores.mes AND 
                      remMovimientosHD.ficha = remTrabajadores.ficha
WHERE     (remMovimientosHD.periodo = @periodo) 
AND (remMovimientosHD.mes = @mes)
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.imputacion = 1) --1 DEBE - 2 HABER
AND (remMovimientosHD.tipoConcepto = 'H')
AND (remDetContabilizacion.tipoConcepto = 1)                             
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosHD.valor,0) <> 0)
AND (remTrabajadores.activo=1)
UNION ALL

--------------------------
--	DESCUENTOS AL DEBE  --
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosHD.mes, remMovimientosHD.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, ROUND(remMovimientosHD.valor,0) AS debe, 0 AS haber, 0 AS numlin, 
CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                       0 END AS ctacte, item, 
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN remMovimientosHD.numerodocumento ELSE  0 END AS num_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
					  adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                      CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosHD AS remMovimientosHD ON remDetContabilizacion.concepto = remMovimientosHD.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosHD.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosHD.periodo = remTrabajadores.periodo AND remMovimientosHD.mes = remTrabajadores.mes AND 
                      remMovimientosHD.ficha = remTrabajadores.ficha
WHERE     (remMovimientosHD.periodo = @periodo) 
AND (remMovimientosHD.mes = @mes)
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.imputacion = 1) --1 DEBE - 2 HABER
AND (remMovimientosHD.tipoConcepto = 'D')
AND (remDetContabilizacion.tipoConcepto = 2)                             
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosHD.valor,0) <> 0)
AND (remTrabajadores.activo=1)

--------------------------
--	RESULTADOS AL HABER --
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, 0 AS debe, ROUND(remMovimientosRM.valor,0) AS haber, 0 AS numlin, 
CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                       0 END AS ctacte, item,
					     CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					    CASE WHEN conplancuentas.marcaDocumento = 1 THEN @NUMERODOCTOCENTR ELSE  0 END AS num_docto,
					    CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
					adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                      CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
INTO #TEMP_HABER
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosRM.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                      remMovimientosRM.ficha = remTrabajadores.ficha
WHERE     (remMovimientosRM.periodo = @periodo) 
AND (remMovimientosRM.mes = @mes) 
AND (remMovimientosRM.tipoConcepto = 'R') 
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.imputacion = 2) --1 DEBE - 2 HABER
AND (remDetContabilizacion.tipoConcepto = 3) 
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosRM.valor,0) <> 0)
AND (remTrabajadores.activo=1)

UNION ALL

--------------------------
--	HABERES AL HABER	--
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosHD.mes, remMovimientosHD.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, 0 AS debe, ROUND(remMovimientosHD.valor,0) AS haber, 0 AS numlin, 
CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                       0 END AS ctacte, item, 
					   CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					   CASE WHEN conplancuentas.marcaDocumento = 1 THEN remMovimientosHD.numerodocumento ELSE  0 END AS num_docto,
					   CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
					   adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                       CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosHD AS remMovimientosHD ON remDetContabilizacion.concepto = remMovimientosHD.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosHD.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosHD.periodo = remTrabajadores.periodo AND remMovimientosHD.mes = remTrabajadores.mes AND 
                      remMovimientosHD.ficha = remTrabajadores.ficha
WHERE     (remMovimientosHD.periodo = @periodo) 
AND (remMovimientosHD.mes = @mes)
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.imputacion = 2) 
AND (remMovimientosHD.tipoConcepto = 'H')
AND (remDetContabilizacion.tipoConcepto = 1)                             
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosHD.valor,0) <> 0)
AND (remTrabajadores.activo=1)

UNION ALL

--------------------------
--	DESCUENTOS AL HABER --
--------------------------
SELECT     remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosHD.mes, remMovimientosHD.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                      0 AS tipo_documento, remDetContabilizacion.valor AS cuenta, conPlanCuentas.descripcion, 0 AS debe, ROUND(remMovimientosHD.valor,0) AS haber, 0 AS numlin, 
                      CASE WHEN conplancuentas.marcactacte = 1 THEN CASE remdetcontabilizacion.tiporut WHEN 1 THEN remTrabajadores.rut WHEN 2 THEN remdetcontabilizacion.ctacte  ELSE 0 END ELSE
                       0 END AS ctacte, item, 					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN remDetContabilizacion.tipodocumento ELSE  0 END AS tipo_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN @NUMERODOCTOCENTR ELSE  0 END AS num_docto,
					  --CASE WHEN conplancuentas.marcaDocumento = 1 THEN remMovimientosHD.numerodocumento ELSE  0 END AS num_docto,
					  CASE WHEN conplancuentas.marcaDocumento = 1 THEN @fecven ELSE  '' END AS vencimiento,
					  adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                      CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, '' AS glosa_linea,remdetcontabilizacion.tipodocumento
,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM         remDetContabilizacion INNER JOIN
                      remMovimientosHD ON remDetContabilizacion.concepto = remMovimientosHD.idConcepto INNER JOIN
                      conPlanCuentas ON remMovimientosHD.periodo = conPlanCuentas.periodo AND remDetContabilizacion.valor = conPlanCuentas.cuenta INNER JOIN
                      remTrabajadores ON remMovimientosHD.periodo = remTrabajadores.periodo AND remMovimientosHD.mes = remTrabajadores.mes AND 
                      remMovimientosHD.ficha = remTrabajadores.ficha
WHERE     (remMovimientosHD.periodo = @periodo) 
AND (remMovimientosHD.mes = @mes)
AND (remDetContabilizacion.codigo = @definicion)                             
AND (remDetContabilizacion.imputacion = 2) --1 DEBE - 2 HABER
AND (remMovimientosHD.tipoConcepto = 'D')
AND (remDetContabilizacion.tipoConcepto = 2)                             
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosHD.valor,0) <> 0)
AND (remTrabajadores.activo=1)

ORDER BY n


--SELECT * FROM #TEMP_debe


--select @periodo
--select @mes

--	TABLA ASOCIADA AFP


SELECT        remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                         0 AS tipo_documento, conPlanCuentas.cuenta AS cuenta,conPlanCuentas.descripcion, 
						 CASE remDetContabilizacion.imputacion WHEN 1 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS debe, 
                         CASE remDetContabilizacion.imputacion WHEN 2 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS haber, 0 AS numlin, 
                         CASE WHEN conplancuentas.marcactacte = 1 THEN remPrevisiones.rut ELSE 0 END AS ctacte, remDetContabilizacion.item, 0 AS tipo_docto, 0 AS num_docto, '' AS vencimiento, remDetContabilizacion.adicional AS analisis, 0 AS moneda, 
                         0 AS tipo_cambio, CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, 
						 remPrevisiones.descripcion AS glosa_linea, 
                         remDetContabilizacion.tipodocumento,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
INTO #ISAPREAFP
FROM            remDetContabilizacion INNER JOIN
                         remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                         remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                         remMovimientosRM.ficha = remTrabajadores.ficha INNER JOIN
                         conPlanCuentas ON remMovimientosRM.periodo = conPlanCuentas.periodo INNER JOIN
                         remPrevisiones ON remTrabajadores.periodo = remPrevisiones.periodo AND remTrabajadores.mes = remPrevisiones.mes AND 
                         remTrabajadores.regimenPrevisional = remPrevisiones.idRegimen AND remTrabajadores.idPrevision = remPrevisiones.idPrevision AND 
                         conPlanCuentas.cuenta = remPrevisiones.ctaContable
WHERE        (remMovimientosRM.tipoConcepto = 'R')
 AND (remDetContabilizacion.codigo = @definicion) 
 AND (remDetContabilizacion.tipoConcepto = 3)
 AND (remDetContabilizacion.cuentaTabla =2)
 AND (remDetContabilizacion.valor = 2)
 AND (remMovimientosRM.periodo = @periodo) 
 AND (remMovimientosRM.mes = @mes) 
 AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
 AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
 AND (departamento=@dep OR @dep=0)
 AND (ROUND(remMovimientosRM.valor,0) <> 0)
 AND (remTrabajadores.activo=1)

 UNION ALL
 --- INICIO TABLA ASOCIADA AFP AHORRO  08/04/2015
 SELECT        remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                         0 AS tipo_documento, conPlanCuentas.cuenta, conPlanCuentas.descripcion, 
                         CASE remDetContabilizacion.imputacion WHEN 1 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS debe, 
                         CASE remDetContabilizacion.imputacion WHEN 2 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS haber, 0 AS numlin, 
                         CASE WHEN conplancuentas.marcactacte = 1 THEN remPrevisiones.rut ELSE 0 END AS ctacte, remDetContabilizacion.item, 0 AS tipo_docto, 0 AS num_docto, 
                         '' AS vencimiento, remDetContabilizacion.adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                         CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio, 
						 remPrevisiones.descripcion AS glosa_linea, 
                         remDetContabilizacion.tipodocumento,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM            remDetContabilizacion INNER JOIN
                         remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                         remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                         remMovimientosRM.ficha = remTrabajadores.ficha INNER JOIN
                         conPlanCuentas ON remMovimientosRM.periodo = conPlanCuentas.periodo INNER JOIN
                         remPrevisiones ON remTrabajadores.periodo = remPrevisiones.periodo AND remTrabajadores.mes = remPrevisiones.mes AND 
                         conPlanCuentas.cuenta = remPrevisiones.ctaContable AND remTrabajadores.PrevisionCuenta2 = remPrevisiones.idPrevision

WHERE        (remMovimientosRM.tipoConcepto = 'R')
 AND (remDetContabilizacion.codigo = @definicion) 
 AND (remDetContabilizacion.tipoConcepto = 3)
 AND (remDetContabilizacion.cuentaTabla =2)
 AND (remDetContabilizacion.valor = 3)
 AND (remMovimientosRM.periodo = @periodo) 
 AND (remMovimientosRM.mes = @mes) 
 AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
 AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
 AND (departamento=@dep OR @dep=0)
 AND (ROUND(remMovimientosRM.valor,0) <> 0)
 AND (remTrabajadores.activo=1)
 AND (remPrevisiones.idRegimen = 1)
 --- FIN TABLA ASOCIADA AFP AHORRO  08/04/2015

  UNION ALL
  --- INICIO TABLA ASOCIADA AFP AHORRO  idApvI1 08/04/2015
 SELECT        remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                         0 AS tipo_documento, conPlanCuentas.cuenta, conPlanCuentas.descripcion, 
                         CASE remDetContabilizacion.imputacion WHEN 1 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS debe, 
                         CASE remDetContabilizacion.imputacion WHEN 2 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END AS haber, 0 AS numlin, 
                         CASE WHEN conplancuentas.marcactacte = 1 THEN remPrevisiones.rut ELSE 0 END AS ctacte, remDetContabilizacion.item, 0 AS tipo_docto, 0 AS num_docto, 
                         '' AS vencimiento, remDetContabilizacion.adicional AS analisis, 0 AS moneda, 0 AS tipo_cambio, 
                         CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio,
						 remPrevisiones.descripcion AS glosa_linea,remDetContabilizacion.tipodocumento,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM            remDetContabilizacion INNER JOIN
                         remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                         remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                         remMovimientosRM.ficha = remTrabajadores.ficha INNER JOIN
                         conPlanCuentas ON remMovimientosRM.periodo = conPlanCuentas.periodo INNER JOIN
                         remPrevisiones ON remTrabajadores.periodo = remPrevisiones.periodo AND remTrabajadores.mes = remPrevisiones.mes AND 
                         conPlanCuentas.cuenta = remPrevisiones.ctaContable AND remTrabajadores.idApvI1 = remPrevisiones.idPrevision

WHERE        (remMovimientosRM.tipoConcepto = 'R')
 AND (remDetContabilizacion.codigo = @definicion) 
 AND (remDetContabilizacion.tipoConcepto = 3)
 AND (remDetContabilizacion.cuentaTabla =2)
 AND (remDetContabilizacion.valor = 4)
 AND (remMovimientosRM.periodo = @periodo) 
 AND (remMovimientosRM.mes = @mes) 
 AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
 AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
 AND (departamento=@dep OR @dep=0)
 AND (ROUND(remMovimientosRM.valor,0) <> 0)
 AND (remTrabajadores.activo=1)
 AND (remPrevisiones.idRegimen = 1)






UNION ALL

--	TABLA ASOCIADA ISAPRE
SELECT        remDetContabilizacion.concepto AS n, 0 AS tipo_ingreso, remMovimientosRM.mes, remMovimientosRM.periodo, 0 AS correlativo, 0 AS linea, 0 AS concepto, 
                         0 AS tipo_documento, conPlanCuentas.cuenta AS cuenta,conPlanCuentas.descripcion,
CASE remDetContabilizacion.imputacion  WHEN 1 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END as debe, 						
CASE remDetContabilizacion.imputacion  WHEN 2 THEN ROUND(remMovimientosRM.valor,0) ELSE 0 END as haber, 
						   0 AS numlin,
                           CASE WHEN conplancuentas.marcactacte = 1 THEN remIsapre.rut ELSE 0 END AS ctacte, remDetContabilizacion.item, 0 AS tipo_docto, 0 AS num_docto, '' AS vencimiento, remDetContabilizacion.adicional AS analisis, 0 AS moneda, 
                         0 AS tipo_cambio, CASE WHEN conplancuentas.marcaNegocio = 1 THEN remTrabajadores.unidadNegocios ELSE 0 END AS uni_negocio,
						 remIsapre.descripcion AS glosa_linea,remDetContabilizacion.tipodocumento,remTrabajadores.ficha,remTrabajadores.tipoJornada,remTrabajadores.cantidadHoras
FROM            remDetContabilizacion INNER JOIN
                         remMovimientosRM ON remDetContabilizacion.concepto = remMovimientosRM.idConcepto INNER JOIN
                         remTrabajadores ON remMovimientosRM.periodo = remTrabajadores.periodo AND remMovimientosRM.mes = remTrabajadores.mes AND 
                         remMovimientosRM.ficha = remTrabajadores.ficha INNER JOIN
                         remIsapre ON remTrabajadores.instSalud = remIsapre.idIsapre AND remTrabajadores.periodo = remIsapre.periodo AND 
                         remTrabajadores.mes = remIsapre.mes INNER JOIN
                         conPlanCuentas ON remIsapre.ctacontable = conPlanCuentas.cuenta AND remMovimientosRM.periodo = conPlanCuentas.periodo
WHERE  (remMovimientosRM.tipoConcepto = 'R')
AND (remDetContabilizacion.codigo = @definicion)
AND (remDetContabilizacion.tipoConcepto = 3) 
AND (remDetContabilizacion.cuentaTabla = 2)
AND remDetContabilizacion.valor=1
AND (remMovimientosRM.periodo = @periodo) 
AND (remMovimientosRM.mes = @mes) 
AND (remTrabajadores.ficha BETWEEN @ficini AND @ficfin)
AND (remTrabajadores.unidadNegocios = @unineg OR @unineg = 0)
AND (departamento=@dep OR @dep=0)
AND (ROUND(remMovimientosRM.valor,0) <> 0)
AND (remTrabajadores.activo=1)


--select * from  #TEMP_DEBE

----TABLA DEBE AGRUPADA
IF @clasificar=1 
BEGIN 
            ---<CLASIFICACION DEBE

            SELECT *
			,dbo.RemDiasTrabajo(#TEMP_DEBE.ficha,#TEMP_DEBE.periodo, #TEMP_DEBE.mes, #TEMP_DEBE.tipoJornada) as RemDiasTrabajo
			INTO #TEMP_DEBE2 FROM #TEMP_DEBE
								
			SELECT    0 AS orden, n, tipo_ingreso,  #TEMP_DEBE2.mes,  #TEMP_DEBE2.periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,
			CASE WHEN CLA.tipo=0 
			THEN debe / nullif(RemDiasTrabajo,0) * CLA.valor
			ELSE debe / nullif(cantidadHoras,0) * CLA.valor END as debe, haber AS haber, numlin,ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			CASE WHEN uni_negocio > 0 THEN CLA.unidadnegocio ELSE 0 END AS uni_negocio, glosa_linea,tipodocumento, #TEMP_DEBE2.ficha
			INTO #A
			FROM           #TEMP_DEBE2 INNER JOIN
			remCentralizacionClasificacion CLA ON  #TEMP_DEBE2.periodo = CLA.periodo AND 
			#TEMP_DEBE2.mes = CLA.mes AND #TEMP_DEBe2.ficha =CLA.ficha
			WHERE CASE WHEN CLA.tipo=0 then cantidadHoras ELSE RemDiasTrabajo END > 0
			AND cantidadHoras > 0
			AND CLA.valor > 0	

			UNION ALL

			SELECT    0 AS orden, n, tipo_ingreso,  #TEMP_DEBE2.mes,  #TEMP_DEBE2.periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,
			debe, haber AS haber, numlin,ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN  num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN  vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, glosa_linea,tipodocumento, #TEMP_DEBE2.ficha
			FROM #TEMP_DEBE2
			WHERE cantidadHoras = 0
			ORDER BY cuenta 
								
			SELECT    0 AS orden,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,ROUND(SUM(coalesce(debe,0)),0) AS debe, haber AS haber, numlin, 
			ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '1900-01-01' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, 
			COALESCE((SELECT descripcion FROM conItem WHERE codigo =item),'') as glosa_linea,
			tipodocumento
			FROM #A
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								tipo_documento, cuenta, descripcion, numlin, 
								ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								uni_negocio, glosa_linea,tipodocumento,haber

 
		   
		    --->



		    ---<CLASIFICACION HABER
			SELECT *
			,dbo.RemDiasTrabajo(ficha,periodo,mes,tipoJornada) as RemDiasTrabajo
			INTO #TEMP_HABER2 FROM #TEMP_HABER

		    SELECT    1 AS orden, n, tipo_ingreso,#TEMP_HABER2.mes,#TEMP_HABER2.periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,
			0 as debe,
			CASE WHEN CLA.tipo=0 
		    THEN haber / nullif(dbo.RemDiasTrabajo(#TEMP_HABER2.ficha,  #TEMP_HABER2.periodo, #TEMP_HABER2.mes, #TEMP_HABER2.tipoJornada),0) * CLA.valor
			ELSE  haber / nullif(cantidadHoras,0) * CLA.valor END as haber , numlin,ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			CASE WHEN uni_negocio > 0 THEN CLA.unidadnegocio ELSE 0 END AS uni_negocio, glosa_linea,tipodocumento, #TEMP_HABER2.ficha
			INTO #B
			FROM           #TEMP_HABER2 INNER JOIN
			remCentralizacionClasificacion CLA ON  #TEMP_HABER2.periodo = CLA.periodo AND 
			#TEMP_HABER2.mes = CLA.mes AND #TEMP_HABER2.ficha =CLA.ficha
		    WHERE CASE WHEN CLA.tipo=0 then cantidadHoras ELSE RemDiasTrabajo END > 0
			AND cantidadHoras > 0
			AND CLA.valor > 0	

			UNION ALL

		    SELECT    1 AS orden, n, tipo_ingreso,#TEMP_HABER2.mes,#TEMP_HABER2.periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,
			0 as debe,haber , numlin,ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, glosa_linea,tipodocumento, #TEMP_HABER2.ficha
			FROM  #TEMP_HABER2
		   	WHERE cantidadHoras = 0
			ORDER BY cuenta 



		    SELECT    1 AS orden,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,0 AS debe, ROUND(SUM(coalesce(haber,0)),0) AS haber, 
			numlin, 
			ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, 
			COALESCE((SELECT descripcion FROM conItem WHERE codigo =item),'') as glosa_linea,
			tipodocumento
			FROM #B
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								tipo_documento, cuenta, descripcion, numlin, 
								ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								uni_negocio, glosa_linea,tipodocumento

            
			----TABLA AFP/ISAPRE AGRUPADA
			
			
			SELECT  2 AS orden ,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion, SUM(debe) AS debe, SUM(haber) AS haber, numlin, 
			ctacte,
			 item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, glosa_linea,tipodocumento,cantidadHoras,ficha
			,dbo.RemDiasTrabajo(ficha,periodo,mes,tipoJornada) as RemDiasTrabajo
			INTO #ISAPREAFP2 
			FROM #ISAPREAFP
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								  tipo_documento, cuenta, descripcion, numlin, 
								  ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								  uni_negocio, glosa_linea,tipodocumento,ficha,tipojornada,cantidadHoras
							
			
			SELECT    2 AS orden, tipo_ingreso, #ISAPREAFP2.mes, #ISAPREAFP2.periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,
			ROUND(CASE WHEN CLA.tipo=0 THEN debe / nullif(RemDiasTrabajo,0) * CLA.valor ELSE debe / nullif(cantidadHoras,0) * CLA.valor END,0) as debe,
			ROUND(CASE WHEN CLA.tipo=0 THEN haber / nullif(RemDiasTrabajo,0) * CLA.valor ELSE haber / nullif(cantidadHoras,0) * CLA.valor END,0)AS haber,
		    numlin,ctacte, item,tipodocumento as tipo_docto,
			0  AS num_docto, 
			'01-01-1900'  AS vencimiento,
			analisis, moneda, tipo_cambio, 
			CASE WHEN uni_negocio > 0 THEN CLA.unidadnegocio ELSE 0 END AS uni_negocio, glosa_linea,tipodocumento, #ISAPREAFP2.ficha
			INTO #ISAPREAFP3
			FROM           #ISAPREAFP2 INNER JOIN
			remCentralizacionClasificacion CLA ON  #ISAPREAFP2.periodo = CLA.periodo AND 
			#ISAPREAFP2.mes = CLA.mes AND #ISAPREAFP2.ficha =CLA.ficha
			WHERE CASE WHEN CLA.tipo=0 then cantidadHoras ELSE RemDiasTrabajo END > 0
			AND cantidadHoras > 0
		    AND CLA.valor > 0	

			SELECT  2 AS orden ,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			0 as tipo_documento, cuenta, descripcion,ROUND(SUM(debe),0) AS debe, ROUND(SUM(haber),0) AS haber, numlin, 
			ctacte,
			 item,0 as tipo_docto,
			num_docto, 
			vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio,'' as  glosa_linea,0 as tipodocumento
			FROM #ISAPREAFP3
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion, numlin,ctacte, item, tipo_docto,
			num_docto, vencimiento,	analisis, moneda, tipo_cambio, 
			uni_negocio
								


			
		
END

IF @clasificar=0
BEGIN 

			SELECT    0 AS orden,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion,SUM(debe) AS debe, haber AS haber, numlin, 
			ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '1900-01-01' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, 
			COALESCE((SELECT descripcion FROM conItem WHERE codigo =item),'') as glosa_linea,
			tipodocumento
			FROM #TEMP_DEBE
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								tipo_documento, cuenta, descripcion, numlin, 
								ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								uni_negocio, glosa_linea,tipodocumento,haber


								----TABLA HABER AGRUPADA

			SELECT    1 AS orden, tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion, SUM(debe) AS debe, SUM(haber) AS haber, numlin, 
			ctacte, item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '1900-01-01' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, COALESCE((SELECT descripcion FROM conItem WHERE codigo =item),'') as glosa_linea,
			tipodocumento
			FROM #TEMP_HABER
			GROUP BY  tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								tipo_documento, cuenta, descripcion, numlin, 
								ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								uni_negocio, glosa_linea,tipodocumento


           
			----TABLA AFP/ISAPRE AGRUPADA

			SELECT    2 AS orden ,tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
			tipo_documento, cuenta, descripcion, SUM(debe) AS debe, SUM(haber) AS haber, numlin, 
			ctacte,
			 item,tipodocumento as tipo_docto,
			CASE WHEN  tipodocumento > 0 THEN num_docto ELSE 0 END AS num_docto, 
			CASE WHEN  tipodocumento > 0 THEN vencimiento ELSE '1900-01-01' END AS vencimiento,
			analisis, moneda, tipo_cambio, 
			uni_negocio, glosa_linea,tipodocumento
			FROM #ISAPREAFP
			GROUP BY tipo_ingreso, mes, periodo, correlativo, linea, concepto, 
								  tipo_documento, cuenta, descripcion, numlin, 
								  ctacte, item, tipo_docto, num_docto, vencimiento, analisis, moneda, tipo_cambio, 
								  uni_negocio, glosa_linea,tipodocumento
			ORDER BY orden, uni_negocio


END