Closed (fixed)
Project:
Storm
Version:
6.x-1.x-dev
Component:
Storm Invoice
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
12 Aug 2009 at 12:17 UTC
Updated:
26 Aug 2009 at 14:20 UTC
Getting following error when viewing an invoice
user warning: Unknown column 'sin.organization_nid' in 'where clause' query: SELECT n.*, sit.* FROM node AS n INNER JOIN storminvoiceitem sit ON n.vid=sit.vid WHERE (sit.invoice_nid=684) AND (n.uid=6 OR sin.organization_nid=50) AND ('storm_access'='storm_access') AND ( n.status=1 AND n.type='storminvoiceitem' ) ORDER BY sit.weight in path/modules/storm/storminvoice/storminvoice.admin.inc on line 379.
This is happening when the user has View of user organization permission, because the storminvoice_access_sql function in storminvoice.module adds the where clause:
if (user_access('Storm invoice: view of user organization')) {
if (!empty($cond)) $cond .= ' OR ';
$cond .= 'sin.organization_nid='. $user->stormorganization_nid;
}
But the query never includes storminvoice table.
Comments
Comment #1
Mark_Watson27 commentedAdded the storminvoice table to the query will resolve this
In the file storminvoice.admin.inc in function storminvoice_items add
INNER JOIN storminvoice sin on sin.nid=sit.invoice_nidto the query on line 372 so it becomes$s = "SELECT n.*, sit.* FROM {node} AS n INNER JOIN {storminvoiceitem} sit ON n.vid=sit.vid INNER JOIN storminvoice sin on sin.nid=sit.invoice_nid WHERE n.status=1 AND n.type='storminvoiceitem' ORDER BY sit.weight";Comment #2
Mark_Watson27 commentedAdded the storminvoice table to the query will resolve this
In the file storminvoice.admin.inc in function storminvoice_items add
INNER JOIN storminvoice sin on sin.nid=sit.invoice_nidto the query on line 372 so it becomes$s = "SELECT n.*, sit.* FROM {node} AS n INNER JOIN {storminvoiceitem} sit ON n.vid=sit.vid INNER JOIN storminvoice sin on sin.nid=sit.invoice_nid WHERE n.status=1 AND n.type='storminvoiceitem' ORDER BY sit.weight";Comment #3
Magnity commentedI've committed that fix - with the change that the table name must have {} around it in case of prefixing.