public function viewAction($reference)
{
$order = $this->getOrderManager()->findOneBy(array('reference' => $reference));
if (null === $order) {
throw new AccessDeniedException();
}
$this->checkAccess($order->getCustomer());
$invoice = $this->getInvoiceManager()->findOneBy(array('reference' => $reference));
if (null === $invoice) {
$invoice = $this->getInvoiceManager()->create();
$this->getInvoiceTransformer()->transformFromOrder($order, $invoice);
$this->getInvoiceManager()->save($invoice);
}
$this->get('sonata.seo.page')->setTitle($this->get('translator')->trans('invoice_view_title', array(), 'SonataInvoiceBundle'));
return $this->render('SonataInvoiceBundle:Invoice:view.html.twig', array('invoice' => $invoice, 'order' => $order));
}