Jump to content

Edit History

Gescloud

Gescloud


Consulta mejorada

2 hours ago, Chuchelandia said:

las tengo en papel, facturas. Pero en prestashop tengo metidos todos los precios costo sin iva de los artículos. Gracias

Bien, entonces ejecuta la siguiente consulta:

 

Quote

He cambiado la consulta para que recoja el precio del coste en la línea del detalle del pedido en vez de en la línea de ps_product que puede haber cambiado con el tiempo.

SELECT o.id_order, p.reference, pl.name, p.id_product, detail.total_price_tax_excl, (detail.original_wholesale_price*detail.product_quantity) as costebruto, detail.total_price_tax_excl - (detail.original_wholesale_price*detail.product_quantity) as bfciobruto
FROM ps_order_detail as detail
LEFT JOIN ps_orders as o ON o.id_order = detail.id_order
LEFT JOIN ps_product as p ON p.id_product = detail.product_id
LEFT JOIN ps_product_lang as pl ON pl.id_product = detail.product_id AND pl.id_lang = 1 -- CAMBIA EL 1 por el idioma de tu web. Supongo que 1 es el principal y deseado.
WHERE o.date_add between
'2022-01-01'  -- FECHA INICIO, DESDE
AND
'2022-01-31' -- FECHA FIN, HASTA
LIMIT 0,10 -- QUITA ESTA LINEA SI EL RESULTADO ES EL ESPERADO.

 

Esta consulta genera una lista de productos con su beneficio bruto sin impuestos por artículo vendido, y sin tener en cuenta portes u otras causas de gasto.

Ojo con el idioma, si quieres mostrar el nombre en otro idioma o no existe el id_lang = 1 en tu web cambialo por el id correcto.

Modifica FECHA INICIO y FECHA FIN al gusto.

Elimina la última linea [LIMIT 0,10...] cuando hagas las pruebas pertinentes y veas que el resultado es correcto, esta línea limita a 10 la respuesta de la consulta, si prevees que la consulta es muy extensa (que vendes más de 1000 referencias entre el rango de fechas) yo paginaría la consulta:

Ejemplo paginación, ir sustituyendo la última línea:

LIMIT 0,1000 -- para los mil primeros, (pagina 1)

LIMIT 1000, 1000 -- Para los mil siguientes (pagina 2)

LIMIT 2000, 1000 -- Para los mil siguientes (pagina 3)

 

Problemas con estos resultados:

1) Los precios de costes de  producto han de estar correctos. Un 0 en alguno provocara un beneficion del 100% en esa línea.

2) Solo tiene en cuenta las ventas que han pasado por tu prestashop, si realizas ventas fuera de este circuito no son contempladas.

 

Espero que te sirva.

 

Un saludo

Gescloud

Gescloud


Consulta mejorada

2 hours ago, Chuchelandia said:

las tengo en papel, facturas. Pero en prestashop tengo metidos todos los precios costo sin iva de los artículos. Gracias

Bien, entonces ejecuta la siguiente consulta:

 

SELECT o.id_order, p.reference, pl.name, p.id_product, detail.total_price_tax_excl, (detail.original_wholesale_price*detail.product_quantity) as costebruto, detail.total_price_tax_excl - (detail.original_wholesale_price*detail.product_quantity) as bfciobruto
FROM ps_order_detail as detail
LEFT JOIN ps_orders as o ON o.id_order = detail.id_order
LEFT JOIN ps_product as p ON p.id_product = detail.product_id
LEFT JOIN ps_product_lang as pl ON pl.id_product = detail.product_id AND pl.id_lang = 1 -- CAMBIA EL 1 por el idioma de tu web. Supongo que 1 es el principal y deseado.
WHERE o.date_add between
'2022-01-01'  -- FECHA INICIO, DESDE
AND
'2022-01-31' -- FECHA FIN, HASTA
LIMIT 0,10 -- QUITA ESTA LINEA SI EL RESULTADO ES EL ESPERADO.

 

