If I had a chance to test it, I would do it by disabling lines in the WHERE clause, hence narrowing down the problem. And, the lines I'd test first are these:
and trunc(pll.last_update_date) between to_date('11/10/2011','dd/mm/yyyy') and sysdate+1
and tr.po_line_Location_id ( + ) = pll.line_location_id
AND tr.transaction_type ( + ) = 'DELIVER'
Because not sure how the bold items above work there.