function Novo() { $obj = new clsTopico(false, $this->id_pessoa, $this->cod_grupo, false, false, $this->assunto); $cod_topico = $obj->cadastra(); if ($cod_topico) { $obj_grupo = new clsGrupoModerador(); $lista = $obj_grupo->lista(false, $this->cod_grupo); if ($lista) { $grupo_pessoas = ""; foreach ($lista as $moderador) { $obj = $obj = new clsPessoaFisica($moderador['ref_ref_cod_pessoa_fj']); $detalhe = $obj->detalhe(); $grupo_pessoas[] = $detalhe['email']; } } $obj_pessoa_criadora = $obj = new clsPessoaFisica($this->id_pessoa); $detalhe = $obj->detalhe(); $nome_criador = $detalhe['nome']; $obj = new clsGrupos($this->cod_grupo); $detalhe = $obj->detalhe(); $nome_grupo = $detalhe['nm_grupo']; $corpo_email = "<br><table summary=\"\" border=0 cellspacing=3 cellpadding=3><tr><td colspan='2' style=\"border-bottom: 2px solid #024492\"><span class='titulo'><br><br><b>Novo T�pico Sugerido</b></span><br>\n<br>\n"; $corpo_email .= "<tr><td><b><br>Grupo: </td><td>{$nome_grupo}</td></tr><br><tr><td><b><br>Membro: </td><td>{$nome_criador}</td></tr><br><tr><td><b><br>Assunto: </td><td>{$this->assunto}</td></tr></table>"; $cabecalho = "From: PMI(itajai.com.br)\nReply-To: itajai.com.br"; $objEmail = new clsEmail($grupo_pessoas, "[OpenTopic] - Novo T�pico", $corpo_email, "email_mailling_topic"); $objEmail->envia(); $cod_reuniao = $this->radio; if ($cod_reuniao) { $objTopicoReuniao = new clsTopicoReuniao($cod_topico, $cod_reuniao); $objTopicoReuniao->cadastra(); } if ($_SESSION['pagina']) { header("Location: {$_SESSION['pagina']}"); die; } else { header("Location: otopic_meus_grupos_det2.php?cod_grupo={$this->cod_grupo}"); die; } } return false; }
function MakeAll() { try { $cronometro = new clsCronometro(); $cronometro->marca('inicio'); $liberado = TRUE; $saida_geral = ''; if ($this->convidado) { @session_start(); $_SESSION['convidado'] = TRUE; $_SESSION['id_pessoa'] = '0'; session_write_close(); } $controlador = new clsControlador(); if ($controlador->Logado() && $liberado || $this->convidado) { $this->Formular(); $this->VerificaPermicao(); $this->CadastraAcesso(); $saida_geral = $this->MakeHeadHtml(); if ($this->renderMenu) { $saida_geral .= $this->MakeBody(); } else { foreach ($this->clsForm as $form) { $saida_geral .= $form->RenderHTML(); } } $saida_geral .= $this->MakeFootHtml(); if ($_GET['suspenso'] == 1 || $_SESSION['suspenso'] == 1 || $_SESSION["tipo_menu"] == 1) { if ($this->renderMenuSuspenso) { $saida_geral = str_replace("<!-- #&MENUSUSPENSO&# -->", $this->makeMenuSuspenso(), $saida_geral); } if ($_GET['suspenso'] == 1) { @session_start(); $_SESSION['suspenso'] = 1; @session_write_close(); } } } elseif (empty($_POST['login']) || empty($_POST['senha']) && $liberado) { $saida_geral .= $this->MakeHeadHtml(); $controlador->Logar(FALSE); $saida_geral .= $this->MakeFootHtml(); } else { $controlador->Logar(TRUE); if ($controlador->Logado() && $liberado) { $this->Formular(); $this->VerificaPermicao(); $this->CadastraAcesso(); $saida_geral = $this->MakeHeadHtml(); $saida_geral .= $this->MakeBody(); $saida_geral .= $this->MakeFootHtml(); } else { $saida_geral = $this->MakeHeadHtml(); $controlador->Logar(false); $saida_geral .= $this->MakeFootHtml(); } } echo $saida_geral; $cronometro->marca('fim'); $tempoTotal = $cronometro->getTempoTotal(); $tempoTotal += 0; $objConfig = new clsConfig(); if ($tempoTotal > $objConfig->arrayConfig["intSegundosProcessaPagina"]) { $conteudo = "<table border=\"1\" width=\"100%\">"; $conteudo .= "<tr><td><b>Data</b>:</td><td>" . date("d/m/Y H:i:s", time()) . "</td></tr>"; $conteudo .= "<tr><td><b>Script</b>:</td><td>{$_SERVER["PHP_SELF"]}</td></tr>"; $conteudo .= "<tr><td><b>Tempo de processamento</b>:</td><td>{$tempoTotal} segundos</td></tr>"; $conteudo .= "<tr><td><b>Tempo max permitido</b>:</td><td>{$objConfig->arrayConfig["intSegundosProcessaPagina"]} segundos</td></tr>"; $conteudo .= "<tr><td><b>URL get</b>:</td><td>{$_SERVER['QUERY_STRING']}</td></tr>"; $conteudo .= "<tr><td><b>Metodo</b>:</td><td>{$_SERVER["REQUEST_METHOD"]}</td></tr>"; if ($_SERVER["REQUEST_METHOD"] == "POST") { $conteudo .= "<tr><td><b>POST vars</b>:</td><td>"; foreach ($_POST as $var => $val) { $conteudo .= "{$var} => {$val}<br>"; } $conteudo .= "</td></tr>"; } elseif ($_SERVER["REQUEST_METHOD"] == "GET") { $conteudo .= "<tr><td><b>GET vars</b>:</td><td>"; foreach ($_GET as $var => $val) { $conteudo .= "{$var} => {$val}<br>"; } $conteudo .= "</td></tr>"; } if ($_SERVER['HTTP_REFERER']) { $conteudo .= "<tr><td><b>Referrer</b>:</td><td>{$_SERVER["HTTP_REFERER"]}</td></tr>"; } $conteudo .= "</table>"; $objMail = new clsEmail($objConfig->arrayConfig['ArrStrEmailsAdministradores'], "[INTRANET - PMI] Desempenho de pagina", $conteudo); $objMail->envia(); } } catch (Exception $e) { $lastError = error_get_last(); @session_start(); $_SESSION['last_error_message'] = $e->getMessage(); $_SESSION['last_php_error_message'] = $lastError['message']; $_SESSION['last_php_error_line'] = $lastError['line']; $_SESSION['last_php_error_file'] = $lastError['file']; @session_write_close(); error_log("Erro inesperado (pego em clsBase): " . $e->getMessage()); NotificationMailer::unexpectedError($e->getMessage()); die("<script>document.location.href = '/module/Error/unexpected';</script>"); } }
// nao envia e-mail para quem tem e-mail da prefeitura (soh se a pessoa selecionou pela outra opcao pra enviar por funcionarios) $email = false; } */ } } } if (isset($emails_enviados[$cod_conteudo]["{$email}"])) { $email = false; } else { $emails_enviados[$cod_conteudo]["{$email}"] = true; } if ($email) { $assunto = "[PORTAL ITAJAÍ] - " . $conteudos[$cod_conteudo]["assunto"]; $email = limpa_acentos($email); $objEmail = new clsEmail($email, $assunto, $conteudos[$cod_conteudo]["conteudo"], "email_mailling_secom", $conteudos[$cod_conteudo]["rem_email"], $conteudos[$cod_conteudo]["rem_nome"], $conteudos[$cod_conteudo]["rem_email"], "html", $removeemail); $db2->Consulta("UPDATE mailling_fila_envio SET data_envio = NOW() WHERE cod_mailling_fila_envio = {$cod_fila}"); if ($objEmail->envia()) { $enviados++; if ($verbose) { echo "-"; if (!($enviados % 50)) { echo "| ( {$enviados} )\n"; } } } } } echo "fim dos envios\n"; if ($enviados) { echo "\nCron.Mailler - {$enviados} e-mails enviados.\n";
$data_inicio = $compromisso["data_inicio"]; $cod_agenda_compromisso = $compromisso["cod_agenda_compromisso"]; $data_fim = $compromisso["data_fim"]; $titulo = $compromisso["titulo"]; $descricao = $compromisso["descricao"]; $hora_inicio = date("H:i", strtotime($data_inicio)); $hora_fim = date("H:i", strtotime($data_fim)); if ($titulo) { $disp_titulo = $titulo; } else { // se nao tiver titulo pega as X primeiras palavras da descricao ( X = $qtd_tit_copia_desc ) $disp_titulo = implode(" ", array_slice(explode(" ", $descricao), 0, $qtd_tit_copia_desc)); } $disp_titulo = "{$hora_inicio} - {$disp_titulo} - {$hora_fim}"; $conteudo .= "<b>{$disp_titulo}</b><br>\n{$descricao}<br><br>\n\n"; } $objEmail = new clsEmail($email, $assunto, $conteudo); $objEmail->envia(); $enviados++; if ($verbose) { echo "-"; if (!($enviados % 50)) { echo "| ( {$enviados} )\n"; } } } } } if ($enviados) { echo "\nCron.Agenda - {$enviados} e-mails enviados.\n"; }
/** * Executa uma consulta SQL. * * @param string $consulta Consulta SQL. * @param bool $reescrever (Opcional) SQL é reescrita para transformar * sintaxe MySQL em PostgreSQL. * @return bool|resource FALSE em caso de erro ou o identificador da consulta * em caso de sucesso. */ public function Consulta($consulta, $reescrever = true) { $cronometro = new clsCronometro(); $cronometro->marca('inicio'); if (empty($consulta)) { return FALSE; } else { $this->strStringSQL = $consulta; } $this->strStringSQLOriginal = $this->strStringSQL; $this->Conecta(); if ($this->bDepurar) { printf("<br>Depurar: Frase de Consulta = %s<br>\n", $this->strStringSQL); } // Alterações de padrão MySQL para PostgreSQL if ($reescrever) { // Altera o Limit $this->strStringSQL = eregi_replace("LIMIT[ ]{0,3}([0-9]+)[ ]{0,3},[ ]{0,3}([0-9]+)", "LIMIT \\2 OFFSET \\1", $this->strStringSQL); // Altera selects com YEAR( campo ) ou MONTH ou DAY $this->strStringSQL = eregi_replace("(YEAR|MONTH|DAY)[(][ ]{0,3}(([a-z]|_|[0-9])+)[ ]{0,3}[)]", "EXTRACT( \\1 FROM \\2 )", $this->strStringSQL); // Remove os ORDER BY das querys COUNT() // Altera os LIKE para ILIKE (ignore case) $this->strStringSQL = eregi_replace(" LIKE ", " ILIKE ", $this->strStringSQL); $this->strStringSQL = eregi_replace("([a-z_0-9.]+) +ILIKE +'([^']+)'", "to_ascii(\\1) ILIKE to_ascii('\\2')", $this->strStringSQL); $this->strStringSQL = eregi_replace("fcn_upper_nrm", "to_ascii", $this->strStringSQL); } $temp = explode("'", $this->strStringSQL); for ($i = 0; $i < count($temp); $i++) { // Ignora o que está entre aspas if (!($i % 2)) { // Fora das aspas, verifica se há algo errado no SQL if (eregi("(--|#|/\\*)", $temp[$i])) { $erroMsg = 'Proteção contra injection: ' . date("Y-m-d H:i:s"); echo "<!-- {$this->strStringSQL} -->"; $this->Interrompe($erroMsg); } } } // Executa a Consulta if ($this->executandoEcho) { echo $this->strStringSQL . "\n<br>"; } $this->bConsulta_ID = pg_query($this->bLink_ID, $this->strStringSQL); $this->strErro = pg_result_error($this->bConsulta_ID); $this->bErro_no = $this->strErro == '' ? FALSE : TRUE; $this->iLinha = 0; if (!$this->bConsulta_ID) { if ($this->getThrowException()) { $message = $this->bErro_no ? "({$this->bErro_no}) " . $this->strErro : pg_last_error($this->bLink_ID); $message .= PHP_EOL . $this->strStringSQL; throw new Exception($message); } else { $erroMsg = "SQL invalido: {$this->strStringSQL}<br>\n"; die($erroMsg); if ($this->transactionBlock) { // Nada. } $this->Interrompe($erroMsg); return FALSE; } } $cronometro->marca('fim'); $tempoTotal = $cronometro->getTempoTotal(); $objConfig = new clsConfig(); if ($tempoTotal > $objConfig->arrayConfig['intSegundosQuerySQL']) { $conteudo = "<table border=\"1\" width=\"100%\">"; $conteudo .= "<tr><td><b>Data</b>:</td><td>" . date("d/m/Y H:i:s", time()) . "</td></tr>"; $conteudo .= "<tr><td><b>Script</b>:</td><td>{$_SERVER["PHP_SELF"]}</td></tr>"; $conteudo .= "<tr><td><b>Tempo da query</b>:</td><td>{$tempoTotal} segundos</td></tr>"; $conteudo .= "<tr><td><b>Tempo max permitido</b>:</td><td>{$objConfig->arrayConfig["intSegundosQuerySQL"]} segundos</td></tr>"; $conteudo .= "<tr><td><b>SQL Query Original</b>:</td><td>{$this->strStringSQLOriginal}</td></tr>"; $conteudo .= "<tr><td><b>SQL Query Executado</b>:</td><td>{$this->strStringSQL}</td></tr>"; $conteudo .= "<tr><td><b>URL get</b>:</td><td>{$_SERVER['QUERY_STRING']}</td></tr>"; $conteudo .= "<tr><td><b>Metodo</b>:</td><td>{$_SERVER["REQUEST_METHOD"]}</td></tr>"; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $conteudo .= "<tr><td><b>POST vars</b>:</td><td>"; foreach ($_POST as $var => $val) { $conteudo .= "{$var} => {$val}<br>"; } $conteudo .= "</td></tr>"; } elseif ($_SERVER['REQUEST_METHOD'] == 'GET') { $conteudo .= "<tr><td><b>GET vars</b>:</td><td>"; foreach ($_GET as $var => $val) { $conteudo .= "{$var} => {$val}<br>"; } $conteudo .= "</td></tr>"; } if ($_SERVER['HTTP_REFERER']) { $conteudo .= "<tr><td><b>Referrer</b>:</td><td>{$_SERVER["HTTP_REFERER"]}</td></tr>"; } $conteudo .= "</table>"; $objEmail = new clsEmail($objConfig->arrayConfig['ArrStrEmailsAdministradores'], "[INTRANET - PMI] Desempenho de query", $conteudo); $objEmail->envia(); } return $this->bConsulta_ID; }
function Editar() { $obj = new clsTopicoReuniao(); $obj->exclui_todos($this->cod_reuniao); $data = $this->data; $data2 = $this->data_final; $this->data = explode("/", $this->data); $data_inicial = "{$this->data[2]}/{$this->data[1]}/{$this->data[0]} {$this->hora_inicial}"; $this->data_final = explode("/", $this->data_final); $data_final = "{$this->data_final[2]}/{$this->data_final[1]}/{$this->data_final[0]} {$this->hora_final}"; $this->email_enviado = $this->email_enviado ? 1 : ""; $obj = new clsReuniao($this->cod_reuniao, $this->id_pessoa, $this->cod_grupo, $this->descricao, $this->email_enviado, $data_inicial, $data_final); $obj->edita(); $lista_topicos = ""; foreach ($_POST as $id => $campo) { if (substr($id, 0, 4) == "top_") { $cod_topico = substr($id, 4); $lista_topicos[] = $cod_topico; $obj = new clsTopicoReuniao($cod_topico, $this->cod_reuniao); $obj->cadastra(); } } if ($this->email_enviado) { // Busca Email dos Moderadores e Membros do Grupo $obj = new clsGrupoPessoa(); $lista = $obj->lista(false, $this->cod_grupo); if ($lista) { $grupo_pessoas = ""; foreach ($lista as $pessoa) { $obj = new clsPessoaFisica($pessoa['ref_idpes']); $detalhe = $obj->detalhe(); if ($detalhe['email']) { $grupo_pessoas[] = $detalhe['email']; } } } $obj = new clsGrupoModerador(); $lista = $obj->lista(false, $this->cod_grupo); if ($lista) { $grupo_pessoas = ""; foreach ($lista as $pessoa) { $obj = new clsPessoaFisica($pessoa['ref_ref_cod_pessoa_fj']); $detalhe = $obj->detalhe(); if ($detalhe['email']) { $grupo_pessoas[] = $detalhe['email']; } } } $obj = new clsReuniao($this->cod_reuniao); $detalhe_reuniao = $obj->detalhe(); $corpo_email .= "<br><table summary=\"\" border=0 cellspacing=3 cellpadding=3><tr><td colspan='2' style=\"border-bottom: 2px solid #024492\"><span class='titulo'><b>Descrição da Reunião</b>.</span><br>\n<br>\n"; $corpo_email .= "<tr><td><b>{$detalhe_reuniao['descricao']}</b></td><td width=250><br><br></td></tr>"; if ($data == $data2) { $corpo_email .= "<tr><td><b><br>Data: {$data} das {$this->hora_inicial} as {$this->hora_final}</b></td><td width=250><br></td></tr>"; } else { $corpo_email .= "<tr><td><b><br>Data de Inicio: {$data} {$this->hora_inicial} - Data de Fim: {$data2} {$this->hora_final}</b></td><td width=250><br></td></tr>"; } $corpo_email .= "<tr><td><b><span class='titulo'><br>Tópicos</span></b></td><td width=250></td></tr>"; foreach ($lista_topicos as $topico) { $obj = new clsTopico($topico); $detalhe = $obj->detalhe(); $corpo_email .= "<tr><td><br><br>{$detalhe['assunto']}</td></tr></table>"; } $cabecalho = "From: PMI(itajai.com.br)\nReply-To: itajai.com.br"; $objEmail = new clsEmail($grupo_pessoas, "[OpenTopic] - Nova Reunião", $corpo_email, "email_mailling_topic"); $objEmail->envia(); } header("Location: otopic_meus_grupos_det2.php?cod_grupo={$this->cod_grupo}"); return false; }
function Editar() { global $HTTP_POST_FILES; @session_start(); $this->id_pessoa = @$_SESSION['id_pessoa']; session_write_close(); $db = new clsBanco(); $db2 = new clsBanco(); if (!empty($HTTP_POST_FILES['arquivo']['name'])) { $data = date("d_m_Y_H_i", time()); $arquivoSalvar = "arquivos/editais/" . $data . strtolower($HTTP_POST_FILES['arquivo']['name']); $extensao = substr($arquivoSalvar, -3); $this->arquivo = $HTTP_POST_FILES['arquivo']['tmp_name']; if (file_exists($this->arquivo)) { // salva o arquivo temporario move_uploaded_file($HTTP_POST_FILES['arquivo']['tmp_name'], $arquivoSalvar); // pega o total de editais ja cadastrados para esta licitacao $versao = $db->CampoUnico("SELECT count(0) FROM compras_editais_editais WHERE ref_cod_compras_licitacoes = '{$this->ref_licitacao}'"); // verifica se a licitacao esta visivel $visivel = $db->CampoUnico("SELECT visivel FROM compras_editais_editais WHERE ref_cod_compras_licitacoes = '{$this->ref_licitacao}' AND versao = {$versao}"); // versao = total + 1; para gravar no novo registro $versao++; // insere o novo edital $db->Consulta("INSERT INTO compras_editais_editais( ref_cod_compras_licitacoes, versao, data_hora, arquivo, ref_ref_cod_pessoa_fj, motivo_alteracao, visivel ) VALUES( '{$this->ref_licitacao}', '{$versao}', NOW(), '{$arquivoSalvar}', '{$this->id_pessoa}', '{$this->motivo}', {$visivel} )"); $insertId = $db->InsertId("compras_editais_editais_cod_compras_editais_editais_seq"); // seleciona todas as empresas que baixaram o edital $db->Consulta("SELECT ref_cod_compras_editais_empresa FROM compras_editais_editais_empresas WHERE ref_cod_compras_editais_editais IN ( SELECT cod_compras_editais_editais FROM compras_editais_editais WHERE ref_cod_compras_licitacoes = '{$this->ref_licitacao}' )"); $lista = array(); while ($db->ProximoRegistro()) { list($cod_empresa) = $db->Tupla(); $email = $db2->CampoUnico("SELECT email FROM compras_editais_empresa WHERE cod_compras_editais_empresa = '{$cod_empresa}'"); $lista[$cod_empresa] = $email; } // se existirem empresas que ja baixaram e o edital estiver visivel if (count($email) && $visivel) { $db->Consulta("SELECT numero, nm_modalidade FROM compras_licitacoes, compras_modalidade WHERE cod_compras_licitacoes = '{$this->ref_licitacao}' AND cod_compras_modalidade = ref_cod_compras_modalidade"); $db->ProximoRegistro(); list($licitacao, $nm_modalidade) = $db->Tupla(); // gera conteudo $conteudo = "Informamos por meio desta, que o edital da licitação da modalidade {$nm_modalidade} {$licitacao} foi alterado e possui uma nova versão.<br>\n<br>\n"; $conteudo .= "Para obter a nova versão <a href=\"http://www.itajai.sc.gov.br/licitacoes_editais_det.php?cod_edital={$insertId}\" target=\"_blank\">clique aqui</a> ou acesse: http://www.itajai.sc.gov.br/licitacoes.php?cod_edital={$insertId}<br>\n<br>\n"; $conteudo .= "O motivo da alteração é:<br>\n{$this->motivo}"; // envia o e-mail para as empresas separadamente foreach ($lista as $cod_empresa => $email) { $objEmail = new clsEmail($email, "[PMI] Alteração de Edital", $conteudo); $objEmail->envia(); } } header("location: licitacoes_edital_relatorio.php?edital={$insertId}"); die; } } return false; }