/** * (non-PHPdoc) * @see Zend_Form::init() */ public function init() { $oBaseUrlHelper = new Zend_View_Helper_BaseUrl(); $this->setName('form-exportacao-arquivo'); $this->setMethod(Zend_form::METHOD_POST); $this->setAction($oBaseUrlHelper->baseUrl('/contribuinte/exportacao-arquivo/rps-consultar/')); $aMeses = DBSeller_Helper_Date_Date::getMesesArray(); $aAnos = array(date('Y') - 0 => date('Y') - 0, date('Y') - 1 => date('Y') - 1, date('Y') - 2 => date('Y') - 2, date('Y') - 3 => date('Y') - 3, date('Y') - 4 => date('Y') - 4); $oElm = $this->createElement('select', 'mes_competencia', array('divspan' => '4', 'multiOptions' => $aMeses)); $oElm->setLabel('Mês:'); $oElm->setAttrib('class', 'span2'); $oElm->setValue(date('m')); $this->addElement($oElm); $oElm = $this->createElement('select', 'ano_competencia', array('divspan' => '6', 'multiOptions' => $aAnos)); $oElm->setLabel('Ano:'); $oElm->setAttrib('class', 'span2'); $this->addElement($oElm); $oElm = $this->createElement('text', 'numero_rps', array('divspan' => '10')); $oElm->setLabel('Número da NFS-e:'); $oElm->setAttrib('class', 'span2'); $this->addElement($oElm); $this->addElement('button', 'btn_consultar', array('divspan' => 4, 'label' => 'Consultar', 'class' => 'input-medium btn', 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_PRIMARY)); $this->addElement('button', 'btn_exportar', array('divspan' => 6, 'label' => 'Exportar', 'class' => 'input-medium btn', 'disabled' => TRUE, 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_SUCCESS)); $this->addDisplayGroup(array('mes_competencia', 'ano_competencia', 'numero_rps', 'btn_consultar', 'btn_exportar'), 'dados_consulta', array('legend' => 'Parâmetros')); return $this; }
/** * Método construtor * * @return $this|void */ public function init() { $this->setMethod(Zend_Form::METHOD_GET); $this->setName('form_competencia'); $aMeses = DBSeller_Helper_Date_Date::getMesesArray(); $oElm = $this->createElement('select', 'mes_competencia', array('divspan' => '3', 'multiOptions' => $aMeses)); $oElm->setLabel('Mês:'); $oElm->setAttrib('class', 'span2'); $oElm->setValue(date('m')); $this->addElement($oElm); $aAnos = array(date('Y') - 0 => date('Y') - 0, date('Y') - 1 => date('Y') - 1, date('Y') - 2 => date('Y') - 2, date('Y') - 3 => date('Y') - 3, date('Y') - 4 => date('Y') - 4); $oElm = $this->createElement('select', 'ano_competencia', array('divspan' => '3', 'multiOptions' => $aAnos)); $oElm->setLabel('Ano:'); $oElm->setAttrib('class', 'span2'); $this->addElement($oElm); // Ações $this->addElement('submit', 'btn_competencia', array('divspan' => 3, 'label' => 'Digitar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS)); $this->addDisplayGroup(array('mes_competencia', 'ano_competencia', 'btn_competencia'), 'group_competencia', array('legend' => 'Escolha a competência')); return $this; }
/** * Método construtor * * (non-PHPdoc) * @see Zend_Form::init() */ public function init() { $oBaseUrlHelper = new Zend_View_Helper_BaseUrl(); $this->setName('form-guias-geracao-utomatica'); $this->setMethod(Zend_form::METHOD_POST); $this->setAction($oBaseUrlHelper->baseUrl('/fiscal/guias/consultar/')); $aMeses = DBSeller_Helper_Date_Date::getMesesArray(); $oElm = $this->createElement('select', 'mes_competencia', array('divspan' => '3', 'multiOptions' => $aMeses)); $oElm->setLabel('Mês:'); $oElm->setAttrib('class', 'span2'); $oElm->setValue(date('m')); $this->addElement($oElm); $aAnos = array(date('Y') - 0 => date('Y') - 0, date('Y') - 1 => date('Y') - 1, date('Y') - 2 => date('Y') - 2, date('Y') - 3 => date('Y') - 3, date('Y') - 4 => date('Y') - 4); $oElm = $this->createElement('select', 'ano_competencia', array('divspan' => '3', 'multiOptions' => $aAnos)); $oElm->setLabel('Ano:'); $oElm->setAttrib('class', 'span2'); $this->addElement($oElm); $this->addElement('button', 'btn_consultar', array('divspan' => 3, 'label' => 'Consultar', 'class' => 'span2', 'buttonType' => Twitter_Bootstrap_Form_Element_Button::BUTTON_PRIMARY)); $this->addElement('button', 'btn_gerar', array('divspan' => 2, 'label' => 'Gerar', 'class' => 'span2', 'disabled' => TRUE, 'buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS)); $this->addDisplayGroup(array('mes_competencia', 'ano_competencia', 'btn_consultar', 'btn_gerar'), 'group_guias_geracao', array('legend' => 'Consultar por Data')); }
/** * Geração do relatório de valores por atividade / serviço */ public function valoresAtividadeServicoGerarAction() { parent::noLayout(); try { $aValidacaoFormulario = self::validarFormulario(Fiscal_Form_Relatorio1::TIPO5); if (is_array($aValidacaoFormulario)) { exit($this->getHelper('json')->sendJson($aValidacaoFormulario)); } $sNomeArquivo = 'evolucao_arrecadacao_ ' . date('YmdHis') . '.pdf'; $sCaminhoArquivo = APPLICATION_PATH . "/../public/tmp/{$sNomeArquivo}"; $aParametros = $this->getRequest()->getParams(); $aFiltros = array('atividade_servico' => 'Atividade / Serviço'); $sOrdenacao = 'Crescente'; if (strtoupper($aParametros['ordem']) == 'DESC') { $sOrdenacao = 'Decrescente'; } $sFiltro = "Competência {$aParametros['data_competencia_inicial']} até {$aParametros['data_competencia_final']}"; $sOrdem = $aFiltros[$aParametros['ordenacao']] . " ({$sOrdenacao})"; $oFpdf = new Fiscal_Model_Relatoriopdfmodelo1('L'); $oFpdf->setLinhaFiltro('Relatório Evolução de Arrecadação por Atividade/Serviço'); $oFpdf->setLinhaFiltro(''); $oFpdf->setLinhaFiltro("FILTRO : {$sFiltro}"); $oFpdf->setLinhaFiltro("ORDEM : {$sOrdem}"); $oFpdf->Open($sCaminhoArquivo); $oFpdf->carregadados(); $aDataCompetenciaInicial = explode('/', $aParametros['data_competencia_inicial']); $aDataCompetenciaFinal = explode('/', $aParametros['data_competencia_final']); $sSql = "SELECT SUM(servico_valor_iss) AS valor_imposto,\n servico_codigo_cnae,\n documento_competencia_ano,\n documento_competencia_mes\n FROM view_nota_mais_dms\n WHERE documento_emite_guia = TRUE\n AND (dms_operacao = 's' OR dms_operacao IS NULL)\n AND documento_situacao NOT IN ('c', 'e')\n AND documento_status_cancelamento = FALSE\n AND (documento_competencia_ano || LPAD(CAST(documento_competencia_mes AS VARCHAR), 2, '0'))\n BETWEEN ? AND ?\n GROUP BY servico_codigo_cnae,\n documento_competencia_ano,\n documento_competencia_mes "; $aDadosRelatorio = array(); $oEntityManager = Zend_Registry::get('em'); $oConexao = $oEntityManager->getConnection(); $oStatement = $oConexao->prepare($sSql); $oStatement->execute(array("{$aDataCompetenciaInicial[1]}{$aDataCompetenciaInicial[0]}", "{$aDataCompetenciaFinal[1]}{$aDataCompetenciaFinal[0]}")); if ($oStatement->rowCount() < 1) { throw new Exception('Nenhum Registro encontrado.'); } while ($aNota = $oStatement->fetch()) { $oServicos = Contribuinte_Model_Servico::getServicoPorCnae($aNota['servico_codigo_cnae']); if (!$oServicos) { throw new Exception("Erro: {$aNota['servico_codigo_cnae']}"); } $sIndice = md5($aNota['servico_codigo_cnae'] . $oServicos->attr('atividade')); $aDadosRelatorio[$sIndice]['estrutural'] = $oServicos->attr('estrutural'); $aDadosRelatorio[$sIndice]['descricao'] = DBSeller_Helper_String_Format::wordsCap($oServicos->attr('atividade')); if (!isset($aDadosRelatorio[$sIndice]['totalAnoMes'][$aNota['documento_competencia_ano']][$aNota['documento_competencia_mes']])) { $aDadosRelatorio[$sIndice]['totalAnoMes'][$aNota['documento_competencia_ano']][$aNota['documento_competencia_mes']] = 0; } $aDadosRelatorio[$sIndice]['totalAnoMes'][$aNota['documento_competencia_ano']][$aNota['documento_competencia_mes']] += $aNota['valor_imposto']; if (!isset($aDadosRelatorio[$sIndice]['totalAcumulado'])) { $aDadosRelatorio[$sIndice]['totalAcumulado'] = 0; } $aDadosRelatorio[$sIndice]['totalAcumulado'] += $aNota['valor_imposto']; } switch ($aParametros['ordenacao']) { case 'atividade_servico': $sOrdenacao = 'estrutural'; break; case 'valor_total': $sOrdenacao = 'totalAcumulado'; break; } $iComprimentoPagina = $oFpdf->w - $oFpdf->rMargin - $oFpdf->lMargin; $aDadosRelatorio = DBSeller_Helper_Array_Abstract::ordenarPorIndice($aDadosRelatorio, $sOrdenacao, $aParametros['ordem'], TRUE); // Percorre os registros do relatório foreach ($aDadosRelatorio as $aRegistro) { $sAtividadeServico = "Atividade / Serviço: {$aRegistro['estrutural']} - {$aRegistro['descricao']}"; $oFpdf->SetFont('Arial', 'B', 8); $oFpdf->Cell($iComprimentoPagina, 5, utf8_decode($sAtividadeServico), 0, 1, 'J'); $oFpdf->SetFont('Arial', '', 8); $aMeses = DBSeller_Helper_Date_Date::getMesesArray(); $iTamanhoMes = $iComprimentoPagina / count($aMeses); // Ordena a lista pelo índice ksort($aRegistro['totalAnoMes']); // Percorre a lista pelo total por ano/mes foreach ($aRegistro['totalAnoMes'] as $iAno => $aAnos) { // Percorre os meses para gerar o cabeçalho de meses foreach ($aMeses as $iMes => $sDescricaoMes) { $oFpdf->SetFont('Arial', 'B', 8); $oFpdf->Cell($iTamanhoMes, 5, utf8_decode(substr($aMeses[$iMes], 0, 3)) . '/' . $iAno . '(R$)', 1, 0, 'C'); } $oFpdf->ln(); // Percorre os meses para gerar os dados por mês foreach ($aMeses as $iMes => $sMes) { $oFpdf->SetFont('Arial', '', 8); if (!empty($aAnos[$iMes])) { $oFpdf->Cell($iTamanhoMes, 5, DBSeller_Helper_Number_Format::toMoney($aAnos[$iMes], 2), 1, 0, 'R'); } else { $oFpdf->Cell($iTamanhoMes, 5, 'S / M', 1, 0, 'C'); } } $oFpdf->proximaPagina(1); if (!$oFpdf->lQuebrouPagina) { $oFpdf->Ln(6); } } if (!$oFpdf->lQuebrouPagina) { $oFpdf->Ln(2); } } $oFpdf->Output(); $aRetornoJson['status'] = TRUE; $aRetornoJson['url'] = $this->view->baseUrl('tmp/' . $sNomeArquivo); $aRetornoJson['success'] = $this->translate->_('Relatório gerado com sucesso.'); } catch (Exception $oErro) { $aRetornoJson['status'] = FALSE; $aRetornoJson['error'][] = $this->translate->_($oErro->getMessage()); } echo $this->getHelper('json')->sendJson($aRetornoJson); }