Finalización del modulo de informes

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@123 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
roberto 2007-08-03 12:00:20 +00:00
parent 211a73b55b
commit 85ce477aed
366 changed files with 6078 additions and 13555 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -2,10 +2,18 @@ DROP VIEW V_VENTAS_ARTICULOS;
DROP VIEW V_INF_VENTAS_ARTICULOS;
DROP VIEW V_INF_MARGEN_VENTAS_ARTICULOS;
DROP VIEW V_INF_ULTIMA_COMPRA;
DROP VIEW V_INF_MARGEN_ARTICULOS;
DROP VIEW V_INF_MARGEN_COMPRAS;
DROP VIEW V_INF_MARGEN_VENTAS;
DROP VIEW V_INF_PROMEDIO_COMPRA;
DROP VIEW V_INF_PROMEDIO_VENTA;
DROP VIEW V_INF_ULTIMA_COMPRA;
DROP VIEW V_INF_ULTIMA_VENTA;
DROP VIEW V_INF_FEC_ULTIMA_COMPRA;
DROP VIEW V_INF_FEC_ULTIMA_VENTA;
DROP VIEW V_INV_DETALLE_RESERVAS;
@ -2273,34 +2281,33 @@ and (facturas_proveedor_detalles.cantidad > 0)
group by
facturas_proveedor.ID_EMPRESA,
facturas_proveedor_detalles.ID_ARTICULO
;
facturas_proveedor_detalles.ID_ARTICULO;
CREATE VIEW V_INF_PROMEDIO_COMPRA(
CREATE VIEW V_INF_FEC_ULTIMA_VENTA(
ID_EMPRESA,
ID_CLIENTE,
ID_ARTICULO,
IMPORTE_UNIDAD_COMPRA,
IMPORTE_NETO_COMPRA,
IMPORTE_PORTE_COMPRA)
FECHA)
AS
select
facturas_proveedor.id_empresa,
facturas_proveedor_detalles.ID_ARTICULO,
facturas_cliente.ID_EMPRESA,
facturas_cliente.ID_CLIENTE,
facturas_cliente_detalles.ID_ARTICULO,
max(facturas_cliente.FECHA_FACTURA)
avg(facturas_proveedor_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_COMPRA,
avg(facturas_proveedor_detalles.IMPORTE_UNIDAD - (facturas_proveedor_detalles.IMPORTE_UNIDAD * (facturas_proveedor_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_COMPRA,
avg(facturas_proveedor_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_COMPRA
from facturas_cliente_detalles
left join facturas_cliente
on (facturas_cliente.id = facturas_cliente_detalles.id_factura)
WHERE (ID_ARTICULO IS NOT NULL)
AND (ID_ARTICULO > 0)
and (facturas_cliente_detalles.cantidad > 0)
from facturas_proveedor_detalles
group by
facturas_cliente.ID_EMPRESA,
facturas_cliente.ID_CLIENTE,
facturas_cliente_detalles.ID_ARTICULO;
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*/
group by 1, 2;
CREATE VIEW V_INF_ULTIMA_COMPRA(
ID_EMPRESA,
@ -2334,71 +2341,208 @@ and (facturas_proveedor.FECHA_FACTURA = v_inf_fec_ultima_compra.fecha) /*nos que
group by 1, 2;
CREATE VIEW V_INF_MARGEN_VENTAS_ARTICULOS(
ID_FACTURA,
CREATE VIEW V_INF_ULTIMA_VENTA(
ID_EMPRESA,
REFERENCIA_FACTURA,
FECHA_FACTURA,
IMPORTE_TOTAL_FACTURA,
ID_COMISION_FACTURA,
ID_CLIENTE,
ID_ARTICULO,
IMPORTE_UNIDAD_VENTA,
IMPORTE_NETO_VENTA,
IMPORTE_PORTE_VENTA)
AS
select
facturas_cliente.id_empresa,
facturas_cliente.id_cliente,
facturas_cliente_detalles.ID_ARTICULO,
avg(facturas_cliente_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_VENTA,
avg(facturas_cliente_detalles.IMPORTE_UNIDAD - (facturas_cliente_detalles.IMPORTE_UNIDAD * (facturas_cliente_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_VENTA,
avg(facturas_cliente_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_VENTA
from facturas_cliente_detalles
left outer join facturas_cliente
on (facturas_cliente.id = facturas_cliente_detalles.id_factura)
left outer join v_inf_fec_ultima_venta
on (v_inf_fec_ultima_venta.id_empresa = facturas_cliente.id_empresa)
and (v_inf_fec_ultima_venta.id_cliente = facturas_cliente.id_cliente)
and (v_inf_fec_ultima_venta.id_articulo = facturas_cliente_detalles.id_articulo)
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 (facturas_cliente.FECHA_FACTURA = v_inf_fec_ultima_venta.fecha) /*nos quedamos con las ultimas compras*/
group by 1, 2, 3;
CREATE VIEW V_INF_PROMEDIO_COMPRA(
ID_EMPRESA,
ID_ARTICULO,
IMPORTE_UNIDAD_COMPRA,
IMPORTE_NETO_COMPRA,
IMPORTE_PORTE_COMPRA)
AS
select
facturas_proveedor.id_empresa,
facturas_proveedor_detalles.ID_ARTICULO,
avg(facturas_proveedor_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_COMPRA,
avg(facturas_proveedor_detalles.IMPORTE_UNIDAD - (facturas_proveedor_detalles.IMPORTE_UNIDAD * (facturas_proveedor_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_COMPRA,
avg(facturas_proveedor_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_COMPRA
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*/
group by 1, 2;
CREATE VIEW V_INF_PROMEDIO_VENTA(
ID_EMPRESA,
ID_CLIENTE,
ID_ARTICULO,
IMPORTE_UNIDAD_VENTA,
IMPORTE_NETO_VENTA,
IMPORTE_PORTE_VENTA)
AS
select
facturas_cliente.id_empresa,
facturas_cliente.id_cliente,
facturas_cliente_detalles.ID_ARTICULO,
avg(facturas_cliente_detalles.IMPORTE_UNIDAD) as IMPORTE_UNIDAD_VENTA,
avg(facturas_cliente_detalles.IMPORTE_UNIDAD - (facturas_cliente_detalles.IMPORTE_UNIDAD * (facturas_cliente_detalles.DESCUENTO / 100))) AS IMPORTE_NETO_VENTA,
avg(facturas_cliente_detalles.IMPORTE_PORTE) as IMPORTE_PORTE_VENTA
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*/
group by 1, 2, 3;
CREATE VIEW V_INF_MARGEN_COMPRAS(
ID_EMPRESA,
ID_ARTICULO,
IMPORTE_UNIDAD_ULT_COMP,
IMPORTE_NETO_ULT_COMP,
IMPORTE_PORTE_ULT_COMP,
IMPORTE_UNIDAD_PRO_COMP,
IMPORTE_NETO_PRO_COMP,
IMPORTE_PORTE_PRO_COMP)
AS
select ID_EMPRESA, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_COMP),0), COALESCE(SUM(IMPORTE_NETO_ULT_COMP),0), COALESCE(SUM(IMPORTE_PORTE_ULT_COMP),0),
COALESCE(SUM(IMPORTE_UNIDAD_PRO_COMP),0), COALESCE(SUM(IMPORTE_NETO_PRO_COMP),0), COALESCE(SUM(IMPORTE_PORTE_PRO_COMP),0)
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 ID_EMPRESA, ID_ARTICULO,
null, null, null,
IMPORTE_UNIDAD_COMPRA as IMPORTE_UNIDAD_PRO_COMP, IMPORTE_NETO_COMPRA as IMPORTE_NETO_PRO_COMP, IMPORTE_PORTE_COMPRA as IMPORTE_PORTE_PRO_COMP
from v_inf_promedio_compra)
GROUP BY 1, 2;
CREATE VIEW V_INF_MARGEN_VENTAS(
ID_EMPRESA,
ID_CLIENTE,
ID_ARTICULO,
IMPORTE_UNIDAD_ULT_VENT,
IMPORTE_NETO_ULT_VENT,
IMPORTE_PORTE_ULT_VENT,
IMPORTE_UNIDAD_PRO_VENT,
IMPORTE_NETO_PRO_VENT,
IMPORTE_PORTE_PRO_VENT)
AS
select ID_EMPRESA, ID_CLIENTE, ID_ARTICULO, COALESCE(SUM(IMPORTE_UNIDAD_ULT_VENT),0), COALESCE(SUM(IMPORTE_NETO_ULT_VENT),0), COALESCE(SUM(IMPORTE_PORTE_ULT_VENT),0), COALESCE(SUM(IMPORTE_UNIDAD_PRO_VENT),0),
COALESCE(SUM(IMPORTE_NETO_PRO_VENT),0), COALESCE(SUM(IMPORTE_PORTE_PRO_VENT),0)
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 ID_EMPRESA, ID_CLIENTE, ID_ARTICULO,
null, null, null,
IMPORTE_UNIDAD_VENTA as IMPORTE_UNIDAD_PRO_VENT, IMPORTE_NETO_VENTA as IMPORTE_NETO_PRO_VENT, IMPORTE_PORTE_VENTA as IMPORTE_PORTE_PRO_VENT
from v_inf_promedio_venta)
GROUP BY 1, 2, 3;
CREATE VIEW V_INF_MARGEN_ARTICULOS(
ID_EMPRESA,
ID_CLIENTE,
ID_ARTICULO,
NIF_CIF_CLIENTE,
NOMBRE_CLIENTE,
NOMBRE_COMERCIAL_CLIENTE,
NIF_CIF_AGENTE,
NOMBRE_AGENTE,
FAMILIA,
REFERENCIA,
REFERENCIA_PROV,
DESCRIPCION,
COMISIONABLE,
INVENTARIABLE,
IMPORTE_UNIDAD_COSTE,
DESCUENTO_PROVEEDOR_COSTE,
IMPORTE_NETO_COSTE,
IMPORTE_PORTE_COSTE,
IMPORTE_UNIDAD_ULTIMA_COMPRA,
IMPORTE_NETO_ULTIMA_COMPRA,
IMPORTE_PORTE_ULTIMA_COMPRA,
IMPORTE_UNIDAD_PROMEDIO_COMPRA,
IMPORTE_NETO_PROMEDIO_COMPRA,
IMPORTE_PORTE_PROMEDIO_COMPRA,
CANTIDAD,
IMPORTE_UNIDAD_VENTA,
DESCUENTO_CLIENTE_VENTA,
IMPORTE_NETO_VENTA,
IMPORTE_PORTE_VENTA,
IMPORTE_TOTAL_VENTA,
IMPORTE_MARGEN_COSTE,
PORCENTAJE_MARGEN_COSTE,
IMPORTE_MARGEN_ULT_COMPRA,
PORCENTAJE_MARGEN_ULT_COMPRA,
IMPORTE_MARGEN_PROM_COMPRA,
PORCENTAJE_MARGEN_PROM_COMPRA,
NIF_CIF_PROVEEDOR,
NOMBRE_PROVEEDOR,
CALLE_PROVEEDOR,
POBLACION_PROVEEDOR,
PROVINCIA_PROVEEDOR,
NIF_CIF_CLIENTE,
NOMBRE_CLIENTE,
NOMBRE_COMERCIAL_CLIENTE,
CALLE_CLIENTE,
POBLACION_CLIENTE,
PROVINCIA_CLIENTE,
NIF_CIF_AGENTE,
NOMBRE_AGENTE,
CALLE_AGENTE,
POBLACION_AGENTE,
PROVINCIA_AGENTE,
COMISION_AGENTE,
IMPORTE_COMISION_AGENTE)
IMP_UNIDAD_ULT_VENT,
IMP_NETO_ULT_VENT,
IMP_PORTE_ULT_VENT,
IMP_UNIDAD_PRO_VENT,
IMP_NETO_PRO_VENT,
IMP_PORTE_PRO_VENT,
IMP_UNIDAD_COMPRA,
IMP_NETO_COMPRA,
IMP_PORTE_COMPRA,
IMP_UNIDAD_ULT_COMP,
IMP_NETO_ULT_COMP,
IMP_PORTE_ULT_COMP,
IMP_UNIDAD_PRO_COMP,
IMP_NETO_PRO_COMP,
IMP_PORTE_PRO_COMP,
IMP_MARGEN_ULT_VENT_COMPRA,
POR_MARGEN_ULT_VENT_COMPRA,
IMP_MARGEN_ULT_VENT_ULT_COMP,
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,
POR_MARGEN_PRO_VENT_PRO_COMP)
AS
select
FACTURAS_CLIENTE.ID,
FACTURAS_CLIENTE.ID_EMPRESA,
FACTURAS_CLIENTE.REFERENCIA,
FACTURAS_CLIENTE.FECHA_FACTURA,
FACTURAS_CLIENTE.IMPORTE_TOTAL,
FACTURAS_CLIENTE.ID_COMISION_LIQUIDADA,
V_INF_MARGEN_VENTAS.id_empresa,
V_INF_MARGEN_VENTAS.id_cliente,
V_INF_MARGEN_VENTAS.id_articulo,
FACTURAS_CLIENTE_DETALLES.ID_ARTICULO,
CLIENTES.NIF_CIF,
CLIENTES.NOMBRE,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
AGENTES.NIF_CIF,
AGENTES.NOMBRE,
ARTICULOS.FAMILIA,
ARTICULOS.REFERENCIA,
@ -2407,95 +2551,101 @@ ARTICULOS.DESCRIPCION,
ARTICULOS.COMISIONABLE,
ARTICULOS.INVENTARIABLE,
ARTICULOS.PRECIO_COSTE,
ARTICULOS.DESCUENTO,
ARTICULOS.PRECIO_NETO,
ARTICULOS.PRECIO_PORTE,
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),
V_INF_ULTIMA_COMPRA.importe_unidad_compra,
V_INF_ULTIMA_COMPRA.importe_neto_compra,
V_INF_ULTIMA_COMPRA.importe_porte_compra,
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),
V_INF_PROMEDIO_COMPRA.importe_unidad_compra,
V_INF_PROMEDIO_COMPRA.importe_neto_compra,
V_INF_PROMEDIO_COMPRA.importe_porte_compra,
COALESCE(ARTICULOS.PRECIO_COSTE, 0),
COALESCE(ARTICULOS.PRECIO_NETO, 0),
COALESCE(ARTICULOS.PRECIO_PORTE, 0),
FACTURAS_CLIENTE_DETALLES.CANTIDAD,
FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD as importe_unidad_venta,
FACTURAS_CLIENTE_DETALLES.DESCUENTO,
FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100)) as importe_neto_venta,
FACTURAS_CLIENTE_DETALLES.IMPORTE_PORTE as importe_porte_venta,
FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL,
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),
(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - ARTICULOS.PRECIO_NETO as importe_margen_compra,
CASE WHEN (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - ARTICULOS.PRECIO_NETO > 0
THEN
(ARTICULOS.PRECIO_NETO * 100) / (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100)))
else
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),
/*MARGEN CON ULTIMA VENTA*/
V_INF_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
ELSE 0
END
as porcentaje_margen_compra,
as por_margen_ult_vent_compra,
(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - V_INF_ULTIMA_COMPRA.importe_neto_compra as importe_margen_ultima_compra,
CASE WHEN (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - V_INF_ULTIMA_COMPRA.importe_neto_compra > 0
THEN
(V_INF_ULTIMA_COMPRA.importe_neto_compra * 100) /(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100)))
ELSE
0
V_INF_MARGEN_VENTAS.importe_neto_ult_vent - V_INF_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
ELSE 0
END
as porcentaje_margen_ultima_compra,
as por_margen_ult_vent_ult_comp,
(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - V_INF_PROMEDIO_COMPRA.importe_neto_compra as importe_margen_promedio_compra,
CASE WHEN (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100))) - V_INF_PROMEDIO_COMPRA.importe_neto_compra > 0
THEN
(V_INF_PROMEDIO_COMPRA.importe_neto_compra * 100) /(FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD - (FACTURAS_CLIENTE_DETALLES.IMPORTE_UNIDAD * (FACTURAS_CLIENTE_DETALLES.DESCUENTO/100)))
ELSE
0
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
ELSE 0
END
as porcentaje_promedio_compra,
PROVEEDORES.NIF_CIF,
PROVEEDORES.NOMBRE,
PROVEEDORES.CALLE,
PROVEEDORES.POBLACION,
PROVEEDORES.PROVINCIA,
CLIENTES.NIF_CIF,
CLIENTES.NOMBRE,
CLIENTES_DATOS.NOMBRE_COMERCIAL,
CLIENTES.CALLE,
CLIENTES.POBLACION,
CLIENTES.PROVINCIA,
AGENTES.NIF_CIF,
AGENTES.NOMBRE,
AGENTES.CALLE,
AGENTES.POBLACION,
AGENTES.PROVINCIA,
COALESCE(AGENTES_COMISIONES.COMISION, 0) AS COMISION,
(CASE COALESCE(AGENTES_COMISIONES.COMISION, 0) WHEN 0 THEN 0
ELSE ((FACTURAS_CLIENTE_DETALLES.IMPORTE_TOTAL * AGENTES_COMISIONES.COMISION)/100) END) as IMPORTE_COMISION
as por_margen_ult_vent_pro_comp,
from FACTURAS_CLIENTE_DETALLES
left join V_INF_ULTIMA_COMPRA on (V_INF_ULTIMA_COMPRA.ID_ARTICULO = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO)
left join V_INF_PROMEDIO_COMPRA on (V_INF_PROMEDIO_COMPRA.ID_ARTICULO = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO)
left join ARTICULOS on (ARTICULOS.ID = FACTURAS_CLIENTE_DETALLES.ID_ARTICULO)
left join CONTACTOS PROVEEDORES on (PROVEEDORES.ID = ARTICULOS.ID_PROVEEDOR)
left join FACTURAS_CLIENTE on (FACTURAS_CLIENTE.ID = FACTURAS_CLIENTE_DETALLES.ID_FACTURA)
left join CONTACTOS CLIENTES on (CLIENTES.ID = FACTURAS_CLIENTE.ID_CLIENTE)
/*MARGEN CON VENTAS PROMEDIO*/
V_INF_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
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
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
ELSE 0
END
as por_margen_pro_vent_pro_comp
from V_INF_MARGEN_VENTAS
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)
left join ARTICULOS
on (ARTICULOS.ID = v_INF_MARGEN_ventas.id_articulo)
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)
left join AGENTES_COMISIONES
on ((AGENTES_COMISIONES.ID_AGENTE = AGENTES.ID) and (AGENTES_COMISIONES.ID_PROVEEDOR = PROVEEDORES.ID))
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 (ARTICULOS.INVENTARIABLE = 1); /*Solo nos quedamos con los inventariables*/
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 */

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More