diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 1b42e82d..666ec032 100644 Binary files a/Database/FACTUGES.FDB and b/Database/FACTUGES.FDB differ diff --git a/Database/VISTAS.SQL b/Database/VISTAS.SQL index 9fafeb0e..b36ec8d5 100644 --- a/Database/VISTAS.SQL +++ b/Database/VISTAS.SQL @@ -2527,9 +2527,9 @@ CREATE VIEW V_INF_MARGEN_ARTICULOS( POR_MARGEN_PRO_VENT_PRO_COMP) AS select -V_INF_MARGEN_VENTAS.id_empresa, -V_INF_MARGEN_VENTAS.id_cliente, -V_INF_MARGEN_VENTAS.id_articulo, +MARGEN_VENTAS.id_empresa, +MARGEN_VENTAS.id_cliente, +MARGEN_VENTAS.id_articulo, CLIENTES.NIF_CIF, CLIENTES.NOMBRE, @@ -2545,52 +2545,52 @@ ARTICULOS.DESCRIPCION, ARTICULOS.COMISIONABLE, ARTICULOS.INVENTARIABLE, -COALESCE(V_INF_MARGEN_VENTAS.importe_unidad_ult_vent, 0), -COALESCE(V_INF_MARGEN_VENTAS.importe_neto_ult_vent, 0), -COALESCE(V_INF_MARGEN_VENTAS.importe_porte_ult_vent, 0), +COALESCE(MARGEN_VENTAS.importe_unidad_ult_vent, 0), +COALESCE(MARGEN_VENTAS.importe_neto_ult_vent, 0), +COALESCE(MARGEN_VENTAS.importe_porte_ult_vent, 0), -COALESCE(V_INF_MARGEN_VENTAS.importe_unidad_pro_vent, 0), -COALESCE(V_INF_MARGEN_VENTAS.importe_neto_pro_vent, 0), -COALESCE(V_INF_MARGEN_VENTAS.importe_porte_pro_vent, 0), +COALESCE(MARGEN_VENTAS.importe_unidad_pro_vent, 0), +COALESCE(MARGEN_VENTAS.importe_neto_pro_vent, 0), +COALESCE(MARGEN_VENTAS.importe_porte_pro_vent, 0), COALESCE(ARTICULOS.PRECIO_COSTE, 0), COALESCE(ARTICULOS.PRECIO_NETO, 0), COALESCE(ARTICULOS.PRECIO_PORTE, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_unidad_ult_comp, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_neto_ult_comp, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_porte_ult_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_unidad_ult_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_neto_ult_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_porte_ult_comp, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_unidad_pro_comp, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_neto_pro_comp, 0), -COALESCE(V_INF_MARGEN_COMPRAS.importe_porte_pro_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_unidad_pro_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_neto_pro_comp, 0), +COALESCE(MARGEN_COMPRAS.importe_porte_pro_comp, 0), /*MARGEN CON ULTIMA VENTA*/ -V_INF_MARGEN_VENTAS.importe_neto_ult_vent - ARTICULOS.PRECIO_NETO as imp_margen_ult_vent_compra, -CASE +MARGEN_VENTAS.importe_neto_ult_vent - ARTICULOS.PRECIO_NETO as imp_margen_ult_vent_compra, +CASE WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_ult_vent - ARTICULOS.PRECIO_NETO) > 0 THEN - (ARTICULOS.PRECIO_NETO * 100) / V_INF_MARGEN_VENTAS.importe_neto_ult_vent +WHEN (MARGEN_VENTAS.importe_neto_ult_vent - ARTICULOS.PRECIO_NETO) > 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.importe_neto_ult_vent ELSE 0 END as por_margen_ult_vent_compra, -V_INF_MARGEN_VENTAS.importe_neto_ult_vent - V_INF_MARGEN_COMPRAS.importe_neto_ult_comp as imp_margen_ult_vent_ult_comp, +MARGEN_VENTAS.importe_neto_ult_vent - MARGEN_COMPRAS.importe_neto_ult_comp as imp_margen_ult_vent_ult_comp, CASE -WHEN V_INF_MARGEN_COMPRAS.importe_neto_ult_comp = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_ult_vent - V_INF_MARGEN_COMPRAS.importe_neto_ult_comp) > 0 THEN - (V_INF_MARGEN_COMPRAS.importe_neto_ult_comp * 100) / V_INF_MARGEN_VENTAS.importe_neto_ult_vent +WHEN MARGEN_COMPRAS.importe_neto_ult_comp = 0 THEN 100 +WHEN (MARGEN_VENTAS.importe_neto_ult_vent - MARGEN_COMPRAS.importe_neto_ult_comp) > 0 THEN + (MARGEN_COMPRAS.importe_neto_ult_comp * 100) / MARGEN_VENTAS.importe_neto_ult_vent ELSE 0 END as por_margen_ult_vent_ult_comp, -V_INF_MARGEN_VENTAS.importe_neto_ult_vent - V_INF_MARGEN_COMPRAS.importe_neto_pro_comp as imp_margen_ult_vent_pro_comp, -CASE -WHEN V_INF_MARGEN_COMPRAS.importe_neto_pro_comp = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_ult_vent - V_INF_MARGEN_COMPRAS.importe_neto_pro_comp) > 0 THEN - (V_INF_MARGEN_COMPRAS.importe_neto_pro_comp * 100) / V_INF_MARGEN_VENTAS.importe_neto_ult_vent +MARGEN_VENTAS.importe_neto_ult_vent - MARGEN_COMPRAS.importe_neto_pro_comp as imp_margen_ult_vent_pro_comp, +CASE +WHEN MARGEN_COMPRAS.importe_neto_pro_comp = 0 THEN 100 +WHEN (MARGEN_VENTAS.importe_neto_ult_vent - MARGEN_COMPRAS.importe_neto_pro_comp) > 0 THEN + (MARGEN_COMPRAS.importe_neto_pro_comp * 100) / MARGEN_VENTAS.importe_neto_ult_vent ELSE 0 END as por_margen_ult_vent_pro_comp, @@ -2598,48 +2598,123 @@ as por_margen_ult_vent_pro_comp, /*MARGEN CON VENTAS PROMEDIO*/ -V_INF_MARGEN_VENTAS.importe_neto_pro_vent - ARTICULOS.PRECIO_NETO as imp_margen_pro_vent_compra, -CASE +MARGEN_VENTAS.importe_neto_pro_vent - ARTICULOS.PRECIO_NETO as imp_margen_pro_vent_compra, +CASE WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_pro_vent - ARTICULOS.PRECIO_NETO) > 0 THEN - (ARTICULOS.PRECIO_NETO * 100) / V_INF_MARGEN_VENTAS.importe_neto_pro_vent +WHEN (MARGEN_VENTAS.importe_neto_pro_vent - ARTICULOS.PRECIO_NETO) > 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.importe_neto_pro_vent ELSE 0 END as por_margen_pro_vent_compra, -V_INF_MARGEN_VENTAS.importe_neto_pro_vent - V_INF_MARGEN_COMPRAS.importe_neto_ult_comp as imp_margen_pro_vent_ult_comp, -CASE -WHEN V_INF_MARGEN_COMPRAS.importe_neto_ult_comp = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_pro_vent - V_INF_MARGEN_COMPRAS.importe_neto_ult_comp) > 0 THEN - (V_INF_MARGEN_COMPRAS.importe_neto_ult_comp * 100) / V_INF_MARGEN_VENTAS.importe_neto_pro_vent +MARGEN_VENTAS.importe_neto_pro_vent - MARGEN_COMPRAS.importe_neto_ult_comp as imp_margen_pro_vent_ult_comp, +CASE +WHEN MARGEN_COMPRAS.importe_neto_ult_comp = 0 THEN 100 +WHEN (MARGEN_VENTAS.importe_neto_pro_vent - MARGEN_COMPRAS.importe_neto_ult_comp) > 0 THEN + (MARGEN_COMPRAS.importe_neto_ult_comp * 100) / MARGEN_VENTAS.importe_neto_pro_vent ELSE 0 END as por_margen_pro_vent_ult_comp, -V_INF_MARGEN_VENTAS.importe_neto_pro_vent - V_INF_MARGEN_COMPRAS.importe_neto_pro_comp as imp_margen_pro_vent_pro_comp, -CASE -WHEN V_INF_MARGEN_COMPRAS.importe_neto_pro_comp = 0 THEN 100 -WHEN (V_INF_MARGEN_VENTAS.importe_neto_pro_vent - V_INF_MARGEN_COMPRAS.importe_neto_pro_comp) > 0 THEN - (V_INF_MARGEN_COMPRAS.importe_neto_pro_comp * 100) / V_INF_MARGEN_VENTAS.importe_neto_pro_vent +MARGEN_VENTAS.importe_neto_pro_vent - MARGEN_COMPRAS.importe_neto_pro_comp as imp_margen_pro_vent_pro_comp, +CASE +WHEN MARGEN_COMPRAS.importe_neto_pro_comp = 0 THEN 100 +WHEN (MARGEN_VENTAS.importe_neto_pro_vent - MARGEN_COMPRAS.importe_neto_pro_comp) > 0 THEN + (MARGEN_COMPRAS.importe_neto_pro_comp * 100) / MARGEN_VENTAS.importe_neto_pro_vent ELSE 0 END as por_margen_pro_vent_pro_comp +FROM -from V_INF_MARGEN_VENTAS +/*Antigua V_INF_MARGEN_VENTAS*/ +(select ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) as importe_unidad_ult_vent, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) as importe_neto_ult_vent, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) as importe_porte_ult_vent, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) as importe_unidad_pro_vent, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) as importe_neto_pro_vent, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) as importe_porte_pro_vent -left join v_inf_margen_compras -on (v_inf_margen_compras.id_empresa = v_INF_MARGEN_ventas.id_empresa) -and (v_inf_margen_compras.id_articulo = v_INF_MARGEN_ventas.id_articulo) + from + (select + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA as IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA as IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA as IMPORTE_PORTE_ULT_VENT, + null as IMPORTE_UNIDAD_PRO_VENT, null as IMPORTE_NETO_PRO_VENT, null as IMPORTE_PORTE_PRO_VENT -left join ARTICULOS -on (ARTICULOS.ID = v_INF_MARGEN_ventas.id_articulo) + from v_inf_ultima_venta -left join CONTACTOS CLIENTES on (CLIENTES.ID = V_INF_MARGEN_VENTAS.ID_CLIENTE) -left join CLIENTES_DATOS on (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) -left join CONTACTOS AGENTES on (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE) + union all -where (ARTICULOS.INVENTARIABLE = 1); + /*Antigua V_INF_PROMEDIO_VENTA*/ + select + facturas_cliente.id_empresa, + facturas_cliente.id_cliente, + facturas_cliente_detalles.ID_ARTICULO, + null, null, null, + avg(facturas_cliente_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_PRO_VENT, + avg(facturas_cliente_detalles.IMPORTE_UNIDAD - (facturas_cliente_detalles.IMPORTE_UNIDAD * (facturas_cliente_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + avg(facturas_cliente_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_PRO_VENT + + from facturas_cliente_detalles + left outer join facturas_cliente + on (facturas_cliente.id = facturas_cliente_detalles.id_factura) + + where (facturas_cliente_detalles.ID_ARTICULO IS NOT NULL) and (facturas_cliente_detalles.ID_ARTICULO > 0) /*Quitamos conceptos libres*/ + and (facturas_cliente_detalles.cantidad > 0) /*Quitamos los abonos*/ + /*AND INTERVALO DE FECHAS*/ + group by 1, 2, 3) + + group by 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +/*Antigua V_INF_MARGEN_COMPRAS*/ +(select + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) as importe_porte_ult_comp, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) as importe_unidad_pro_comp, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) as importe_neto_pro_comp, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) as importe_porte_pro_comp + + from + (select + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA as IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA as IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA as IMPORTE_PORTE_ULT_COMP, + null as IMPORTE_UNIDAD_PRO_COMP, null as IMPORTE_NETO_PRO_COMP, null as IMPORTE_PORTE_PRO_COMP + + from v_inf_ultima_compra + + union all + + /*Antigua V_INF_PROMEDIO_COMPRA*/ + select + facturas_proveedor.id_empresa, + facturas_proveedor_detalles.ID_ARTICULO, + null, null, null, + avg(facturas_proveedor_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_PRO_COMP, + avg(facturas_proveedor_detalles.IMPORTE_UNIDAD - (facturas_proveedor_detalles.IMPORTE_UNIDAD * (facturas_proveedor_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + avg(facturas_proveedor_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_PRO_COMP + + from facturas_proveedor_detalles + left outer join facturas_proveedor + on (facturas_proveedor.id = facturas_proveedor_detalles.id_factura) + + where (facturas_proveedor_detalles.ID_ARTICULO IS NOT NULL) and (facturas_proveedor_detalles.ID_ARTICULO > 0) /*Quitamos conceptos libres*/ + and (facturas_proveedor_detalles.cantidad > 0) /*Quitamos los abonos*/ +/*AND INTERVALO DE FECHAS*/ + group by 1, 2) + + group by 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.id_empresa = MARGEN_VENTAS.id_empresa) +AND (MARGEN_COMPRAS.id_articulo = MARGEN_VENTAS.id_articulo) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.id_articulo) +LEFT JOIN CONTACTOS CLIENTES on (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS on (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES on (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE) + +WHERE (ARTICULOS.INVENTARIABLE = 1); /* Al igual que en Varela tendremos esta vista para hacer todos los informes que queramos de ventas, ya que estará desglosado por artículo */ diff --git a/Output/Debug/Cliente/Base.bpl b/Output/Debug/Cliente/Base.bpl index 75ee2ada..7297bd31 100644 Binary files a/Output/Debug/Cliente/Base.bpl and b/Output/Debug/Cliente/Base.bpl differ diff --git a/Output/Debug/Cliente/Contactos_view.bpl b/Output/Debug/Cliente/Contactos_view.bpl index 39300096..3537ec81 100644 Binary files a/Output/Debug/Cliente/Contactos_view.bpl and b/Output/Debug/Cliente/Contactos_view.bpl differ diff --git a/Output/Debug/Cliente/FactuGES.exe b/Output/Debug/Cliente/FactuGES.exe index 6dbab3ba..162ac3b1 100644 Binary files a/Output/Debug/Cliente/FactuGES.exe and b/Output/Debug/Cliente/FactuGES.exe differ diff --git a/Output/Debug/Cliente/FactuGES.ini b/Output/Debug/Cliente/FactuGES.ini index e314f7a3..795e07f1 100644 --- a/Output/Debug/Cliente/FactuGES.ini +++ b/Output/Debug/Cliente/FactuGES.ini @@ -1,2 +1,2 @@ [Server] -URL=http://localhost:8099/bin +URL=http://localhost:8090/bin diff --git a/Output/Debug/Cliente/GUIBase.bpl b/Output/Debug/Cliente/GUIBase.bpl index 2d479613..96315dff 100644 Binary files a/Output/Debug/Cliente/GUIBase.bpl and b/Output/Debug/Cliente/GUIBase.bpl differ diff --git a/Output/Debug/Cliente/InfVentasArticulo_controller.bpl b/Output/Debug/Cliente/InfVentasArticulo_controller.bpl index 6f7900b4..a93cd29a 100644 Binary files a/Output/Debug/Cliente/InfVentasArticulo_controller.bpl and b/Output/Debug/Cliente/InfVentasArticulo_controller.bpl differ diff --git a/Output/Debug/Cliente/InfVentasArticulo_data.bpl b/Output/Debug/Cliente/InfVentasArticulo_data.bpl index 238bd1e3..9a17d310 100644 Binary files a/Output/Debug/Cliente/InfVentasArticulo_data.bpl and b/Output/Debug/Cliente/InfVentasArticulo_data.bpl differ diff --git a/Output/Debug/Cliente/InfVentasArticulo_model.bpl b/Output/Debug/Cliente/InfVentasArticulo_model.bpl index 8e0e163c..338de84d 100644 Binary files a/Output/Debug/Cliente/InfVentasArticulo_model.bpl and b/Output/Debug/Cliente/InfVentasArticulo_model.bpl differ diff --git a/Output/Debug/Cliente/InfVentasArticulo_plugin.bpl b/Output/Debug/Cliente/InfVentasArticulo_plugin.bpl index 63c275e2..66d3d825 100644 Binary files a/Output/Debug/Cliente/InfVentasArticulo_plugin.bpl and b/Output/Debug/Cliente/InfVentasArticulo_plugin.bpl differ diff --git a/Output/Debug/Cliente/InfVentasArticulo_view.bpl b/Output/Debug/Cliente/InfVentasArticulo_view.bpl index a2e09a08..8df9541f 100644 Binary files a/Output/Debug/Cliente/InfVentasArticulo_view.bpl and b/Output/Debug/Cliente/InfVentasArticulo_view.bpl differ diff --git a/Output/Debug/Cliente/InformesBase_controller.bpl b/Output/Debug/Cliente/InformesBase_controller.bpl index 239d8f15..8d4a40ea 100644 Binary files a/Output/Debug/Cliente/InformesBase_controller.bpl and b/Output/Debug/Cliente/InformesBase_controller.bpl differ diff --git a/Output/Debug/Cliente/InformesBase_view.bpl b/Output/Debug/Cliente/InformesBase_view.bpl index a202fba1..58022c73 100644 Binary files a/Output/Debug/Cliente/InformesBase_view.bpl and b/Output/Debug/Cliente/InformesBase_view.bpl differ diff --git a/Output/Debug/Cliente/Informes_controller.bpl b/Output/Debug/Cliente/Informes_controller.bpl index cdc8c093..b1a0591b 100644 Binary files a/Output/Debug/Cliente/Informes_controller.bpl and b/Output/Debug/Cliente/Informes_controller.bpl differ diff --git a/Output/Debug/Cliente/Informes_data.bpl b/Output/Debug/Cliente/Informes_data.bpl index a603ca68..b895863b 100644 Binary files a/Output/Debug/Cliente/Informes_data.bpl and b/Output/Debug/Cliente/Informes_data.bpl differ diff --git a/Output/Debug/Cliente/Informes_model.bpl b/Output/Debug/Cliente/Informes_model.bpl index bed903b4..4659e0c2 100644 Binary files a/Output/Debug/Cliente/Informes_model.bpl and b/Output/Debug/Cliente/Informes_model.bpl differ diff --git a/Output/Debug/Cliente/Informes_plugin.bpl b/Output/Debug/Cliente/Informes_plugin.bpl index 5742839a..64fe72e2 100644 Binary files a/Output/Debug/Cliente/Informes_plugin.bpl and b/Output/Debug/Cliente/Informes_plugin.bpl differ diff --git a/Output/Debug/Cliente/Informes_view.bpl b/Output/Debug/Cliente/Informes_view.bpl index 60800d1a..642facd1 100644 Binary files a/Output/Debug/Cliente/Informes_view.bpl and b/Output/Debug/Cliente/Informes_view.bpl differ diff --git a/Output/Debug/Cliente/Inventario_view.bpl b/Output/Debug/Cliente/Inventario_view.bpl index 4461b11c..99eb58e0 100644 Binary files a/Output/Debug/Cliente/Inventario_view.bpl and b/Output/Debug/Cliente/Inventario_view.bpl differ diff --git a/Output/Debug/Cliente/PedidosCliente_view.bpl b/Output/Debug/Cliente/PedidosCliente_view.bpl index 7b639468..255c8668 100644 Binary files a/Output/Debug/Cliente/PedidosCliente_view.bpl and b/Output/Debug/Cliente/PedidosCliente_view.bpl differ diff --git a/Output/Debug/Cliente/PedidosProveedor_view.bpl b/Output/Debug/Cliente/PedidosProveedor_view.bpl index 5b31ba7e..199e30bc 100644 Binary files a/Output/Debug/Cliente/PedidosProveedor_view.bpl and b/Output/Debug/Cliente/PedidosProveedor_view.bpl differ diff --git a/Output/Debug/Servidor/FactuGES_Server.exe b/Output/Debug/Servidor/FactuGES_Server.exe index 7a592956..fb064cef 100644 Binary files a/Output/Debug/Servidor/FactuGES_Server.exe and b/Output/Debug/Servidor/FactuGES_Server.exe differ diff --git a/Output/Debug/Servidor/ServerLog.txt b/Output/Debug/Servidor/ServerLog.txt index b61845d2..d30f865b 100644 --- a/Output/Debug/Servidor/ServerLog.txt +++ b/Output/Debug/Servidor/ServerLog.txt @@ -1,9 +1,9 @@ -[07/08/2007 19:40:37] +[21/08/2007 13:14:13] [Application: FactuGES (Servidor)] : [Connect] > -[07/08/2007 19:40:37] +[21/08/2007 13:14:13] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID @@ -16,45 +16,1395 @@ Plan: PLAN (USUARIOS NATURAL) > -[07/08/2007 19:40:37] +[21/08/2007 13:14:13] [Application: FactuGES (Servidor)] : [Start transaction] > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] [Application: FactuGES (Servidor)] : [Prepare] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) Plan: PLAN JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)) > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] [Application: FactuGES (Servidor)] : [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) RELATION = USUARIOS > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] [Application: FactuGES (Servidor)] : [Prepare] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION Plan: PLAN SORT (JOIN (RR INDEX (RDB$INDEX_42), RI INDEX (RDB$INDEX_6))) > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] [Application: FactuGES (Servidor)] : [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION RELATION_NAME = USUARIOS > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] [Application: FactuGES (Servidor)] : [Commit (Hard commit)] > -[07/08/2007 19:40:37] +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Administrador + PASS = luisleon07 + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = PERFILES + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = PERFILES + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 1 + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = EMPRESAS_USUARIOS + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = EMPRESAS_USUARIOS + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 1 + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + Plan: PLAN (EMPRESAS NATURAL) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = EMPRESAS + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = EMPRESAS + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = EMPRESAS_DATOS_BANCO + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = EMPRESAS_DATOS_BANCO + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + Plan: PLAN (EMPRESAS NATURAL) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) + + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:14:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = INFORMES + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = INFORMES + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:31] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:14:36] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:14:36] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTA + + > +[21/08/2007 13:14:37]S.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COM + + > +[21/08/2007 13:14:37]PRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT + + > +[21/08/2007 13:14:37]_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_ + + > +[21/08/2007 13:14:37]NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + + + > +[21/08/2007 13:14:37] FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELE + + > +[21/08/2007 13:14:37]CT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO + + > +[21/08/2007 13:14:37]_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN + + > +[21/08/2007 13:14:37] CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MAR + + > +[21/08/2007 13:14:37]GEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Start transaction] + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) + + RELATION = + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION + + RELATION_NAME = + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Commit (Hard commit)] + + > +[21/08/2007 13:14:37] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTA + + > +[21/08/2007 13:14:37]S.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COM + + > +[21/08/2007 13:14:37]PRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT + + > +[21/08/2007 13:14:37]_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_ + + > +[21/08/2007 13:14:37]NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + + + > +[21/08/2007 13:14:37] FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELE + + > +[21/08/2007 13:14:37]CT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO + + > +[21/08/2007 13:14:37]_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN + + > +[21/08/2007 13:14:37] CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:14:44] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:14:44]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:14:44]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:14:44]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:14:44]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:14:44]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:14:44]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:14:44]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:14:44]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:14:44]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:14:44]K_CONTACTOS)))))) + + > +[21/08/2007 13:14:44] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:14:44]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:14:44]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:14:44]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:14:44]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:14:44]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:14:44]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:14:44]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:14:44]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:14:48] +[Application: FactuGES (Servidor)] +: [Prepare] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:14:48] +[Application: FactuGES (Servidor)] +: [Execute] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + ID_EMPRESA = 1 + CATEGORIA = MARGEN ARTICULOS + CONTROLLER = InfMargenArticuloController + MODIFICABLE = S + ICONO = 0 + NOMBRE = sadad + DESCRIPCION = asdad + ORDEN = > + VISTA = > + OLD_ID = 56 + + > +[21/08/2007 13:14:59] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:14:59] [Application: FactuGES (Servidor)] : [Execute] SELECT ID @@ -68,7 +1418,7 @@ PASS = 1 > -[07/08/2007 19:40:37] +[21/08/2007 13:14:59] [Application: FactuGES (Servidor)] : [Prepare] SELECT PERFILES.PERFIL @@ -80,31 +1430,7 @@ Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = PERFILES - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = PERFILES - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:40:37] +[21/08/2007 13:14:59] [Application: FactuGES (Servidor)] : [Execute] SELECT PERFILES.PERFIL @@ -116,7 +1442,7 @@ ID_USUARIO = 2 > -[07/08/2007 19:40:37] +[21/08/2007 13:14:59] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID_EMPRESA @@ -127,31 +1453,7 @@ Plan: PLAN (EMPRESAS_USUARIOS NATURAL) > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = EMPRESAS_USUARIOS - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = EMPRESAS_USUARIOS - - > -[07/08/2007 19:40:37] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:40:37] +[21/08/2007 13:14:59] [Application: FactuGES (Servidor)] : [Execute] SELECT ID_EMPRESA @@ -162,7 +1464,7 @@ ID_USUARIO = 2 > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -176,31 +1478,7 @@ Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = EMPRESAS - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = EMPRESAS - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -213,7 +1491,7 @@ > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -225,31 +1503,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = EMPRESAS_DATOS_BANCO - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = EMPRESAS_DATOS_BANCO - - > -[07/08/2007 19:40:43] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -261,7 +1515,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA ID_EMPRESA = 1 > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -275,7 +1529,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -288,7 +1542,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -300,7 +1554,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -312,7 +1566,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA ID_EMPRESA = 1 > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -326,7 +1580,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, @@ -339,7 +1593,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Prepare] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -351,7 +1605,7 @@ WHERE ID_EMPRESA = :ID_EMPRESA Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) > -[07/08/2007 19:40:43] +[21/08/2007 13:15:02] [Application: FactuGES (Servidor)] : [Execute] SELECT ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, @@ -363,1828 +1617,13220 @@ WHERE ID_EMPRESA = :ID_EMPRESA ID_EMPRESA = 1 > -[07/08/2007 19:41:00] +[21/08/2007 13:15:05] [Application: FactuGES (Servidor)] : [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA FROM - V_PEDIDOS_PROVEEDOR WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + INFORMES +ORDER BY CATEGORIA, ID - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_PEDIDOS_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (FK_PEDIDOS_PROVEEDOR), JOIN (V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES PROVEEDORES + Plan: PLAN SORT ((INFORMES NATURAL)) > -[07/08/2007 19:41:00]_DATOS INDEX (PK_PROVEEDORES_DATOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (FK_EMPRESAS_CONTACTOS))), V_PEDIDOS_PROVEEDOR ALMACENES INDEX (PK_ALMACENES)), V_PEDIDOS_PROVEEDOR PEDIDOS_CLIENTE INDEX (PK_PEDIDOS_CLIENTE))SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR))) -PLAN SORT (SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR_DETALLES NATURAL, V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR))))) - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_PEDIDOS_PROVEEDOR - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_PEDIDOS_PROVEEDOR - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:00] +[21/08/2007 13:15:05] [Application: FactuGES (Servidor)] : [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA FROM - V_PEDIDOS_PROVEEDOR WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + INFORMES +ORDER BY CATEGORIA, ID > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = PEDIDOS_PROVEEDOR_DETALLES - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = PEDIDOS_PROVEEDOR_DETALLES - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = ARTICULOS - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = ARTICULOS - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:00] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 77 - - > -[07/08/2007 19:41:01] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:01] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 84 - - > -[07/08/2007 19:41:02] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:02] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 86 - - > -[07/08/2007 19:41:02] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:02] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 88 - - > -[07/08/2007 19:41:03] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:03] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 90 - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Prepare] select V_PED_PROV_ARTICULOS.ID_PEDIDO, - ARTICULOS.REFERENCIA, - V_PED_PROV_ARTICULOS.ID_ARTICULO, - ARTICULOS.DESCRIPCION as CONCEPTO, - V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE as CANTIDAD, - ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM V_PED_PROV_ARTICULOS -LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_PED_PROV_ARTICULOS.ID_ARTICULO) -WHERE (V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE <>> 0) -AND (V_PED_PROV_ARTICULOS.ID_PEDIDO = :ID) - - Plan: PLAN JOIN (SORT (JOIN (V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR))) -PLAN SORT (SORT (JOIN (V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR_DETALLES NATURAL, V_PED_PROV_ARTICULOS V_PED_PROV_ARTIC - - > -[07/08/2007 19:41:04]ULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR)))), ARTICULOS INDEX (PK_ARTICULOS)) - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_PED_PROV_ARTICULOS - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_PED_PROV_ARTICULOS - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:04] -[Application: FactuGES (Servidor)] -: [Execute] select V_PED_PROV_ARTICULOS.ID_PEDIDO, - ARTICULOS.REFERENCIA, - V_PED_PROV_ARTICULOS.ID_ARTICULO, - ARTICULOS.DESCRIPCION as CONCEPTO, - V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE as CANTIDAD, - ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM V_PED_PROV_ARTICULOS -LEFT JOIN ARTICULOS ON (ARTICULOS.ID = V_PED_PROV_ARTICULOS.ID_ARTICULO) -WHERE (V_PED_PROV_ARTICULOS.CANTIDAD_PENDIENTE <>> 0) -AND (V_PED_PROV_ARTICULOS.ID_PEDIDO = :ID) - - ID = 90 - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID_ALMACEN, ID_ARTICULO, NOMBRE as ALMACEN, ID_EMPRESA, REFERENCIA, FAMILIA, - DESCRIPCION, REFERENCIA_PROV as REFERENCIA_PROVEEDOR, PRECIO_NETO, STOCK, - UNIDADES_ALMACEN, COSTE_UNIDADES, RESERVA, PENDIENTE_RECEPCION, - - /* - NO BORRAR YA QUE SIRVE PARA LAS ENTRADAS Y SALIDAS DE ALMACEN(TABLA MOVIMIENTOS) - DEBERIA GENERAR UNA TABLA DE MOVIMIENTOS INDEPENDIENTE DEL INVENTARIO PERO POR FALTA - DE TIEMPO Y FIABILIDAD YA QUE AHORA FUNCIONA TODO, CREAMOS ESTOS CAMPOS FICTICIOS - */ - - 0 as ID, 0 as CANTIDAD, current_date as FECHA_MOVIMIENTO, NULL as CAUSA, NULL as TIPO - - -FROM V_INVENTARIO - WHERE (ID_ALMACEN = -9000) AND (ID_EMPRESA = 1) ORDER BY ID_ARTICULO - - Plan: Can't retrieve plan - too large - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_INVENTARIO - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_INVENTARIO - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID_ALMACEN, ID_ARTICULO, NOMBRE as ALMACEN, ID_EMPRESA, REFERENCIA, FAMILIA, - DESCRIPCION, REFERENCIA_PROV as REFERENCIA_PROVEEDOR, PRECIO_NETO, STOCK, - UNIDADES_ALMACEN, COSTE_UNIDADES, RESERVA, PENDIENTE_RECEPCION, - - /* - NO BORRAR YA QUE SIRVE PARA LAS ENTRADAS Y SALIDAS DE ALMACEN(TABLA MOVIMIENTOS) - DEBERIA GENERAR UNA TABLA DE MOVIMIENTOS INDEPENDIENTE DEL INVENTARIO PERO POR FALTA - DE TIEMPO Y FIABILIDAD YA QUE AHORA FUNCIONA TODO, CREAMOS ESTOS CAMPOS FICTICIOS - */ - - 0 as ID, 0 as CANTIDAD, current_date as FECHA_MOVIMIENTO, NULL as CAUSA, NULL as TIPO - - -FROM V_INVENTARIO - WHERE (ID_ALMACEN = -9000) AND (ID_EMPRESA = 1) ORDER BY ID_ARTICULO - - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID_ALMACEN, ID_ARTICULO, NOMBRE as ALMACEN, ID_EMPRESA, REFERENCIA, FAMILIA, - DESCRIPCION, REFERENCIA_PROV as REFERENCIA_PROVEEDOR, PRECIO_NETO, STOCK, - UNIDADES_ALMACEN, COSTE_UNIDADES, RESERVA, PENDIENTE_RECEPCION, - - /* - NO BORRAR YA QUE SIRVE PARA LAS ENTRADAS Y SALIDAS DE ALMACEN(TABLA MOVIMIENTOS) - DEBERIA GENERAR UNA TABLA DE MOVIMIENTOS INDEPENDIENTE DEL INVENTARIO PERO POR FALTA - DE TIEMPO Y FIABILIDAD YA QUE AHORA FUNCIONA TODO, CREAMOS ESTOS CAMPOS FICTICIOS - */ - - 0 as ID, 0 as CANTIDAD, current_date as FECHA_MOVIMIENTO, NULL as CAUSA, NULL as TIPO - - -FROM V_INVENTARIO - WHERE (ID_EMPRESA = 1) ORDER BY ID_ARTICULO - - Plan: Can't retrieve plan - too large - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID_ALMACEN, ID_ARTICULO, NOMBRE as ALMACEN, ID_EMPRESA, REFERENCIA, FAMILIA, - DESCRIPCION, REFERENCIA_PROV as REFERENCIA_PROVEEDOR, PRECIO_NETO, STOCK, - UNIDADES_ALMACEN, COSTE_UNIDADES, RESERVA, PENDIENTE_RECEPCION, - - /* - NO BORRAR YA QUE SIRVE PARA LAS ENTRADAS Y SALIDAS DE ALMACEN(TABLA MOVIMIENTOS) - DEBERIA GENERAR UNA TABLA DE MOVIMIENTOS INDEPENDIENTE DEL INVENTARIO PERO POR FALTA - DE TIEMPO Y FIABILIDAD YA QUE AHORA FUNCIONA TODO, CREAMOS ESTOS CAMPOS FICTICIOS - */ - - 0 as ID, 0 as CANTIDAD, current_date as FECHA_MOVIMIENTO, NULL as CAUSA, NULL as TIPO - - -FROM V_INVENTARIO - WHERE (ID_EMPRESA = 1) ORDER BY ID_ARTICULO - - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (Almacenes.ID = -1) AND (ALMACENES.ID_EMPRESA = 1) - - Plan: PLAN (ALMACENES INDEX (PK_ALMACENES)) - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = ALMACENES - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = ALMACENES - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (Almacenes.ID = -1) AND (ALMACENES.ID_EMPRESA = 1) - - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (Almacenes.ID = 2) AND (ALMACENES.ID_EMPRESA = 1) - - Plan: PLAN (ALMACENES INDEX (PK_ALMACENES)) - - > -[07/08/2007 19:41:05] -[Application: FactuGES (Servidor)] -: [Execute] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (Almacenes.ID = 2) AND (ALMACENES.ID_EMPRESA = 1) - - - > -[07/08/2007 19:41:06] +[21/08/2007 13:15:07] [Application: FactuGES (Servidor)] : [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, REFERENCIA, REFERENCIA_PROVEEDOR, - TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, - ID_FACTURA, REF_FACTURA, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, - PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, - OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, - USUARIO, ID_FORMA_PAGO + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA FROM - V_ALBARANES_PROVEEDOR WHERE (ID = -9000) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + INFORMES +ORDER BY CATEGORIA, ID - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_ALBARANES_PROVEEDOR ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR), V_ALBARANES_PROVEEDOR CONTACTOS INDEX (PK_CONTACTOS)), V_ALBARANES_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR)), V_ALBARANES_PROVEEDOR FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), V_ALBARANES_PROVEE + Plan: PLAN SORT ((INFORMES NATURAL)) > -[07/08/2007 19:41:06]DOR ALMACENES INDEX (PK_ALMACENES)) - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_ALBARANES_PROVEEDOR - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_ALBARANES_PROVEEDOR - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:06] +[21/08/2007 13:15:07] [Application: FactuGES (Servidor)] : [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, REFERENCIA, REFERENCIA_PROVEEDOR, - TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, - ID_FACTURA, REF_FACTURA, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, - PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, - OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, - USUARIO, ID_FORMA_PAGO + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA FROM - V_ALBARANES_PROVEEDOR WHERE (ID = -9000) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + INFORMES +ORDER BY CATEGORIA, ID > -[07/08/2007 19:41:06] +[21/08/2007 13:15:07] [Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO - FROM - V_PEDIDOS_PROVEEDOR WHERE (ID = 90) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_PEDIDOS_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR), JOIN (V_PEDIDOS_PROVEEDOR V_PROVEEDORES PROVEEDORES_DATOS INDEX (PK_PROVEEDORES_DATOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_PEDIDOS_PROVEEDOR V_PROVE - - > -[07/08/2007 19:41:06]EDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (FK_EMPRESAS_CONTACTOS))), V_PEDIDOS_PROVEEDOR ALMACENES INDEX (PK_ALMACENES)), V_PEDIDOS_PROVEEDOR PEDIDOS_CLIENTE INDEX (PK_PEDIDOS_CLIENTE))SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR))) -PLAN SORT (SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR_DETALLES NATURAL, V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR))))) - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO - FROM - V_PEDIDOS_PROVEEDOR WHERE (ID = 90) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - - > -[07/08/2007 19:41:06] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 90 - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFERENCIA, V_ARTICULOS.DESCRIPCION, - V_ARTICULOS.FAMILIA, V_ARTICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA, - V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO, - V_ARTICULOS.REFERENCIA_PROV, - V_ARTICULOS.PRECIO_COSTE, - V_ARTICULOS.PRECIO_PORTE, - V_ARTICULOS.DESCUENTO, - V_ARTICULOS.PRECIO_NETO, - V_ARTICULOS.INVENTARIABLE, - V_ARTICULOS.ID_PROVEEDOR, - V_ARTICULOS.NOMBRE_PROVEEDOR, - V_ARTICULOS.ELIMINADO -FROM V_ARTICULOS WHERE (V_ARTICULOS.ID_EMPRESA = 1) AND (UPPER(V_ARTICULOS.REFERENCIA) = UPPER('ELCADOLMEN')) - - Plan: PLAN JOIN (V_ARTICULOS ARTICULOS INDEX (FK_ARTICULOS_EMPRESA), V_ARTICULOS CONTACTOS INDEX (PK_CONTACTOS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_ARTICULOS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_ARTICULOS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFERENCIA, V_ARTICULOS.DESCRIPCION, - V_ARTICULOS.FAMILIA, V_ARTICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA, - V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO, - V_ARTICULOS.REFERENCIA_PROV, - V_ARTICULOS.PRECIO_COSTE, - V_ARTICULOS.PRECIO_PORTE, - V_ARTICULOS.DESCUENTO, - V_ARTICULOS.PRECIO_NETO, - V_ARTICULOS.INVENTARIABLE, - V_ARTICULOS.ID_PROVEEDOR, - V_ARTICULOS.NOMBRE_PROVEEDOR, - V_ARTICULOS.ELIMINADO -FROM V_ARTICULOS WHERE (V_ARTICULOS.ID_EMPRESA = 1) AND (UPPER(V_ARTICULOS.REFERENCIA) = UPPER('ELCADOLMEN')) - - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFERENCIA, V_ARTICULOS.DESCRIPCION, - V_ARTICULOS.FAMILIA, V_ARTICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA, - V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO, - V_ARTICULOS.REFERENCIA_PROV, - V_ARTICULOS.PRECIO_COSTE, - V_ARTICULOS.PRECIO_PORTE, - V_ARTICULOS.DESCUENTO, - V_ARTICULOS.PRECIO_NETO, - V_ARTICULOS.INVENTARIABLE, - V_ARTICULOS.ID_PROVEEDOR, - V_ARTICULOS.NOMBRE_PROVEEDOR, - V_ARTICULOS.ELIMINADO -FROM V_ARTICULOS WHERE (V_ARTICULOS.ID_EMPRESA = 1) AND (UPPER(V_ARTICULOS.REFERENCIA) = UPPER('ELCASTENAR')) - - Plan: PLAN JOIN (V_ARTICULOS ARTICULOS INDEX (FK_ARTICULOS_EMPRESA), V_ARTICULOS CONTACTOS INDEX (PK_CONTACTOS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT V_ARTICULOS.ID, V_ARTICULOS.ID_EMPRESA, V_ARTICULOS.REFERENCIA, V_ARTICULOS.DESCRIPCION, - V_ARTICULOS.FAMILIA, V_ARTICULOS.IMAGEN, V_ARTICULOS.COMISIONABLE, V_ARTICULOS.FECHA_ALTA, - V_ARTICULOS.FECHA_MODIFICACION, V_ARTICULOS.USUARIO, - V_ARTICULOS.REFERENCIA_PROV, - V_ARTICULOS.PRECIO_COSTE, - V_ARTICULOS.PRECIO_PORTE, - V_ARTICULOS.DESCUENTO, - V_ARTICULOS.PRECIO_NETO, - V_ARTICULOS.INVENTARIABLE, - V_ARTICULOS.ID_PROVEEDOR, - V_ARTICULOS.NOMBRE_PROVEEDOR, - V_ARTICULOS.ELIMINADO -FROM V_ARTICULOS WHERE (V_ARTICULOS.ID_EMPRESA = 1) AND (UPPER(V_ARTICULOS.REFERENCIA) = UPPER('ELCASTENAR')) - - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (ALMACENES.ID_EMPRESA = 1) - - Plan: PLAN (ALMACENES INDEX (FK_ALMACENES_EMPRESAS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT ALMACENES.ID, ALMACENES.ID_EMPRESA, ALMACENES.NOMBRE, ALMACENES.CALLE, - ALMACENES.PROVINCIA, ALMACENES.POBLACION, ALMACENES.CODIGO_POSTAL, - ALMACENES.TELEFONO, ALMACENES.MOVIL, ALMACENES.FAX, ALMACENES.PERSONA_CONTACTO, - ALMACENES.OBSERVACIONES, ALMACENES.FECHA_ALTA, ALMACENES.FECHA_MODIFICACION, - ALMACENES.USUARIO - -FROM ALMACENES WHERE (ALMACENES.ID_EMPRESA = 1) - - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, - DC, CUENTA - FROM - FORMAS_PAGO - - Plan: PLAN (FORMAS_PAGO NATURAL) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = FORMAS_PAGO - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = FORMAS_PAGO - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, REFERENCIA, DESCRIPCION, TITULAR, ENTIDAD, SUCURSAL, - DC, CUENTA - FROM - FORMAS_PAGO - - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE - FROM - FORMAS_PAGO_PLAZOS - WHERE - FORMAS_PAGO_PLAZOS.ID_FORMA_PAGO = :ID_FORMA_PAGO - - Plan: PLAN (FORMAS_PAGO_PLAZOS INDEX (FK_FORMAS_PAGO_PLAZOS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = FORMAS_PAGO_PLAZOS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = FORMAS_PAGO_PLAZOS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_FORMA_PAGO, NUM_DIAS, PORCENTAJE - FROM - FORMAS_PAGO_PLAZOS - WHERE - FORMAS_PAGO_PLAZOS.ID_FORMA_PAGO = :ID_FORMA_PAGO - - ID_FORMA_PAGO = 8 - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_CATEGORIA, REFERENCIA, NIF_CIF, NOMBRE, CALLE, - POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, - MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, - NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, - REGIMEN_IVA, DESCUENTO, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB - FROM - V_PROVEEDORES WHERE (ID = 118) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - Plan: PLAN JOIN (V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (PK_EMPRESAS_CONTACTOS), V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_PROVEEDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PROVEEDORES PROVEEDORES_DATOS INDEX (PK_PROVEEDORES_DATOS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = V_PROVEEDORES - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = V_PROVEEDORES - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_CATEGORIA, REFERENCIA, NIF_CIF, NOMBRE, CALLE, - POBLACION, PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, - MOVIL_1, MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, - NOTAS, FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_EMPRESA, - REGIMEN_IVA, DESCUENTO, ID_TIPO_IVA, ID_FORMA_PAGO, TIENDA_WEB - FROM - V_PROVEEDORES WHERE (ID = 118) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA - FROM - CONTACTOS_DATOS_BANCO - WHERE ID_CONTACTO = :ID_CONTACTO - - Plan: PLAN (CONTACTOS_DATOS_BANCO INDEX (IDX_CONTACTOS_DATOS_BANCO)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = CONTACTOS_DATOS_BANCO - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = CONTACTOS_DATOS_BANCO - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_CONTACTO, TITULAR, ENTIDAD, SUCURSAL, DC, CUENTA - FROM - CONTACTOS_DATOS_BANCO - WHERE ID_CONTACTO = :ID_CONTACTO - - ID_CONTACTO = 118 - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID_CONTACTO, ID_CATEGORIA - FROM - CONTACTOS_CATEGORIAS - WHERE - ID_CONTACTO = :ID_CONTACTO - - Plan: PLAN (CONTACTOS_CATEGORIAS INDEX (IDX_CONTACTOS_CATEGORIAS)) - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = CONTACTOS_CATEGORIAS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = CONTACTOS_CATEGORIAS - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID_CONTACTO, ID_CATEGORIA - FROM - CONTACTOS_CATEGORIAS - WHERE - ID_CONTACTO = :ID_CONTACTO - - ID_CONTACTO = 118 - - > -[07/08/2007 19:41:07] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO - FROM - V_PEDIDOS_PROVEEDOR WHERE (ID = 90) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_PEDIDOS_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR), JOIN (V_PEDIDOS_PROVEEDOR V_PROVEEDORES PROVEEDORES_DATOS INDEX (PK_PROVEEDORES_DATOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_PEDIDOS_PROVEEDOR V_PROVE - - > -[07/08/2007 19:41:07]EDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (FK_EMPRESAS_CONTACTOS))), V_PEDIDOS_PROVEEDOR ALMACENES INDEX (PK_ALMACENES)), V_PEDIDOS_PROVEEDOR PEDIDOS_CLIENTE INDEX (PK_PEDIDOS_CLIENTE))SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR))) -PLAN SORT (SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR_DETALLES NATURAL, V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR))))) - - > -[07/08/2007 19:41:08] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO - FROM - V_PEDIDOS_PROVEEDOR WHERE (ID = 90) AND (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) - - - > -[07/08/2007 19:41:08] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:08] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 90 - - > -[07/08/2007 19:41:09] -[Application: FactuGES (Servidor)] -: [Connect] - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT GEN_ID(GEN_ALBARANES_PRO_ID,1) FROM RDB$Database - - Plan: PLAN (RDB$DATABASE NATURAL) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - Plan: PLAN JOIN (R INDEX (RDB$INDEX_4), F INDEX (RDB$INDEX_2)) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - Plan: PLAN SORT (JOIN (RR INDEX (RDB$INDEX_42), RI INDEX (RDB$INDEX_6))) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT GEN_ID(GEN_ALBARANES_PRO_ID,1) FROM RDB$Database - - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT GEN_ID(GEN_ALBARANES_PRO_DETALLES_ID,1) FROM RDB$Database - - Plan: PLAN (RDB$DATABASE NATURAL) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT GEN_ID(GEN_ALBARANES_PRO_DETALLES_ID,1) FROM RDB$Database - - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT GEN_ID(GEN_ALBARANES_PRO_DETALLES_ID,1) FROM RDB$Database - - Plan: PLAN (RDB$DATABASE NATURAL) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT GEN_ID(GEN_ALBARANES_PRO_DETALLES_ID,1) FROM RDB$Database - - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - VALOR +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT FROM - REFERENCIAS -WHERE - CODIGO = :CODIGO -AND ID_EMPRESA = :ID_EMPRESA - Plan: PLAN (REFERENCIAS INDEX (IDX_REFERENCIAS)) +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ > -[07/08/2007 19:41:10] +[21/08/2007 13:15:07]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:07]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:07]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:07]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:07]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:07]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:07]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:07]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:07]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:07]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:07] [Application: FactuGES (Servidor)] -: [Start transaction] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ > -[07/08/2007 19:41:10] +[21/08/2007 13:15:07]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:07]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:07]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:07]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:07]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:07]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:07]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:07]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:10] [Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM - RELATION = REFERENCIAS +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ > -[07/08/2007 19:41:10] +[21/08/2007 13:15:10]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:10]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:10]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:10]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:10]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:10]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:10]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:10]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:10]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:10]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:10] [Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM - RELATION_NAME = REFERENCIAS +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ > -[07/08/2007 19:41:10] +[21/08/2007 13:15:10]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:10]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:10]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:10]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:10]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:10]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:10]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:10]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:17] [Application: FactuGES (Servidor)] -: [Commit (Hard commit)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) > -[07/08/2007 19:41:10] +[21/08/2007 13:15:17] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:15:17] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:17]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:17]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:17]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:17]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:17]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:17]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:17]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:17]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:17]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:17]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:17] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:17]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:17]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:17]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:17]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:17]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:17]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:17]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:17]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:20] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:20]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:20]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:20]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:20]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:20]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:20]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:20]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:20]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:20]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:20]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:20] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:20]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:20]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:20]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:20]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:20]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:20]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:20]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:20]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:22] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:22]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:22]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:22]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:22]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:22]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:22]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:22]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:22]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:22]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:22]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:22] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:22]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:22]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:22]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:22]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:22]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:22]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:22]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:22]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:28] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:28]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:28]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:28]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:28]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:28]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:28]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:28]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:28]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:28]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:28]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:28] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:28]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:28]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:28]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:28]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:28]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:28]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:28]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:28]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:45] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:45]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:45]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:45]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:45]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:45]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:45]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:45]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:45]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:45]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:45]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:45] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:45]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:45]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:45]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:45]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:45]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:45]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:45]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:45]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:50] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:15:50] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:15:51] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:51]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:51]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:51]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:51]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:51]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:51]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:51]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:51]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:51]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:51]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:51] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:51]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:51]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:51]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:51]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:51]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:51]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:51]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:51]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:15:56] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:56]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:56]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:56]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:56]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:56]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:56]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:56]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:56]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:15:56]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:15:56]K_CONTACTOS)))))) + + > +[21/08/2007 13:15:56] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:15:56]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:15:56]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:15:56]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:15:56]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:15:56]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:15:56]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:15:56]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:15:56]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:16:02] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:16:02] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:16:02] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:16:02]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:16:02]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:16:02]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:16:02]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:16:02]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:16:02]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:16:02]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:16:02]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:16:02]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:16:02]K_CONTACTOS)))))) + + > +[21/08/2007 13:16:02] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:16:02]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:16:02]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:16:02]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:16:02]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:16:02]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:16:02]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:16:02]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:16:02]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:16:14] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:16:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:16:14] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:16:14]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:16:14]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:16:14]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:16:14]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:16:14]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:16:14]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:16:14]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:16:14]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:16:14]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:16:14]K_CONTACTOS)))))) + + > +[21/08/2007 13:16:14] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:16:14]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:16:14]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:16:14]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:16:14]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:16:14]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:16:14]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:16:14]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:16:14]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:17:32] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:17:32] [Application: FactuGES (Servidor)] : [Execute] SELECT - VALOR -FROM - REFERENCIAS -WHERE - CODIGO = :CODIGO -AND ID_EMPRESA = :ID_EMPRESA + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 - CODIGO = REF_ALBARANES_PROVEEDOR - ID_EMPRESA = 1 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] UPDATE REFERENCIAS SET - VALOR = :VALOR -WHERE CODIGO = :CODIGO AND - ID_EMPRESA = :ID_EMPRESA - - Plan: PLAN (REFERENCIAS INDEX (IDX_REFERENCIAS)) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] UPDATE REFERENCIAS SET - VALOR = :VALOR -WHERE CODIGO = :CODIGO AND - ID_EMPRESA = :ID_EMPRESA - - VALOR = 00042 - CODIGO = REF_ALBARANES_PROVEEDOR - ID_EMPRESA = 1 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] INSERT INTO ALBARANES_PROVEEDOR ( - ID, - ID_EMPRESA, - ID_PROVEEDOR, - FECHA_ALBARAN, - ID_PEDIDO, - ID_FACTURA, - REFERENCIA, - REFERENCIA_PROVEEDOR, - REF_FACTURA_PROV, - CALLE, - CODIGO_POSTAL, - POBLACION, - PROVINCIA, - PERSONA_CONTACTO, - TELEFONO, - BASE_IMPONIBLE, - DESCUENTO, - IMPORTE_DESCUENTO, - IVA, - IMPORTE_IVA, - IMPORTE_TOTAL, - OBSERVACIONES, - INCIDENCIAS, - INCIDENCIAS_ACTIVAS, - FECHA_ALTA, - FECHA_MODIFICACION, - USUARIO, - ID_ALMACEN, - ID_FORMA_PAGO, - IMPORTE_NETO, - IMPORTE_PORTE) - VALUES ( - :ID, - :ID_EMPRESA, - :ID_PROVEEDOR, - :FECHA_ALBARAN, - :ID_PEDIDO, - :ID_FACTURA, - :REFERENCIA, - :REFERENCIA_PROVEEDOR, - :REF_FACTURA_PROV, - :CALLE, - :CODIGO_POSTAL, - :POBLACION, - :PROVINCIA, - :PERSONA_CONTACTO, - :TELEFONO, - :BASE_IMPONIBLE, - :DESCUENTO, - :IMPOR - - > -[07/08/2007 19:41:10]TE_DESCUENTO, - :IVA, - :IMPORTE_IVA, - :IMPORTE_TOTAL, - :OBSERVACIONES, - :INCIDENCIAS, - :INCIDENCIAS_ACTIVAS, - :FECHA_ALTA, - :FECHA_MODIFICACION, - :USUARIO, - :ID_ALMACEN, - :ID_FORMA_PAGO, - :IMPORTE_NETO, - :IMPORTE_PORTE); - - Plan: - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] INSERT INTO ALBARANES_PROVEEDOR ( - ID, - ID_EMPRESA, - ID_PROVEEDOR, - FECHA_ALBARAN, - ID_PEDIDO, - ID_FACTURA, - REFERENCIA, - REFERENCIA_PROVEEDOR, - REF_FACTURA_PROV, - CALLE, - CODIGO_POSTAL, - POBLACION, - PROVINCIA, - PERSONA_CONTACTO, - TELEFONO, - BASE_IMPONIBLE, - DESCUENTO, - IMPORTE_DESCUENTO, - IVA, - IMPORTE_IVA, - IMPORTE_TOTAL, - OBSERVACIONES, - INCIDENCIAS, - INCIDENCIAS_ACTIVAS, - FECHA_ALTA, - FECHA_MODIFICACION, - USUARIO, - ID_ALMACEN, - ID_FORMA_PAGO, - IMPORTE_NETO, - IMPORTE_PORTE) - VALUES ( - :ID, - :ID_EMPRESA, - :ID_PROVEEDOR, - :FECHA_ALBARAN, - :ID_PEDIDO, - :ID_FACTURA, - :REFERENCIA, - :REFERENCIA_PROVEEDOR, - :REF_FACTURA_PROV, - :CALLE, - :CODIGO_POSTAL, - :POBLACION, - :PROVINCIA, - :PERSONA_CONTACTO, - :TELEFONO, - :BASE_IMPONIBLE, - :DESCUENTO, - :IMPOR - - > -[07/08/2007 19:41:10]TE_DESCUENTO, - :IVA, - :IMPORTE_IVA, - :IMPORTE_TOTAL, - :OBSERVACIONES, - :INCIDENCIAS, - :INCIDENCIAS_ACTIVAS, - :FECHA_ALTA, - :FECHA_MODIFICACION, - :USUARIO, - :ID_ALMACEN, - :ID_FORMA_PAGO, - :IMPORTE_NETO, - :IMPORTE_PORTE); - - ID = 79 - ID_EMPRESA = 1 - ID_PROVEEDOR = 118 - FECHA_ALBARAN = 07/08/2007 - ID_PEDIDO = 90 - ID_FACTURA = > - REFERENCIA = 00041 - REFERENCIA_PROVEEDOR = > - REF_FACTURA_PROV = > - CALLE = - CODIGO_POSTAL = - POBLACION = - PROVINCIA = - PERSONA_CONTACTO = - TELEFONO = - BASE_IMPONIBLE = 402,6 - DESCUENTO = 0 - IMPORTE_DESCUENTO = 0 - IVA = 0 - IMPORTE_IVA = 0 - IMPORTE_TOTAL = 402,6 - OBSERVACIONES = > - INCIDENCIAS = > - INCIDENCIAS_ACTIVAS = 0 - FECHA_ALTA = > - FECHA_MODIFICACION = > USUARIO = Luis - ID_ALMACEN = 2 - ID_FORMA_PAGO = > - IMPORTE_NETO = 402,6 - IMPORTE_PORTE = 0 + PASS = 1 > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, REFERENCIA, REFERENCIA_PROVEEDOR, - TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, - ID_FACTURA, REF_FACTURA, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, - PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, - OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, - USUARIO, ID_FORMA_PAGO - FROM - V_ALBARANES_PROVEEDOR -WHERE V_ALBARANES_PROVEEDOR.ID = :ID - - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_ALBARANES_PROVEEDOR ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR), V_ALBARANES_PROVEEDOR CONTACTOS INDEX (PK_CONTACTOS)), V_ALBARANES_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR)), V_ALBARANES_PROVEEDOR FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), V_ALBARANES_PROVEEDOR ALMACENES INDEX (PK_ALMA - - > -[07/08/2007 19:41:10]CENES)) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, FECHA_ALBARAN, REFERENCIA, REFERENCIA_PROVEEDOR, - TIPO, ID_ALMACEN, NOMBRE_ALMACEN, ID_PEDIDO, REF_PED_PROVEEDOR, - ID_FACTURA, REF_FACTURA, REF_FACTURA_PROV, CALLE, CODIGO_POSTAL, POBLACION, PROVINCIA, - PERSONA_CONTACTO, TELEFONO, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, IMPORTE_TOTAL, - OBSERVACIONES, INCIDENCIAS, INCIDENCIAS_ACTIVAS, FECHA_ALTA, FECHA_MODIFICACION, - USUARIO, ID_FORMA_PAGO - FROM - V_ALBARANES_PROVEEDOR -WHERE V_ALBARANES_PROVEEDOR.ID = :ID - - ID = 79 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] INSERT - INTO ALBARANES_PROVEEDOR_DETALLES - (CANTIDAD, POSICION, ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, - IMPORTE_TOTAL, VISIBLE, ID_ALBARAN, - ID_ARTICULO, DESCUENTO, IMPORTE_PORTE) - VALUES - (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CONCEPTO, - :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ALBARAN, - :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE) - - Plan: - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] INSERT - INTO ALBARANES_PROVEEDOR_DETALLES - (CANTIDAD, POSICION, ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, - IMPORTE_TOTAL, VISIBLE, ID_ALBARAN, - ID_ARTICULO, DESCUENTO, IMPORTE_PORTE) - VALUES - (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CONCEPTO, - :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ALBARAN, - :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE) - - CANTIDAD = 1 - POSICION = 0 - ID = 231 - TIPO_DETALLE = Concepto - CONCEPTO = ELICA MODELO DOLMEN INOX - IMPORTE_UNIDAD = 530 - IMPORTE_TOTAL = 205,8 - VISIBLE = > - ID_ALBARAN = 79 - ID_ARTICULO = 304 - DESCUENTO = 64 - IMPORTE_PORTE = 15 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Prepare] SELECT - ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, - ALBARANES_PROVEEDOR_DETALLES.POSICION, ALBARANES_PROVEEDOR_DETALLES.TIPO_DETALLE, - ALBARANES_PROVEEDOR_DETALLES.CONCEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - ALBARANES_PROVEEDOR_DETALLES.VISIBLE, - - ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PROVEEDOR_DETALLES.DESCUENTO, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM ALBARANES_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = :ID_ALBARAN -AND ALBARANES_PROVEEDOR_DETALLES.ID = :ID -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (ALBARANES_PROVEEDOR_DETALLES INDEX (PK_ALBARANES_PROVEEDOR_DETALLES), ART - - > -[07/08/2007 19:41:10]ICULOS INDEX (PK_ARTICULOS))) - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Start transaction] - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] Select F.RDB$COMPUTED_BLR, F.RDB$DEFAULT_VALUE, R.RDB$DEFAULT_VALUE, R.RDB$FIELD_NAME from RDB$RELATION_FIELDS R, RDB$FIELDS F where R.RDB$RELATION_NAME = :RELATION and R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME and ((not F.RDB$COMPUTED_BLR is NULL) or (not (F.RDB$DEFAULT_VALUE is NULL and R.RDB$DEFAULT_VALUE is NULL))) - - RELATION = ALBARANES_PROVEEDOR_DETALLES - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT RDB$FIELD_NAME, RDB$FIELD_POSITION FROM RDB$RELATION_CONSTRAINTS RR JOIN RDB$INDEX_SEGMENTS RI ON RR.RDB$INDEX_NAME = RI.RDB$INDEX_NAME WHERE RDB$RELATION_NAME = :relation_name AND RDB$CONSTRAINT_TYPE = 'PRIMARY KEY ' ORDER BY RDB$FIELD_POSITION - - RELATION_NAME = ALBARANES_PROVEEDOR_DETALLES - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Commit (Hard commit)] - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, - ALBARANES_PROVEEDOR_DETALLES.POSICION, ALBARANES_PROVEEDOR_DETALLES.TIPO_DETALLE, - ALBARANES_PROVEEDOR_DETALLES.CONCEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - ALBARANES_PROVEEDOR_DETALLES.VISIBLE, - - ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PROVEEDOR_DETALLES.DESCUENTO, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM ALBARANES_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = :ID_ALBARAN -AND ALBARANES_PROVEEDOR_DETALLES.ID = :ID -ORDER BY POSICION; - - ID_ALBARAN = 79 - ID = 231 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] INSERT - INTO ALBARANES_PROVEEDOR_DETALLES - (CANTIDAD, POSICION, ID, TIPO_DETALLE, CONCEPTO, IMPORTE_UNIDAD, - IMPORTE_TOTAL, VISIBLE, ID_ALBARAN, - ID_ARTICULO, DESCUENTO, IMPORTE_PORTE) - VALUES - (:CANTIDAD, :POSICION, :ID, :TIPO_DETALLE, :CONCEPTO, - :IMPORTE_UNIDAD, :IMPORTE_TOTAL, :VISIBLE, :ID_ALBARAN, - :ID_ARTICULO, :DESCUENTO, :IMPORTE_PORTE) - - CANTIDAD = 1 - POSICION = 1 - ID = 232 - TIPO_DETALLE = Concepto - CONCEPTO = ELICA MODELO STENAR INOX - IMPORTE_UNIDAD = 505 - IMPORTE_TOTAL = 196,8 - VISIBLE = > - ID_ALBARAN = 79 - ID_ARTICULO = 8 - DESCUENTO = 64 - IMPORTE_PORTE = 15 - - > -[07/08/2007 19:41:10] -[Application: FactuGES (Servidor)] -: [Execute] SELECT - ALBARANES_PROVEEDOR_DETALLES.ID, ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN, - ALBARANES_PROVEEDOR_DETALLES.POSICION, ALBARANES_PROVEEDOR_DETALLES.TIPO_DETALLE, - ALBARANES_PROVEEDOR_DETALLES.CONCEPTO, ALBARANES_PROVEEDOR_DETALLES.CANTIDAD, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, ALBARANES_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - ALBARANES_PROVEEDOR_DETALLES.VISIBLE, - - ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO, ALBARANES_PROVEEDOR_DETALLES.DESCUENTO, - ALBARANES_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM ALBARANES_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON ALBARANES_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE ALBARANES_PROVEEDOR_DETALLES.ID_ALBARAN = :ID_ALBARAN -AND ALBARANES_PROVEEDOR_DETALLES.ID = :ID -ORDER BY POSICION; - - ID_ALBARAN = 79 - ID = 232 - - > -[07/08/2007 19:41:11] +[21/08/2007 13:17:32] [Application: FactuGES (Servidor)] : [Prepare] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO + PERFILES.PERFIL FROM - V_PEDIDOS_PROVEEDOR WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL - Plan: PLAN JOIN (JOIN (JOIN (JOIN (V_PEDIDOS_PROVEEDOR PEDIDOS_PROVEEDOR INDEX (FK_PEDIDOS_PROVEEDOR), JOIN (V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS_CATEGORIAS INDEX (PK_CONTACTOS_CATEGORIAS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS CONTACTOS INDEX (PK_CONTACTOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES PROVEEDORES + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) > -[07/08/2007 19:41:11]_DATOS INDEX (PK_PROVEEDORES_DATOS), V_PEDIDOS_PROVEEDOR V_PROVEEDORES V_CONTACTOS EMPRESAS_CONTACTOS INDEX (FK_EMPRESAS_CONTACTOS))), V_PEDIDOS_PROVEEDOR ALMACENES INDEX (PK_ALMACENES)), V_PEDIDOS_PROVEEDOR PEDIDOS_CLIENTE INDEX (PK_PEDIDOS_CLIENTE))SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_DETALLES PEDIDOS_PROVEEDOR INDEX (PK_PEDIDOS_PROVEEDOR))) -PLAN SORT (SORT (JOIN (V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR_DETALLES NATURAL, V_PEDIDOS_PROVEEDOR V_PED_PROV_SITUACION V_PED_PROV_ARTICULOS V_PED_PROV_ARTICULOS_AUX V_PED_PROV_ARTICULOS_RECIBIDOS V_ALB_PROV_DETALLES ALBARANES_PROVEEDOR INDEX (PK_ALBARAN_PROVEEDOR))))) - - > -[07/08/2007 19:41:11] +[21/08/2007 13:17:32] [Application: FactuGES (Servidor)] : [Execute] SELECT - ID, ID_EMPRESA, ID_PROVEEDOR, NOMBRE, REFERENCIA, SITUACION, - FECHA_ENVIO, FECHA_PEDIDO, FECHA_CONFIRMACION, FECHA_ENTREGA, - ID_ALMACEN, NOMBRE_ALMACEN, OBSERVACIONES, IMPORTE_TOTAL, - INCIDENCIAS, INCIDENCIAS_ACTIVAS, CALLE, POBLACION, - PROVINCIA, CODIGO_POSTAL, PERSONA_CONTACTO, TELEFONO, - FECHA_ALTA, FECHA_MODIFICACION, USUARIO, ID_PEDIDO_CLIENTE, - REF_PED_CLIENTE, IMPORTE_NETO, IMPORTE_PORTE, DESCUENTO, - IMPORTE_DESCUENTO, BASE_IMPONIBLE, IVA, IMPORTE_IVA, - ID_FORMA_PAGO + PERFILES.PERFIL FROM - V_PEDIDOS_PROVEEDOR WHERE (ID_EMPRESA = 1) AND (ID_EMPRESA IN (1)) + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 2 + + > +[21/08/2007 13:17:32] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:17:32] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 2 + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) > -[07/08/2007 19:41:11] +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:17:34] [Application: FactuGES (Servidor)] : [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) > -[07/08/2007 19:41:11] +[21/08/2007 13:17:34] [Application: FactuGES (Servidor)] : [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 77 + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + > -[07/08/2007 19:41:11] +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:17:34] [Application: FactuGES (Servidor)] : [Prepare] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - Plan: PLAN SORT (JOIN (PEDIDOS_PROVEEDOR_DETALLES INDEX (FK_PEDIDOS_PROV_DET_ID_PEDIDO), ARTICULOS INDEX (PK_ARTICULOS))) + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) > -[07/08/2007 19:41:11] +[21/08/2007 13:17:34] [Application: FactuGES (Servidor)] : [Execute] SELECT - PEDIDOS_PROVEEDOR_DETALLES.ID, PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO, - PEDIDOS_PROVEEDOR_DETALLES.POSICION, PEDIDOS_PROVEEDOR_DETALLES.TIPO_DETALLE, - PEDIDOS_PROVEEDOR_DETALLES.CONCEPTO, PEDIDOS_PROVEEDOR_DETALLES.CANTIDAD, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD, PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_TOTAL, - PEDIDOS_PROVEEDOR_DETALLES.VISIBLE, - - PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO, PEDIDOS_PROVEEDOR_DETALLES.DESCUENTO, - PEDIDOS_PROVEEDOR_DETALLES.IMPORTE_PORTE, - ARTICULOS.REFERENCIA, ARTICULOS.REFERENCIA_PROV as REFERENCIA_PROVEEDOR - -FROM PEDIDOS_PROVEEDOR_DETALLES -LEFT JOIN ARTICULOS ON PEDIDOS_PROVEEDOR_DETALLES.ID_ARTICULO = ARTICULOS.ID -WHERE PEDIDOS_PROVEEDOR_DETALLES.ID_PEDIDO = :ID_PEDIDO -ORDER BY POSICION; - - ID_PEDIDO = 90 + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:17:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:17:36] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:17:36] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:17:38] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:17:38] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:17:39] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:17:39]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:17:39]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:17:39]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:17:39]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:17:39]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:17:39]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:17:39]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:17:39]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURA + + > +[21/08/2007 13:17:39]S_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (P + + > +[21/08/2007 13:17:39]K_CONTACTOS)))))) + + > +[21/08/2007 13:17:39] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VENT) AS IMP_PORTE_PRO_VENT,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT) AS IMP_UNIDAD_PRO_VENT +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ + + > +[21/08/2007 13:17:39]ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO + + > +[21/08/2007 13:17:39]_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) + + > +[21/08/2007 13:17:39]/ MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 1 + + > +[21/08/2007 13:17:39]00 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NUL + + > +[21/08/2007 13:17:39]L AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_ + + > +[21/08/2007 13:17:39]VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPOR + + > +[21/08/2007 13:17:39]TE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARG + + > +[21/08/2007 13:17:39]EN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.ID_EMPRESA + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:17:56] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:17:56] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Administrador + PASS = lu + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Administrador + PASS = luisleon07 + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 1 + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:18:05] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 1 + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + Plan: PLAN (EMPRESAS NATURAL) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + Plan: PLAN (EMPRESAS NATURAL) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS + + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) + + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:18:07] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:18:09] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:18:09] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:18:12] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:12] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 31 + + > +[21/08/2007 13:18:15] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:15] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 52 + + > +[21/08/2007 13:18:18] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:18] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 51 + + > +[21/08/2007 13:18:21] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:21] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 53 + + > +[21/08/2007 13:18:23] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:23] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 54 + + > +[21/08/2007 13:18:26] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:26] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 55 + + > +[21/08/2007 13:18:29] +[Application: FactuGES (Servidor)] +: [Prepare] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:18:29] +[Application: FactuGES (Servidor)] +: [Execute] DELETE + FROM + INFORMES + WHERE + (ID = :OLD_ID) + + OLD_ID = 56 + + > +[21/08/2007 13:18:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:18:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:18:33] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_COMPRA) AS IMP_MARGEN_PRO_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_ULT_COMP) AS IMP_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_COMPRA) AS IMP_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_PRO_COMP) AS IMP_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_COMPRA) AS POR_MARGEN_PRO_VENT_COMPRA,AV + + > +[21/08/2007 13:18:33]G(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_ULT_COMP) AS POR_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_COMPRA) AS POR_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_PRO_COMP) AS POR_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIP + + > +[21/08/2007 13:18:33]CION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IM + + > +[21/08/2007 13:18:33]P_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MA + + > +[21/08/2007 13:18:33]RGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NE + + > +[21/08/2007 13:18:33]TO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_AR + + > +[21/08/2007 13:18:33]TICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL + + > +[21/08/2007 13:18:33]) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_POR + + > +[21/08/2007 13:18:33]TE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_CO + + > +[21/08/2007 13:18:33]MPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FE + + > +[21/08/2007 13:18:33]C_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPR + + > +[21/08/2007 13:18:33]AS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:18:33] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_COMPRA) AS IMP_MARGEN_PRO_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_ULT_COMP) AS IMP_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_COMPRA) AS IMP_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_PRO_COMP) AS IMP_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_COMPRA) AS POR_MARGEN_PRO_VENT_COMPRA,AV + + > +[21/08/2007 13:18:33]G(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_ULT_COMP) AS POR_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_COMPRA) AS POR_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_PRO_COMP) AS POR_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIP + + > +[21/08/2007 13:18:33]CION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IM + + > +[21/08/2007 13:18:33]P_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MA + + > +[21/08/2007 13:18:34]RGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NE + + > +[21/08/2007 13:18:34]TO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_AR + + > +[21/08/2007 13:18:34]TICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL + + > +[21/08/2007 13:18:34]) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_POR + + > +[21/08/2007 13:18:34]TE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_CO + + > +[21/08/2007 13:18:34]MPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:18:39] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_COMPRA) AS IMP_MARGEN_PRO_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_ULT_COMP) AS IMP_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_COMPRA) AS IMP_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_PRO_COMP) AS IMP_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_COMPRA) AS POR_MARGEN_PRO_VENT_COMPRA,AV + + > +[21/08/2007 13:18:39]G(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_ULT_COMP) AS POR_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_COMPRA) AS POR_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_PRO_COMP) AS POR_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIP + + > +[21/08/2007 13:18:39]CION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IM + + > +[21/08/2007 13:18:39]P_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MA + + > +[21/08/2007 13:18:39]RGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NE + + > +[21/08/2007 13:18:39]TO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_AR + + > +[21/08/2007 13:18:39]TICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL + + > +[21/08/2007 13:18:39]) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_POR + + > +[21/08/2007 13:18:39]TE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_CO + + > +[21/08/2007 13:18:39]MPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FE + + > +[21/08/2007 13:18:39]C_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPR + + > +[21/08/2007 13:18:39]AS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:18:39] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_COMPRA) AS IMP_MARGEN_PRO_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_ULT_COMP) AS IMP_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_COMPRA) AS IMP_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_PRO_COMP) AS IMP_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_COMPRA) AS POR_MARGEN_PRO_VENT_COMPRA,AV + + > +[21/08/2007 13:18:39]G(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_ULT_COMP) AS POR_MARGEN_PRO_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_COMPRA) AS POR_MARGEN_ULT_VENT_COMPRA,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_PRO_COMP) AS POR_MARGEN_ULT_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIP + + > +[21/08/2007 13:18:39]CION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IM + + > +[21/08/2007 13:18:39]P_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MA + + > +[21/08/2007 13:18:39]RGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NE + + > +[21/08/2007 13:18:39]TO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_AR + + > +[21/08/2007 13:18:39]TICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL + + > +[21/08/2007 13:18:39]) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_POR + + > +[21/08/2007 13:18:39]TE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_CO + + > +[21/08/2007 13:18:39]MPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,INF_MARGEN_ARTICULOS.NOMBRE_AGENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:20:21] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:20:21]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:20:21]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:20:21]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:20:21] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:20:21]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:20:21]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:20:21]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:20:21]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:20:21]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:20:21]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:20:21] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:20:21]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:20:21]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:20:21]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:20:21] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:20:21]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:20:21]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:20:21]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:20:21]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:21:03] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:03]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:03]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:03]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:03] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:03]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:03]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:03]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:03]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:21:03]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:21:03]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:21:03] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:03]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:03]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:03]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:03] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:03]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:03]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:03]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:03]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:21:15] +[Application: FactuGES (Servidor)] +: [Prepare] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:21:15] +[Application: FactuGES (Servidor)] +: [Execute] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + ID_EMPRESA = 1 + CATEGORIA = MARGEN ARTICULOS + CONTROLLER = InfMargenArticuloController + MODIFICABLE = S + ICONO = 0 + NOMBRE = Margen (promedio) por artículo + DESCRIPCION = Informe de margen por artículo teniendo en cuenta el precio neto de venta promedio + ORDEN = > + VISTA = > + OLD_ID = 17 + + > +[21/08/2007 13:21:20] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:21:20] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:21:20] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:20]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:20]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:20]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:20] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:20]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:20]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:20]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:20]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:21:20]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:21:20]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:21:20] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:20]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:20]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:20]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:20] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:20]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:20]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:20]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:20]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:21:24] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:24]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:24]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:24]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:24] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:24]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:24]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:24]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:24]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:21:24]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:21:24]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:21:24] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:24]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:24]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:24]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:24] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:24]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:24]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:24]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:24]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:21:47] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:47]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:47]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:47]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:47] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:47]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:47]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:47]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:47]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:21:47]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:21:47]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:21:47] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:21:47]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:21:47]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:21:47]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:21:47] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:21:47]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:21:47]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:21:47]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:21:47]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 21/05/2007 + FECHAFIN = 21/08/2007 + FECHAINI = 21/05/2007 + FECHAFIN = 21/08/2007 + + > +[21/08/2007 13:23:13] +[Application: FactuGES (Servidor)] +: [Prepare] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + Plan: PLAN (INFORMES INDEX (PK_INFORMES)) + + > +[21/08/2007 13:23:13] +[Application: FactuGES (Servidor)] +: [Execute] UPDATE INFORMES + SET + ID_EMPRESA = :ID_EMPRESA, + CATEGORIA = :CATEGORIA, + CONTROLLER = :CONTROLLER, + MODIFICABLE = :MODIFICABLE, + ICONO = :ICONO, + NOMBRE = :NOMBRE, + DESCRIPCION = :DESCRIPCION, + ORDEN = :ORDEN, + VISTA = :VISTA + WHERE + (ID = :OLD_ID) + + ID_EMPRESA = 1 + CATEGORIA = MARGEN ARTICULOS + CONTROLLER = InfMargenArticuloController + MODIFICABLE = S + ICONO = 0 + NOMBRE = Margen (promedio) por artículo + DESCRIPCION = Informe de margen por artículo teniendo en cuenta el precio neto de venta promedio + ORDEN = > + VISTA = > + OLD_ID = 17 + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Luis + PASS = 1 + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 2 + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:23:23] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 2 + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:23:25] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:23:27] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:23:27] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:23:29] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:23:29] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:23:29] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:23:29]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:23:29]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:23:29]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:23:29] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:23:29]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:23:29]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:23:29]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:23:29]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:23:29]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:23:29]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:23:29] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:23:29]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:23:30]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:23:30]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:23:30] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:23:30]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:23:30]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:23:30]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:23:30]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:23:34] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:23:34]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:23:34]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:23:34]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:23:34] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:23:34]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:23:34]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:23:34]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:23:34]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_IN + + > +[21/08/2007 13:23:34]F_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_C + + > +[21/08/2007 13:23:34]OMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:23:34] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP) AS IMP_MARGEN_PRO_VENT_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP) AS IMP_NETO_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_COMP) AS IMP_PORTE_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP) AS IMP_UNIDAD_PRO_COMP,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_PRO_COMP) AS POR_MARGEN_PRO_VENT_PRO_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTI + + > +[21/08/2007 13:23:34]CULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_P + + > +[21/08/2007 13:23:34]ORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VE + + > +[21/08/2007 13:23:34]NTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + + + > +[21/08/2007 13:23:34] (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPOR + + > +[21/08/2007 13:23:34]TE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES. + + > +[21/08/2007 13:23:34]ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS + + > +[21/08/2007 13:23:34]IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN + + > +[21/08/2007 13:23:34]) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Luis + PASS = 1 + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 2 + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:25:15] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 2 + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:25:18] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:25:19] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:25:19] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:25:22] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:25:22] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:25:22] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:25:22]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:25:22]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:25:22]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:25:22]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:25:22]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:25:22]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:25:22]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:25:22]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENT + + > +[21/08/2007 13:25:22]E_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALL + + > +[21/08/2007 13:25:22]ES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:25:22] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:25:22]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:25:22]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:25:22]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:25:22]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:25:22]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:25:22]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:25:22]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:25:22]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:25:26] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:25:26]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:25:26]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:25:26]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:25:26]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:25:26]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:25:26]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:25:26]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:25:26]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENT + + > +[21/08/2007 13:25:26]E_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALL + + > +[21/08/2007 13:25:26]ES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:25:26] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:25:26]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:25:26]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:25:26]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:25:26]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:25:26]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:25:26]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:25:26]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:25:26]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Luis + PASS = 1 + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 2 + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:27:51] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 2 + + > +[21/08/2007 13:27:53] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:27:53] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:27:53] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:27:53] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:27:53] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:27:54] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:27:57] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:27:57] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:27:59] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:27:59] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:27:59] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:27:59]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:27:59]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:27:59]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:27:59]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:27:59]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:27:59]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:27:59]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:27:59]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENT + + > +[21/08/2007 13:27:59]E_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALL + + > +[21/08/2007 13:27:59]ES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:27:59] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA_PROV, +ARTICULOS.DESCRIPCION AS DES + + > +[21/08/2007 13:27:59]CRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) A + + > +[21/08/2007 13:27:59]S IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IM + + > +[21/08/2007 13:27:59]P_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORT + + > +[21/08/2007 13:27:59]E_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SELECT + ID_EMPRESA, ID_CLIENTE, I + + > +[21/08/2007 13:27:59]D_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO IS NOT + + > +[21/08/2007 13:27:59]NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IMPORTE_NETO_PRO_COMP, NULL AS IMPORTE + + > +[21/08/2007 13:27:59]_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY 1, 2) MARGEN_COMPRAS + + +ON (MARGE + + > +[21/08/2007 13:27:59]N_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + Plan: PLAN (USUARIOS NATURAL) + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID + FROM + USUARIOS + WHERE USUARIO = :USUARIO AND + PASS = :PASS AND + ACTIVO = 1 + + USUARIO = Luis + PASS = 1 + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + Plan: PLAN JOIN (PERFILES_USUARIOS NATURAL, PERFILES INDEX (PK_PERFILES)) + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + PERFILES.PERFIL + FROM + PERFILES, PERFILES_USUARIOS + WHERE PERFILES_USUARIOS.ID_USUARIO = :ID_USUARIO + AND PERFILES.ID = PERFILES_USUARIOS.ID_PERFIL + + ID_USUARIO = 2 + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + Plan: PLAN (EMPRESAS_USUARIOS NATURAL) + + > +[21/08/2007 13:38:47] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID_EMPRESA + FROM + EMPRESAS_USUARIOS + WHERE ID_USUARIO = :ID_USUARIO + + ID_USUARIO = 2 + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (ID IN (1)) + + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + Plan: PLAN (EMPRESAS INDEX (PK_EMPRESAS)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, NIF_CIF, NOMBRE, RAZON_SOCIAL, CALLE, POBLACION, + PROVINCIA, CODIGO_POSTAL, TELEFONO_1, TELEFONO_2, MOVIL_1, + MOVIL_2, FAX, EMAIL_1, EMAIL_2, PAGINA_WEB, NOTAS, + FECHA_ALTA, FECHA_MODIFICACION, USUARIO, LOGOTIPO, + REGISTRO_MERCANTIL, IVA + FROM + EMPRESAS WHERE (EMPRESAS.ID = 1) AND (ID IN (1)) + + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + Plan: PLAN (EMPRESAS_DATOS_BANCO INDEX (FK_EMPRESAS_DATOS_BANCO)) + + > +[21/08/2007 13:38:49] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, NOMBRE, ENTIDAD, SUCURSAL, DC, CUENTA, + SUFIJO_N19, SUFIJO_N58 + FROM + EMPRESAS_DATOS_BANCO +WHERE ID_EMPRESA = :ID_EMPRESA + + ID_EMPRESA = 1 + + > +[21/08/2007 13:38:50] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:38:50] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:38:53] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + Plan: PLAN SORT ((INFORMES NATURAL)) + + > +[21/08/2007 13:38:53] +[Application: FactuGES (Servidor)] +: [Execute] SELECT + ID, ID_EMPRESA, CATEGORIA, CONTROLLER, MODIFICABLE, ICONO, NOMBRE, DESCRIPCION, ORDEN, VISTA + FROM + INFORMES +ORDER BY CATEGORIA, ID + + + > +[21/08/2007 13:38:53] +[Application: FactuGES (Servidor)] +: [Prepare] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,INF_MARGEN_ARTICULOS.NOMBRE_CLIENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA + + > +[21/08/2007 13:38:53]_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_C + + > +[21/08/2007 13:38:53]OMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN + + > +[21/08/2007 13:38:53]_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_UL + + > +[21/08/2007 13:38:53]T_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SEL + + > +[21/08/2007 13:38:53]ECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_ + + > +[21/08/2007 13:38:53]CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IM + + > +[21/08/2007 13:38:53]PORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY + + > +[21/08/2007 13:38:53] 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NOMBRE_CLIENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + Plan: PLAN SORT (SORT (JOIN (JOIN (JOIN (JOIN (JOIN (SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_I + + > +[21/08/2007 13:38:53]NF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS V_INF_ULTIMA_VENTA V_INF_FEC_ULTIMA_VENTA FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE_DETALLES INDEX (IDX_FACTURAS_CLIENTE_DETALLES2), INF_MARGEN_ARTICULOS MARGEN_VENTAS FACTURAS_CLIENTE INDEX (PK_FACTURAS_CLIENTE)))SORT (JOIN (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR)), SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS V_INF_ULTIMA_COMPRA V_INF_FEC_ULTIMA_COMPRA FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))))) +PLAN SORT (JOIN (INF_MARGEN_ARTICULOS MARGEN_ + + > +[21/08/2007 13:38:53]COMPRAS FACTURAS_PROVEEDOR_DETALLES INDEX (IDX_FACTURAS_PROVEEDOR_DETALLES), INF_MARGEN_ARTICULOS MARGEN_COMPRAS FACTURAS_PROVEEDOR INDEX (PK_FACTURAS_PROVEEDOR))), INF_MARGEN_ARTICULOS ARTICULOS INDEX (PK_ARTICULOS), INF_MARGEN_ARTICULOS CLIENTES INDEX (PK_CONTACTOS)), INF_MARGEN_ARTICULOS CLIENTES_DATOS INDEX (PK_CLIENTES_DATOS)), INF_MARGEN_ARTICULOS AGENTES INDEX (PK_CONTACTOS)))))) + + > +[21/08/2007 13:38:53] +[Application: FactuGES (Servidor)] +: [Execute] SELECT DISTINCT +INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,AVG(INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP) AS IMP_MARGEN_ULT_VENT_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_COMP) AS IMP_NETO_ULT_COMP,AVG(INF_MARGEN_ARTICULOS.IMP_NETO_ULT_VENT) AS IMP_NETO_ULT_VENT,INF_MARGEN_ARTICULOS.NOMBRE_CLIENTE,AVG(INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP) AS POR_MARGEN_ULT_VENT_ULT_COMP,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV +FROM + +(SELECT +MARGEN_VENTAS.ID_EMPRESA AS ID_EMPRESA, +MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE, +MARGEN_VENTAS.ID_ARTICULO AS ID_ARTICULO, + +CLIENTES.NIF_CIF AS NIF_CIF_CLIENTE, +CLIENTES.NOMBRE AS NOMBRE_CLIENTE, +CLIENTES_DATOS.NOMBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE, + +AGENTES.NIF_CIF AS NIF_CIF_AGENTE, +AGENTES.NOMBRE AS NOMBRE_AGENTE, + +ARTICULOS.FAMILIA AS FAMILIA, +ARTICULOS.REFERENCIA AS REFERENCIA, +ARTICULOS.REFERENCIA_PROV AS REFERENCIA + + > +[21/08/2007 13:38:53]_PROV, +ARTICULOS.DESCRIPCION AS DESCRIPCION, +ARTICULOS.COMISIONABLE AS COMISIONABLE, +ARTICULOS.INVENTARIABLE AS INVENTARIABLE, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT, + +COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_PRO_VENT, +COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IMP_PORTE_PRO_VENT, + +COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UNIDAD_COMPRA, +COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMPRA, +COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA, + +COALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS IMP_NETO_ULT_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP, 0) AS IMP_PORTE_ULT_COMP, + +COALESCE(MARGEN_C + + > +[21/08/2007 13:38:53]OMPRAS.IMPORTE_UNIDAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP, +COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP, + + + + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_ULT_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_ULT_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN + + > +[21/08/2007 13:38:53]_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_ULT_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_ULT_VENT +ELSE 0 +END +AS POR_MARGEN_ULT_VENT_PRO_COMP, + + + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO AS IMP_MARGEN_PRO_VENT_COMPRA, +CASE +WHEN ARTICULOS.PRECIO_NETO = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - ARTICULOS.PRECIO_NETO) >> 0 THEN + (ARTICULOS.PRECIO_NETO * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_COMPRA, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP AS IMP_MARGEN_PRO_VENT_ULT_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_UL + + > +[21/08/2007 13:38:53]T_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_ULT_COMP, + +MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP AS IMP_MARGEN_PRO_VENT_PRO_COMP, +CASE +WHEN MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP = 0 THEN 100 +WHEN (MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT - MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP) >> 0 THEN + (MARGEN_COMPRAS.IMPORTE_NETO_PRO_COMP * 100) / MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT +ELSE 0 +END +AS POR_MARGEN_PRO_VENT_PRO_COMP + +FROM + + +(SELECT ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0) AS IMPORTE_UNIDAD_ULT_VENT, + COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0) AS IMPORTE_NETO_ULT_VENT, COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0) AS IMPORTE_PORTE_ULT_VENT, + COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0) AS IMPORTE_UNIDAD_PRO_VENT, COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0) AS IMPORTE_NETO_PRO_VENT, + COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0) AS IMPORTE_PORTE_PRO_VENT + + FROM + (SEL + + > +[21/08/2007 13:38:53]ECT + ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, + IMPORTE_UNIDAD_VENTA AS IMPORTE_UNIDAD_ULT_VENT, IMPORTE_NETO_VENTA AS IMPORTE_NETO_ULT_VENT, IMPORTE_PORTE_VENTA AS IMPORTE_PORTE_ULT_VENT, + NULL AS IMPORTE_UNIDAD_PRO_VENT, NULL AS IMPORTE_NETO_PRO_VENT, NULL AS IMPORTE_PORTE_PRO_VENT + + FROM V_INF_ULTIMA_VENTA + + UNION ALL + + SELECT + FACTURAS_CLIENTE.ID_EMPRESA, + FACTURAS_CLIENTE.ID_CLIENTE, + FACTURAS_CLIENTE_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_VENT, + AVG(FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_VENT + + FROM FACTURAS_CLIENTE_DETALLES + LEFT OUTER JOIN FACTURAS_CLIENTE + ON (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_ + + > +[21/08/2007 13:38:53]CLIENTE_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_CLIENTE_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_CLIENTE_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_CLIENTE.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2, 3) + + GROUP BY 1, 2, 3) MARGEN_VENTAS + + +LEFT JOIN + + +(SELECT + 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, + COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0) AS IMPORTE_PORTE_ULT_COMP, COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0) AS IMPORTE_UNIDAD_PRO_COMP, + COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0) AS IMPORTE_NETO_PRO_COMP, COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0) AS IMPORTE_PORTE_PRO_COMP + + FROM + (SELECT + ID_EMPRESA, ID_ARTICULO, + IMPORTE_UNIDAD_COMPRA AS IMPORTE_UNIDAD_ULT_COMP, IMPORTE_NETO_COMPRA AS IMPORTE_NETO_ULT_COMP, IMPORTE_PORTE_COMPRA AS IMPORTE_PORTE_ULT_COMP, + NULL AS IMPORTE_UNIDAD_PRO_COMP, NULL AS IM + + > +[21/08/2007 13:38:53]PORTE_NETO_PRO_COMP, NULL AS IMPORTE_PORTE_PRO_COMP + + FROM V_INF_ULTIMA_COMPRA + + UNION ALL + + SELECT + FACTURAS_PROVEEDOR.ID_EMPRESA, + FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO, + NULL, NULL, NULL, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD) AS IMPORTE_UNIDAD_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD - (FACTURAS_PROVEEDOR_DETALLES.IMPORTE_UNIDAD * (FACTURAS_PROVEEDOR_DETALLES.DESCUENTO / 100))) AS IMPORTE_NETO_PRO_COMP, + AVG(FACTURAS_PROVEEDOR_DETALLES.IMPORTE_PORTE) AS IMPORTE_PORTE_PRO_COMP + + FROM FACTURAS_PROVEEDOR_DETALLES + LEFT OUTER JOIN FACTURAS_PROVEEDOR + ON (FACTURAS_PROVEEDOR.ID = FACTURAS_PROVEEDOR_DETALLES.ID_FACTURA) + + WHERE (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO IS NOT NULL) AND (FACTURAS_PROVEEDOR_DETALLES.ID_ARTICULO >> 0) + AND (FACTURAS_PROVEEDOR_DETALLES.CANTIDAD >> 0) + AND (FACTURAS_PROVEEDOR.FECHA_FACTURA BETWEEN :FECHAINI AND :FECHAFIN) + GROUP BY 1, 2) + + GROUP BY + + > +[21/08/2007 13:38:53] 1, 2) MARGEN_COMPRAS + + +ON (MARGEN_COMPRAS.ID_EMPRESA = MARGEN_VENTAS.ID_EMPRESA) +AND (MARGEN_COMPRAS.ID_ARTICULO = MARGEN_VENTAS.ID_ARTICULO) + + +LEFT JOIN ARTICULOS ON (ARTICULOS.ID = MARGEN_VENTAS.ID_ARTICULO) +LEFT JOIN CONTACTOS CLIENTES ON (CLIENTES.ID = MARGEN_VENTAS.ID_CLIENTE) +LEFT JOIN CLIENTES_DATOS ON (CLIENTES_DATOS.ID_CLIENTE = CLIENTES.ID) +LEFT JOIN CONTACTOS AGENTES ON (AGENTES.ID = CLIENTES_DATOS.ID_AGENTE)) INF_MARGEN_ARTICULOS +GROUP BY INF_MARGEN_ARTICULOS.DESCRIPCION,INF_MARGEN_ARTICULOS.FAMILIA,INF_MARGEN_ARTICULOS.NOMBRE_CLIENTE,INF_MARGEN_ARTICULOS.REFERENCIA,INF_MARGEN_ARTICULOS.REFERENCIA_PROV + + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 + FECHAINI = 01/08/2007 + FECHAFIN = 31/08/2007 > diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 36f26e23..86c94e6a 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/Informes_Group.bdsgroup b/Source/Informes_Group.bdsgroup index 8cb637f9..2ec374d5 100644 --- a/Source/Informes_Group.bdsgroup +++ b/Source/Informes_Group.bdsgroup @@ -8,9 +8,7 @@ - - - + DataAbstract_D10\DataAbstract_D10.bdsproj Base\Base.bdsproj Base\GUIBase\GUIBase.bdsproj @@ -33,7 +31,8 @@ Modulos\Informe margen por articulo\Plugin\InfMargenArticulo_plugin.bdsproj Cliente\FactuGES.bdsproj Servidor\FactuGES_Server.bdsproj - DataAbstract_D10.bpl Base.bpl GUIBase.bpl Informes_model.bpl Informes_data.bpl Informes_controller.bpl InformesBase_controller.bpl Informes_view.bpl InformesBase_view.bpl Informes_plugin.bpl InfVentasArticulo_model.bpl InfVentasArticulo_data.bpl InfVentasArticulo_controller.bpl InfVentasArticulo_view.bpl InfVentasArticulo_plugin.bpl InfMargenArticulo_model.bpl InfMargenArticulo_data.bpl InfMargenArticulo_controller.bpl InfMargenArticulo_view.bpl InfMargenArticulo_plugin.bpl FactuGES.exe FactuGES_Server.exe + Modulos\Articulos\Views\Articulos_view.bdsproj + DataAbstract_D10.bpl Base.bpl GUIBase.bpl Informes_model.bpl Informes_data.bpl Informes_controller.bpl InformesBase_controller.bpl Informes_view.bpl InformesBase_view.bpl Informes_plugin.bpl InfVentasArticulo_model.bpl InfVentasArticulo_data.bpl InfVentasArticulo_controller.bpl InfVentasArticulo_view.bpl InfVentasArticulo_plugin.bpl InfMargenArticulo_model.bpl InfMargenArticulo_data.bpl InfMargenArticulo_controller.bpl InfMargenArticulo_view.bpl InfMargenArticulo_plugin.bpl FactuGES.exe FactuGES_Server.exe Articulos_view.bpl diff --git a/Source/Lib/Base.dcp b/Source/Lib/Base.dcp index cce2159f..d3833d95 100644 Binary files a/Source/Lib/Base.dcp and b/Source/Lib/Base.dcp differ diff --git a/Source/Lib/GUIBase.dcp b/Source/Lib/GUIBase.dcp index 7d61c3c7..f7dcec1d 100644 Binary files a/Source/Lib/GUIBase.dcp and b/Source/Lib/GUIBase.dcp differ diff --git a/Source/Modulos/Contactos/Views/uEditorClientes.dfm b/Source/Modulos/Contactos/Views/uEditorClientes.dfm index 661fa594..b69302c8 100644 --- a/Source/Modulos/Contactos/Views/uEditorClientes.dfm +++ b/Source/Modulos/Contactos/Views/uEditorClientes.dfm @@ -14,7 +14,7 @@ inherited fEditorClientes: TfEditorClientes ExplicitWidth = 786 inherited Image1: TImage Left = 759 - Picture.Data = { + Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 520000000467414D410000B18E7CFB51930000033B4944415478DADD957F6856 @@ -87,16 +87,6 @@ inherited fEditorClientes: TfEditorClientes ExplicitWidth = 786 ExplicitHeight = 270 inherited cxGridView: TcxGridDBTableView - DataController.Summary.FooterSummaryItems = < - item - Format = '0 clientes' - Kind = skCount - end - item - Format = '0 clientes' - Kind = skCount - Column = frViewClientes1.cxGridViewTiendaWeb - end> end end inherited frViewFiltroBase1: TfrViewFiltroBase diff --git a/Source/Modulos/Contactos/Views/uEditorProveedores.dfm b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm index b930ed5b..5571950c 100644 --- a/Source/Modulos/Contactos/Views/uEditorProveedores.dfm +++ b/Source/Modulos/Contactos/Views/uEditorProveedores.dfm @@ -5,7 +5,7 @@ inherited fEditorProveedores: TfEditorProveedores inherited JvNavPanelHeader: TJvNavPanelHeader Caption = 'Lista de proveedores' inherited Image1: TImage - Picture.Data = { + Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 520000000467414D410000AA11B57D14DC0000034D4944415478DADD957D6855 @@ -68,13 +68,6 @@ inherited fEditorProveedores: TfEditorProveedores ExplicitWidth = 543 ExplicitHeight = 195 inherited cxGridView: TcxGridDBTableView - DataController.Summary.FooterSummaryItems = < - item - Format = '0 proveedores' - Kind = skCount - FieldName = 'ID' - Column = frViewProveedores1.cxGridViewREFERENCIA - end> end end inherited frViewFiltroBase1: TfrViewFiltroBase @@ -86,16 +79,16 @@ inherited fEditorProveedores: TfEditorProveedores Width = 543 ExplicitWidth = 543 inherited txtFiltroTodo: TcxTextEdit - ExplicitWidth = 273 - Width = 273 + ExplicitWidth = 457 + Width = 457 end inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 + ExplicitWidth = 240 + Width = 240 end inherited edtFechaFinFiltro: TcxDateEdit - Left = 277 - ExplicitLeft = 277 + Left = 337 + ExplicitLeft = 337 ExplicitWidth = 201 Width = 201 end diff --git a/Source/Modulos/Contactos/Views/uViewClientes.dfm b/Source/Modulos/Contactos/Views/uViewClientes.dfm index c8f0be38..bf928ec1 100644 --- a/Source/Modulos/Contactos/Views/uViewClientes.dfm +++ b/Source/Modulos/Contactos/Views/uViewClientes.dfm @@ -2,10 +2,6 @@ inherited frViewClientes: TfrViewClientes inherited cxGrid: TcxGrid inherited cxGridView: TcxGridDBTableView DataController.Summary.FooterSummaryItems = < - item - Format = '0 clientes' - Kind = skCount - end item Format = '0 clientes' Kind = skCount @@ -78,13 +74,8 @@ inherited frViewClientes: TfrViewClientes Width = 121 end inherited edtFechaFinFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 - end - end - inherited TBXAlignmentPanel1: TTBXAlignmentPanel - inherited tbxBotones: TTBXToolbar - Width = 547 + ExplicitWidth = 201 + Width = 201 end end end diff --git a/Source/Modulos/Contactos/Views/uViewProveedores.dfm b/Source/Modulos/Contactos/Views/uViewProveedores.dfm index 24debbfa..52cd0199 100644 --- a/Source/Modulos/Contactos/Views/uViewProveedores.dfm +++ b/Source/Modulos/Contactos/Views/uViewProveedores.dfm @@ -13,9 +13,9 @@ inherited frViewProveedores: TfrViewProveedores item Format = '0 proveedores' Kind = skCount - FieldName = 'ID' + FieldName = 'NIF_CIF' Column = cxGridViewNIF_CIF - end> + end> inherited cxGridViewICONO: TcxGridDBColumn BestFitMaxWidth = 22 MinWidth = 22 @@ -50,23 +50,17 @@ inherited frViewProveedores: TfrViewProveedores inherited dxLayoutControl1: TdxLayoutControl Width = 483 ExplicitWidth = 483 - inherited txtFiltroTodo: TcxTextEdit - ExplicitWidth = 273 - Width = 273 - end - inherited edtFechaIniFiltro: TcxDateEdit - ExplicitWidth = 121 - Width = 121 - end inherited edtFechaFinFiltro: TcxDateEdit - ExplicitWidth = 225 - Width = 225 + ExplicitWidth = 149 + Width = 149 end end inherited TBXAlignmentPanel1: TTBXAlignmentPanel Width = 483 + ExplicitWidth = 483 inherited tbxBotones: TTBXToolbar Width = 473 + ExplicitWidth = 473 end end end diff --git a/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloClient_Intf.pas b/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloClient_Intf.pas index 38eb7468..be946d3d 100644 --- a/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloClient_Intf.pas +++ b/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloClient_Intf.pas @@ -9,7 +9,7 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_InfMargenArticulo = '{C7326EC8-8B75-4411-A72B-D4DC22188E12}'; + RID_InfMargenArticulo = '{CAD3971F-0746-414E-9D24-39D78E9C8795}'; { Data table names } nme_InfMargenArticulo = 'InfMargenArticulo'; @@ -103,7 +103,7 @@ const type { IInfMargenArticulo } IInfMargenArticulo = interface(IDAStronglyTypedDataTable) - ['{3F971B3F-A487-494A-9878-1F8C907698A0}'] + ['{5CC3A6EA-5D25-4D3E-A94F-04B1CAD301C4}'] { Property getters and setters } function GetID_EMPRESAValue: Integer; procedure SetID_EMPRESAValue(const aValue: Integer); diff --git a/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloServer_Intf.pas b/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloServer_Intf.pas index bf91787e..81c1a349 100644 --- a/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloServer_Intf.pas +++ b/Source/Modulos/Informe margen por articulo/Model/schInfMargenArticuloServer_Intf.pas @@ -9,12 +9,12 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_InfMargenArticuloDelta = '{CDF81831-CF6A-48A3-8833-4574CB195605}'; + RID_InfMargenArticuloDelta = '{E8D3A873-E61E-4AB3-8669-CA10D5D2CE05}'; type { IInfMargenArticuloDelta } IInfMargenArticuloDelta = interface(IInfMargenArticulo) - ['{CDF81831-CF6A-48A3-8833-4574CB195605}'] + ['{E8D3A873-E61E-4AB3-8669-CA10D5D2CE05}'] { Property getters and setters } function GetOldID_EMPRESAValue : Integer; function GetOldID_CLIENTEValue : Integer; diff --git a/Source/Modulos/Informe margen por articulo/Model/uBizInfMargenArticulo.pas b/Source/Modulos/Informe margen por articulo/Model/uBizInfMargenArticulo.pas index e4e5739c..b4d906a9 100644 --- a/Source/Modulos/Informe margen por articulo/Model/uBizInfMargenArticulo.pas +++ b/Source/Modulos/Informe margen por articulo/Model/uBizInfMargenArticulo.pas @@ -69,9 +69,9 @@ procedure TBizInfMargenArticulo.OnBeforeDataRequestCall( begin Request.ParamByName('Columns').AsString := VisibleColumns; FDateParams.Clear; -// NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); -// NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); -// Request.ParamByName('Params').AsComplexType := FDateParams; + NewDatasetParam(FDateParams, 'FECHAINI', DataTable.ParamByName('FECHAINI').AsDateTime); + NewDatasetParam(FDateParams, 'FECHAFIN', DataTable.ParamByName('FECHAFIN').AsDateTime); + Request.ParamByName('Params').AsComplexType := FDateParams; end; procedure TBizInfMargenArticulo.OnBeforeSchemaCall(DataTable: TDADataTable; Request: TDARemoteRequest); 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 cb4c7cc8..d38475ca 100644 --- a/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm +++ b/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.dfm @@ -11,29 +11,175 @@ object srvInfMargenArticulo: TsrvInfMargenArticulo DataDictionary = DataDictionary Datasets = < item - Params = <> + Params = < + item + Name = 'FECHAINI' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end + item + Name = 'FECHAFIN' + BlobType = dabtUnknown + Value = '' + ParamType = daptInput + end> Statements = < item Connection = 'IBX' - TargetTable = 'V_INF_MARGEN_ARTICULOS' + TargetTable = 'INF_MARGEN_ARTICULOS' SQL = - 'SELECT'#10' ID_EMPRESA,'#10' ID_CLIENTE,'#10' ID_ARTICULO,'#10' NIF_' + - 'CIF_CLIENTE,'#10' NOMBRE_CLIENTE,'#10' NOMBRE_COMERCIAL_CLIENTE,'#10' ' + - ' NIF_CIF_AGENTE,'#10' NOMBRE_AGENTE,'#10' FAMILIA,'#10' REFERENCI' + - 'A,'#10' REFERENCIA_PROV,'#10' DESCRIPCION,'#10' COMISIONABLE,'#10' I' + - 'NVENTARIABLE,'#10' IMP_UNIDAD_ULT_VENT,'#10' IMP_NETO_ULT_VENT,'#10' ' + - ' IMP_PORTE_ULT_VENT,'#10' IMP_UNIDAD_PRO_VENT,'#10' IMP_NETO_PRO_' + - 'VENT,'#10' IMP_PORTE_PRO_VENT,'#10' IMP_UNIDAD_COMPRA,'#10' IMP_NET' + - 'O_COMPRA,'#10' IMP_PORTE_COMPRA,'#10' IMP_UNIDAD_ULT_COMP,'#10' IMP' + - '_NETO_ULT_COMP,'#10' IMP_PORTE_ULT_COMP,'#10' IMP_UNIDAD_PRO_COMP,' + - #10' IMP_NETO_PRO_COMP,'#10' IMP_PORTE_PRO_COMP,'#10' IMP_MARGEN_U' + - 'LT_VENT_COMPRA,'#10' POR_MARGEN_ULT_VENT_COMPRA,'#10' IMP_MARGEN_U' + - 'LT_VENT_ULT_COMP,'#10' POR_MARGEN_ULT_VENT_ULT_COMP,'#10' IMP_MARG' + - 'EN_ULT_VENT_PRO_COMP,'#10' POR_MARGEN_ULT_VENT_PRO_COMP,'#10' IMP_' + - 'MARGEN_PRO_VENT_COMPRA,'#10' POR_MARGEN_PRO_VENT_COMPRA,'#10' IMP_' + - 'MARGEN_PRO_VENT_ULT_COMP,'#10' POR_MARGEN_PRO_VENT_ULT_COMP,'#10' ' + - 'IMP_MARGEN_PRO_VENT_PRO_COMP,'#10' POR_MARGEN_PRO_VENT_PRO_COMP'#10' ' + - ' '#10'FROM V_INF_MARGEN_ARTICULOS' + 'SELECT'#10#10' INF_MARGEN_ARTICULOS.ID_EMPRESA,'#10' INF_MARGEN_ARTI' + + 'CULOS.ID_CLIENTE,'#10' INF_MARGEN_ARTICULOS.ID_ARTICULO,'#10' INF_' + + 'MARGEN_ARTICULOS.NIF_CIF_CLIENTE,'#10' INF_MARGEN_ARTICULOS.NOMBR' + + 'E_CLIENTE,'#10' INF_MARGEN_ARTICULOS.NOMBRE_COMERCIAL_CLIENTE,'#10' ' + + ' INF_MARGEN_ARTICULOS.NIF_CIF_AGENTE,'#10' INF_MARGEN_ARTICULOS.' + + 'NOMBRE_AGENTE,'#10' INF_MARGEN_ARTICULOS.FAMILIA,'#10' INF_MARGEN_' + + 'ARTICULOS.REFERENCIA,'#10' INF_MARGEN_ARTICULOS.REFERENCIA_PROV,'#10 + + ' INF_MARGEN_ARTICULOS.DESCRIPCION,'#10' INF_MARGEN_ARTICULOS.C' + + 'OMISIONABLE,'#10' INF_MARGEN_ARTICULOS.INVENTARIABLE,'#10' INF_MAR' + + 'GEN_ARTICULOS.IMP_UNIDAD_ULT_VENT,'#10' INF_MARGEN_ARTICULOS.IMP_' + + 'NETO_ULT_VENT,'#10' INF_MARGEN_ARTICULOS.IMP_PORTE_ULT_VENT,'#10' ' + + 'INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_VENT,'#10' INF_MARGEN_ARTICUL' + + 'OS.IMP_NETO_PRO_VENT,'#10' INF_MARGEN_ARTICULOS.IMP_PORTE_PRO_VEN' + + 'T,'#10' INF_MARGEN_ARTICULOS.IMP_UNIDAD_COMPRA,'#10' INF_MARGEN_AR' + + 'TICULOS.IMP_NETO_COMPRA,'#10' INF_MARGEN_ARTICULOS.IMP_PORTE_COMP' + + 'RA,'#10' INF_MARGEN_ARTICULOS.IMP_UNIDAD_ULT_COMP,'#10' INF_MARGEN' + + '_ARTICULOS.IMP_NETO_ULT_COMP,'#10' INF_MARGEN_ARTICULOS.IMP_PORTE' + + '_ULT_COMP,'#10' INF_MARGEN_ARTICULOS.IMP_UNIDAD_PRO_COMP,'#10' INF' + + '_MARGEN_ARTICULOS.IMP_NETO_PRO_COMP,'#10' INF_MARGEN_ARTICULOS.IM' + + 'P_PORTE_PRO_COMP,'#10' INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_C' + + 'OMPRA,'#10' INF_MARGEN_ARTICULOS.POR_MARGEN_ULT_VENT_COMPRA,'#10' ' + + 'INF_MARGEN_ARTICULOS.IMP_MARGEN_ULT_VENT_ULT_COMP,'#10' INF_MARGE' + + 'N_ARTICULOS.POR_MARGEN_ULT_VENT_ULT_COMP,'#10' INF_MARGEN_ARTICUL' + + 'OS.IMP_MARGEN_ULT_VENT_PRO_COMP,'#10' INF_MARGEN_ARTICULOS.POR_MA' + + 'RGEN_ULT_VENT_PRO_COMP,'#10' INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_' + + 'VENT_COMPRA,'#10' INF_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_COMPRA' + + ','#10' INF_MARGEN_ARTICULOS.IMP_MARGEN_PRO_VENT_ULT_COMP,'#10' INF' + + '_MARGEN_ARTICULOS.POR_MARGEN_PRO_VENT_ULT_COMP,'#10' INF_MARGEN_A' + + 'RTICULOS.IMP_MARGEN_PRO_VENT_PRO_COMP,'#10' INF_MARGEN_ARTICULOS.' + + 'POR_MARGEN_PRO_VENT_PRO_COMP'#10#10'FROM'#10#10'(SELECT'#10'MARGEN_VENTAS.ID_EMP' + + 'RESA AS ID_EMPRESA,'#10'MARGEN_VENTAS.ID_CLIENTE AS ID_CLIENTE,'#10'MARG' + + 'EN_VENTAS.ID_ARTICULO AS ID_ARTICULO,'#10#10'CLIENTES.NIF_CIF AS NIF_C' + + 'IF_CLIENTE,'#10'CLIENTES.NOMBRE AS NOMBRE_CLIENTE,'#10'CLIENTES_DATOS.NO' + + 'MBRE_COMERCIAL AS NOMBRE_COMERCIAL_CLIENTE,'#10#10'AGENTES.NIF_CIF AS ' + + 'NIF_CIF_AGENTE,'#10'AGENTES.NOMBRE AS NOMBRE_AGENTE,'#10#10'ARTICULOS.FAMI' + + 'LIA AS FAMILIA,'#10'ARTICULOS.REFERENCIA AS REFERENCIA,'#10'ARTICULOS.RE' + + 'FERENCIA_PROV AS REFERENCIA_PROV,'#10'ARTICULOS.DESCRIPCION AS DESCR' + + 'IPCION,'#10'ARTICULOS.COMISIONABLE AS COMISIONABLE,'#10'ARTICULOS.INVENT' + + 'ARIABLE AS INVENTARIABLE,'#10#10'COALESCE(MARGEN_VENTAS.IMPORTE_UNIDAD' + + '_ULT_VENT, 0) AS IMP_UNIDAD_ULT_VENT,'#10'COALESCE(MARGEN_VENTAS.IMP' + + 'ORTE_NETO_ULT_VENT, 0) AS IMP_NETO_ULT_VENT,'#10'COALESCE(MARGEN_VEN' + + 'TAS.IMPORTE_PORTE_ULT_VENT, 0) AS IMP_PORTE_ULT_VENT,'#10#10'COALESCE(' + + 'MARGEN_VENTAS.IMPORTE_UNIDAD_PRO_VENT, 0) AS IMP_UNIDAD_PRO_VENT' + + ','#10'COALESCE(MARGEN_VENTAS.IMPORTE_NETO_PRO_VENT, 0) AS IMP_NETO_P' + + 'RO_VENT,'#10'COALESCE(MARGEN_VENTAS.IMPORTE_PORTE_PRO_VENT, 0) AS IM' + + 'P_PORTE_PRO_VENT,'#10#10'COALESCE(ARTICULOS.PRECIO_COSTE, 0) AS IMP_UN' + + 'IDAD_COMPRA,'#10'COALESCE(ARTICULOS.PRECIO_NETO, 0) AS IMP_NETO_COMP' + + 'RA,'#10'COALESCE(ARTICULOS.PRECIO_PORTE, 0) AS IMP_PORTE_COMPRA,'#10#10'CO' + + 'ALESCE(MARGEN_COMPRAS.IMPORTE_UNIDAD_ULT_COMP, 0) AS IMP_UNIDAD_' + + 'ULT_COMP,'#10'COALESCE(MARGEN_COMPRAS.IMPORTE_NETO_ULT_COMP, 0) AS I' + + 'MP_NETO_ULT_COMP,'#10'COALESCE(MARGEN_COMPRAS.IMPORTE_PORTE_ULT_COMP' + + ', 0) AS IMP_PORTE_ULT_COMP,'#10#10'COALESCE(MARGEN_COMPRAS.IMPORTE_UNI' + + 'DAD_PRO_COMP, 0) AS IMP_UNIDAD_PRO_COMP,'#10'COALESCE(MARGEN_COMPRAS' + + '.IMPORTE_NETO_PRO_COMP, 0) AS IMP_NETO_PRO_COMP,'#10'COALESCE(MARGEN' + + '_COMPRAS.IMPORTE_PORTE_PRO_COMP, 0) AS IMP_PORTE_PRO_COMP,'#10#10#10#10#10'M' + + '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)) I' + + 'NF_MARGEN_ARTICULOS' StatementType = stSQL ColumnMappings = < item diff --git a/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.pas b/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.pas index e0b56622..9cb4effc 100644 --- a/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.pas +++ b/Source/Modulos/Informe margen por articulo/Servidor/srvInfMargenArticulo_Impl.pas @@ -37,8 +37,9 @@ uses {Generated:} FactuGES_Invk, uSchemaUtilsServer, dialogs; const - CAMPOS_AVG1 = '#IMP_NETO_ULT_VENT#IMP_NETO_PRO_VENT#IMP_NETO_COMPRA#IMP_NETO_ULT_COMP#IMP_NETO_PRO_COMP#IMP_MARGEN_ULT_VENT_COMPRA#POR_MARGEN_ULT_VENT_COMPRA#IMP_MARGEN_ULT_VENT_ULT_COMP#POR_MARGEN_ULT_VENT_ULT_COMP#'; - CAMPOS_AVG2 = '#IMP_MARGEN_ULT_VENT_PRO_COMP#POR_MARGEN_ULT_VENT_PRO_COMP#IMP_MARGEN_PRO_VENT_COMPRA#POR_MARGEN_PRO_VENT_COMPRA#IMP_MARGEN_PRO_VENT_ULT_COMP#POR_MARGEN_PRO_VENT_ULT_COMP#IMP_MARGEN_PRO_VENT_PRO_COMP#POR_MARGEN_PRO_VENT_PRO_COMP#'; + CAMPOS_AVG1 = '#IMP_NETO_ULT_VENT#IMP_NETO_PRO_VENT#IMP_PORTE_PRO_VENT#IMP_NETO_COMPRA#IMP_NETO_ULT_COMP#IMP_NETO_PRO_COMP#IMP_UNIDAD_PRO_COMP#IMP_PORTE_PRO_COMP#IMP_MARGEN_ULT_VENT_COMPRA#POR_MARGEN_ULT_VENT_COMPRA#IMP_MARGEN_ULT_VENT_ULT_COMP#'; + CAMPOS_AVG2 = '#POR_MARGEN_ULT_VENT_ULT_COMP#IMP_MARGEN_ULT_VENT_PRO_COMP#POR_MARGEN_ULT_VENT_PRO_COMP#IMP_MARGEN_PRO_VENT_COMPRA#POR_MARGEN_PRO_VENT_COMPRA#IMP_MARGEN_PRO_VENT_ULT_COMP#POR_MARGEN_PRO_VENT_ULT_COMP#IMP_MARGEN_PRO_VENT_PRO_COMP#'; + CAMPOS_AVG3 = '#POR_MARGEN_PRO_VENT_PRO_COMP#IMP_UNIDAD_PRO_VENT#'; CAMPOS_SUMA = ''; @@ -67,7 +68,7 @@ begin Service := Self; Columnas := Columns; ColumnasQueSuman := CAMPOS_SUMA; - ColumnasQueAVG := CAMPOS_AVG1 + CAMPOS_AVG2; + ColumnasQueAVG := CAMPOS_AVG1 + CAMPOS_AVG2 + CAMPOS_AVG3; try ds := GetNewDataSet; finally diff --git a/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.dfm b/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.dfm index db04d661..271b1fbd 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.dfm +++ b/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.dfm @@ -191,30 +191,28 @@ inherited fEditorInfMargenArticulo: TfEditorInfMargenArticulo ParentFont = False TabOrder = 4 ReadOnly = False - ExplicitWidth = 671 - ExplicitHeight = 424 + ExplicitTop = 102 + ExplicitWidth = 679 + ExplicitHeight = 452 inherited TBXMultiDock1: TTBXMultiDock Height = 347 - ExplicitHeight = 319 + ExplicitHeight = 347 inherited pnlParametros: TTBXDockablePanel ExplicitHeight = 158 inherited pcParametros: TPageControl Height = 69 - ExplicitHeight = 55 + ExplicitHeight = 69 inherited TabSheet5: TTabSheet - ExplicitLeft = 0 - ExplicitTop = 0 - ExplicitWidth = 0 ExplicitHeight = 29 end inherited tsColumnas: TTabSheet - ExplicitHeight = 45 + ExplicitHeight = 59 inherited frViewColumnas1: TfrViewColumnas Height = 59 - ExplicitHeight = 45 + ExplicitHeight = 59 inherited lbColumnas: TcxCheckListBox Height = 30 - ExplicitHeight = 16 + ExplicitHeight = 30 end end end @@ -234,10 +232,10 @@ inherited fEditorInfMargenArticulo: TfEditorInfMargenArticulo ExplicitHeight = 173 inherited TBXPageScroller1: TTBXPageScroller Height = 151 - ExplicitHeight = 137 + ExplicitHeight = 151 inherited pcTareas: TPageControl Height = 103 - ExplicitHeight = 89 + ExplicitHeight = 103 inherited tsSumarios: TTabSheet ExplicitHeight = 48 inherited frViewSumarios1: TfrViewSumarios @@ -250,17 +248,17 @@ inherited fEditorInfMargenArticulo: TfEditorInfMargenArticulo end end inherited tsFiltros: TTabSheet - ExplicitHeight = 79 + ExplicitHeight = 93 inherited frViewFiltros1: TfrViewFiltros Height = 93 - ExplicitHeight = 79 + ExplicitHeight = 93 inherited cxFilterControl1: TcxFilterControl Height = 34 - ExplicitHeight = 20 + ExplicitHeight = 34 end inherited TBXAlignmentPanel3: TTBXAlignmentPanel Top = 63 - ExplicitTop = 49 + ExplicitTop = 63 end end end @@ -270,26 +268,117 @@ inherited fEditorInfMargenArticulo: TfEditorInfMargenArticulo end inherited TBXMultiDock2: TTBXMultiDock Width = 679 - ExplicitWidth = 671 + ExplicitWidth = 679 inherited pnlIntervaloFechas: TTBXDockablePanel ExplicitWidth = 663 inherited TBXAlignmentPanel3: TTBXAlignmentPanel Width = 659 - ExplicitWidth = 651 + ExplicitWidth = 659 + end + inherited frViewPeriodoFechas1: TfrViewPeriodoFechas + Width = 659 + ExplicitWidth = 659 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 659 + inherited dxLayoutControl1: TdxLayoutControl + Width = 659 + ExplicitWidth = 659 + end + end end end end inherited frViewInfMargenArticuloGrid1: TfrViewInfMargenArticuloGrid Width = 457 Height = 347 - ExplicitWidth = 449 - ExplicitHeight = 319 + ExplicitWidth = 457 + ExplicitHeight = 347 inherited cxGrid: TcxGrid Width = 457 Height = 347 - ExplicitWidth = 449 - ExplicitHeight = 319 + ExplicitWidth = 457 + ExplicitHeight = 347 inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end> inherited cxGridViewREFERENCIA: TcxGridDBColumn [9] end inherited cxGridViewFAMILIA: TcxGridDBColumn [10] diff --git a/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.pas b/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.pas index 02b661cd..e70962c3 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.pas +++ b/Source/Modulos/Informe margen por articulo/Views/uEditorInfMargenArticulo.pas @@ -125,9 +125,11 @@ begin end; procedure TfEditorInfMargenArticulo.actRefrescarExecute(Sender: TObject); + begin inherited; frViewInfMargenArticulo1.Refresh; + while (frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do begin frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.FocusedRecord.Expand(True); @@ -273,7 +275,11 @@ begin if FInforme.DataTable.State = dsInsert then // Si es nuevo obligamos a meter nombre actPropiedades.Execute; - actRefrescar.Execute; + if not frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.HayColumnasDePromedio then + begin + frViewInfMargenArticulo1.TBXMultiDock2.Visible := False; + actRefrescar.Execute; + end; end; procedure TfEditorInfMargenArticulo.actPrevisualizarExecute( diff --git a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.dfm b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.dfm index 2982d340..22d7766a 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.dfm +++ b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.dfm @@ -83,7 +83,6 @@ inherited frViewInfMargenArticulo: TfrViewInfMargenArticulo inherited TBXMultiDock2: TTBXMultiDock Width = 834 Height = 105 - Visible = False ExplicitWidth = 834 ExplicitHeight = 105 inherited pnlIntervaloFechas: TTBXDockablePanel @@ -98,6 +97,48 @@ inherited frViewInfMargenArticulo: TfrViewInfMargenArticulo ExplicitTop = 71 ExplicitWidth = 814 end + inline frViewPeriodoFechas1: TfrViewPeriodoFechas + Left = 0 + Top = 0 + Width = 814 + Height = 71 + Align = alClient + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + TabOrder = 1 + ReadOnly = False + ExplicitWidth = 814 + ExplicitHeight = 71 + inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 814 + ExplicitHeight = 71 + inherited dxLayoutControl1: TdxLayoutControl + Width = 814 + Height = 71 + ExplicitWidth = 814 + ExplicitHeight = 71 + DesignSize = ( + 814 + 71) + inherited cbPeriodo: TcxComboBox + Left = 54 + ExplicitLeft = 54 + end + inherited edtFechaIni: TcxDateEdit + Left = 54 + ExplicitLeft = 54 + end + inherited edtFechaFin: TcxDateEdit + Left = 266 + ExplicitLeft = 266 + end + end + end + end end end inline frViewInfMargenArticuloGrid1: TfrViewInfMargenArticuloGrid [2] @@ -123,6 +164,88 @@ inherited frViewInfMargenArticulo: TfrViewInfMargenArticulo Height = 343 ExplicitWidth = 612 ExplicitHeight = 343 + inherited cxGridView: TcxGridDBTableView + DataController.Summary.DefaultGroupSummaryItems = < + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Position = spFooter + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end> + DataController.Summary.FooterSummaryItems = < + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_ULT_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_ULT_VENT_PRO_COMP + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_COMPRA + end + item + Format = ',0.00 %;-,0.00 %' + Column = frViewInfMargenArticuloGrid1.cxGridViewPOR_MARGEN_PRO_VENT_ULT_COMP + end> + end end inherited dxPrintStyleManager1: TdxPrintStyleManager inherited dxPrintStyleManager1Style1: TdxPSPrintStyle diff --git a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.pas b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.pas index ed491e50..6fd8e9e0 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.pas +++ b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticulo.pas @@ -26,6 +26,7 @@ type TfrViewInfMargenArticulo = class(TfrViewInformeBase, IViewInfMargenArticulo) actPeriodoFechas: TAction; frViewInfMargenArticuloGrid1: TfrViewInfMargenArticuloGrid; + frViewPeriodoFechas1: TfrViewPeriodoFechas; procedure actRefrescarExecute(Sender: TObject); procedure actPeriodoFechasExecute(Sender: TObject); protected @@ -109,8 +110,8 @@ begin LoadSchema; -// ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial; -// ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal; + ParamByName('FECHAINI').AsDateTime := frViewPeriodoFechas1.FechaInicial; + ParamByName('FECHAFIN').AsDateTime := frViewPeriodoFechas1.FechaFinal; Active := True; diff --git a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.dfm b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.dfm index 7dc9875e..23ffc464 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.dfm +++ b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.dfm @@ -107,6 +107,7 @@ inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid OptionsBehavior.CellHints = True OptionsCustomize.ColumnFiltering = False OptionsCustomize.ColumnGrouping = False + OptionsCustomize.ColumnsQuickCustomization = True OptionsCustomize.DataRowSizing = True OptionsCustomize.GroupRowSizing = True OptionsData.Deleting = False @@ -124,7 +125,6 @@ inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid OptionsView.GroupByBox = False OptionsView.GroupFooters = gfAlwaysVisible OptionsView.HeaderEndEllipsis = True - OptionsView.NewItemRowInfoText = 'Click here to add a new row' Styles.FilterBox = cxStyleFilterBox Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle OnColumnPosChanged = cxGridViewColumnPosChanged @@ -136,14 +136,17 @@ inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid object cxGridViewID_EMPRESA: TcxGridDBColumn Caption = 'Id_empresa' DataBinding.FieldName = 'ID_EMPRESA' + Hidden = True end object cxGridViewID_CLIENTE: TcxGridDBColumn Caption = 'Id_cliente' DataBinding.FieldName = 'ID_CLIENTE' + Hidden = True end object cxGridViewID_ARTICULO: TcxGridDBColumn Caption = 'Id_articulo' DataBinding.FieldName = 'ID_ARTICULO' + Hidden = True end object cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn Caption = 'NIF/CIF cliente' diff --git a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.pas b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.pas index dd75b076..aea40ba1 100644 --- a/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.pas +++ b/Source/Modulos/Informe margen por articulo/Views/uViewInfMargenArticuloGrid.pas @@ -86,6 +86,7 @@ type public procedure Refresh; override; constructor Create(AOwner: TComponent); override; + function HayColumnasDePromedio: boolean; end; implementation @@ -102,9 +103,27 @@ begin Result := cxGridView; end; +function TfrViewInfMargenArticuloGrid.HayColumnasDePromedio: boolean; +var + i: Integer; +begin + Result := False; + + //Para que el usuario pueda ocultar y desocultar columnas sin afectar al informe + for i := 0 to FocusedView.ColumnCount - 1 do + begin + if (FocusedView.Columns[i].Visible) + and (Pos('_PRO_', FocusedView.Columns[i].DataBinding.FieldName) <> 0) then + begin + Result := true; + break; + end; + end; +end; + procedure TfrViewInfMargenArticuloGrid.Refresh; var - FocusedRow, TopRow : Integer; + FocusedRow, TopRow, i : Integer; begin inherited; { Refrescar las filas del grid a partir del dataset y colocar la fila @@ -118,6 +137,10 @@ begin FocusedView.DataController.FocusedRowIndex := FocusedRow; FocusedView.Controller.TopRowIndex := TopRow; + + //Para que el usuario pueda ocultar y desocultar columnas sin afectar al informe + for i := 0 to FocusedView.ColumnCount - 1 do + FocusedView.Columns[i].Hidden := not FocusedView.Columns[i].Visible; end; end; diff --git a/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.dfm b/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.dfm index 516507ad..77b37e80 100644 --- a/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.dfm +++ b/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.dfm @@ -47,7 +47,6 @@ inherited frViewInfVentasArticuloGrid: TfrViewInfVentasArticuloGrid OptionsView.GroupByBox = False OptionsView.GroupFooters = gfAlwaysVisible OptionsView.HeaderEndEllipsis = True - OptionsView.NewItemRowInfoText = 'Click here to add a new row' Styles.FilterBox = cxStyleFilterBox Styles.OnGetContentStyle = cxGridViewStylesGetContentStyle OnColumnPosChanged = cxGridViewColumnPosChanged diff --git a/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.pas b/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.pas index 9b475f0a..513004d9 100644 --- a/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.pas +++ b/Source/Modulos/Informe ventas por articulo/Views/uViewInfVentasArticuloGrid.pas @@ -91,7 +91,7 @@ end; procedure TfrViewInfVentasArticuloGrid.Refresh; var - FocusedRow, TopRow : Integer; + FocusedRow, TopRow, i : Integer; begin inherited; { Refrescar las filas del grid a partir del dataset y colocar la fila @@ -105,6 +105,10 @@ begin FocusedView.DataController.FocusedRowIndex := FocusedRow; FocusedView.Controller.TopRowIndex := TopRow; + + //Para que el usuario pueda ocultar y desocultar columnas sin afectar al informe + for i := 0 to FocusedView.ColumnCount - 1 do + FocusedView.Columns[i].Hidden := not FocusedView.Columns[i].Visible; end; end; diff --git a/Source/Modulos/Informes base/Views/uViewInformeBase.pas b/Source/Modulos/Informes base/Views/uViewInformeBase.pas index 7cc9742c..0d5d94a5 100644 --- a/Source/Modulos/Informes base/Views/uViewInformeBase.pas +++ b/Source/Modulos/Informes base/Views/uViewInformeBase.pas @@ -87,6 +87,7 @@ type property Informe: IBizInforme read GetInforme write SetInforme; constructor Create(AOwner: TComponent); override; destructor Destroy; override; + procedure Refresh; override; end; implementation @@ -160,6 +161,14 @@ begin Result := FOnViewChanged; end; +procedure TfrViewInformeBase.Refresh; +var + i: Integer; +begin + inherited; + +end; + procedure TfrViewInformeBase.SetOnViewChanged(const Value: TNotifyEvent); begin FOnViewChanged := Value; diff --git a/Source/Modulos/Informes base/Views/uViewInformeBaseGrid.pas b/Source/Modulos/Informes base/Views/uViewInformeBaseGrid.pas index 42dca8c5..328807c1 100644 --- a/Source/Modulos/Informes base/Views/uViewInformeBaseGrid.pas +++ b/Source/Modulos/Informes base/Views/uViewInformeBaseGrid.pas @@ -90,7 +90,7 @@ type procedure SetOnViewChanged(const Value : TNotifyEvent); virtual; function GetOnFilterChanged: TNotifyEvent; virtual; procedure SetOnFilterChanged(const Value: TNotifyEvent); virtual; - function GetViewProperties: String; virtual; + function GetViewProperties: String; virtual; procedure SetViewProperties(const Value: String); virtual; function GetFilterValueList(index: Integer) : TStringList; virtual; procedure ActivarEventos; virtual; diff --git a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm index 04fd023a..66abad7f 100644 --- a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.dfm @@ -39,8 +39,10 @@ inherited frViewEntradaSalidaArticulos: TfrViewEntradaSalidaArticulos end object cxGridViewCANTIDAD: TcxGridDBColumn DataBinding.FieldName = 'CANTIDAD' - PropertiesClassName = 'TcxTextEditProperties' + PropertiesClassName = 'TcxSpinEditProperties' Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + HeaderAlignmentHorz = taRightJustify end object cxGridViewID_EMPRESA: TcxGridDBColumn DataBinding.FieldName = 'ID_EMPRESA' @@ -70,6 +72,9 @@ inherited frViewEntradaSalidaArticulos: TfrViewEntradaSalidaArticulos end end end + inherited pnlAgrupaciones: TTBXDockablePanel + ExplicitWidth = 554 + end inherited dxComponentPrinter: TdxComponentPrinter inherited dxComponentPrinterLink: TdxGridReportLink ReportDocument.CreationDate = 39253.500748333330000000 diff --git a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas index 9bb61f31..77bb5cca 100644 --- a/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas +++ b/Source/Modulos/Inventario/Views/uViewEntradaSalidaArticulos.pas @@ -1,4 +1,4 @@ -unit uViewEntradaSalidaArticulos; +unit uViewEntradaSalidaArticulos; interface @@ -14,7 +14,7 @@ uses cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGridLnk, uAlmacenesController, uBizAlmacenes, TB2Item, TBX, TB2Dock, TB2Toolbar, uDataModuleInventario, cxRichEdit, cxTextEdit, dxPgsDlg, TBXDkPanels, - uViewFiltroBase; + uViewFiltroBase, cxSpinEdit; type IViewViewEntradaSalidaArticulos = interface(IViewGrid) diff --git a/Source/Modulos/Lib/Contactos_view.dcp b/Source/Modulos/Lib/Contactos_view.dcp index 2be0b5a3..ba79092e 100644 Binary files a/Source/Modulos/Lib/Contactos_view.dcp and b/Source/Modulos/Lib/Contactos_view.dcp differ diff --git a/Source/Modulos/Lib/InfVentasArticulo_controller.dcp b/Source/Modulos/Lib/InfVentasArticulo_controller.dcp index 9f13f6eb..9b8eb5d0 100644 Binary files a/Source/Modulos/Lib/InfVentasArticulo_controller.dcp and b/Source/Modulos/Lib/InfVentasArticulo_controller.dcp differ diff --git a/Source/Modulos/Lib/InfVentasArticulo_data.dcp b/Source/Modulos/Lib/InfVentasArticulo_data.dcp index f500c974..e7c415f6 100644 Binary files a/Source/Modulos/Lib/InfVentasArticulo_data.dcp and b/Source/Modulos/Lib/InfVentasArticulo_data.dcp differ diff --git a/Source/Modulos/Lib/InfVentasArticulo_model.dcp b/Source/Modulos/Lib/InfVentasArticulo_model.dcp index 256754a5..3374c901 100644 Binary files a/Source/Modulos/Lib/InfVentasArticulo_model.dcp and b/Source/Modulos/Lib/InfVentasArticulo_model.dcp differ diff --git a/Source/Modulos/Lib/InfVentasArticulo_plugin.dcp b/Source/Modulos/Lib/InfVentasArticulo_plugin.dcp index e0a5311b..357a9be6 100644 Binary files a/Source/Modulos/Lib/InfVentasArticulo_plugin.dcp and b/Source/Modulos/Lib/InfVentasArticulo_plugin.dcp differ diff --git a/Source/Modulos/Lib/InfVentasArticulo_view.dcp b/Source/Modulos/Lib/InfVentasArticulo_view.dcp index a6e3f628..7fa17a5c 100644 Binary files a/Source/Modulos/Lib/InfVentasArticulo_view.dcp and b/Source/Modulos/Lib/InfVentasArticulo_view.dcp differ diff --git a/Source/Modulos/Lib/InformesBase_controller.dcp b/Source/Modulos/Lib/InformesBase_controller.dcp index d5fccadb..c2518092 100644 Binary files a/Source/Modulos/Lib/InformesBase_controller.dcp and b/Source/Modulos/Lib/InformesBase_controller.dcp differ diff --git a/Source/Modulos/Lib/InformesBase_view.dcp b/Source/Modulos/Lib/InformesBase_view.dcp index 562668f4..0fa3d8a9 100644 Binary files a/Source/Modulos/Lib/InformesBase_view.dcp and b/Source/Modulos/Lib/InformesBase_view.dcp differ diff --git a/Source/Modulos/Lib/Informes_controller.dcp b/Source/Modulos/Lib/Informes_controller.dcp index 42cae6ee..db9ecc0a 100644 Binary files a/Source/Modulos/Lib/Informes_controller.dcp and b/Source/Modulos/Lib/Informes_controller.dcp differ diff --git a/Source/Modulos/Lib/Informes_data.dcp b/Source/Modulos/Lib/Informes_data.dcp index 74383161..8bb4e551 100644 Binary files a/Source/Modulos/Lib/Informes_data.dcp and b/Source/Modulos/Lib/Informes_data.dcp differ diff --git a/Source/Modulos/Lib/Informes_model.dcp b/Source/Modulos/Lib/Informes_model.dcp index 608ba452..053e6ab3 100644 Binary files a/Source/Modulos/Lib/Informes_model.dcp and b/Source/Modulos/Lib/Informes_model.dcp differ diff --git a/Source/Modulos/Lib/Informes_plugin.dcp b/Source/Modulos/Lib/Informes_plugin.dcp index a56bbb45..f83a0efe 100644 Binary files a/Source/Modulos/Lib/Informes_plugin.dcp and b/Source/Modulos/Lib/Informes_plugin.dcp differ diff --git a/Source/Modulos/Lib/Informes_view.dcp b/Source/Modulos/Lib/Informes_view.dcp index 9958c52e..4d32d161 100644 Binary files a/Source/Modulos/Lib/Informes_view.dcp and b/Source/Modulos/Lib/Informes_view.dcp differ diff --git a/Source/Modulos/Lib/Inventario_view.dcp b/Source/Modulos/Lib/Inventario_view.dcp index 1d31d3f5..df4da85e 100644 Binary files a/Source/Modulos/Lib/Inventario_view.dcp and b/Source/Modulos/Lib/Inventario_view.dcp differ diff --git a/Source/Modulos/Lib/PedidosCliente_view.dcp b/Source/Modulos/Lib/PedidosCliente_view.dcp index d8467219..de74779e 100644 Binary files a/Source/Modulos/Lib/PedidosCliente_view.dcp and b/Source/Modulos/Lib/PedidosCliente_view.dcp differ diff --git a/Source/Modulos/Lib/PedidosProveedor_view.dcp b/Source/Modulos/Lib/PedidosProveedor_view.dcp index 02c2e4da..71619116 100644 Binary files a/Source/Modulos/Lib/PedidosProveedor_view.dcp and b/Source/Modulos/Lib/PedidosProveedor_view.dcp differ diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm index fd609269..88d61a4f 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.dfm @@ -66,6 +66,12 @@ inherited frViewPedidoProveedor: TfrViewPedidoProveedor ExplicitWidth = 71 Width = 71 end + inherited Button1: TBitBtn + OnClick = frViewProveedorPedidoButton1Click + end + inherited Button2: TBitBtn + OnClick = frViewProveedorPedidoButton2Click + end inherited Button3: TBitBtn Left = 135 ExplicitLeft = 135 diff --git a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas index 4f9079ab..2b67f08e 100644 --- a/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas +++ b/Source/Modulos/Pedidos a proveedor/Views/uViewPedidoProveedor.pas @@ -68,11 +68,11 @@ type actVerPedidoCli: TAction; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); - procedure frViewProveedorPedidoButton1Click(Sender: TObject); - procedure frViewProveedorPedidoButton2Click(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); procedure actVerPedidoCliExecute(Sender: TObject); procedure actVerPedidoCliUpdate(Sender: TObject); + procedure frViewProveedorPedidoButton1Click(Sender: TObject); + procedure frViewProveedorPedidoButton2Click(Sender: TObject); protected FPedido : IBizPedidoProveedor; FViewProveedorPedido : TfrViewDatosYSeleccionProveedor; @@ -157,7 +157,7 @@ begin if (Application.MessageBox('Si cambia de proveedor, se eliminarán todos sus artículos del pedido actual, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then Exit; end; - frViewProveedorPedido.actElegirContacto.Execute; + frViewProveedorPedido.actAnadirContacto.Execute; end; function TfrViewPedidoProveedor.GetPedido: IBizPedidoProveedor; diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm index 1595b1f9..e0593c1e 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.dfm @@ -1,22 +1,22 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente - Width = 688 - Height = 407 + Width = 740 + Height = 479 OnCreate = CustomViewCreate OnDestroy = CustomViewDestroy - ExplicitWidth = 688 - ExplicitHeight = 407 + ExplicitWidth = 740 + ExplicitHeight = 479 object dxLayoutControl1: TdxLayoutControl Left = 0 Top = 0 - Width = 688 - Height = 407 + Width = 740 + Height = 479 Align = alClient ParentBackground = True TabOrder = 0 AutoContentSizes = [acsWidth, acsHeight] DesignSize = ( - 688 - 407) + 740 + 479) object edtFechaPedido: TcxDBDateEdit Left = 116 Top = 82 @@ -85,7 +85,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 143 end inline frViewClientePedido: TfrViewDatosYSeleccionCliente - Left = 353 + Left = 388 Top = 28 Width = 350 Height = 212 @@ -97,7 +97,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente ParentFont = False TabOrder = 13 ReadOnly = False - ExplicitLeft = 353 + ExplicitLeft = 388 ExplicitTop = 28 inherited dxLayoutControl1: TdxLayoutControl inherited edtlNombre: TcxDBTextEdit @@ -121,12 +121,18 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 327 end inherited edtCodigoPostal: TcxDBTextEdit - Left = 204 - ExplicitLeft = 204 + Left = 238 + ExplicitLeft = 238 + end + inherited Button1: TBitBtn + OnClick = frViewClientePedidoButton1Click + end + inherited Button2: TBitBtn + OnClick = frViewClientePedidoButton2Click end inherited Button3: TBitBtn - Left = 94 - ExplicitLeft = 94 + Left = 128 + ExplicitLeft = 128 end end inherited DADataSource: TDADataSource @@ -178,7 +184,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 162 end object eCodigoPostal: TcxDBTextEdit - Left = 258 + Left = 293 Top = 220 DataBinding.DataField = 'CODIGO_POSTAL' DataBinding.DataSource = DADataSource @@ -255,7 +261,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 122 end object bElegirDireccion: TBitBtn - Left = 151 + Left = 186 Top = 328 Width = 172 Height = 25 @@ -293,7 +299,7 @@ inherited frViewPedidoCliente: TfrViewPedidoCliente Width = 101 end object bFormasPago: TButton - Left = 191 + Left = 226 Top = 136 Width = 132 Height = 21 diff --git a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas index 90fae456..3a579520 100644 --- a/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas +++ b/Source/Modulos/Pedidos de cliente/Views/uViewPedidoCliente.pas @@ -77,6 +77,7 @@ type procedure actElegirDireccionUpdate(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); procedure frViewClientePedidoButton1Click(Sender: TObject); + procedure frViewClientePedidoButton2Click(Sender: TObject); protected FPedido : IBizPedidoCliente; FViewClientePedido : TfrViewDatosYSeleccionCliente; @@ -172,6 +173,17 @@ begin frViewClientePedido.actElegirContacto.Execute; end; +procedure TfrViewPedidoCliente.frViewClientePedidoButton2Click(Sender: TObject); +begin + if Assigned(Pedido) and Assigned(Pedido.Cliente) and + Assigned (Pedido.Detalles) and (Pedido.Detalles.RecordCount > 0) then + begin + if (Application.MessageBox('Los descuentos de los artículos del pedido serán actualizados con los del nuevo cliente seleccionado, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then + Exit; + end; + frViewClientePedido.actAnadirContacto.Execute; +end; + function TfrViewPedidoCliente.GetPedido: IBizPedidoCliente; begin Result := FPedido; diff --git a/Source/Servidor/FactuGES_Server.bdsproj b/Source/Servidor/FactuGES_Server.bdsproj index 4e802ff1..2405e9fe 100644 --- a/Source/Servidor/FactuGES_Server.bdsproj +++ b/Source/Servidor/FactuGES_Server.bdsproj @@ -1,4 +1,4 @@ - +