public function imprimirRelatorioPropostaAction() { $this->intTamPag = 30; //DEFINE PARAMETROS DE ORDENACAO / QTDE. REG POR PAG. / PAGINACAO if ($this->_request->getParam("qtde")) { $this->intTamPag = $this->_request->getParam("qtde"); } $order = array(); //==== parametro de ordenacao ======// if ($this->_request->getParam("ordem")) { $ordem = $this->_request->getParam("ordem"); if ($ordem == "ASC") { $novaOrdem = "DESC"; } else { $novaOrdem = "ASC"; } } else { $ordem = "ASC"; $novaOrdem = "ASC"; } //==== campo de ordenacao ======// if ($this->_request->getParam("campo")) { $campo = $this->_request->getParam("campo"); if ($campo == 4) { $order = array("4 ASC", "6 ASC", "8 ASC", "9 ASC"); } else { $order = array($campo . " " . $ordem); } $ordenacao = "&campo=" . $campo . "&ordem=" . $ordem; } else { $campo = null; $order = array(1); //idPreProjeto $ordenacao = null; } $pag = 1; $get = Zend_Registry::get('post'); if (isset($get->pag)) { $pag = $get->pag; } $inicio = $pag > 1 ? ($pag - 1) * $this->intTamPag : 0; $where = array(); $having = array(); if (isset($get->proposta) && !empty($get->proposta)) { $where['p.idPreProjeto = ?'] = $get->proposta; $this->view->proposta = $get->proposta; } if (isset($get->nomeProposta) && !empty($get->nomeProposta)) { $where['p.nomeProjeto like (?)'] = "%" . $get->nomeProposta . "%"; $this->view->nomeProposta = $get->nomeProposta; } if (isset($get->nomeProponente) && !empty($get->nomeProponente)) { $where['nm.Descricao like (?)'] = "%" . $get->nomeProponente . "%"; $this->view->nomeProponente = $get->nomeProponente; } if (isset($get->cpfcnpj) && !empty($get->cpfcnpj)) { $where['ag.CNPJCPF = ?'] = Mascara::delMaskCPFCNPJ($get->cpfcnpj); $this->view->cpfcnpj = $get->cpfcnpj; } if (isset($get->area) && !empty($get->area)) { $where['pdp.Area = ?'] = $get->area; $this->view->area = $get->area; } if (isset($get->segmento) && !empty($get->segmento)) { $where['pdp.Segmento = ?'] = $get->segmento; $this->view->segmento = $get->segmento; } if (isset($get->uf) && !empty($get->uf)) { $where['ab.idUF = ?'] = $get->uf; $this->view->uf = $get->uf; } if (isset($get->municipio) && !empty($get->municipio)) { $where['ab.idMunicipioIBGE = ?'] = $get->municipio; $this->view->municipio = $get->municipio; } if ($get->valor != "" && $get->valor2 != "") { $having["SUM(Quantidade*Ocorrencia*ValorUnitario) >= ?"] = str_replace(",", ".", str_replace(".", "", $get->valor)); $having["SUM(Quantidade*Ocorrencia*ValorUnitario) <= ?"] = str_replace(",", ".", str_replace(".", "", $get->valor2)); $this->view->valor = $get->valor; $this->view->valor2 = $get->valor2; } elseif ($get->valor != "") { $having["SUM(Quantidade*Ocorrencia*ValorUnitario) = ?"] = str_replace(",", ".", str_replace(".", "", $get->valor)); $this->view->valor = $get->valor; } elseif ($get->valor2 != "") { $having["SUM(Quantidade*Ocorrencia*ValorUnitario) = ?"] = str_replace(",", ".", str_replace(".", "", $get->valor2)); $this->view->valor2 = $get->valor2; } if (isset($get->estado) && !empty($get->estado)) { switch ($get->estado) { case 'construcao': $where['p.stEstado = ?'] = 1; $where['m.Movimentacao = ?'] = 95; $where['m.stEstado = ?'] = 0; $where['x.ConformidadeOK IS NULL'] = ''; $where['x.stEstado IS NULL'] = ''; break; case 'diligenciada': $where['p.stEstado = ?'] = 1; $where['m.Movimentacao = ?'] = 95; $where['m.stEstado = ?'] = 0; $where['x.ConformidadeOK = ?'] = 0; $where['x.stEstado = ?'] = 0; $having["(SELECT TOP 1 idTecnico FROM (\n SELECT idTecnico, convert(varchar(30),DtAvaliacao, 120 ) as DtAvaliacao\n FROM SAC.dbo.tbAvaliacaoProposta tba\n INNER JOIN tabelas.dbo.Usuarios u on (tba.idTecnico = u.usu_codigo)\n WHERE ConformidadeOK < 9 AND tba.idProjeto = p.idPreProjeto\n UNION ALL\n SELECT 0,convert(varchar(30),DtMovimentacao, 120 ) as DtMovimentacao\n FROM SAC.dbo.tbMovimentacao\n WHERE Movimentacao=96 AND idProjeto = p.idPreProjeto\n ) as slctPrincipal\n ORDER BY convert(varchar(30),DtAvaliacao, 120 ) DESC) != ?"] = 0; break; case 'respondida': $where['p.stEstado = ?'] = 1; $where['m.Movimentacao = ?'] = 96; $where['m.stEstado = ?'] = 0; $where['x.ConformidadeOK = ?'] = 0; $where['x.stEstado = ?'] = 0; $having["(SELECT TOP 1 idTecnico FROM (\n SELECT idTecnico, convert(varchar(30),DtAvaliacao, 120 ) as DtAvaliacao\n FROM SAC.dbo.tbAvaliacaoProposta tba\n INNER JOIN tabelas.dbo.Usuarios u on (tba.idTecnico = u.usu_codigo)\n WHERE ConformidadeOK < 9 AND tba.idProjeto = p.idPreProjeto\n UNION ALL\n SELECT 0,convert(varchar(30),DtMovimentacao, 120 ) as DtMovimentacao\n FROM SAC.dbo.tbMovimentacao\n WHERE Movimentacao=96 AND idProjeto = p.idPreProjeto\n ) as slctPrincipal\n ORDER BY convert(varchar(30),DtAvaliacao, 120 ) DESC) = ?"] = 0; break; case 'enviada': $where['p.stEstado = ?'] = 1; $where['m.Movimentacao == ?'] = 96; $where['m.stEstado = ?'] = 0; $where['x.ConformidadeOK = ?'] = 9; $where['x.stEstado = ?'] = 0; break; case 'arquivada': $where['p.stEstado = ?'] = 0; //$where['p.DtArquivamento is not null'] = ''; break; } $this->view->estado = $get->estado; } $Proposta = new Proposta(); $total = $Proposta->relatorioPropostas($where, $having, $order, null, null, true); $fim = $inicio + $this->intTamPag; $totalPag = (int) ($total % $this->intTamPag == 0 ? $total / $this->intTamPag : $total / $this->intTamPag + 1); $tamanho = $fim > $total ? $total - $inicio : $this->intTamPag; $busca = $Proposta->relatorioPropostas($where, $having, $order, $tamanho, $inicio); if (isset($get->xls) && $get->xls) { $html = ''; $html .= '<table style="border: 1px">'; $html .= '<tr><td style="border: 1px dotted black; background-color: #EAF1DD; font-size: 16; font-weight: bold;" colspan="7">Relatório de Propostas - Resultado da pesquisa</td></tr>'; $html .= '<tr><td style="border: 1px dotted black; background-color: #EAF1DD; font-size: 10" colspan="7">Data do Arquivo: ' . Data::mostraData() . '</td></tr>'; $html .= '<tr><td colspan="7"></td></tr>'; $html .= '<tr>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;"> </th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">Nº Proposta</th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">Nome da Proposta</th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">CPF / CNPJ</th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">Proponente</th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">Valor</th>'; $html .= '<th style="border: 1px dotted black; background-color: #9BBB59;">Estado</th>'; $html .= '</tr>'; $i = 1; foreach ($busca as $v) { $cpfcnpj = strlen($v->CNPJCPF) == 11 ? Mascara::addMaskCPF($v->CNPJCPF) : Mascara::addMaskCNPJ($v->CNPJCPF); if ($v->stEstado == 0) { $estado = 'Proposta arquivada'; } else { if ($v->stEstado == '1' && $v->Movimentacao == '95' && $v->estadoMovimentacao == '0' && $v->ConformidadeOK == '0' && $v->estadoAvaliacao == '0') { $estado = 'Proposta diligenciada'; } else { if ($v->stEstado == '1' && $v->Movimentacao == '96' && $v->estadoMovimentacao == '0' && $v->ConformidadeOK == '0' && $v->estadoAvaliacao == '0') { $estado = 'Diligência respondida'; } else { if ($v->stEstado == '1' && $v->Movimentacao == '95' && $v->estadoMovimentacao == '0' && is_null($v->ConformidadeOK) && is_null($v->estadoAvaliacao)) { $estado = 'Proposta em construção'; } else { if ($v->stEstado == '1' && $v->Movimentacao == '96' && $v->estadoMovimentacao == '0' && $v->ConformidadeOK == '9' && $v->estadoAvaliacao == '0') { $estado = 'Enviada ao MinC p/ avaliação'; } else { $estado = 'Enviada ao MinC p/ avaliação'; } } } } } $html .= '<tr>'; $html .= '<td style="border: 1px dotted black;">' . $i . '</td>'; $html .= '<td style="border: 1px dotted black;">' . $v->idProjeto . '</td>'; $html .= '<td style="border: 1px dotted black;">' . $v->NomeProposta . '</td>'; $html .= '<td style="border: 1px dotted black;">' . $cpfcnpj . '</td>'; $html .= '<td style="border: 1px dotted black;">' . $v->Proponente . '</td>'; $html .= '<td style="border: 1px dotted black;">' . @number_format($v->valor, 2, ",", ".") . '</td>'; $html .= '<td style="border: 1px dotted black;">' . $estado . '</td>'; $html .= '</tr>'; $i++; } $html .= '</table>'; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: inline; filename=Resultado_Relatorio_Propostas.xls;"); echo $html; die; } else { $this->view->qtdRegistros = $total; $this->view->dados = $busca; $this->view->campo = $campo; $this->_helper->layout->disableLayout(); // Desabilita o Zend Layout } }