forked from SimplesIP/pabx-app
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
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" <%s>', $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" <%s>', $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 ""; |
|
} |
|
|
|
?>
|
|
|