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.
307 lines
12 KiB
307 lines
12 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; |
|
$org_id = GetOrganizacao(); |
|
|
|
/* |
|
* Se não existir parametros inclui parametros default |
|
*/ |
|
WkfDefault($dbcon, $org_id); |
|
|
|
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 = preg_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, org_id) VALUES('$email', '$tipo', '$wkf_status', $wkf_nome,$org_id)"; |
|
} |
|
$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"])) { |
|
$wkf_id = $_POST["wkf_id"]; |
|
$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 { |
|
$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 = {$wkf_id}"; |
|
$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_id, 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 org_id = $org_id"; |
|
$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("wkf_id", $row["wkf_id"]); |
|
$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, $org_id) |
|
{ |
|
$query = "SELECT count(*) from pbx_workflow_parametros WHERE org_id = $org_id"; |
|
$result = pg_query($db, $query); |
|
$row = pg_fetch_row($result); |
|
$org_id = GetOrganizacao(); |
|
|
|
if ($row[0]) { |
|
return; |
|
} |
|
$query = "INSERT INTO pbx_workflow_parametros(wkf_hora_envio, wkf_minuto_envio,wkf_smtp, wkf_smtp_user, wkf_smtp_senha, wkf_smtp_port, org_id) |
|
VALUES(6, 0,'mail.simplesip.com.br', 'workflow@simplesip.com.br', '#w0rkFl0w@', '587', $org_id);"; |
|
echo $query; |
|
pg_query($db, $query); |
|
} |
|
|
|
function GetWkfEmail($db) |
|
{ |
|
$org_id = GetOrganizacao(); |
|
$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 |
|
WHERE org_id = $org_id |
|
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"]; |
|
$email = $row["wkf_email"]; |
|
$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 = '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 ""; |
|
}
|
|
|