ALTER PROCEDURE [dbo].[sp_cyvDetCta]
(@tipo INT = 1, --1=Compra | 2=Venta 
 @periodo INT,
 @mes INT,
 @porfecdoc INT = 0, --0=mes y periodo | 1= Rango de fechas
 @fecini DATE = '01-01-1900',
 @fecfin DATE = '01-01-2050',
 @contabilizado INT = 0, --0=Todos | 1=Contabilizado | 2 = noContabilizado,
 @concepto INT= 0,
 @tipdoc INT = 0,
 @unineg INT = -1,
 @rut INT = 0
)

AS

SELECT
	cyvDetalle.mes,
	cyvDetalle.periodo,
	cyvDetalle.correlativo AS correl,
	COALESCE(venDocumentos.alias_doc, 'NO DEFINIDO') AS tipdoc,
	cyvEncabezado.num_documento AS numdoc,
	cyvEncabezado.Rut AS rut,
	conCtacte.nomcte AS cliente,
	CONVERT(VARCHAR,cyvEncabezado.fecha_ing, 103) AS fecdoc,
	cyvDetalle.glosa_linea as glosa,
	ISNULL(conTipoComprobante.descripcion,'N/A') as tipcom,
	cyvEncabezado.num_compro as numcom,

	CASE concepto
		WHEN 1 THEN 'AFECTO'
		WHEN 2 THEN 'EXENTO'
		WHEN 3 THEN 'IVA'
		WHEN 4 THEN 'IMPUESTO ADICIONAL'
		WHEN 5 THEN 'IMPUESTO ESPECIFICO'
		WHEN 6 THEN 'RETENCIÓN'
		WHEN 7 THEN 'IVA NO RECUPERADO'
		WHEN 8 THEN 'TOTAL'		
		ELSE  'N/A' 
		END AS concepto,

	CONVERT(DECIMAL(18,4),cyvDetalle.monto) AS monto,
	cyvdetalle.cuenta,
	conPlanCuentas.descripcion,
	convert(varchar, cyvDetalle.uni_negocio)  + '-' +   ISNULL(conUnidadNegocio.descripcion, 'N/A') AS unineg,
	convert(varchar, cyvDetalle.item)  + '-' +   ISNULL(conItem.descripcion, 'N/A') AS item,
	venDocumentos.codsii as codtipodoc

FROM CyVEncabezado
 INNER JOIN cyvDetalle ON cyvDetalle.tipo_ingreso= cyvEncabezado.tipo_ingreso
				      AND cyvDetalle.tipo_documento=cyvEncabezado.tipo_documento
					  AND cyvDetalle.mes= cyvEncabezado.mes
				      AND cyvDetalle.periodo=cyvEncabezado.periodo
					  AND cyvDetalle.correlativo=cyvEncabezado.correlativo
 INNER JOIN conCtacte ON cyvEncabezado.rut = conCtacte.rutcte	
 LEFT JOIN venDocumentosSii   ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii
 LEFT JOIN venDocumentos      ON venDocumentosSii.codsii = venDocumentos.codsii 
 LEFT JOIN conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo 
 LEFT JOIN conPlanCuentas     ON cyvDetalle.cuenta= conPlanCuentas.cuenta
						     AND conPlanCuentas.periodo= cyvDetalle.periodo
 LEFT JOIN conUnidadNegocio   ON conUnidadNegocio.idUniNeg= cyvDetalle.uni_negocio
 LEFT JOIN conItem ON cyvDetalle.item= conItem.codigo 

 WHERE	
	cyvEncabezado.tipo_ingreso = @tipo
	AND ((@porfecdoc = 0 AND cyvDetalle.periodo=@periodo AND cyvDetalle.mes = @mes) OR (@porfecdoc = 1 AND CONVERT(DATE,cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin))
	AND	(cyvDetalle.concepto = @concepto OR @concepto = 0)
	AND (cyvEncabezado.tipo_documento = @tipdoc OR @tipdoc = 0)
	AND (cyvDetalle.uni_negocio = @unineg or @unineg = -1)
	AND (cyvEncabezado.Rut=@rut or @rut=0)
	AND (@contabilizado=0 OR @contabilizado=1 OR  cyvEncabezado.tc = 0)
	AND (@contabilizado=0 OR @contabilizado=2 OR  cyvEncabezado.tc > 0)