Esta consulta genera una lista de productos con su beneficio bruto sin impuestos por artículo vendido, y sin tener en cuenta portes u otras causas de gasto.

Ojo con el idioma, si quieres mostrar el nombre en otro idioma o no existe el id_lang = 1 en tu web cambialo por el id correcto.

Modifica FECHA INICIO y FECHA FIN al gusto.

Elimina la última linea [LIMIT 0,10...] cuando hagas las pruebas pertinentes y veas que el resultado es correcto, esta línea limita a 10 la respuesta de la consulta, si prevees que la consulta es muy extensa (que vendes más de 1000 referencias entre el rango de fechas) yo paginaría la consulta:

Ejemplo paginación, ir sustituyendo la última línea:

LIMIT 0,1000 -- para los mil primeros, (pagina 1)

LIMIT 1000, 1000 -- Para los mil siguientes (pagina 2)

LIMIT 2000, 1000 -- Para los mil siguientes (pagina 3)

 

Problemas con estos resultados:

1) Los precios de costes de  producto han de estar correctos. Un 0 en alguno provocara un beneficion del 100% en esa línea.

2) Solo tiene en cuenta las ventas que han pasado por tu prestashop, si realizas ventas fuera de este circuito no son contempladas.

 

Espero que te sirva.

 

Un saludo

Gescloud

Gescloud

10 minutes ago, Chuchelandia said:

las tengo en papel, facturas. Pero en prestashop tengo metidos todos los precios costo sin iva de los artículos. Gracias

Bien, entonces ejecuta la siguiente consulta:

 

SELECT o.id_order, p.reference, pl.name, p.id_product, detail.total_price_tax_excl, (p.wholesale_price*detail.product_quantity) as costo, detail.total_price_tax_excl - (p.wholesale_price*detail.product_quantity) as bfciobruto
FROM ps_order_detail as detail
LEFT JOIN ps_orders as o ON o.id_order = detail.id_order
LEFT JOIN ps_product as p ON p.id_product = detail.product_id
LEFT JOIN ps_product_lang as pl ON pl.id_product = detail.product_id AND pl.id_lang = 1 -- CAMBIA EL 1 por el idioma de tu web. Supongo que 1 es el principal y deseado.
WHERE o.date_add between
'2022-01-01'  -- FECHA INICIO, DESDE
AND
'2022-01-31' -- FECHA FIN, HASTA
LIMIT 0,10 -- QUITA ESTA LINEA SI EL RESULTADO ES EL ESPERADO.

 

Esta consulta genera una lista de productos con su beneficio bruto sin impuestos por artículo vendido, y sin tener en cuenta portes u otras causas de gasto.

Ojo con el idioma, si quieres mostrar el nombre en otro idioma o no existe el id_lang = 1 en tu web cambialo por el id correcto.

Modifica FECHA INICIO y FECHA FIN al gusto.

Elimina la última linea [LIMIT 0,10...] cuando hagas las pruebas pertinentes y veas que el resultado es correcto, esta línea limita a 10 la respuesta de la consulta, si prevees que la consulta es muy extensa (que vendes más de 1000 referencias entre el rango de fechas) yo paginaría la consulta:

Ejemplo paginación, ir sustituyendo la última línea:

LIMIT 0,1000 -- para los mil primeros, (pagina 1)

LIMIT 1000, 1000 -- Para los mil siguientes (pagina 2)

LIMIT 2000, 1000 -- Para los mil siguientes (pagina 3)

 

Problemas con estos resultados:

1) Los precios de costes de  producto han de estar correctos. Un 0 en alguno provocara un beneficion del 100% en esa línea.

2) Solo tiene en cuenta las ventas que han pasado por tu prestashop, si realizas ventas fuera de este circuito no son contempladas.

 

Espero que te sirva.

 

Un saludo

×
×
  • Create New...