/** * Metodo inicial quando o usuairo for contribuinte */ public function contribuinteAction() { // Oculta breadcrumbs $this->view->oculta_breadcrumbs = TRUE; // Matar sessão quando acessado via menu if ($this->_getParam('alterar')) { $oSessao = new Zend_Session_Namespace('nfse'); $oSessao->contribuinte = NULL; $this->view->contribuinte = NULL; $this->_session->id = NULL; } if (!isset($this->_session->iUsuarioEscolhido) && $this->usuarioLogado->getPerfil()->getId() == 5) { $this->_redirector->gotoSimple('listar-cadastros', 'usuario-acesso', 'fiscal'); } // Verifica se a lista de contribuinte e diferente da lista vinculada ao usuario if ($this->view->user->getTipo() == Administrativo_Model_TipoUsuario::$CONTADOR) { $aContribuintes = Administrativo_Model_Empresa::getByCnpj(trim($this->view->user->getCnpj())); // atualiza a lista de contribuintes $this->view->user->atualizaListaContribuintes($aContribuintes); } else { $oContribuinte = $this->view->user->getUsuariosContribuintes(); $oContribuinte = $oContribuinte[0]; if ($oContribuinte->getIm()) { $aContribuintesInscricao = new Contribuinte_Model_Contribuinte(); $aContribuintes[] = $aContribuintesInscricao->getDadosContribuinteEcidade($oContribuinte->getIm()); } else { if ($oContribuinte->getCnpjCpf()) { $oContribuinteEventual = new Contribuinte_Model_ContribuinteEventual(); $aContribuintes[] = $oContribuinteEventual->getByCpfCnpjWebService($oContribuinte->getCnpjCpf()); } } } // atualiza o tipo de emissao e permissoes dos contribuintes Administrativo_Model_UsuarioContribuinte::atualizaTipoEmissao($aContribuintes); $aContribuintes = $this->view->user->getContribuintes(); $this->view->contribuintes = $aContribuintes; //carrega informativo do fiscal $oInformativo = Administrativo_Model_Informativo::getByAttribute('id', 1); //Verifica se retorna algo da coluna informativo if (!empty($oInformativo)) { $this->view->descricao = $oInformativo->getDescricao(); } if (count($this->view->contribuintes) == 1 && $this->_session->id == NULL) { $aContribuintes = each($this->view->contribuintes); $oContribuinte = $aContribuintes['value']; self::setContribuinte($oContribuinte); $this->_redirector->gotoSimple('contribuinte', 'index', 'contribuinte'); } // Reseta permissões new DBSeller_Acl_Setup(TRUE); }
/** * Metodo para renderizar o formulario de cadastro/alteracao dos parametros do contribuinte. * * Retorna para a view a instancia do formulario Contribuinte_Form_ParametrosContribuinte */ public function contribuinteAction() { $oForm = new Contribuinte_Form_ParametrosContribuinte(); $oParametroContribuinte = $this->buscaParametroContribuinte($this->view->contribuinte->getIdUsuarioContribuinte()); $aDados = $this->getRequest()->getPost(); if ($this->getRequest()->isPost() && $oForm->isValid($aDados)) { try { $oDoctrine = Zend_Registry::get('em'); $oDoctrine->getConnection()->beginTransaction(); $oParametroContribuinte->setAvisofimEmissaoNota($aDados["avisofim_emissao_nota"]); $oParametroContribuinte->setCofins(DBSeller_Helper_Number_Format::toDataBase($aDados["cofins"])); $oParametroContribuinte->setCsll(DBSeller_Helper_Number_Format::toDataBase($aDados["csll"])); $oParametroContribuinte->setIdContribuinte($this->view->contribuinte->getIdUsuarioContribuinte()); $oParametroContribuinte->setInss(DBSeller_Helper_Number_Format::toDataBase($aDados["inss"])); $oParametroContribuinte->setIr(DBSeller_Helper_Number_Format::toDataBase($aDados["ir"])); $oParametroContribuinte->setMaxDeducao(DBSeller_Helper_Number_Format::toDataBase($aDados["max_deducao"])); $oParametroContribuinte->setPis(DBSeller_Helper_Number_Format::toDataBase($aDados["pis"])); $oParametroContribuinte->setValorIssFixo(DBSeller_Helper_Number_Format::toDataBase($aDados["valor_iss_fixo"])); $oParametroContribuinte->salvar(); $oDoctrine->getConnection()->commit(); $this->view->messages[] = array('success' => 'Parâmetros modificados com sucesso.'); $oArquivoUpload = new Zend_File_Transfer(); $oArquivoUpload->receive(); $iInscricaoMunicipal = $this->view->contribuinte->getInscricaoMunicipal(); Administrativo_Model_Empresa::setLogoByIm($iInscricaoMunicipal, $oArquivoUpload->getFileInfo()); } catch (Exception $oErro) { $oDoctrine->getConnection()->rollback(); $this->view->messages[] = array('error' => $oErro->getMessage()); } } $oDados->im = $this->view->contribuinte->getInscricaoMunicipal(); $oDados->nome_contribuinte = $this->view->contribuinte->getNome(); $oDados->avisofim_emissao_nota = $oParametroContribuinte->getAvisofimEmissaoNota(); $oDados->cofins = $oParametroContribuinte->getCofins(); $oDados->csll = $oParametroContribuinte->getCsll(); $oDados->inss = $oParametroContribuinte->getInss(); $oDados->ir = $oParametroContribuinte->getIr(); $oDados->max_deducao = $oParametroContribuinte->getMaxDeducao(); $oDados->pis = $oParametroContribuinte->getPis(); $oDados->valor_iss_fixo = $oParametroContribuinte->getValorIssFixo(); $oForm->preenche($oDados); $this->view->sLogoPrestador = Administrativo_Model_Empresa::getLogoByIm($oDados->im); $this->view->form = $oForm; }
/** * Retorna os dados para a emissão da nfse * * @param string $sCodigoVerificacao * @param object $oNota * @param object $oPrefeitura * @return array */ public static function getDadosEmissao($sCodigoVerificacao, $oNota, $oPrefeitura) { /** * Verifica se os dados foram enviados pela verificar de autenticidade sem nescessidade de estar logado ao sistema */ if ($oNota->getId_contribuinte()) { $oPrestador = Contribuinte_Model_Contribuinte::getById($oNota->getId_contribuinte()); } else { $oPrestador = Contribuinte_Model_Contribuinte::getByInscricaoMunicipal($oNota->getP_im()); } $oBaseUrlHelper = new Zend_View_Helper_BaseUrl(); $oServerUrlHelper = new Zend_View_Helper_ServerUrl(); // Calcula e divide a quantidade de páginas conforme os dados descritos no campo de 'Descrição do Serviço' $iTamanhoTotalTexto = strlen($oNota->getS_dados_discriminacao()); $iQndPaginas = $iTamanhoTotalTexto > 800 ? 2 : 1; $aDados = array(); // Quebra os modelos de nota em páginas conforme os dados descritos no campo de 'Descrição do Serviço' for ($iIndex = 1; $iIndex <= $iQndPaginas; $iIndex++) { // Dados de manipulação do cabeçalho $oDadosCabecalho = new StdClass(); $oDadosCabecalho->sBrasao = $oBaseUrlHelper->baseUrl('/global/img/brasao.jpg'); $oDadosCabecalho->oDadosPrefeitura = $oPrefeitura; if (getenv('APPLICATION_ENV') != 'production') { $oDadosCabecalho->sUrlTarja = $oBaseUrlHelper->baseUrl('/administrativo/img/nfse/tarja_sem_valor.png'); } else { if ($oNota->getIdNotaSubstituta()) { $oDadosCabecalho->sUrlTarja = $oBaseUrlHelper->baseUrl('/administrativo/img/nfse/tarja_substituida.gif'); } else { if ($oNota->getCancelada()) { $oDadosCabecalho->sUrlTarja = $oBaseUrlHelper->baseUrl('/administrativo/img/nfse/tarja_cancelada.gif'); } } } // Gera o QRCode apenas para os modelos que exibem o mesmo if (in_array($oPrefeitura->getModeloImpressaoNfse(), array(2, 3))) { $aVerificacao = array('module' => 'auth', 'controller' => 'nfse', 'action' => 'autenticar-post', 'prestador_cnpjcpf' => $oNota->getP_cnpjcpf(), 'codigo_verificacao' => $sCodigoVerificacao); $sUrlVerificada = DBSeller_Helper_Url_Encrypt::encrypt(array('module' => 'default', 'controller' => 'index', 'action' => 'autentica', 'url' => $aVerificacao)); //"codigo_verificacao/{$sCodigoVerificacao}/prestador_cnpjcpf/{$oNota->getP_cnpjcpf()}")); $sQRCodeImagem = DBSeller_Helper_QRCode_QRCode::getQrCodeNfse($sUrlVerificada, $sCodigoVerificacao); $oDadosCabecalho->sQRCode = $oBaseUrlHelper->baseUrl("/tmp/{$sQRCodeImagem}"); } // Dados de manipulação do prestador $oDadosPrestador = new StdClass(); $oDadosPrestador->oPrestador = $oPrestador; $sLogoPrestador = Administrativo_Model_Empresa::getLogoByIm($oNota->getP_im()); $oDadosPrestador->sLogoPrestador = $oBaseUrlHelper->baseUrl("/tmp/{$sLogoPrestador}"); // Dados de manipulação do serviço $oDadosServico = new StdClass(); $oDadosServico->oDadosNota = $oNota; // Verifica se não é a primeira página que será impressa e quebra as demais 'Descrição do Serviço' $iInicioCaracterPagina = 0; $iQndCaracterPagina = 800; if ($iIndex == 2) { $iInicioCaracterPagina = 800; $iQndCaracterPagina = $iTamanhoTotalTexto; } $sDiscriminacaoServico = substr($oNota->getS_dados_discriminacao(), $iInicioCaracterPagina, $iQndCaracterPagina); $oDadosServico->sDiscriminacaoServico = $sDiscriminacaoServico; // Dados de manipulação da nota subtstituida $iIdNotaSubstituida = $oNota->getIdNotaSubstituida(); if ($iIdNotaSubstituida) { $oDadosServico->oDadosNotaSubstituida = Contribuinte_Model_Nota::getById($iIdNotaSubstituida); } $oRegistro = new StdClass(); $oRegistro->iPagina = $iIndex; $oRegistro->oDadosCabecalho = $oDadosCabecalho; $oRegistro->oDadosPrestador = $oDadosPrestador; $oRegistro->oDadosServico = $oDadosServico; $aDados[] = $oRegistro; } return $aDados; }
/** * metodo responsável por gerar as permissoes do usuario * * @return Administrativo_Model_UsuarioContribuinte */ protected function definePermissoes() { if ($this->getId() == null) { // verifica se o tipo de usuário é Contador e e se for vincula as empresas enviadas pelo e-cidade if ($this->getTipo() == Administrativo_Model_TipoUsuario::$CONTADOR) { $empresas = Administrativo_Model_Empresa::getByCnpj($this->getCnpj()); // vincula ações de contribuintes $this->vinculaEmpresas($empresas); } // verifica se o usuário é do tipo Contribuinte para vincular a empresa if ($this->getTipo() == Administrativo_Model_TipoUsuario::$CONTRIBUINTE) { $oEmpresa = Contribuinte_Model_Contribuinte::getByCpfCnpj($this->getCnpj()); if (!empty($oEmpresa)) { $uc = new Administrativo_Model_UsuarioContribuinte(); $uc->setIm($oEmpresa->getInscricaoMunicipal()); $uc->setUsuario($this->entity); $uc->setHabilitado(true); $this->addUsuarioContribuinte($uc); } } // vincula ações administrativas $acoes = $this->getPerfil()->getAcoes(); $acoes_adm = array(); foreach ($acoes as $a) { if (strtolower($a->getControle()->getModulo()->getNome()) == 'administrativo' || $a->getId() == 37) { $acoes_adm[] = $a; } } $this->adicionaAcoes($acoes_adm); } return $this; }