/** * Processa os dados do formulário de importação de RPS [json] * * @return void */ public function rpsProcessarAction() { parent::noLayout(); $oForm = new Contribuinte_Form_ImportacaoArquivo(); $oForm->renderizaCamposRPS(); // Adiciona a validação do arquivo junto ao restante das mensagens de erro do form $aDados = array_merge($this->getRequest()->getPost(), array('isUploaded' => $oForm->arquivo->isUploaded())); // Valida o formulario e processa a importação if ($this->getRequest()->isPost() && $oForm->arquivo->isUploaded()) { $oArquivoUpload = new Zend_File_Transfer_Adapter_Http(); try { $oArquivoUpload->setDestination(APPLICATION_PATH . '/../public/tmp/'); // Confirma o upload e processa o arquivo if ($oArquivoUpload->receive()) { $oImportacaoModelo1 = new Contribuinte_Model_ImportacaoArquivoRpsModelo1(); $oImportacaoModelo1->setArquivoCarregado($oArquivoUpload->getFileName()); $oArquivoCarregado = $oImportacaoModelo1->carregar(); if ($oArquivoCarregado != NULL && $oImportacaoModelo1->validaArquivoCarregado()) { // Valida as regras de negócio e processa a importação $oImportacaoProcessamento = new Contribuinte_Model_ImportacaoArquivoProcessamento(); $oImportacaoProcessamento->setCodigoUsuarioLogado($this->usuarioLogado->getId()); $oImportacaoProcessamento->setArquivoCarregado($oArquivoCarregado); // Processa a importação $oImportacao = $oImportacaoProcessamento->processarImportacaoRps(); if ($oImportacao->getId()) { $sUrlRecibo = "/contribuinte/importacao-arquivo/rps-recibo/id/{$oImportacao->getId()}"; $aRetornoJson['status'] = TRUE; $aRetornoJson['url'] = $this->view->baseUrl($sUrlRecibo); $aRetornoJson['success'] = $this->translate->_('Arquivo importado com sucesso.'); } else { throw new Exception($this->translate->_('Ocorreu um erro ao importar o arquivo.')); } } else { throw new Exception($oImportacaoModelo1->processaErroSistema()); } } } catch (DBSeller_Exception_ImportacaoXmlException $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'] = array_merge(array('<b>' . $this->translate->_('Ocorreu um erro ao importar o arquivo:') . '</b><br>'), $oErro->getErrors()); } catch (Exception $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } if (is_file($oArquivoUpload->getFileName())) { unlink($oArquivoUpload->getFileName()); } } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } echo $this->getHelper('json')->sendJson($aRetornoJson); }