Skip to content

Fix ReportBreakdown: neto inflado, facturas duplicadas y filtro de va…#77

Merged
NeoRazorX merged 1 commit intomainfrom
4514
Mar 24, 2026
Merged

Fix ReportBreakdown: neto inflado, facturas duplicadas y filtro de va…#77
NeoRazorX merged 1 commit intomainfrom
4514

Conversation

@daniel89fg
Copy link
Contributor

…riante sin JOIN

  • Elimina LEFT JOIN en queries de neto y documentos (ventas y compras) que multiplicaba d.neto/d.total por el número de líneas del documento.
  • Elimina SUM(d.neto) innecesario y el GROUP BY d.codalmacen erróneo en getInformeVentasNetoData.
  • Añade parámetro $withLineAlias a getInformeVentasDataWhere y getInformeComprasDataWhere: cuando es false, el filtro de variante usa una subconsulta IN(...) en lugar de l.referencia (que no existía sin JOIN).
  • Las queries de unidades mantienen el JOIN con líneas ya que lo necesitan para obtener cantidad y referencia.

Fixes #4514

…riante sin JOIN

- Elimina LEFT JOIN en queries de neto y documentos (ventas y compras) que
  multiplicaba d.neto/d.total por el número de líneas del documento.
- Elimina SUM(d.neto) innecesario y el GROUP BY d.codalmacen erróneo en
  getInformeVentasNetoData.
- Añade parámetro $withLineAlias a getInformeVentasDataWhere y
  getInformeComprasDataWhere: cuando es false, el filtro de variante usa
  una subconsulta IN(...) en lugar de l.referencia (que no existía sin JOIN).
- Las queries de unidades mantienen el JOIN con líneas ya que lo necesitan
  para obtener cantidad y referencia.

Fixes #4514

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 24, 2026 12:38
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Corrige el informe ReportBreakdown para que los totales de neto/total y el listado de documentos no se “inflen” por duplicación al unir con líneas, y ajusta el filtro por variante para que funcione también cuando no hay JOIN con líneas.

Changes:

  • Elimina el LEFT JOIN con líneas en consultas de neto y documentos (ventas/compras) para evitar multiplicación de importes.
  • Simplifica las consultas de neto quitando agregaciones/GROUP BY incorrectos.
  • Añade el parámetro $withLineAlias a los métodos getInformeVentasDataWhere() / getInformeComprasDataWhere() para alternar entre filtro por l.referencia (con JOIN) o subconsulta IN (...) (sin JOIN).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

{
$table = $this->type === 'invoices' ? 'facturasprov' : 'albaranesprov';
$line = $this->type === 'invoices' ? 'lineasfacturasprov' : 'lineasalbaranesprov';
$code = $this->type === 'invoices' ? 'idfactura' : 'idalbaran';
Copy link

Copilot AI Mar 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In getInformeComprasNetoData(), the local variable $code is now unused (it’s computed but never referenced in the SQL after removing the JOIN). Removing it will avoid dead code and potential static analysis warnings; alternatively, if it’s intended for the variant filter, consider reusing/passing it instead of recomputing inside getInformeComprasDataWhere(false).

Suggested change
$code = $this->type === 'invoices' ? 'idfactura' : 'idalbaran';

Copilot uses AI. Check for mistakes.
@NeoRazorX NeoRazorX merged commit fe5cf89 into main Mar 24, 2026
14 checks passed
@daniel89fg daniel89fg deleted the 4514 branch March 25, 2026 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants