diff --git a/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm b/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm index 2d1e5e43..7523ff1f 100644 --- a/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm +++ b/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm @@ -87,99 +87,103 @@ object srvInfMargenArticulo: TsrvInfMargenArticulo 'ARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IM' + 'P_MARGEN_ULT_VENT_COMPRA,'#10'CASE'#10'WHEN ARTICULOS.PRECIO_NETO = 0 T' + 'HEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PR' + - 'ECIO_NETO) > 0 THEN'#10' (ARTICULOS.PRECIO_NETO * 100) / MARGEN_' + - 'VENTAS.IMPORTE_NETO_ULT_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_VENT_C' + - 'OMPRA,'#10#10'MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMP' + - 'ORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP,'#10'CASE'#10'WHEN M' + - 'ARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100'#10'WHEN (MARGEN_VE' + - 'NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COM' + - 'P) > 0 THEN'#10' (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / ' + - 'MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT' + - '_VENT_ULT_COMP,'#10#10'MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_CO' + - 'MPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP,'#10'CAS' + - 'E'#10'WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100'#10'WHEN (' + - 'MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NET' + - 'O_PRO_COMP) > 0 THEN'#10' (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP ' + - '* 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT'#10'ELSE 0'#10'END'#10'AS POR_M' + - 'ARGEN_ULT_VENT_PRO_COMP,'#10#10#10#10'MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT ' + - '- ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA,'#10'CASE'#10'WHEN' + - ' ARTICULOS.PRECIO_NETO = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE' + - '_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) > 0 THEN'#10' (ARTICULOS' + - '.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT'#10'ELSE 0' + - #10'END'#10'AS POR_MARGEN_PRO_VENT_COMPRA,'#10#10'MARGEN_VENTAS.IMPORTE_NETO_' + - 'PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PR' + - 'O_VENT_ULT_COMP,'#10'CASE'#10'WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP' + - ' = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN' + - '_COMPRAS.IMPORTE_NETO_ULT_COMP) > 0 THEN'#10' (MARGEN_COMPRAS.IM' + - 'PORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT' + - #10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_VENT_ULT_COMP,'#10#10'MARGEN_VENTAS.IMPO' + - 'RTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_' + - 'MARGEN_PRO_VENT_PRO_COMP,'#10'CASE'#10'WHEN MARGEN_COMPRAS.IMPORTE_NETO' + - '_PRO_COMP = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT' + - ' - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) > 0 THEN'#10' (MARGEN_C' + - 'OMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO' + - '_PRO_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_VENT_PRO_COMP'#10#10'FROM'#10#10#10'(SE' + - 'LECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_U' + - 'NIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT,'#10' COALESCE(S' + - 'UM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(' + - 'SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT,'#10' ' + - ' COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_' + - 'VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO' + - '_VENT,'#10' COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE' + - '_PORTE_PRO_VENT'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_CLIENTE, ' + - 'ID_ARTICULO,'#10' IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VE' + - 'NT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_V' + - 'ENTA AS IMPORTE_PORTE_ULT_VENT,'#10' NULL AS IMPORTE_UNIDAD_PRO' + - '_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_' + - 'VENT'#10#10' FROM V_INF_ULTIMA_VENTA'#10#10' UNION ALL'#10#10' SELECT'#10' ' + - ' FACTURAS_CLIENTE.ID_EMPRESA,'#10' FACTURAS_CLIENTE.ID_CLIENT' + - 'E,'#10' FACTURAS_CLIENTE_DETALLES.ID_ARTICULO,'#10' NULL, NULL' + - ', NULL,'#10' AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS I' + - 'MPORTE_UNIDAD_PRO_VENT,'#10' AVG(FACTURAS_CLIENTE_DETALLES.IMPO' + - 'RTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTUR' + - 'AS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT,' + - #10' AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_P' + - 'ORTE_PRO_VENT'#10#10' FROM FACTURAS_CLIENTE_DETALLES'#10' LEFT OUTER' + - ' JOIN FACTURAS_CLIENTE'#10' ON (FACTURAS_CLIENTE.ID = FACTURAS_CL' + - 'IENTE_DETALLES.ID_FACTURA)'#10#10' WHERE (FACTURAS_CLIENTE_DETALLES' + - '.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTI' + - 'CULO > 0)'#10' AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' ' + - ' AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FE' + - 'CHAFIN)'#10' GROUP BY 1, 2, 3)'#10#10' GROUP BY 1, 2, 3) MARGEN_VENTAS'#10 + - #10#10'LEFT JOIN'#10#10#10'(SELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(' + - 'IMPORTE_UNIDAD_ULT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE' + - '(SUM(IMPORTE_NETO_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COA' + - 'LESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, ' + - 'COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_C' + - 'OMP,'#10' COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_' + - 'PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_POR' + - 'TE_PRO_COMP'#10#10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_ARTICULO,'#10' ' + - ' IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NET' + - 'O_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPOR' + - 'TE_PORTE_ULT_COMP,'#10' NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL A' + - 'S IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP'#10#10' FRO' + - 'M V_INF_ULTIMA_COMPRA'#10#10' UNION ALL'#10#10' SELECT'#10' FACTURAS_' + - 'PROVEEDOR.ID_EMPRESA,'#10' FACTURAS_PROVEEDOR_DETALLES.ID_ARTIC' + - 'ULO,'#10' NULL, NULL, NULL,'#10' AVG(FACTURAS_PROVEEDOR_DETALL' + - 'ES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP,'#10' AVG(FACTURA' + - 'S_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALL' + - 'ES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100' + - '))) AS IMPORTE_NETO_PRO_COMP,'#10' AVG(FACTURAS_PROVEEDOR_DETAL' + - 'LES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP'#10#10' FROM FACTURAS_' + - 'PROVEEDOR_DETALLES'#10' LEFT OUTER JOIN FACTURAS_PROVEEDOR'#10' ON' + - ' (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA' + - ')'#10#10' WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NUL' + - 'L) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO > 0)'#10' AND (' + - 'FACTURAS_PROVEEDOR_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_PR' + - 'OVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)'#10' GROUP' + - ' BY 1, 2)'#10#10' GROUP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.' + - 'ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_AR' + - 'TICULO = MARGEN_VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (AR' + - 'TICULOS.ID = MARGEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIE' + - 'NTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIEN' + - 'TES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN' + - ' CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'WH' + - 'ERE ARTICULOS.INVENTARIABLE = 1 ) INF_MARGEN_ARTICULOS' + 'ECIO_NETO) > 0 THEN'#10' ((MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT -' + + ' ARTICULOS.PRECIO_NETO) * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_' + + 'VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_ULT_VENT_COMPRA,'#10#10'MARGEN_VENTAS.IM' + + 'PORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IM' + + 'P_MARGEN_ULT_VENT_ULT_COMP,'#10'CASE'#10'WHEN MARGEN_COMPRAS.IMPORTE_NE' + + 'TO_ULT_COMP = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VE' + + 'NT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) > 0 THEN'#10' ((MARGE' + + 'N_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT' + + '_COMP) * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT'#10'ELSE 0'#10'END'#10'A' + + 'S POR_MARGEN_ULT_VENT_ULT_COMP,'#10#10'MARGEN_VENTAS.IMPORTE_NETO_ULT_' + + 'VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VE' + + 'NT_PRO_COMP,'#10'CASE'#10'WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0' + + ' THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COM' + + 'PRAS.IMPORTE_NETO_PRO_COMP) > 0 THEN'#10' ((MARGEN_VENTAS.IMPORT' + + 'E_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) * 100) /' + + ' MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_UL' + + 'T_VENT_PRO_COMP,'#10#10#10#10'MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICU' + + 'LOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA,'#10'CASE'#10'WHEN ARTICU' + + 'LOS.PRECIO_NETO = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_PR' + + 'O_VENT - ARTICULOS.PRECIO_NETO) > 0 THEN'#10' ((MARGEN_VENTAS.IM' + + 'PORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) * 100) / MARGEN_VEN' + + 'TAS.IMPORTE_NETO_PRO_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_VENT_COMP' + + 'RA,'#10#10'MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORT' + + 'E_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP,'#10'CASE'#10'WHEN MARG' + + 'EN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100'#10'WHEN (MARGEN_VENTA' + + 'S.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) ' + + '> 0 THEN'#10' ((MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COM' + + 'PRAS.IMPORTE_NETO_ULT_COMP) * 100) / MARGEN_VENTAS.IMPORTE_NETO_' + + 'PRO_VENT'#10'ELSE 0'#10'END'#10'AS POR_MARGEN_PRO_VENT_ULT_COMP,'#10#10'MARGEN_VEN' + + 'TAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP' + + ' AS IMP_MARGEN_PRO_VENT_PRO_COMP,'#10'CASE'#10'WHEN MARGEN_COMPRAS.IMPO' + + 'RTE_NETO_PRO_COMP = 0 THEN 100'#10'WHEN (MARGEN_VENTAS.IMPORTE_NETO_' + + 'PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) > 0 THEN'#10' (' + + '(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NE' + + 'TO_PRO_COMP) * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT'#10'ELSE 0' + + #10'END'#10'AS POR_MARGEN_PRO_VENT_PRO_COMP'#10#10'FROM'#10#10#10'(SELECT ID_EMPRESA,' + + ' ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),' + + '0) AS IMPORTE_UNIDAD_ULT_VENT,'#10' COALESCE(SUM(IMPORTE_NETO_' + + 'ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORT' + + 'E_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT,'#10' COALESCE(SUM(IM' + + 'PORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(S' + + 'UM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT,'#10' CO' + + 'ALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT'#10 + + #10' FROM'#10' (SELECT'#10' ID_EMPRESA, ID_CLIENTE, ID_ARTICULO,'#10' ' + + ' IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO' + + '_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_' + + 'PORTE_ULT_VENT,'#10' NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS I' + + 'MPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT'#10#10' FROM V' + + '_INF_ULTIMA_VENTA'#10#10' UNION ALL'#10#10' SELECT'#10' FACTURAS_CLIE' + + 'NTE.ID_EMPRESA,'#10' FACTURAS_CLIENTE.ID_CLIENTE,'#10' FACTURA' + + 'S_CLIENTE_DETALLES.ID_ARTICULO,'#10' NULL, NULL, NULL,'#10' AV' + + 'G(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PR' + + 'O_VENT,'#10' AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FA' + + 'CTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETAL' + + 'LES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT,'#10' AVG(FACTU' + + 'RAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT'#10#10' ' + + ' FROM FACTURAS_CLIENTE_DETALLES'#10' LEFT OUTER JOIN FACTURAS_C' + + 'LIENTE'#10' ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.I' + + 'D_FACTURA)'#10#10' WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS ' + + 'NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO > 0)'#10' ' + + 'AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS' + + '_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN)'#10' GROU' + + 'P BY 1, 2, 3)'#10#10' GROUP BY 1, 2, 3) MARGEN_VENTAS'#10#10#10'LEFT JOIN'#10#10#10'(S' + + 'ELECT'#10' ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_U' + + 'LT_COMP),0) AS IMPORTE_UNIDAD_ULT_COMP, COALESCE(SUM(IMPORTE_NET' + + 'O_ULT_COMP),0) AS IMPORTE_NETO_ULT_COMP,'#10' COALESCE(SUM(IMPORT' + + 'E_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMP' + + 'ORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP,'#10' COALESC' + + 'E(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALES' + + 'CE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP'#10#10' FR' + + 'OM'#10' (SELECT'#10' ID_EMPRESA, ID_ARTICULO,'#10' IMPORTE_UNIDA' + + 'D_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPO' + + 'RTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COM' + + 'P,'#10' NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_P' + + 'RO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP'#10#10' FROM V_INF_ULTIMA_C' + + 'OMPRA'#10#10' UNION ALL'#10#10' SELECT'#10' FACTURAS_PROVEEDOR.ID_EMP' + + 'RESA,'#10' FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO,'#10' NULL,' + + ' NULL, NULL,'#10' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDA' + + 'D) AS IMPORTE_UNIDAD_PRO_COMP,'#10' AVG(FACTURAS_PROVEEDOR_DETA' + + 'LLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDA' + + 'D * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_N' + + 'ETO_PRO_COMP,'#10' AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORT' + + 'E) AS IMPORTE_PORTE_PRO_COMP'#10#10' FROM FACTURAS_PROVEEDOR_DETALL' + + 'ES'#10' LEFT OUTER JOIN FACTURAS_PROVEEDOR'#10' ON (FACTURAS_PROVE' + + 'EDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA)'#10#10' WHERE (FA' + + 'CTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS' + + '_PROVEEDOR_DETALLES.ID_ARTICULO > 0)'#10' AND (FACTURAS_PROVEED' + + 'OR_DETALLES.CANTIDAD > 0)'#10' AND (FACTURAS_PROVEEDOR.FECHA_FA' + + 'CTURA BETWEEN :FECHAINI AND :FECHAFIN)'#10' GROUP BY 1, 2)'#10#10' GRO' + + 'UP BY 1, 2) MARGEN_COMPRAS'#10#10#10'ON (MARGEN_COMPRAS.ID_EMPRESA = MAR' + + 'GEN_VENTAS.ID_EMPRESA)'#10'AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_' + + 'VENTAS.ID_ARTICULO)'#10#10#10'LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MAR' + + 'GEN_VENTAS.ID_ARTICULO)'#10'LEFT JOIN CONTACTOS CLIENTES ON (CLIENTE' + + 'S.ID = MARGEN_VENTAS.ID_CLIENTE)'#10'LEFT JOIN CLIENTES_DATOS ON (CL' + + 'IENTES_DATOS.ID_CLIENTE = CLIENTES.ID)'#10'LEFT JOIN CONTACTOS AGENT' + + 'ES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)'#10'WHERE ARTICULOS.IN' + + 'VENTARIABLE = 1) INF_MARGEN_ARTICULOS' StatementType = stSQL ColumnMappings = < item