Ejemplo n.º 1
0
 /**
  * Manipula uma chamada para relatório, mostrando o formulário correto,
  * executando a classe e operação de domínio que levanta os dados e renderizando
  * a view/partial correta
  * <br/>
  * $renderViews são um array onde o índice é o nome de um parâmetro que pode ser
  * recebido no request e o valor é a view a ser renderizada.<br/>
  * O índice 'report' deve ser usado com a view de relatório padrão. 'form'
  * deve ser utilizado para a view de interface para renderizar o formulário.
  * <br/>
  *  ['report'] => 'view-padrao'<br/>
  *  ['form'] => 'view-form'<br/>
  *  ['summarized'] => 'view-summarized'<br/>
  * 
  * @param String $domainClass
  * @param String $domainAction
  * @param String $formClass name of the form class
  * @param ArrayObject $renderViews
  * @param String $viewFolder é o nome do diretório onde estão as views, para ser renderizada com retorno, em geral para o pdf
  * @param Zend_View $view o objeto view
  * @param Zend_Request $request o objeto request
  * @return String
  */
 public function handleRequest($domainClass, $domainAction, $formClass, array $renderViews, $viewFolder, Agana_Print_Meta $metaReport, Zend_Controller_Action $controller)
 {
     //        die(Zend_Debug::dump($controller->view));
     $controller->view->records = null;
     if ($controller->getRequest()->getParam('format')) {
         $layout = Zend_Layout::getMvcInstance();
         $layout->setLayout('report.layout');
         $domain = new $domainClass();
         $controller->view->records = $domain->{$domainAction}(Zend_Auth::getInstance()->getIdentity()->appaccount_id, $controller->getRequest()->getParams());
         $viewToRender = $this->viewToRender($controller->getRequest()->getParams(), $renderViews);
         $controller->view->format = $controller->getParam('format');
         $personDomain = new Persons_Domain_Person();
         $person = $personDomain->getById(Zend_Auth::getInstance()->getIdentity()->person_id);
         $appAccount = $person->getAppaccount();
         $metaReport->setAccountName($appAccount->getName());
         if ($controller->getParam('format') == 'pdf') {
             $report = new Agana_Print_Pdf_Report($metaReport, $controller->view->theme_path);
             $controller->view->assign('report', $report);
             $layout->disableLayout();
             $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
             $viewRenderer->setNoRender(true);
             $content = $controller->view->render($viewFolder . '/' . $viewToRender . '.phtml');
             $report->addPage($content);
             $report->download();
         } else {
             $report = new Agana_Print_Html_Report($metaReport, '');
             $controller->view->assign('report', $report);
             return $controller->render($viewToRender);
         }
     } else {
         $form = new $formClass();
         $controller->view->assign('form', $form);
         $viewToRender = $renderViews['form'];
         return $controller->render($viewToRender);
     }
 }
Ejemplo n.º 2
0
 public static function run(Zend_Controller_Action $ctrl, $url)
 {
     self::setUrl($url);
     $ctrl->render('');
 }