--DIMM compras SERVICIOS = 1, INVENTARIO = 3
SELECT a.proveedor_id, a.valor_doc,
case when (valor_doc >=1000)then '02' end formapago,
--CONCAT('compra',rownum)Codigo_compra,
decode(length(rownum),1,CONCAT('compra00',rownum),
decode(length(rownum),2,CONCAT('compra0',rownum),
decode(length(rownum),3,CONCAT('compra',rownum),
decode(length(rownum),4,CONCAT('compra',rownum)))))Codigo_compra1,
decode(d.CREDTRIB_ID,1,'01',6,'06')codigo_Sustento,
DECODE(LENGTH(B.RUC_CEDULA),13,'01',10,'02',8,'03')TipoiDproveedor,
B.RUC_CEDULA Nro_Identificación_Proveedor,
DECODE(A.TIPODOC_ID,'FAC','01','NC','04') Codigo_Tipo_Comprobante,
null Tipo_Proveedor,null Parte_Relacionada,to_char(a.fecha_con,'dd/mm/rrrr') Fecha_Registra,
substr(a.seriedocxp ,1,3)Establecimiento, substr(a.seriedocxp ,4,6)PuntodeEmision,a.NUMDOCXP Secuencial,
to_char(A.FECHA_EMI,'dd/mm/rrrr')Fecha_Emision, b.N_AUTORIZACION Nro_AUTORIZACION,
0 Base_Imponibl_no_objeto_IVA,a.BASE_IVA_IGUAL_0 Base_IVA_imponible_0,a.BASE_IVA_MAYOR_0 Base_imponible_12,
0 Monto_ICE,a.valor_iva Monto_IVA,
CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'I')RetencionIVAbienes30,
CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'N')RetencionIVAservicios70,
0 RetencionIVAservicios100,
decode(E.PAIS_ID,'EC','01','02')Pagolocaloenexterior,'N/A' País_pago,'N/A' Aplica_tribut,'N/A'PagoNormaLegal,
substr(E.SERIE_COMPRET,1,3)Establecimiento2,
substr(E.SERIE_COMPRET,4,6)Puntodeemsión, a.retencion Secuencial,
e.NOAUTO_COMPRET NúmerodeAutorización2,to_char(A.FECHA_EMI,'dd/mm/rrrr') Fechaemisioncomprobante,
decode(A.TIPODOC_ID_REF,'FAC','01','SI','01') CódigoTipodoc,
substr(A.SERIEDOCXP_REF,1,3)Establecimiento,
substr(A.SERIEDOCXP_REF,4,6)PuntodeEmision,
A.NUMDOCXP_REF Secuencial2_nc,
a.NO_AUTO_REF Autorizacion,
null TIPO_RETEN, null BASE_APLICA, 0 numdocxp,
null COnceptodeRetencion,
0 BASERETTOTAL,
null PorcentajeRetencion,0 MontoRetencion
FROM CXP_TRANSACC A, CXP_PROVEEDORES B, cxp_coa D, g_empresa E
WHERE A.EMPRESA_ID = B.EMPRESA_ID
AND A.PROVEEDOR_ID = B.PROVEEDOR_ID
and a.empresa_id = d.empresa_id
and a.tipodoc_id = d.tipodoc_id
and a.proveedor_id = d.proveedor_id
and a.numdocxp = d.numdocxp
and a.empresa_id = e.empresa_id
AND A.ESTADO = 'C'
AND TRUNC(A.FECHA_EMI) BETWEEN '01-ENE-13' AND '31-ENE-13'
AND A.ESTADO <> 'A'
AND A.ESTADO = 'C'
AND A.TIPODOC_ID IN ('FAC','NC')
union all
--mismo select + RETENCIONES
select distinct a.proveedor_id, a.valor_doc,
case when (valor_doc >=1000)then '02' end formapago,
--CONCAT('compra',rownum)Codigo_compra,
decode(length(rownum),1,CONCAT('compra00',rownum),
decode(length(rownum),2,CONCAT('compra0',rownum),
decode(length(rownum),3,CONCAT('compra',rownum),
decode(length(rownum),4,CONCAT('compra',rownum)))))Codigo_compra1,
decode(d.CREDTRIB_ID,1,'01',6,'06')codigo_Sustento,
DECODE(LENGTH(B.RUC_CEDULA),13,'01',10,'02',8,'03')TipoiDproveedor,
B.RUC_CEDULA Nro_Identificación_Proveedor,
DECODE(A.TIPODOC_ID,'FAC','01','NC','04') Codigo_Tipo_Comprobante,
null Tipo_Proveedor,null Parte_Relacionada,to_char(a.fecha_con,'dd/mm/rrrr') Fecha_Registra,
substr(a.seriedocxp ,1,3)Establecimiento, substr(a.seriedocxp ,4,6)PuntodeEmision,a.NUMDOCXP Secuencial,
to_char(A.FECHA_EMI,'dd/mm/rrrr')Fecha_Emision, b.N_AUTORIZACION Nro_AUTORIZACION,
0 Base_Imponibl_no_objeto_IVA,a.BASE_IVA_IGUAL_0 Base_IVA_imponible_0,a.BASE_IVA_MAYOR_0 Base_imponible_12,
0 Monto_ICE,a.valor_iva Monto_IVA,
CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'I')RetencionIVAbienes30,
CUENTAS_X_PAGAR.obt_valRetencionPorTipo(A.EMPRESA_ID,A.PROVEEDOR_ID,A.TIPODOC_ID,A.NUMDOCXP,'N')RetencionIVAservicios70,
0 RetencionIVAservicios100,
decode(E.PAIS_ID,'EC','01','02')Pagolocaloenexterior,'N/A' País_pago,'N/A' Aplica_tribut,'N/A'PagoNormaLegal,
substr(E.SERIE_COMPRET,1,3)Establecimiento2,
substr(E.SERIE_COMPRET,4,6)Puntodeemsión, a.retencion Secuencial,
e.NOAUTO_COMPRET NúmerodeAutorización2,to_char(A.FECHA_EMI,'dd/mm/rrrr') Fechaemisioncomprobante,
decode(A.TIPODOC_ID_REF,'FAC','01','SI','01') CódigoTipodoc,
substr(A.SERIEDOCXP_REF,1,3)Establecimiento,
substr(A.SERIEDOCXP_REF,4,6)PuntodeEmision,
A.NUMDOCXP_REF Secuencial2_nc,
a.NO_AUTO_REF Autorizacion,
F.TIPO_RETEN,F.BASE_APLICA,a.numdocxp,
c.retencion_id COnceptodeRetencion,
nvl(BASE,0) + nvl(BASE_0,0) BASERETTOTAL,
f.PORETEN PorcentajeRetencion,c.valor_let MontoRetencion
FROM CXP_TRANSACC A, CXP_PROVEEDORES B,CXP_DETRANS c,cxp_coa D, g_empresa E, g_tiposreten F
WHERE A.EMPRESA_ID = B.EMPRESA_ID
AND A.PROVEEDOR_ID = B.PROVEEDOR_ID
AND A.EMPRESA_ID = C.EMPRESA_ID(+)
AND A.PROVEEDOR_ID = C.PROVEEDOR_ID(+)
AND A.TIPODOC_ID = C.TIPODOC_ID(+)
AND A.NUMDOCXP = C.NUMDOCXP(+)
and c.empresa_id = f.empresa_id
and c.retencion_id = f.retencion_id
and a.empresa_id = d.empresa_id
and a.tipodoc_id = d.tipodoc_id
and a.proveedor_id = d.proveedor_id
and a.numdocxp = d.numdocxp
and a.empresa_id = e.empresa_id
--AND A.ESTADO = 'C'
AND A.TIPODOC_ID IN ('FAC','NC')
AND TRUNC(A.FECHA_EMI) BETWEEN '01-ene-13' AND '31-ene-13'
AND A.ESTADO <> 'A'
AND TIPOSERVTA_ID IN ('1','3')
AND A.ESTADO = 'C'
AND F.BASE_APLICA <> 'I'
ORDER BY Codigo_compra1--,A.FECHA_EMI,A.NUMDOCXP,A.TIPODOC_ID