PABX da Simples IP
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.
 
 
 
 
 
 

110 lines
3.6 KiB

<?php
require('funcoesFormulario.php');
$templateName = 'workflow/workflowEmailsDacs.htm';
//define tipo de formulario
$tpLayout = 1;
$upload = 0;
$fieldsForm = array();
$fieldsForm = IsPostBack() ? $_POST : $_GET;
$org_id = GetOrganizacao();
$fieldsForm['erro'] = "";
/*
* Id do email relacionado
*/
$wkf_email_id = $fieldsForm['wkf_email_id'];
if (isset($fieldsForm['btIncDac'])) {
if (empty($fieldsForm['listaDacs'])) {
$fieldsForm['erro'] = fmtMsg('Selecione um Dac!');
} else {
/* Inicio da transacao */
pg_query($dbcon, 'begin');
/*
* Insere dacs relacionado ao email conforme selecionado
*/
foreach ($fieldsForm['listaDacs'] as $idDac) {
$query = "INSERT INTO pbx_workflow_emails_dacs(wkf_email_id, nome_dac, org_id) values(%s, '%s', $org_id)";
$query = sprintf($query, $wkf_email_id, $idDac);
$result = pg_query($dbcon, $query);
if (!$result) {
break;
}
}
if ($result) {
pg_query($dbcon, 'commit');
$jsStartup[] = "window.opener.ResetForm();";
} else {
pg_query($dbcon, 'rollback');
}
$fieldsForm['erro'] = $result ? fmtMsg('Dac incluido com sucesso!') : fmtErro('O Dac não pode ser incluido!', pg_last_error($dbcon));
}
} else if (isset($fieldsForm['btRmDac'])) {
if (empty($fieldsForm['listaDacsInc'])) {
$fieldsForm['erro'] = fmtMsg('Selecione um Dac!');
} else {
pg_query($dbcon, 'begin');
foreach ($fieldsForm['listaDacsInc'] as $idDac) {
$query = "DELETE FROM pbx_workflow_emails_dacs WHERE nome_dac = '%s' and wkf_email_id = '%s' ";
$query = sprintf($query, $idDac, $wkf_email_id);
$result = pg_query($dbcon, $query);
if (!$result)
break;
}
if ($result) {
pg_query($dbcon, 'commit');
$jsStartup[] = "window.opener.ResetForm();";
} else {
pg_query($dbcon, 'rollback');
}
$fieldsForm['erro'] = $result ? fmtMsg('Dac removido com sucesso!') : fmtErro('O Dac não pode ser removido!', pg_last_error($dbcon));
}
}
$fieldsForm['listaDacs'] = GetDacWorkflow($dbcon, 'listaDacs', $wkf_email_id);
$fieldsForm['listaDacsInc'] = GetDacWorkflow($dbcon, 'listaDacsInc', $wkf_email_id, true);
/*
* Atualiza templates templates
*/
foreach ($fieldsForm as $key => $value) {
$smarty->assign($key, $value);
}
GetTemplate($smarty, $templateName);
function GetDacWorkflow($dbcon, $nomeCombo, $wkf_email_id, $inc = false)
{
$org_id = GetOrganizacao();
$dacs = "<select name=\"$nomeCombo" . "[]" . "\" style=\"width:280px\" id=\"$nomeCombo\" size=\"8\" multiple=\"multiple\">";
$query = "SELECT id, nome FROM pbx_queues_grupos a";
/*
* A variavel $inc apenas diz que vamos recuperar apenas os dacs incluidos para o email selecionado
*/
if ($inc) {
$query .= " WHERE 1=1 AND ";
} else {
$query .= " WHERE 1=1 AND NOT ";
}
$query .= " EXISTS(SELECT '' FROM pbx_workflow_emails_dacs WHERE nome_dac = a.nome AND wkf_email_id = '$wkf_email_id' )";
$query .= " AND a.org_id = $org_id ";
$query .= " AND a.status = 'A' order by 2 \n";
$result = pg_query($dbcon, $query);
$sel = "";
while ($dados = pg_fetch_row($result)) {
$dacs .= "<option value=\"$dados[1]\" $sel>$dados[1]</option>";
}
$dacs .= "</select>";
return $dacs;
}