public function indexAction()
 {
     parent::noTemplate();
     $oForm = new Contribuinte_Form_Tomador();
     if ($this->getRequest()->isPost()) {
         $aDados = $this->getRequest()->getPost();
         $oForm->preenche($aDados);
         if (!$oForm->isValid($aDados)) {
             $this->view->form = $oForm;
             $this->getResponse()->setHttpResponseCode(406);
             // Evita o Fechamento da Modal JS
         } else {
             $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge();
             if ($aDados['z01_munic'] == $iCodigoIbge) {
                 $aDados['z01_bairro'] = $aDados['z01_bairro_munic'];
                 $aDados['z01_ender'] = $aDados['z01_ender_munic'];
             } else {
                 $aDados['z01_bairro'] = $aDados['z01_bairro_fora'];
                 $aDados['z01_ender'] = $aDados['z01_ender_fora'];
             }
             // Salva Novo CGM (eCidade)
             //Contribuinte_Model_Cgm::persist($aDados);
             // Salva Novo Tomador (NFSE)
             $aDadosNfse = array();
             $aDadosNfse['t_cnpjcpf'] = $aDados['z01_cgccpf'];
             $aDadosNfse['t_razao_social'] = $aDados['z01_nome'];
             $aDadosNfse['t_cod_pais'] = $aDados['z01_nome'];
             $aDadosNfse['t_uf'] = $aDados['z01_uf'];
             $aDadosNfse['t_cod_municipio'] = $aDados['z01_munic'];
             $aDadosNfse['t_cep'] = $aDados['z01_cep'];
             $aDadosNfse['t_bairro'] = $aDados['z01_bairro_fora'];
             $aDadosNfse['t_endereco'] = $aDados['z01_ender_fora'];
             $aDadosNfse['t_endereco_numero'] = $aDados['z01_numero'];
             $aDadosNfse['t_endereco_comp'] = $aDados['z01_compl'];
             $aDadosNfse['t_telefone'] = $aDados['z01_telef'];
             $aDadosNfse['t_email'] = $aDados['z01_email'];
             $oTomador = new Contribuinte_Model_TomadorBase();
             $oTomador->persist($aDadosNfse);
             $this->_helper->getHelper('FlashMessenger')->addMessage(array('success' => 'Tomador cadastrado com sucesso.'));
             return;
         }
     } else {
         $this->view->form = $oForm;
     }
 }
 /**
  * Action responsável por listar as contas
  */
 public function listarContasAction()
 {
     if ($this->getRequest()->isPost()) {
         parent::noTemplate();
         $aRecord = array();
         $iLimit = $this->_request->getParam('rows');
         $iPage = $this->_request->getParam('page');
         $sSord = $this->_request->getParam('sord');
         $oPaginatorAdapter = new DBSeller_Controller_Paginator(Contribuinte_Model_PlanoContaAbrasf::getQuery(), 'Contribuinte_Model_PlanoContaAbrasf', 'Contribuinte\\PlanoContaAbrasf');
         /**
          * Ordena os registros
          */
         $oPaginatorAdapter->orderBy("e.id, e.conta_abrasf", $sSord);
         /**
          * Monta a paginação do GridPanel
          */
         $oResultado = new Zend_Paginator($oPaginatorAdapter);
         $oResultado->setItemCountPerPage($iLimit);
         $oResultado->setCurrentPageNumber($iPage);
         $iTotal = $oResultado->getTotalItemCount();
         $iTotalPages = $iTotal > 0 && $iLimit > 0 ? ceil($iTotal / $iLimit) : 0;
         foreach ($oResultado as $oPlanoContaAbrasf) {
             $oDadosColuna = new StdClass();
             $oDadosColuna->id = $oPlanoContaAbrasf->getId();
             $oDadosColuna->conta_abrasf = $oPlanoContaAbrasf->getContaAbrasf();
             $oDadosColuna->titulo_contabil_desc = $oPlanoContaAbrasf->getTituloContabilDesc();
             $oDadosColuna->tributavel = $oPlanoContaAbrasf->getTributavel();
             $oDadosColuna->obrigatorio = $oPlanoContaAbrasf->getObrigatorio();
             $aRecord[] = $oDadosColuna;
         }
         /**
          * Parametros de retorno do AJAX
          */
         $aRetornoJson = array('total' => $iTotalPages, 'page' => $iPage, 'records' => $iTotal, 'rows' => $aRecord);
         echo $this->getHelper('json')->sendJson($aRetornoJson);
     }
 }
 /**
  * Action responsável pela montagem do relatório Aidof e download do mesmo
  *
  * @return void
  */
 public function aidofImpressaAction()
 {
     parent::noLayout();
     $iRpsInicial = parent::getParam('inicial');
     $iRpsFinal = parent::getParam('final');
     $oContribuinte = $this->_session->contribuinte;
     $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase();
     $oImpressao = new Contribuinte_Model_ImpressaoAidof();
     $aArquivo = $oImpressao->montarelatorio(array('inicial' => $iRpsInicial, 'final' => $iRpsFinal, 'incricao_municipal' => $oContribuinte->getInscricaoEstadual(), 'nome_razao' => $oContribuinte->getNome(), 'cnpj' => $oContribuinte->getCgcCpf(), 'endereco' => $oContribuinte->getDescricaoLogradouro(), 'uf' => $oContribuinte->getEstado(), 'cep' => $oContribuinte->getCep(), 'email' => $oContribuinte->getEmail(), 'fone' => $oContribuinte->getTelefone(), 'municipio' => $oContribuinte->getDescricaoMunicipio(), 'nome_prefeitura' => $oPrefeitura->getNome(), 'url_prefeitura' => $oPrefeitura->getUrl(), 'ambiente' => getenv("APPLICATION_ENV")));
     parent::download($aArquivo['filename']);
 }
 /**
  * Emite e gera as guias conforme a receita e aliquota informadas
  */
 public function emitirGuiaAction()
 {
     parent::noTemplate();
     $aParametros = $this->getAllParams();
     try {
         $iIdImportacao = $aParametros['id'];
         $fAliquota = $aParametros['aliq_issqn'] ? $aParametros['aliq_issqn'] : NULL;
         $oContribuinte = $this->_session->contribuinte;
         $aReceitaDesif = Contribuinte_Model_ImportacaoDesif::getTotalReceitaGuiaDesif($oContribuinte, $iIdImportacao, $fAliquota);
         $sTotalReceita = DBSeller_Helper_Number_Format::toMoney($aReceitaDesif->total_receita, 2, 'R$ ');
         $sTotalIss = DBSeller_Helper_Number_Format::toMoney($aReceitaDesif->total_iss, 2, 'R$ ');
         $oFormEmitirGuia = new Contribuinte_Form_GuiaCompetencia();
         $oFormEmitirGuia->setName('form-emitir-guia');
         $oFormEmitirGuia->setAction('/contribuinte/guia-desif/emitir-guia');
         $oFormEmitirGuia->getElement('ano')->setValue($aReceitaDesif->ano_competencia);
         $oFormEmitirGuia->getElement('mes')->setValue($aReceitaDesif->mes_competencia);
         $oFormEmitirGuia->getElement('aliq_issqn')->setValue($fAliquota);
         $oFormEmitirGuia->getElement('total_servico')->setValue($sTotalReceita);
         $oFormEmitirGuia->getElement('total_iss')->setValue($sTotalIss);
         $oFormEmitirGuia->getElement('data_guia')->setValue(date('d/m/Y'));
         $this->view->form = $oFormEmitirGuia;
         // Verifica se for enviado os dados via $_POST
         if ($this->getRequest()->isPost()) {
             // Formata a data de pagamento da guia
             $sDataInvertida = DBSeller_Helper_Date_Date::invertDate($this->getRequest()->getParam('data_guia'));
             $oDataPagamento = new DateTime($sDataInvertida);
             // Gera a guia e emite o PDF da geração
             $oGuia = Contribuinte_Model_GuiaEcidade::gerarGuiaDesif($oContribuinte, $aParametros['ano'], $aParametros['mes'], $oDataPagamento, $fAliquota, true);
             $this->view->arquivo = $oGuia->arquivo_guia;
         }
     } catch (Exception $oErro) {
         $this->view->mensagem_erro = $oErro->getMessage();
     }
 }
 public function init()
 {
     parent::init();
 }
 /**
  * Tela responsável por definir qual contribuinte será utilizado no módulo
  */
 public function setContribuinteAction()
 {
     parent::checkIdentity('index');
     $iIdContribuinte = $this->getRequest()->getParam('id');
     $aContribuintes = $this->view->user->getContribuintes();
     // Checa se o usuário tem permissão para o contribuinte informado
     if (!isset($aContribuintes[$iIdContribuinte])) {
         $this->_helper->getHelper('FlashMessenger')->addMessage(array('error' => 'Você não tem permissão para este contribuinte.'));
         $this->_redirector->gotoSimple('contribuinte', 'index', 'contribuinte');
     }
     self::setContribuinte($aContribuintes[$iIdContribuinte]);
     $this->_redirector->gotoSimple('contribuinte', 'index', 'contribuinte');
 }
 /**
  * Método que gera o relatório e importações de desif
  */
 public function imprimeImportacaoAction()
 {
     parent::noLayout();
     $iIdImportacao = $this->getRequest()->getParam('id');
     $sDataHoraGeracao = date('YmdHis');
     $sArquivoPdf = "importacao_desif_{$sDataHoraGeracao}.pdf";
     $oContribuinte = $this->_session->contribuinte;
     $oDadosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase();
     $oImportacaoDesif = Contribuinte_Model_ImportacaoDesif::getById($iIdImportacao);
     $sCompInicial = $oImportacaoDesif->getCompetenciaInicial();
     $sCompFinal = $oImportacaoDesif->getCompetenciaFinal();
     $aMes = array('inicial' => substr($sCompInicial, 4), 'final' => substr($sCompFinal, 4));
     $aAno = array('inicial' => substr($sCompInicial, 0, 4), 'final' => substr($sCompFinal, 0, 4));
     $aReceitas = Contribuinte_Model_ImportacaoDesifReceita::getReceitasContasByImportacao($iIdImportacao);
     $oPdf = new Contribuinte_Model_RelatorioReceitasDesif('l');
     $oPdf->setNomeArquivo($sArquivoPdf);
     $oPdf->setAmbiente(getenv('APPLICATION_ENV'));
     $oPdf->setPrefeitura($oDadosPrefeitura);
     $oPdf->openPdf();
     $oPdf->setDadosContribuinte($oContribuinte, $aMes, $aAno, FALSE);
     $oPdf->setDadosReceitas($aReceitas);
     $oPdf->Output();
     parent::download($oPdf->getNomeArquivo());
 }
 /**
  * Força o download dos relatórios
  */
 public function downloadAction()
 {
     parent::noLayout();
     parent::download($this->getRequest()->getParam('arquivo'));
 }
 /**
  * Comprovante de importação de RPS
  */
 public function rpsReciboAction()
 {
     parent::noLayout();
     $iIdImportacao = $this->_getParam('id');
     $oDoctrine = Zend_Registry::get('em');
     $oImportacao = $oDoctrine->find('\\Contribuinte\\ImportacaoArquivo', $iIdImportacao);
     $oDadosUsuario = Administrativo_Model_Usuario::getById($oImportacao->getIdUsuario());
     $oPrefeitura = Administrativo_Model_ParametroPrefeitura::getAll();
     // Dados da View
     $this->view->oImportacao = $oImportacao;
     $this->view->oDadosUsuario = $oDadosUsuario;
     $this->view->oDadosPrefeitura = $oPrefeitura[0];
     $this->view->sNomePrefeitura = $oPrefeitura[0]->getEntity()->getNome();
     // Carrega a view do comprovante
     $sHtml = $this->view->render('importacao-arquivo/comprovante-importacao-rps.phtml');
     // Renderiza a view do comprovante
     $this->renderPdf($sHtml, 'comprovante-importacao-rps', array('format' => 'A4'));
 }
 /**
  * Lista de DMS Saida
  */
 public function emissaoDmsListaAction()
 {
     parent::noTemplate();
     $iMes = $this->_getParam('mes_competencia', NULL);
     $iAno = $this->_getParam('ano_competencia', NULL);
     $sDmsTipo = $this->_getParam('tipo', NULL);
     $oContribuinte = $this->_session->contribuinte;
     $oDms = new Contribuinte_Model_Dms();
     $aResultado = $oDms->getDMSSemGuiaNaCompetencia($oContribuinte, $iAno, $iMes, $sDmsTipo);
     // Filtra as notas isentas
     foreach ($aResultado as $oDms) {
         $bEmiteGuia = FALSE;
         $iQuantidadeNotas = 0;
         $fValorGuia = 0;
         // Notas de DMS
         foreach ($oDms->getDmsNotas() as $oNota) {
             // Ignora notas prestadas e retidas pelo tomador
             if ($oDms->getOperacao() == 's' && $oNota->getServicoImpostoRetido() == TRUE) {
                 continue;
             }
             // Ignora notas tomadas e retidas pelo tomador
             if ($oDms->getOperacao() == 'e' && $oNota->getServicoImpostoRetido() == FALSE) {
                 continue;
             }
             // nota: anulada, extraviada ou cancelada
             if ($oNota->getStatus() == 5 || in_array($oNota->getSituacaoDocumento(), array('E', 'C'))) {
                 continue;
             }
             // verifica se o contribuinte emite guia
             if ($oNota->getEmiteGuia()) {
                 $iQuantidadeNotas++;
                 $fValorGuia += $oNota->getServicoValorImposto();
                 $bEmiteGuia = TRUE;
             }
         }
         // Adiciona a quantidade e o valor total das DMS agrupadas
         $oDms->iQuantidadeNotas = $iQuantidadeNotas;
         $oDms->fValorGuia = $fValorGuia;
         if ($bEmiteGuia) {
             $aListaDms[] = $oDms;
         }
     }
     $this->view->aDms = isset($aListaDms) ? $aListaDms : array();
     $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-saida';
     if ($sDmsTipo == Contribuinte_Model_Dms::ENTRADA) {
         $this->view->urlEdicaoDms = '/contribuinte/dms/emissao-manual-entrada';
     }
 }
 /**
  * Documentação para importação de arquivos
  */
 public function importacaoDocumentacaoAction()
 {
     parent::noTemplate();
     $sFormato = $this->getRequest()->getParam('formato', 'html');
     $oTiposDocumento = new Contribuinte_Model_Nota();
     $this->view->aTiposDocumento = $oTiposDocumento->getDescricaoTipoNota($oTiposDocumento::GRUPO_NOTA_DMS);
     // Ordena por código os tipos de documento
     asort($this->view->aTiposDocumento);
     // Gera o pdf
     if ($sFormato == 'pdf') {
         $sHtml = $this->view->render('dms/importacao-documentacao.phtml');
         $this->renderPdf($sHtml, 'Documentação para Importação de DMS', array('format' => 'A4'));
     }
 }
 /**
  * Faz o download do arquivo informado
  */
 public function downloadAction()
 {
     parent::noLayout();
     $aParametros = $this->getRequest()->getParams();
     if (!empty($aParametros['file'])) {
         self::download($aParametros['file']);
     }
 }
 /**
  * Cancela NFSE
  */
 public function cancelarAction()
 {
     parent::noTemplate();
     $aDados = $this->getRequest()->getParams();
     $oNota = Contribuinte_Model_Nota::getById($aDados['id']);
     $oContribuinte = $this->_session->contribuinte;
     $oValidadorEmail = new Zend_Validate_EmailAddress();
     $oForm = new Contribuinte_Form_NotaCancelar();
     $oForm->getElement('id')->setValue($aDados['id']);
     if ($oNota instanceof Contribuinte_Model_Nota && $oValidadorEmail->isValid($oNota->getT_email())) {
         $oForm->getElement('email')->setValue($oNota->getT_email());
     }
     $this->view->nota = $aDados['numero'];
     $this->view->form = $oForm;
 }