ALTER       PROCEDURE [dbo].[sp_cyvDocumento_Detalle]
(
 @tipo_ingreso int
,@mes int
,@periodo int
,@tipo_documento int
,@correlativo bigint
,@origen   int=0,
@rut int 
)

AS
IF @tipo_ingreso= 1
BEGIN

IF @origen<> 2 AND @origen <> 3
BEGIN
SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes, cyvEncabezado.periodo, cyvEncabezado.correlativo, cyvEncabezado.tipo_documento,cyvDetalle.linea, cyvDetalle.concepto, 
                      cyvDetalle.cuenta, cyvDetalle.monto, cyvDetalle.glosa_linea, cyvDetalle.codigo_impuesto, cyvDetalle.ctacte, cyvDetalle.item, cyvDetalle.tipo_docto, 
                      cyvDetalle.num_docto, cyvDetalle.vencimiento, cyvDetalle.analisis, cyvDetalle.uni_negocio, cyvDetalle.moneda, cyvDetalle.tasa_cambio, cyvDetalle.grupo, 
                      cyvDetalle.flujo, cyvDetalle.loging, cyvDetalle.fecing, cyvDetalle.logmod, cyvDetalle.fecmod, conCtacte.rutcte, conCtacte.digcte, conCtacte.nomcte,
                      '' as concepto_desc,'' as cuenta_desc,descripcionfactura

FROM         cyvDetalle INNER JOIN
                      cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso AND cyvDetalle.mes = cyvEncabezado.mes AND 
                      cyvDetalle.periodo = cyvEncabezado.periodo AND cyvDetalle.correlativo = cyvEncabezado.correlativo AND 
                      cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento INNER JOIN
                      conCtacte ON cyvEncabezado.rut = conCtacte.rutcte
WHERE  cyvEncabezado.tipo_ingreso=1
AND cyvEncabezado.mes=@mes 
AND cyvEncabezado.periodo=@periodo
AND cyvEncabezado.correlativo =@correlativo
AND cyvEncabezado.tipo_documento =@tipo_documento

END

IF @origen=2
BEGIN

SELECT        cyvEncabezado.tipo_ingreso, cyvEncabezado.mes, cyvEncabezado.periodo, cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, cyvDetalle.linea, 
                         cyvDetalle.concepto, cyvDetalle.cuenta, cyvDetalle.monto, cyvDetalle.glosa_linea, cyvDetalle.codigo_impuesto, cyvDetalle.ctacte, cyvDetalle.item, 
                         cyvDetalle.tipo_docto, cyvDetalle.num_docto, cyvDetalle.vencimiento, cyvDetalle.analisis, cyvDetalle.uni_negocio, cyvDetalle.moneda, cyvDetalle.tasa_cambio, 
                         cyvDetalle.grupo, cyvDetalle.flujo, cyvDetalle.loging, cyvDetalle.fecing, cyvDetalle.logmod, cyvDetalle.fecmod, conCtacte.rutcte, conCtacte.digcte, conCtacte.nomcte, 
                         '' AS concepto_desc, '' AS cuenta_desc,descripcionfactura
FROM            cyvDetalleTemp AS cyvDetalle INNER JOIN
                         cyvEncabezadoTemp AS cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso AND cyvDetalle.mes = cyvEncabezado.mes AND 
                         cyvDetalle.periodo = cyvEncabezado.periodo AND cyvDetalle.correlativo = cyvEncabezado.correlativo AND 
                         cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento INNER JOIN
                         conCtacte ON cyvEncabezado.rut = conCtacte.rutcte
WHERE  cyvEncabezado.tipo_ingreso=1
AND cyvEncabezado.mes=@mes 
AND cyvEncabezado.periodo=@periodo
AND cyvEncabezado.correlativo =@correlativo
AND cyvEncabezado.tipo_documento =@tipo_documento
AND cyvEncabezado.rut =@rut
END

END 

IF @origen = 3
BEGIN
SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes, cyvEncabezado.periodo, cyvEncabezado.correlativo, cyvEncabezado.tipo_documento,cyvDetalle.linea, cyvDetalle.concepto, 
                      cyvDetalle.cuenta, cyvDetalle.monto, cyvDetalle.glosa_linea, cyvDetalle.codigo_impuesto, cyvDetalle.ctacte, cyvDetalle.item, cyvDetalle.tipo_docto, 
                      cyvDetalle.num_docto, cyvDetalle.vencimiento, cyvDetalle.analisis, cyvDetalle.uni_negocio, cyvDetalle.moneda, cyvDetalle.tasa_cambio, cyvDetalle.grupo, 
                      cyvDetalle.flujo, cyvDetalle.loging, cyvDetalle.fecing, cyvDetalle.logmod, cyvDetalle.fecmod, conCtacte.rutcte, conCtacte.digcte, conCtacte.nomcte,
                      '' as concepto_desc,'' as cuenta_desc,descripcionfactura

FROM         cyvDetalle INNER JOIN
                      cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso AND cyvDetalle.mes = cyvEncabezado.mes AND 
                      cyvDetalle.periodo = cyvEncabezado.periodo AND cyvDetalle.correlativo = cyvEncabezado.correlativo AND 
                      cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento INNER JOIN
                      conCtacte ON cyvEncabezado.rut = conCtacte.rutcte
WHERE  cyvEncabezado.tipo_ingreso=1
AND cyvEncabezado.mes=@mes 
AND cyvEncabezado.periodo=@periodo
AND cyvEncabezado.num_documento =@correlativo
AND cyvEncabezado.tipo_documento =@tipo_documento

END

IF @tipo_ingreso= 2
BEGIN
SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes, cyvEncabezado.periodo, cyvEncabezado.correlativo, cyvEncabezado.tipo_documento,cyvDetalle.linea, cyvDetalle.concepto, 
                      cyvDetalle.cuenta, cyvDetalle.monto, cyvDetalle.glosa_linea, cyvDetalle.codigo_impuesto, cyvDetalle.ctacte, cyvDetalle.item, cyvDetalle.tipo_docto, 
                      cyvDetalle.num_docto, cyvDetalle.vencimiento, cyvDetalle.analisis, cyvDetalle.uni_negocio, cyvDetalle.moneda, cyvDetalle.tasa_cambio, cyvDetalle.grupo, 
                      cyvDetalle.flujo, cyvDetalle.loging, cyvDetalle.fecing, cyvDetalle.logmod, cyvDetalle.fecmod, conCtacte.rutcte, conCtacte.digcte, conCtacte.nomcte,
                      '' as concepto_desc,'' as cuenta_desc,descripcionfactura

FROM         cyvDetalle INNER JOIN
                      cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso AND cyvDetalle.mes = cyvEncabezado.mes AND 
                      cyvDetalle.periodo = cyvEncabezado.periodo AND cyvDetalle.correlativo = cyvEncabezado.correlativo AND 
                      cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento INNER JOIN
                      conCtacte ON cyvEncabezado.rut = conCtacte.rutcte
WHERE  cyvEncabezado.tipo_ingreso=2
AND cyvEncabezado.tipo_documento =@tipo_documento
AND cyvEncabezado.correlativo =@correlativo
END