|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
require('funcoesFormulario.php');
|
|
|
|
|
$tpLayout = 1;
|
|
|
|
|
$templateName = 'cadastros/prevenda/statusReciclaLista.tpl';
|
|
|
|
|
|
|
|
|
|
$clo_id = isset($_GET['clo_id']) ? $_GET['clo_id'] : $_SESSION['clo_id'];
|
|
|
|
|
$status = isset($_POST['status_id']) ? $_POST['status_id'] : '';
|
|
|
|
|
$_SESSION['clo_id'] = $clo_id;
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (isset($_POST['btIncStatus'])) {
|
|
|
|
|
insert($status);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btRmStatus'])) {
|
|
|
|
|
delete($status);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['btRecicla'])) {
|
|
|
|
|
reciclarLista($_SESSION['clo_id']);
|
|
|
|
|
$smarty->assign("erro", "<span style='color:green'> A lista de clientes foi reciclada com sucesso! </span>");
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
$smarty->assign("erro", "<span style='color:red'>{$ex->getMessage()}</span>");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$smarty->assign('status_id', getStatus());
|
|
|
|
|
$smarty->assign('listaGrupo', getStatusRecicla());
|
|
|
|
|
$smarty->assign("origem", getOrigem($clo_id));
|
|
|
|
|
GetTemplate($smarty, $templateName);
|
|
|
|
|
|
|
|
|
|
function getAllStatusRecicla() {
|
|
|
|
|
$query = "SELECT * FROM pbx_campanha_referencia_recicla;";
|
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
$data = pg_fetch_all($result);
|
|
|
|
|
|
|
|
|
|
return $data;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getOrigem($clo_id) {
|
|
|
|
|
$query = "SELECT * FROM pbx_cliente_origem WHERE clo_id = {$clo_id} ";
|
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
$data = pg_fetch_assoc($result);
|
|
|
|
|
|
|
|
|
|
if ($data) {
|
|
|
|
|
return "Lista: {$data['clo_titulo']} - Descricao: {$data['clo_descricao']}";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getStatus() {
|
|
|
|
|
$query = "SELECT DISTINCT d.ctst_id, d.ctst_nome
|
|
|
|
|
FROM pbx_usuarios a
|
|
|
|
|
INNER JOIN pbx_grupo_usuario b ON a.id = b.user_id
|
|
|
|
|
INNER JOIN pbx_grupo_campanha_contato_status c ON b.gp_id = c.gp_id
|
|
|
|
|
INNER JOIN pbx_campanha_contato_status d ON c.ctst_id = d.ctst_id
|
|
|
|
|
WHERE d.ctst_id NOT IN (SELECT ctst_id FROM pbx_campanha_referencia_recicla)";
|
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
$usuarios = pg_fetch_all($result);
|
|
|
|
|
|
|
|
|
|
$select = "<select name='status_id[]' multiple='multiple' size='8' style='width:300px;'>";
|
|
|
|
|
foreach ($usuarios as $value) {
|
|
|
|
|
$select .= "<option value='{$value['ctst_id']}'>{$value['ctst_nome']}</option>";
|
|
|
|
|
}
|
|
|
|
|
$select .= "</select>";
|
|
|
|
|
return $select;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getStatusRecicla() {
|
|
|
|
|
$query = "SELECT * FROM pbx_campanha_contato_status a
|
|
|
|
|
INNER JOIN pbx_campanha_referencia_recicla b ON a.ctst_id = b.ctst_id";
|
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
$usuarios = pg_fetch_all($result);
|
|
|
|
|
|
|
|
|
|
$select = "<select name='status_id[]' multiple='multiple' size='8' style='width:300px;'>";
|
|
|
|
|
foreach ($usuarios as $value) {
|
|
|
|
|
$select .= "<option value='{$value['ctst_id']}'>{$value['ctst_nome']}</option>";
|
|
|
|
|
}
|
|
|
|
|
$select .= "</select>";
|
|
|
|
|
return $select;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function insert($ctst_id) {
|
|
|
|
|
foreach ($ctst_id as $status) {
|
|
|
|
|
$query = "INSERT INTO pbx_campanha_referencia_recicla (ctst_id) VALUES('{$status}');";
|
|
|
|
|
pg_query($query);
|
|
|
|
|
if (pg_last_error()) {
|
|
|
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel cadastrar o status na restri<EFBFBD><EFBFBD>o! Error DB: ' . pg_last_error());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function delete($ctst_id) {
|
|
|
|
|
foreach ($ctst_id as $status) {
|
|
|
|
|
$query = "DELETE FROM pbx_campanha_referencia_recicla WHERE ctst_id = '{$status}';";
|
|
|
|
|
pg_query($query);
|
|
|
|
|
if (pg_last_error()) {
|
|
|
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel deletar o status! Error DB: ' . pg_last_error());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function reciclarLista($clo_id) {
|
|
|
|
|
|
|
|
|
|
if (!$clo_id) {
|
|
|
|
|
throw new Exception("<EFBFBD> necess<EFBFBD>rio informar o identificador da lista!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$status = getAllStatusRecicla();
|
|
|
|
|
|
|
|
|
|
if (!$status) {
|
|
|
|
|
throw new Exception("<EFBFBD> necess<EFBFBD>rio informar um status para reciclar a lista!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$ctst = implode(", " , array_map(function ($a) {
|
|
|
|
|
return QuotedStr($a['ctst_id']);
|
|
|
|
|
}, $status));
|
|
|
|
|
|
|
|
|
|
$query = "UPDATE pbx_cliente SET cmp_id = NULL, list_id = NULL, cont_id = NULL, client_user_contato = '', client_status = '0' WHERE client_status IN ({$ctst}) AND clo_id = {$clo_id}";
|
|
|
|
|
$result = pg_query($query);
|
|
|
|
|
|
|
|
|
|
if (!$result) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel reciclar a lista de cliente. Error: " . pg_last_error());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|