/** * Construtor da classe Modelo Relatório */ public function carregaDados() { $aIdentity = Zend_Auth::getInstance()->getIdentity(); $this->oDadosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $this->oDadosUsuario = Administrativo_Model_Usuario::getById($aIdentity['id']); $this->SetFillColor(220, 220, 220); $this->AddPage(); $this->SetAutoPageBreak(TRUE, 12); }
/** * Retorna lista dos bairros * * Aviso: * - Se o codigo da prefeitura for igual retorna parametro para mostrar campo texto * * @param string $municipio * @return JSON $aBairros[] */ public function getBairrosAction() { $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge(); $iMunicipio = $this->_getParam('municipio', NULL); if ($iCodigoIbge == $iMunicipio) { $aBairros = Default_Model_Cadenderbairro::getBairros($iMunicipio); echo $this->getHelper('json')->sendJson($aBairros); } else { echo $this->getHelper('json')->sendJson(array('mostra_campo_texto' => TRUE)); } }
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; } }
public function rpsAction() { $im = $this->getRequest()->getParam('im'); $req = $this->getRequest()->getParam('req'); $requisicao = null; $config = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $sControleAidof = $config->getControleAidof(); $contribuinte = Administrativo_Model_Contribuinte::getByIm($im); $this->view->sControleAidof = $sControleAidof; if ($req !== null) { $requisicao = Administrativo_Model_Aidof::getById($req); $im = $requisicao->getIm(); $this->view->liberacaoForm = $this->liberacaoRpsForm($requisicao->getContribuinte(), $requisicao, $sControleAidof); } if ($contribuinte != null || !empty($contribuinte)) { $this->view->contribuinte_nome = $contribuinte[0]->attr('nome'); $liberacaoForm = $this->liberacaoRpsForm($contribuinte, $requisicao, $sControleAidof); if ($this->getRequest()->isPost()) { if ($liberacaoForm->isValid($_POST)) { $dados = $this->getRequest()->getPost(); if (isset($dados['nota_limite']) && $dados['nota_limite'] != null && (isset($dados['data_limite']) && $dados['data_limite'] != null)) { $this->view->messages[] = array('error' => 'Informe apenas um dos campos. Ou limite por rps, ou limite por data.'); } else { $liberacao = Administrativo_Model_Aidof::getById($req); if ($liberacao->getDataLiberacao() == null) { $liberacao->setDataLiberacao(new Datetime()); $dados['situacao'] = 'l'; if ($sControleAidof == 'data') { $auxData = str_replace('/', '-', $this->_getParam('data_liberada')); $auxData = new DateTime($auxData); $auxData->format('Y-m-d H:i:s'); $dados['data_liberada'] = $auxData; } $liberacao->persist($dados); $this->view->messages[] = array('success' => 'Liberação cadastrada com sucesso.'); } else { $this->_redirector->gotoSimple('rps', 'liberacao', 'administrativo'); } } } } $this->view->historico = Administrativo_Model_Aidof::getRequisicoes($im, 'r'); } $this->view->requisicoes = Administrativo_Model_Aidof::getRequisicoesPendentes(null, 'r'); }
public function indexAction() { $this->_helper->layout->setLayoutPath(APPLICATION_PATH . '/modules/contribuinte/views/scripts/layouts'); $this->_helper->layout->setLayout('layout-modal'); $oForm = new Contribuinte_Form_Empresa(); 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 Nova Empresa (NFSE) $aDadosEmpresa = array(); $aDadosEmpresa['t_cnpjcpf'] = DBSeller_Helper_Number_Format::getNumbers($aDados['z01_cgccpf']); $aDadosEmpresa['t_razao_social'] = $aDados['z01_nome']; $aDadosEmpresa['t_cod_pais'] = $aDados['z01_nome']; $aDadosEmpresa['t_uf'] = $aDados['z01_uf']; $aDadosEmpresa['t_cod_municipio'] = $aDados['z01_munic']; $aDadosEmpresa['t_cep'] = $aDados['z01_cep']; $aDadosEmpresa['t_bairro'] = $aDados['z01_bairro_fora']; $aDadosEmpresa['t_endereco'] = $aDados['z01_ender_fora']; $aDadosEmpresa['t_endereco_numero'] = $aDados['z01_numero']; $aDadosEmpresa['t_endereco_comp'] = $aDados['z01_compl']; $aDadosEmpresa['t_telefone'] = $aDados['z01_telef']; $aDadosEmpresa['t_email'] = $aDados['z01_email']; $oEmpresa = new Contribuinte_Model_EmpresaBase(); $oEmpresa->persist($aDadosEmpresa); $this->_helper->getHelper('FlashMessenger')->addMessage(array('success' => 'Empresa cadastrada com sucesso.')); return TRUE; } } else { $this->view->form = $oForm; } }
/** * Gera o PDF da NFSE * * @param string $sCodigoVerificacao * @return string */ private function getNotaImpressao($sCodigoVerificacao) { $oNota = Contribuinte_Model_Nota::getByAttribute('cod_verificacao', $sCodigoVerificacao); $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $this->view->aDadosNota = Contribuinte_Model_Nota::getDadosEmissao($sCodigoVerificacao, $oNota, $oPrefeitura); $sHtml = "pdf/nota_modelo_{$oPrefeitura->getModeloImpressaoNfse()}.phtml"; $sHtml = $this->view->render($sHtml); $sNomeArquivo = "nfse_{$oNota->getNota()}"; $sLocalArquivo = APPLICATION_PATH . "/../public/tmp/{$sNomeArquivo}"; DBSeller_Helper_Pdf_Pdf::renderPdf($sHtml, $sLocalArquivo, array('format' => 'A4', 'output' => 'F')); return array('location' => "{$sLocalArquivo}.pdf", 'filename' => "{$sNomeArquivo}.pdf", 'type' => 'application/pdf'); }
public function init() { $oBaseUrlHelper = new Zend_View_Helper_BaseUrl(); // pega codigo do IBGE do municipio no arquivo de configuracao $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge(); $this->setAction($oBaseUrlHelper->baseUrl($this->sAction)); $this->setMethod(Zend_Form::METHOD_POST); $this->setAttrib('id', 'formTomador'); $oElm = $this->createElement('hidden', 'endereco_fora'); $oElm->setValue('1'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_cgccpf'); $oElm->setLabel('CNPJ: '); $oElm->addValidator(new DBSeller_Validator_Cnpj()); $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 14, 'max' => 18))); $oElm->addFilter(new Zend_Filter_Digits()); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_nome'); $oElm->setLabel('Razão Social: '); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $aEstados = Default_Model_Cadenderestado::getEstados('01058'); $oElm = $this->createElement('select', 'z01_uf', array('multiOptions' => $aEstados)); $oElm->setLabel('Estado: '); $oElm->setAttrib('class', 'select-estados'); $oElm->setAttrib('select-munic', 'z01_munic'); $oElm->setAttrib('ajax-url', '/endereco/get-municipios/'); $oElm->setAttrib('key', FALSE); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_Alpha()); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('select', 'z01_munic'); $oElm->setLabel('Cidade: '); $oElm->setAttrib('key', TRUE); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_Digits()); $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0))); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_cep'); $oElm->setLabel('CEP: '); $oElm->setAttrib('maxlength', 8); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_Digits()); $oElm->addValidator(new Zend_Validate_StringLength(array('min' => 8))); $oElm->removeDecorator('errors'); $this->addElement($oElm); $aBairros = Default_Model_Cadenderbairro::getBairros(); $oElm = $this->createElement('select', 'z01_bairro_munic', array('multiOptions' => $aBairros)); $oElm->setLabel('Bairro: '); $oElm->setAttrib('municipio', $iCodigoIbge); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_Digits()); $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0))); $oElm->removeDecorator('errors'); $this->addElement($oElm); $aMunicipios = Default_Model_Cadenderrua::getRuas(); $oElm = $this->createElement('select', 'z01_ender_munic', array('multiOptions' => $aMunicipios)); $oElm->setLabel('Endereço: '); $oElm->setAttrib('municipio', $iCodigoIbge); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_Digits()); $oElm->addValidator(new Zend_Validate_GreaterThan(array('min' => 0))); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_bairro_fora'); $oElm->setLabel('Bairro: '); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_ender_fora'); $oElm->setLabel('Endereço: '); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_numero'); $oElm->setLabel('Número: '); $oElm->setRequired(TRUE); $oElm->removeDecorator('errors'); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_compl'); $oElm->setLabel('Complemento: '); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_telef'); $oElm->setLabel('Telefone: '); $oElm->addFilter(new Zend_Filter_Digits()); $this->addElement($oElm); $oElm = $this->createElement('text', 'z01_email'); $oElm->setLabel('Email: '); $oElm->setRequired(TRUE); $oElm->addValidator(new Zend_Validate_EmailAddress()); $oElm->removeDecorator('errors'); $this->addElement($oElm); if ($this->bSubmit) { $this->addElement(new Zend_Form_Element_Submit('Cadastrar', 'Cadastrar', array('label' => 'Criar'))); } return $this; }
/** * 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()); }
/** * Formulário de impressão automatica das guias */ public function impressaoGeracaoAutomaticaAction() { $oForm = new Fiscal_Form_Guias(); $oForm->getElement('btn_gerar')->setAttrib('style', 'display:none;'); $oForm->getElement('btn_consultar')->setLabel('Imprimir'); $oForm->getElement('btn_consultar')->setAttrib('type', 'submit'); $oForm->setAction($this->action); $this->view->oForm = $oForm; if ($this->getRequest()->isPost()) { $aParametros = $this->getRequest()->getParams(); parent::noTemplate(); $iMesCompetencia = str_pad($aParametros['mes_competencia'], 2, '0', STR_PAD_LEFT); $iAnoCompetencia = $aParametros['ano_competencia']; $aGuiasCompetencia = Contribuinte_Model_Competencia::getByGuiasContribuinteAndCompetencia($iMesCompetencia, $iAnoCompetencia); $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $aDadosRelatorio = array(); foreach ($aGuiasCompetencia as $oGuia) { $oDados = new stdClass(); $oDados->competencia = $oGuia->getCompetencia(); $oDados->valorTotal = $oGuia->getFormatedTotalServico(); $oDados->valorIss = $oGuia->getFormatedTotalIss(); $oDados->razaoSocial = $oGuia->getContribuinte()->getNome(); $oDados->im = $oGuia->getContribuinte()->getInscricaoMunicipal(); $oDados->cnpj = $oGuia->getContribuinte()->getCgcCpf(); $aDadosRelatorio[] = $oDados; } $oImpressaoRelatorio = new Fiscal_Model_ImpressaoRelatorioDeGuias(); $oImpressaoRelatorio->setAmbiente(getenv("APPLICATION_ENV")); $oImpressaoRelatorio->setPrefeitura($oPrefeitura->getNome()); $oImpressaoRelatorio->setDados($aDadosRelatorio); $aArquivo = $oImpressaoRelatorio->montaRelatorio(); parent::download($aArquivo['filename']); } }
/** * Gera o documento do livro fiscal e retorna o nome do arquivo gerado * * @param Contribuinte_Model_Contribuinte $oContribuinte * @return null|string * @throws Exception */ private function livroFiscalGerarDocumento(Contribuinte_Model_Contribuinte $oContribuinte) { $oDadosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $sDataHoraGeracao = date('YmdHis'); $sArquivoPdf = "livro_fiscal_{$sDataHoraGeracao}.pdf"; try { // Parâmetros do formulário $sCompetenciaInicial = $this->getRequest()->getParam('data_competencia_inicial'); $sCompetenciaFinal = $this->getRequest()->getParam('data_competencia_final'); // Separa os meses e anos $iCompetenciaInicialMes = substr($sCompetenciaInicial, 0, 2); $iCompetenciaFinalMes = substr($sCompetenciaFinal, 0, 2); $iCompetenciaInicialAno = substr($sCompetenciaInicial, -4); $iCompetenciaFinalAno = substr($sCompetenciaFinal, -4); // Dados do gerenciador de entidade e conexão (Doctrine) $oEntityManager = Zend_Registry::get('em'); $oConexao = $oEntityManager->getConnection(); // Inicia o processo de geração do PDF $oPdf = new DBSeller_Helper_Pdf_LivroFiscal('l'); $oPdf->setNomeArquivo($sArquivoPdf); $oPdf->setAmbiente(getenv('APPLICATION_ENV')); $oPdf->openPdf(); $sCodigosContribuintes = NULL; // Une todos os ID's referentes ao contribuinte foreach ($oContribuinte->getContribuintes() as $iIdContribuinte) { if ($sCodigosContribuintes == NULL) { $sCodigosContribuintes = $iIdContribuinte; } else { $sCodigosContribuintes .= ',' . $iIdContribuinte; } } // Varre os anos para geração do relatório for ($iAno = 0; $iAno <= $iCompetenciaFinalAno - $iCompetenciaInicialAno; $iAno++) { $iAnoLoop = intval($iCompetenciaInicialAno) + $iAno; // Varre os meses for ($iMesLoop = 1; $iMesLoop <= 12; $iMesLoop++) { // Ignora os meses anteriores e seguintes aos meses inicial e final if ($iAnoLoop == $iCompetenciaInicialAno && $iMesLoop < $iCompetenciaInicialMes || $iAnoLoop == $iCompetenciaFinalAno && $iMesLoop > $iCompetenciaFinalMes) { continue; } // Monta os dados da prefeitura $oPdf->setDadosPrefeitura($oDadosPrefeitura); // Monta os dados do contribuinte $oPdf->setDadosContribuinte($oContribuinte, $iMesLoop, $iAnoLoop); // Parametros consulta documentos $aParametrosDocumentos = array(); $aParametrosDocumentos['iAno'] = $iAnoLoop; $aParametrosDocumentos['iMes'] = $iMesLoop; // Documentos validos $oStatementValidos = $oConexao->prepare("\n SELECT *\n FROM view_nota_mais_dms WHERE\n servico_iss_retido = false AND\n (dms_operacao = 's' OR dms_operacao IS NULL) AND\n documento_competencia_ano = :iAno AND\n documento_competencia_mes = :iMes AND\n documento_id_contribuinte IN ({$sCodigosContribuintes})\n ORDER BY documento_data,\n documento_numero,\n documento_tipo\n "); // Monta a lista dos documentos validos do contribuinte $oPdf->setDadosDocumentosValidos($oStatementValidos, $aParametrosDocumentos); $oPdf->Ln(10); // Documentos Substituídos $oStatementSubstituitos = $oConexao->prepare("\n SELECT *\n FROM view_nota_mais_dms WHERE\n servico_iss_retido = true AND\n (dms_operacao = 's' OR dms_operacao IS NULL) AND\n documento_competencia_ano = :iAno AND\n documento_competencia_mes = :iMes AND\n documento_id_contribuinte in ({$sCodigosContribuintes})\n ORDER BY documento_data,\n documento_numero,\n documento_tipo\n "); // Monta a lista dos documentos substituídos do contribuinte $oPdf->setDadosDocumentosSubstituidos($oStatementSubstituitos, $aParametrosDocumentos); } // Parametros termo de abertura/fechamento $oParametrosAberturaFechamento = new stdClass(); $oParametrosAberturaFechamento->oContribuinte = $oContribuinte; $oParametrosAberturaFechamento->iAno = $iAnoLoop; $oParametrosAberturaFechamento->iCompetenciaInicialMes = $iCompetenciaInicialMes; $oParametrosAberturaFechamento->iCompetenciaInicialAno = $iCompetenciaInicialAno; $oParametrosAberturaFechamento->iCompetenciaFinalMes = $iCompetenciaFinalMes; $oParametrosAberturaFechamento->iCompetenciaFinalAno = $iCompetenciaFinalAno; // Gera os termos de abertura e fechamento $oPdf->setDadosAberturaFechamento($oParametrosAberturaFechamento); $oParametrosAberturaFechamento->lFechamento = TRUE; $oPdf->setDadosAberturaFechamento($oParametrosAberturaFechamento); $oPdf->setNumeroPagina(1); } // Gera o arquivo no diretório "/public/tmp/" $oPdf->Output(); // Retorna o nome do arquivo gerado return $sArquivoPdf; } catch (Exception $oErro) { throw new Exception("Erro ao gerar o relatório: {$oErro->getMessage()}"); } }
/** * Carrega a lista de bairros no elemento, seta o bairro do elemento se informado * * @param integer $iIdMunicipio * @param integer $iIdBairro [opcional] */ public function carregarBairros($iIdMunicipio, $iIdBairro = NULL) { $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge(); if ($iCodigoIbge == $iIdMunicipio) { $aBairros = Default_Model_Cadenderbairro::getBairros($iIdMunicipio); $this->cod_bairro->addMultiOptions($aBairros); } $this->cod_bairro->setValue($iIdBairro); }
/** * Formulário NFSE * * @param string $sCodigoVerificacao * @param string $oContribuinte * @return Contribuinte_Form_Nota */ private function formNota($sCodigoVerificacao, $oContribuinte = NULL) { $oContribuinte = $oContribuinte ?: $this->_session->contribuinte; $iMaxNota = 0; $iMaxGuia = 0; // Calcula quantos dias no passado a nota pode ser emitida $oParametrosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $iDiasRetroativosEmissaoNota = $oParametrosPrefeitura->getNotaRetroativa(); $oDataCorrente = new DateTime(); $oUltimaGuia = Contribuinte_Model_Guia::getUltimaGuiaNota($oContribuinte); $uDataUltimaNota = Contribuinte_Model_Nota::getUltimaNotaEmitidaByContribuinte($oContribuinte->getContribuintes()); if ($uDataUltimaNota != NULL) { $oDiff = $oDataCorrente->diff(new DateTime($uDataUltimaNota), TRUE); $iMaxNota = $oDiff->days < $iDiasRetroativosEmissaoNota ? $oDiff->days : $iDiasRetroativosEmissaoNota; } if (!empty($oUltimaGuia)) { $iMes = $oUltimaGuia->getMesComp(); $iAno = $oUltimaGuia->getAnoComp(); if ($oUltimaGuia->getMesComp() + 1 > 12) { $iMes = 1; } $iMes = str_pad($iMes, 2, '0', STR_PAD_LEFT); $uDataUltimoDiaCompetencia = new Zend_Date("01/{$iMes}/{$iAno}"); $uDataUltimoDiaCompetencia->sub(-1, Zend_date::MONTH); $oDiff = $oDataCorrente->diff(new DateTime($uDataUltimoDiaCompetencia->get('Y-M-d')), TRUE); $iMaxGuia = $oDiff->days < $iDiasRetroativosEmissaoNota ? $oDiff->days : $iDiasRetroativosEmissaoNota; } if ($iMaxNota > $iMaxGuia && $iMaxGuia > 0) { $iDiasRetroativosEmissaoNota = $iMaxGuia; } else { if ($iMaxNota > 0) { $iDiasRetroativosEmissaoNota = $iMaxNota; } else { if (!$iDiasRetroativosEmissaoNota || $iMaxNota == 0) { $iDiasRetroativosEmissaoNota = 0; } } } $oDataCorrente = new DateTime(); $oDataCorrente = $oDataCorrente->sub(date_interval_create_from_date_string("{$iDiasRetroativosEmissaoNota} days")); $oForm = new Contribuinte_Form_Nota($sCodigoVerificacao, $oDataCorrente); if ($oContribuinte !== NULL) { $oParametros = Contribuinte_Model_ParametroContribuinte::getById($oContribuinte->getIdUsuarioContribuinte()); if ($oParametros instanceof Contribuinte_Model_ParametroContribuinte) { $oForm->preencheParametros($oParametros); } } return $oForm; }
/** * Instancia o formulario de emissão de RPS * * @param string $sCodigoVerificacao Código de Verificação * @param Contribuinte_Model_ContribuinteAbstract $oContribuinte Dados do contribuinte * @return Contribuinte_Form_Nota */ private function formNota($sCodigoVerificacao, Contribuinte_Model_ContribuinteAbstract $oContribuinte = NULL) { // Seta o contribuinte da sessão se não for enviado por parâmetro $oContribuinte = $oContribuinte ? $oContribuinte : $this->_session->contribuinte; $iIdContribuinte = $oContribuinte->getIdUsuarioContribuinte(); $maxNota = 0; $maxGuia = 0; $aListaIdContribuinte = $oContribuinte->getContribuintes(); // Calcula quantos dias no passado a nota pode ser emtidida $oParametrosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $max = $oParametrosPrefeitura->getNotaRetroativa(); $oUltimaGuia = Contribuinte_Model_Guia::getUltimaGuiaNota($oContribuinte); $uDataUltimaNota = Contribuinte_Model_Nota::getUltimaNotaEmitidaByContribuinte($aListaIdContribuinte); $dia = new DateTime(); if ($oUltimaGuia != NULL) { if ($oUltimaGuia->getMesComp() + 1 > 12) { $iMes = 1; } else { $iMes = $oUltimaGuia->getMesComp(); } $uDataUltimoDiaCompetencia = new Zend_Date("01/{$iMes}/{$oUltimaGuia->getAnoComp()}"); $uDataUltimoDiaCompetencia->sub(1, Zend_date::DAY); $diff = $dia->diff(new DateTime($uDataUltimoDiaCompetencia->get('YYYY-MM-dd')), TRUE); $maxGuia = $diff->d < $max ? $diff->d : $max; } if ($uDataUltimaNota != NULL) { $diff = $dia->diff(new DateTime($uDataUltimaNota), TRUE); $maxNota = $diff->d < $max ? $diff->d : $max; } if ($maxNota - $maxGuia < $maxGuia) { $max = $maxGuia - 1; } else { if ($maxNota > 0) { $max = $maxNota; } else { $max = 0; } } $dia = $dia->sub(new DateInterval('P' . $max . 'D')); $oForm = new Contribuinte_Form_Nota($sCodigoVerificacao, $dia, '/contribuinte/rps/index', TRUE); if ($oContribuinte !== NULL) { $oParametros = Contribuinte_Model_ParametroContribuinte::getById($iIdContribuinte); $oForm->preencheParametros($oParametros); } return $oForm; }
/** * Retorna os dados da prefeitura * * @return mixed */ public function getDadosPrefeitura() { try { $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); } catch (Exception $oErro) { $oPrefeitura = NULL; } return $oPrefeitura; }
/** * Página para autenticação de notas */ public function autenticaAction() { // Desabilita o layout do sistema parent::noLayout(); $sPrestadorCnpjCpf = parent::getParam('prestador_cnpjcpf'); $sNumeroRps = parent::getParam('numero_rps'); $sCodigoVerificacao = parent::getParam('codigo_verificacao'); $sCodVer = parent::getParam('cod_ver'); $sCpfCnpj = parent::getParam('cpfcnpj'); if (!empty($sCodigoVerificacao) && !empty($sPrestadorCnpjCpf)) { $oNota = Contribuinte_Model_Nota::getByPrestadorAndCodigoVerificacao($sPrestadorCnpjCpf, $sCodigoVerificacao); } else { if (!empty($sCodVer) && !empty($sCpfCnpj)) { $oNota = Contribuinte_Model_Nota::getByPrestadorAndCodigoVerificacao($sCodVer, $sCpfCnpj); } else { $oNota = Contribuinte_Model_Nota::getByPrestadorAndNumeroRps($sPrestadorCnpjCpf, $sNumeroRps); } } $oPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $this->view->aDadosNota = Contribuinte_Model_Nota::getDadosEmissao($sCodigoVerificacao, $oNota, $oPrefeitura); $this->view->setBasePath(APPLICATION_PATH . '/modules/contribuinte/views/'); $sHtml = $this->view->render("pdf/nota_modelo_{$oPrefeitura->getModeloImpressaoNfse()}.phtml"); echo $sHtml; }
/** * Salva os parametros da prefeitura [Json] */ public function prefeituraSalvarNfseAction() { // Dados Request $aDados = $this->_getAllParams(); // Formulario $oForm = new Administrativo_Form_ParametroPrefeituraNfse(); $oForm->setModelosImpressao($oForm->modelo_impressao_nfse); $oForm->populate($aDados); // Valida o formulario if ($oForm->isValid($aDados)) { $oParametros = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); $oParametros->persist($aDados); $aRetornoJson['status'] = TRUE; $aRetornoJson['success'] = $this->translate->_('Parâmetros configurados com sucesso.'); } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } echo $this->getHelper('json')->sendJson($aRetornoJson); }
/** * Método para persistir os dados do cadastro eventual [Json] * * @return void */ public function salvarAction() { $aDados = $this->getAllParams(); $oForm = new Administrativo_Form_CadastroPessoa(); // Carrega a lista de cidade e seta os selecionados if (!empty($aDados['estado']) && !empty($aDados['cidade'])) { $oForm->carregarCidades($aDados['estado'], $aDados['cidade']); } // Se informado o bairro pelo combo, retira a validação do campo texto if (isset($aDados['cod_bairro']) && !empty($aDados['cod_bairro'])) { $oForm->getElement('bairro')->setRequired(FALSE); $oForm->carregarBairros($aDados['cidade']); } // Se informado o bairro pelo campo texto, retira a validação do combo if (isset($aDados['bairro']) && !empty($aDados['bairro'])) { $oForm->getElement('cod_bairro')->setRequired(FALSE); } // Se informado o bairro pelo combo, retira a validação do campo texto if (isset($aDados['cod_endereco']) && !empty($aDados['cod_endereco'])) { $oForm->getElement('endereco')->setRequired(FALSE); $oForm->carregarEnderecos($aDados['cod_endereco']); } // Se informado o bairro pelo campo texto, retira a validação do combo if (isset($aDados['endereco']) && !empty($aDados['endereco'])) { $oForm->getElement('cod_endereco')->setRequired(FALSE); } if ($aDados['id_perfil'] == 6) { $oForm->getElement('cnpjcpf')->removeDecorator('DBSeller_Validator_CpfCnpj'); $oForm->getElement('cnpjcpf')->addValidator(new DBSeller_Validator_Cnpj()); } else { $oForm->getElement('cnpjcpf')->addValidator(new DBSeller_Validator_CpfCnpj()); } // Popula o formulario $oForm->populate($aDados); // Valida o formulario if ($oForm->isValid($aDados)) { // Recupera os parametros, limpando as máscaras com filters do form $aDados = $oForm->getValues(); // Recupera as configurações do doctrine e inicia a transação $oDoctrine = Zend_Registry::get('em'); $oDoctrine->getConnection()->beginTransaction(); try { $aUsuarioEmail = Administrativo_Model_Usuario::getByAttribute('email', $aDados['email']); if (count($aUsuarioEmail) > 0) { $sUrl = '<a href="' . $this->view->serverUrl('/auth/login/esqueci-minha-senha/') . '">Clique Aqui</a>'; $sMensagemErro = 'Já encontramos um cadastro com este email.<br>'; $sMensagemErro .= "Caso tenha esquecido sua senha. {$sUrl}"; throw new Exception($this->translate->_($sMensagemErro)); } $aUsuarioSistema = Administrativo_Model_Usuario::getByAttribute('login', $aDados['cnpjcpf']); if (count($aUsuarioSistema) > 0) { $sMensagemErro = 'Já encontramos um cadastro com essas informações.<br>'; $sMensagemErro .= 'Entre em contato com a prefeitura para maiores informações.'; throw new Exception($this->translate->_($sMensagemErro)); } $sHash = NULL; $oParametosPrefeitura = Administrativo_Model_Prefeitura::getDadosPrefeituraBase(); if (!$oParametosPrefeitura->getVerificaAutocadastro()) { $sHash = hash('whirlpool', $aDados['cnpjcpf'] . time() . $aDados['email']); $aDados['tipo_liberacao'] = Contribuinte_Model_CadastroPessoa::TIPO_LIBERACAO_USUARIO_CGM; } $aDados['hash'] = $sHash; $oCadastro = new Contribuinte_Model_CadastroPessoa(); $oCadastro->setDadosEventual($aDados); $oCadastro->persist(); if ($oParametosPrefeitura->getVerificaAutocadastro()) { $sTextoEmail = $this->view->render('cadastro-eventual/email-aviso-fiscal.phtml'); $aUsuariosFiscais = Administrativo_Model_Usuario::getByAttribute('perfil', 5); // Cria um array, mesmo quando for somente um objeto if (is_object($aUsuariosFiscais)) { $aUsuariosFiscais = array($aUsuariosFiscais); } if (is_array($aUsuariosFiscais)) { foreach ($aUsuariosFiscais as $oUsuarioFiscal) { // Envia email apenas para os fiscais habilitados if ($oUsuarioFiscal->getHabilitado()) { DBSeller_Helper_Mail_Mail::send($oUsuarioFiscal->getEmail(), $this->translate->_('ECidadeOnline2 - Solicitação de Contribuinte Eventual'), $sTextoEmail); } } } // Envio do email para o contribuinte, avisando da espera do envio do email $sTextoEmail = $this->view->render('cadastro-eventual/email-aviso-espera-liberacao-contribuinte.phtml'); DBSeller_Helper_Mail_Mail::send($aDados['email'], $this->translate->_('ECidadeOnline2 - Solicitação de Cadastro'), $sTextoEmail); } else { //link base do sistema + caminho para geração de senha $this->view->sLinkSenha = $this->view->serverUrl("/default/cadastro-eventual/verificacao/hash/{$sHash}"); $sTextoEmail = $this->view->render('cadastro-eventual/email-aviso-contribuinte.phtml'); $lEmail = DBSeller_Helper_Mail_Mail::send($aDados['email'], $this->translate->_('ECidadeOnline2 - Confirmação de Cadastro'), $sTextoEmail); if (!$lEmail) { throw new Exception($this->translate->_('Email não enviado. Favor contate o suporte da prefeitura.')); } } $sMensagemErro = 'Cadastro efetuado com sucesso.<br>'; $sMensagemErro .= 'Siga as instruções enviadas para o seu email para continuar o cadastro.'; $aRetornoJson['status'] = TRUE; $aRetornoJson['url'] = $this->view->serverUrl(); $aRetornoJson['success'] = $this->translate->_($sMensagemErro); $oDoctrine->getConnection()->commit(); } catch (Exception $oErro) { $oDoctrine->getConnection()->rollback(); $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $oErro->getMessage(); } } else { $aRetornoJson['status'] = FALSE; $aRetornoJson['fields'] = array_keys($oForm->getMessages()); $aRetornoJson['error'][] = $this->translate->_('Preencha os dados corretamente.'); } // Retorna um json com mensagens de erro ou sucesso echo $this->getHelper('json')->sendJson($aRetornoJson); }
private function cadastroForm($oCadastro) { $oForm = new Administrativo_Form_Cadastro(TRUE); $oForm->setAction($this->view->baseUrl('/administrativo/cadastro/editar')); $aDados = array('id' => $oCadastro->getId(), 'tipo' => $oCadastro->getTipo(), 'cpfcnpj' => $oCadastro->getCpfcnpj(), 'login' => $oCadastro->getLogin(), 'nome' => $oCadastro->getNome(), 'nome_fantasia' => $oCadastro->getNomeFantasia(), 'estado' => $oCadastro->getEstado(), 'cidade' => $oCadastro->getCidade(), 'cep' => $oCadastro->getCep(), 'cod_bairro' => $oCadastro->getCodBairro(), 'bairro' => $oCadastro->getBairro(), 'cod_endereco' => $oCadastro->getCodEndereco(), 'endereco' => $oCadastro->getEndereco(), 'numero' => $oCadastro->getNumero(), 'complemento' => $oCadastro->getComplemento(), 'telefone' => $oCadastro->getTelefone(), 'email' => $oCadastro->getEmail()); $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge(); if ($iCodigoIbge == $aDados['cidade']) { $aDados['bairro'] = NULL; $aDados['endereco'] = NULL; $elmBairro = $oForm->getElement('bairro'); $elmBairro->clearErrorMessages(); $elmBairro->clearValidators(); $elmBairro->setRequired(FALSE); $elmEndereco = $oForm->getElement('endereco'); $elmEndereco->clearErrorMessages(); $elmEndereco->clearValidators(); $elmEndereco->setRequired(FALSE); } else { $aDados['cod_bairro'] = NULL; $aDados['cod_endereco'] = NULL; $elmBairro = $oForm->getElement('cod_bairro'); $elmBairro->clearErrorMessages(); $elmBairro->clearValidators(); $elmBairro->setRequired(FALSE); $elmEndereco = $oForm->getElement('cod_endereco'); $elmEndereco->clearErrorMessages(); $elmEndereco->clearValidators(); $elmEndereco->setRequired(FALSE); } $oForm->preenche($aDados); return $oForm; }
public function preenche($aDados = NULL) { // Preenche campo cidade pelo estado if (isset($aDados['estado'])) { $aCidades = Default_Model_Cadendermunicipio::getByEstado($aDados['estado']); $elmCidade = $this->getElement('cidade'); if (is_array($aCidades)) { $elmCidade->setMultiOptions($aCidades); } } // Exibe/Oculta campos de bairro e endereco quando o codigo da cidade da prefeitura for igual ao escolhido $elmBairroTexto = $this->getElement('cod_bairro'); $elmBairroTexto->setAttrib('class', 'campo-oculto'); $elmEndTexto = $this->getElement('cod_endereco'); $elmEndTexto->setAttrib('class', 'campo-oculto'); // Classe "campo-oculto" no javascript // Codigo da cidade da prefeitura $iCodigoIbge = Administrativo_Model_Prefeitura::getDadosPrefeituraBase()->getIbge(); if (isset($aDados['cidade'])) { if ($iCodigoIbge == $aDados['cidade']) { $aDados['bairro'] = NULL; $elmBairroTexto = $this->getElement('bairro'); $elmBairroTexto->setAttrib('class', 'campo-oculto'); $elmBairroTexto->clearValidators(); $elmBairroTexto->setRequired(FALSE); $elmBairroCombo = $this->getElement('cod_bairro'); $elmBairroCombo->setAttrib('class', ''); $aBairros = Default_Model_Cadenderbairro::getBairros(); if (is_array($aBairros)) { $elmBairroCombo->setMultiOptions($aBairros); } $aDados['endereco'] = NULL; $elmEndTexto = $this->getElement('endereco'); $elmEndTexto->setAttrib('class', 'campo-oculto'); $elmEndTexto->clearValidators(); $elmEndTexto->setRequired(FALSE); $elmEndCombo = $this->getElement('cod_endereco'); $elmEndCombo->setAttrib('class', ''); $aEnderecos = Default_Model_Cadenderrua::getRuas(); if (is_array($aEnderecos)) { $elmEndCombo->setMultiOptions($aEnderecos); } } } $this->populate($aDados); return $this; }