You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

292 lines
11 KiB

<?php
/*
* Parametrização do serviço de Workflow
* Este serviço ira enviar diariamente um resumo da operação de callcenter bem como
* um resumo mensal para emails autorizados
* Autor: Amarildo Pereira
* Data: 05/02/2013
*/
$msgErro = "";
$template = "workflow/workflow.htm";
$email_insert = '';
$tipoEnvio = IsPostBack() ? $_POST["wkf_tipo_envio"] : 0;
$upload = true;
/*
* Se não existir parametros inclui parametros default
*/
WkfDefault($dbcon);
if (isset($_GET["wkf_email_id"])) {
$wkf_email_id = $_GET["wkf_email_id"];
pg_query($dbcon, 'begin');
$query = "delete from pbx_workflow_emails_dacs where wkf_email_id = '$wkf_email_id'";
$result = pg_query($dbcon, $query);
$query = "delete from pbx_workflow_emails where wkf_email_id = '$wkf_email_id'";
if ($result)
$result = pg_query($dbcon, $query);
if ($result) {
pg_query($dbcon, 'commit');
$jsStartup[] = "alert('Email removido com sucesso!);";
} else {
pg_query($dbcon, 'rollback');
$msg = "O email não pode ser removido, tente novamente mais tarde!";
$msgErro = $msg;
$jsStartup[] = "alert('$msg');";
}
}
if (isset($_POST["bt_email_insert"])) {
$wkf_nome = 'null';
$find = array(';', '#', '|');
$temNome = 0;
$email = $_POST["email_insert"];
foreach ($find as $ch) {
if (stripos($_POST["email_insert"], $ch) !== false) {
$temNome = 1;
break;
}
}
if ($temNome) {
$arEmail = split('[;,#|]', $_POST["email_insert"]);
$wkf_nome = sprintf("'%s'", $arEmail[1]);
$email = $arEmail[0];
}
$tipo = $_POST["wkf_tipo_envio"];
$wkf_status = isset($_POST["wkf_status"]) ? $_POST["wkf_status"] : 0;
$msg = "";
if (!is_email($email)) {
$msg = "$email não é um email válido!";
$msgErro = $msg;
}
if ($msg) {
$jsStartup[] = "alert('$msg');";
$email_insert = $_POST["email_insert"];
} else {
$query = "select count(*) from pbx_workflow_emails where wkf_email = '$email'";
$result = pg_query($dbcon, $query);
$row = pg_fetch_row($result);
$altera = $row[0];
if ($altera)
$query = "update pbx_workflow_emails set wkf_tipo_envio = '$tipo', wkf_status = '$wkf_status', wkf_nome = $wkf_nome where wkf_email = '$email'";
else
$query = "insert into pbx_workflow_emails(wkf_email, wkf_tipo_envio, wkf_status, wkf_nome) values('$email', '$tipo', '$wkf_status', $wkf_nome)";
$result = pg_query($dbcon, $query);
if ($result) {
$jsStartup[] = !$altera ? "alert('Email adicionado com sucesso!');" : "alert('Email alterado com sucesso!');";
} else {
$email_insert = $_POST["email_insert"];
$msg = 'O email não pode ser adicionado, tente novamente mais tarde!';
$msgErro = $msg;
$jsStartup[] = "alert('$msg');";
}
}
}
if (isset($_POST["bt_gravar"])) {
$hora = $_POST["wkf_hora_envio"];
$minuto = $_POST["wkf_minuto_envio"];
$wkf_smtp = $_POST["wkf_smtp"];
$wkf_smtp_user = $_POST["wkf_smtp_user"];
if(md5($_SESSION['SSKeepPassword']) == $_POST["wkf_smtp_senha"]){
$senhawkf = $_SESSION['SSKeepPassword'];
} else {
$senhawkf = $_POST["wkf_smtp_senha"];
}
$wkf_smtp_senha = $senhawkf;
$wkf_smtp_port = $_POST["wkf_smtp_port"];
$wkf_status_servico = isset($_POST["wkf_status_servico"]) ? $_POST["wkf_status_servico"] : 0;
$validaLogo = isset($_FILES['wkf_logo_parceiro']['name']) && $_FILES['wkf_logo_parceiro']['name'];
if (!$validaLogo) {
$wkf_logo_parceiro = $_POST['wkf_logo'];
}
$msg = "";
if (!is_numeric($hora) || (($hora < 0) || ($hora > 23))) {
$msg = "Hora inválida!";
} else if (!is_numeric($minuto) || (($minuto < 0) || ($minuto > 59))) {
$msg = "Minuto inválido!";
}
/*
* Foi enviado uma nova imagem para logo.
*/
if (empty($msg) && $validaLogo) {
$msg = ValidaLogoParceiro();
}
/*
* A imagem envia da para logo é válida.
*/
if (empty($msg) && $validaLogo) {
$nomeArq = LimpaString(RemoveAcentos($_FILES['wkf_logo_parceiro']['name']));
$wkf_logo_parceiro = MoveLogoWkfParceiro() ? strtolower($nomeArq) : $_POST['wkf_logo'];
}
if ($msg) {
$msgErro = $msg;
$jsStartup[] = "alert('$msg');";
} else { //pbx_workflow_parametros(wkf_id int not null primary key, wkf_hora_envio int not null default 6, wkf_minuto_envio
$query = "update pbx_workflow_parametros
set wkf_hora_envio = $hora,
wkf_minuto_envio = $minuto,
wkf_smtp = '$wkf_smtp',
wkf_smtp_user = '$wkf_smtp_user',
wkf_smtp_senha = '$wkf_smtp_senha',
wkf_smtp_port = '$wkf_smtp_port',
wkf_status_servico = '$wkf_status_servico',
wkf_logo_parceiro = '$wkf_logo_parceiro'
where wkf_id = 1";
$result = pg_query($dbcon, $query);
if ($result) {
$jsStartup[] = "alert('Parametros Gerais alterados com sucesso!');";
} else {
$msg = 'Os parametros não podem ser alterados, tente novamente mais tarde!';
$msgErro = $msg;
$jsStartup[] = "alert('$msg');";
}
}
}
if (isset($_GET["alteraUser"])) {
$tipoEnvio = $_GET["tipo"];
$status = $_GET["status"];
$nome = $_GET["nome"];
$email_insert = $_GET["email"] . ($nome ? ";$nome" : "");
}
/*
* Seleciona os parametros cadastrados
*/
$query = "select wkf_status_servico, wkf_hora_envio, wkf_minuto_envio, wkf_smtp, wkf_smtp_user, wkf_smtp_senha, wkf_smtp_port, case when(coalesce(wkf_logo_parceiro, '') = '')then 'logoParceiro.png' else wkf_logo_parceiro end as wkf_logo_parceiro from pbx_workflow_parametros where wkf_id = 1";
$result = pg_query($dbcon, $query);
$row = pg_fetch_array($result);
$_SESSION['SSKeepPassword'] = $row["wkf_smtp_senha"];
$msgLogo = $row["wkf_logo_parceiro"] == "logoParceiro.png" ? "Imagem Padrão" : "Logo Parceiro";
$smarty->assign("wkf_status_servico", $row["wkf_status_servico"]);
$smarty->assign("wkf_hora_envio", $row["wkf_hora_envio"]);
$smarty->assign("wkf_minuto_envio", $row["wkf_minuto_envio"]);
$smarty->assign("wkf_smtp", $row["wkf_smtp"]);
$smarty->assign("wkf_smtp_server", $row["wkf_smtp_server"]);
$smarty->assign("wkf_smtp_user", $row["wkf_smtp_user"]);
$smarty->assign("wkf_smtp_senha", md5($row["wkf_smtp_senha"]));
$smarty->assign("wkf_smtp_port", $row["wkf_smtp_port"]);
$smarty->assign("wkf_tipo_envio", $tipoEnvio);
$smarty->assign("wkf_logo_parceiro", $row["wkf_logo_parceiro"]);
$smarty->assign("msgLogo", $msgLogo);
$smarty->assign("email_insert", IsPostBack() || isset($_GET["email"]) ? $email_insert : "");
$smarty->assign("wkf_emails", GetWkfEmail($dbcon));
$smarty->assign("msgErro", $msgErro);
$smarty->assign("status", isset($status) ? $status : 0);
/*
* Carrega o template correspondente ao cadastro
*/
GetTemplate($smarty, $template);
function WkfDefault($db) {
$query = "select count(*) from pbx_workflow_parametros";
$result = pg_query($db, $query);
$row = pg_fetch_row($result);
if ($row[0])
return;
$query = "insert into pbx_workflow_parametros(wkf_id, wkf_smtp, wkf_smtp_user, wkf_smtp_senha, wkf_smtp_port)values(1, 'mail.simplesip.com.br', 'workflow@simplesip.com.br', '#w0rkFl0w@', '587');";
pg_query($db, $query);
}
function GetWkfEmail($db) {
$query = "select wkf_email_id, wkf_email, wkf_tipo_envio, wkf_status, wkf_nome,
(select count(*) from pbx_workflow_emails_dacs where wkf_email_id = a.wkf_email_id) as rest_dac
from pbx_workflow_emails a order by wkf_email";
$result = pg_query($db, $query);
$opt = "";
$numReg = 0;
while ($row = pg_fetch_array($result)) {
$tpEnvio = $row["wkf_tipo_envio"];
$restDac = $row["rest_dac"] ? "S" : "N";
$wkf_status = $row["wkf_status"];
switch ($tpEnvio) {
case 1: $tpEnvio = "Diário";
break;
case 2: $tpEnvio = "Mensal";
break;
default: $tpEnvio = "Todos";
break;
}
$wkf_email_id = $row["wkf_email_id"];
$nomeEmail = trim($row["wkf_nome"]);
$emailDisp = sprintf('<a href="index.php?idProg=178&alteraUser=1&email=%s&nome=%s&status=%s&tipo=%s" style="color:#000000;">%s</a>', $row["wkf_email"], $nomeEmail, $row["wkf_status"], $row["wkf_tipo_envio"], ocultarEmail(empty($nomeEmail) ? $row["wkf_email"] : sprintf('"%s" &lt;%s&gt;', $row["wkf_nome"], $row["wkf_email"])));
$imgDelete = sprintf("<img src=\"imgSite/deletaUser.png\" width=\"16\" height=\"16\" border=\"0\" title=\"Apaga o email: %s\">", ocultarEmail(empty($nomeEmail) ? $row["wkf_email"] : sprintf('"%s" &lt;%s&gt;', $row["wkf_nome"], $row["wkf_email"])));
$remove = "<a href=\"javaScript:DeletaWkfEmail('" . $row["wkf_email_id"] . "');\">" . $imgDelete . "</a>";
$dacs = '<img src="imgSite/usuarios.gif" alt="Adiciona restrição por dacs!" title="Adiciona restrição por dacs!" width="22" height="22" border="0">';
$janW = 680;
$janH = 250;
$dacs = "<a href=\"javaScript:NovaJanela('index.php?idProg=179&wkf_email_id=$wkf_email_id&email=$email', 'usuarioCad', '$janW', '$janH', 'resizable=NO,scrollbars=NO');\"> $dacs</a>";
$imgStatus = "<img src=\"imgSite/" . ($wkf_status ? "ok16.gif" : "no.gif") . "\" width=\"16\" height=\"16\" border=\"0\" title=\"" . ($wkf_status ? "Email Ativo!" : "Email Inativo!") . "\">";
$opt .= sprintf('<tr>
<td align="left">%s</td>
<td align="center">%s</td>
<td align="center">%s</td>
<td align="center">%s</td>
<td align="center">%s</td>
<td align="center">%s</td>
</tr>', $emailDisp, $imgStatus, $tpEnvio, $restDac, $dacs, $remove);
$numReg++;
}
if (!$numReg)
return "<tr><td colspan=\"5\" align=\"center\">Nenhum email cadastrado!</td></tr>";
return $opt;
}
function MoveLogoWkfParceiro() {
$moveFile = false;
$tmpFileName = $_FILES['wkf_logo_parceiro']['name'];
$nomeArq = strtolower($tmpFileName);
$nomeArq = LimpaString(RemoveAcentos($nomeArq));
//$pathFile = '/var/lib/asterisk/scripts/workflow/' . $nomeArq;
$pathFile = 'imgSite/' . $nomeArq;
$tmpFileName = $_FILES['wkf_logo_parceiro']['tmp_name'];
$moveFile = move_uploaded_file($tmpFileName, $pathFile);
return $moveFile;
}
function ValidaLogoParceiro() {
$types = array('image/gif', 'image/png', 'image/jpeg');
$size = (int) round($_FILES['wkf_logo_parceiro']['size'] / 1024, 0);
$type = trim($_FILES['wkf_logo_parceiro']['type']);
if ($size > 50)
return "O tamanho máximo permitido para a imagem é de 50kb!";
if (array_search($type, $types) === false)
return "Os tipo \"$type\" não é válido, apenas imagens são \".jpg, .png e .gif\" são suportadas!";
return "";
}
?>