|
|
<?php |
|
|
|
|
|
$template = "contribuinte.tpl"; |
|
|
$tpLayout = 1; |
|
|
$offSet = 0; |
|
|
$refresh = isset($_GET['refresh']) ? true : false; |
|
|
|
|
|
define('CONF_PATH_INTEGRACAO', '/var/lib/asterisk/scripts/integracao/custom/GoogleCalendar/'); |
|
|
|
|
|
define('CONF_PATH_CLASS', 'GoogleCalendar.php'); |
|
|
define('CONF_PATH_CREDENTIALS', 'credentials.json'); |
|
|
define('CONF_PATH_TOKEN', 'token.json'); |
|
|
define('CONF_STATUS_EXPORTADO', 21); |
|
|
|
|
|
include CONF_PATH_INTEGRACAO . CONF_PATH_CLASS; |
|
|
|
|
|
if (GetFormAcao() == FORM_UPDATE) { |
|
|
$acaoForm = FORM_SAVE; |
|
|
|
|
|
$id = $_GET["id"] ? $_GET["id"] : $_POST['client_id']; |
|
|
$query = "SELECT client_id, |
|
|
CASE WHEN(COALESCE(client_tipo_documento, '') = '')THEN 'CNPJ' ELSE client_tipo_documento END AS client_tipo_documento, |
|
|
client_documento, client_razao_social,client_municipio, client_uf, client_nome_contato, client_status, client_email, |
|
|
client_telefone, client_obs, client_tipo_contato, client_agendamento, client_class, client_update, (SELECT apelido FROM pbx_usuarios WHERE id = user_reg) as modificado |
|
|
FROM pbx_cliente |
|
|
WHERE client_id = {$id}"; |
|
|
|
|
|
$result = @pg_query($dbcon, $query); |
|
|
$row = @pg_fetch_array($result, null, PGSQL_ASSOC); |
|
|
|
|
|
list($nomeDisp) = explode(" ", $row["client_razao_social"]); |
|
|
|
|
|
if ($row['client_agendamento']) { |
|
|
$discar = RemoveDddPadrao($row['client_telefone']); |
|
|
$acao = "<img src=\"imgSite/ramalOn16.png\" border=\"0\" width=\"16\" height=\"16\" alt=\"Ligar para o cliente: $nomeDisp\" title=\"Ligar para o cliente: $nomeDisp\">"; |
|
|
$linkRamal = "<a href=\"javaScript:RetornaAbd('$discar',{$row["client_id"]});\">$acao</a>"; |
|
|
} |
|
|
|
|
|
/** ENVIAR EMAIL * */ |
|
|
if ($row["client_email"]) { |
|
|
$mailsend = "<a href='#' onclick=\"sendContribuiente('{$row["client_email"]}','sendmail')\"><img src=\"imgSite/mail16.png\" border=\"0\" width=\"16\" height=\"16\" alt=\"Enviar E-mail: $nomeDisp\" title=\"Enviar E-mail: $nomeDisp\"></a>"; |
|
|
} else { |
|
|
$mailsend = "<img src=\"imgSite/email-no.png\" border=\"0\" width=\"16\" height=\"16\" title=\"O contato N<EFBFBD>o possui email cadastrado: $nomeDisp\">"; |
|
|
} |
|
|
|
|
|
/** CONTATOS */ |
|
|
$contatos = "<a href=\"javaScript:NovaJanela('index.php?idProg=346&client_id={$row["client_id"]}', 'contatosCliente', '900', '250', 'jhTela')\"><img src=\"imgSite/User group.png\" border=\"0\" width=\"16\" height=\"16\" alt=\"Contatos do cliente ID: $nomeDisp\" title=\"Contatos do cliente ID: $nomeDisp\"></a>"; |
|
|
|
|
|
$row["client_agenda"] = $row["client_agendamento"] ? date('d/m/Y H:i', strtotime($row["client_agendamento"])) : ''; |
|
|
$row["client_status"] = GetStatusProspect($row["client_status"], false, ($refresh || $row["client_status"] == CONF_STATUS_EXPORTADO ? TRUE : FALSE)); |
|
|
$row["client_tipo_contato"] = GetClientTipoContato($row["client_tipo_contato"]); |
|
|
$row["client_update"] = $row["client_update"] ? date('d/m/Y H:i:s', strtotime($row["client_update"])) : '-'; |
|
|
|
|
|
/** |
|
|
* TABELA ANOTA<EFBFBD><EFBFBD>O |
|
|
*/ |
|
|
$query1 = "SELECT cla_id, cla_anotacao, apelido, data_reg FROM pbx_cliente_anotacoes a " |
|
|
. "INNER JOIN pbx_usuarios b ON b.matricula::int = a.user_reg " |
|
|
. "WHERE client_id = '{$id}' ORDER BY data_reg DESC\n"; |
|
|
$sql = GetTotalRegistro($dbcon, $query1); |
|
|
|
|
|
$params = sprintf("&client_id=%s&client_razao=%s", $id, $row['client_razao_social']); |
|
|
$links = PaginaDados($idProg, $sql, $params, $regPagina, $offSet, $pagMostra, true); |
|
|
$query1 .= " LIMIT $regPagina OFFSET $offSet"; |
|
|
$res = pg_query($dbcon, $query1); |
|
|
$data = pg_fetch_all($res); |
|
|
$tblAnota = ''; |
|
|
|
|
|
foreach ($data as $anota) { |
|
|
$tblAnota .= "<tr>"; |
|
|
$tblAnota .= sprintf("<td>%s</td>", date('d/m/Y H:i:s', strtotime($anota['data_reg']))); |
|
|
$tblAnota .= sprintf("<td>%s</td>", $anota['apelido']); |
|
|
$tblAnota .= sprintf("<td>%s</td>", $anota['cla_anotacao']); |
|
|
$tblAnota .= "</tr>"; |
|
|
} |
|
|
|
|
|
$smarty->assign("links", $links); |
|
|
$smarty->assign("pagMostra", $pagMostra); |
|
|
$smarty->assign("totalReg", $totalReg); |
|
|
$smarty->assign('anotacao', $tblAnota); |
|
|
$smarty->assign('mailsend', $mailsend); |
|
|
$smarty->assign('contatos', $contatos); |
|
|
$smarty->assign('linkRamal', $linkRamal); |
|
|
$smarty->assign('sound', $sound); |
|
|
|
|
|
if ($result) { |
|
|
//valores no form |
|
|
foreach ($row as $key => $value) { |
|
|
$smarty->assign($key, $value); |
|
|
} |
|
|
} else { |
|
|
$acaoForm = FORM_INSERT; |
|
|
$msgRet = "A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!"; |
|
|
$jsStartup[] = "alert('$msgRet');"; |
|
|
$msgRet .= pg_last_error() ? " Erro: " . pg_last_error() : ""; |
|
|
$smarty->assign("msg", $msgRet); |
|
|
} |
|
|
} else { |
|
|
$msgForm = array(); |
|
|
|
|
|
if (!validaForm($fields, $fieldsObrig, $fieldsType, $fieldsDiplay, $msgForm)) { |
|
|
$acaoForm = FORM_SAVE; |
|
|
|
|
|
//formata mensagem de erro para script |
|
|
$msgRet = ""; |
|
|
foreach ($msgForm as $value) { |
|
|
$msgRet .= "\\n" . $value; |
|
|
} |
|
|
|
|
|
$jsStartup[] = "alert('$msgRet');"; |
|
|
|
|
|
//formata mensagem de erro para o form |
|
|
$msgRet = ""; |
|
|
foreach ($msgForm as $value) { |
|
|
$msgRet .= $value . " "; |
|
|
} |
|
|
|
|
|
//erros no form |
|
|
$smarty->assign("msgErro", $msgRet); |
|
|
|
|
|
$_POST["client_status"] = GetStatusProspect($_POST["client_status"], false, $refresh); |
|
|
$_POST["client_tipo_contato"] = GetClientTipoContato($_POST["client_tipo_contato"]); |
|
|
//valores no form |
|
|
foreach ($fields as $value) { |
|
|
$smarty->assign($value, $_POST[$value]); |
|
|
} |
|
|
} else { |
|
|
$acaoForm = FORM_SAVE; |
|
|
|
|
|
$id = $_POST["client_id"]; |
|
|
$nome = QuotedStr(strtoupper($_POST["client_nome_contato"])); |
|
|
$status = isset($_POST["client_status"]) ? QuotedStr($_POST["client_status"]) : null; |
|
|
$tpContato = QuotedStr($_POST["client_tipo_contato"]); |
|
|
$tpDoc = QuotedStr($_POST["client_tipo_documento"]); |
|
|
|
|
|
$doc = sonumero($_POST["client_documento"]); |
|
|
$doc = !$doc ? "null" : QuotedStr($doc); |
|
|
|
|
|
$email = trim($_POST["client_email"]); |
|
|
$email = !$email ? "null" : QuotedStr($email); |
|
|
|
|
|
$fone = sonumero($_POST["client_telefone"]); |
|
|
$fone = !$fone ? "null" : QuotedStr($fone); |
|
|
|
|
|
if (!$_POST["client_agenda"]) { |
|
|
$agendamento = 'null'; |
|
|
} else { |
|
|
$agendamento = strlen($_POST["client_agenda"]) == 10 ? QuotedStr(FormatDtMssql($_POST["client_agenda"]) . " 00:00") : QuotedStr(FormatDtMssql(substr($_POST["client_agenda"], 0, 10)) . substr($_POST["client_agenda"], 10, 16)); |
|
|
} |
|
|
|
|
|
$user_contato = QuotedStr(GetMatricula()); |
|
|
|
|
|
$obs = trim($_POST["client_obs"]); |
|
|
$obs = !$obs ? null : QuotedStr($obs); |
|
|
|
|
|
$user_reg = GetIdUser(); |
|
|
|
|
|
/* |
|
|
* Atribui uma nova etapa de acordo com o status. |
|
|
*/ |
|
|
$client_etapa = GetClienteEtapa($_POST["client_status"]); |
|
|
|
|
|
$query = "update pbx_cliente |
|
|
set client_tipo_documento = {$tpDoc}, |
|
|
client_documento = {$doc}, |
|
|
client_nome_contato = {$nome},$client_etapa"; |
|
|
|
|
|
if (isset($_POST["client_status"])) { |
|
|
$query .= "client_status = {$status},"; |
|
|
} |
|
|
|
|
|
if ($status != CONF_STATUS_EXPORTADO && $status) { |
|
|
$query .= "user_reg = {$user_reg}, client_update = now(),"; |
|
|
} |
|
|
|
|
|
$query .= "client_email = {$email}, |
|
|
client_telefone = {$fone}, |
|
|
client_tipo_contato = {$tpContato}, |
|
|
client_agendamento = {$agendamento} |
|
|
where client_id = {$id} "; |
|
|
|
|
|
$result = @pg_query($dbcon, $query); |
|
|
|
|
|
if ($obs) { |
|
|
$sql = "INSERT INTO pbx_cliente_anotacoes (client_id, cla_anotacao, user_reg) VALUES(%s, %s, %s);"; |
|
|
$sql = sprintf($sql, $id, $obs, $user_contato); |
|
|
@pg_query($dbcon, $sql); |
|
|
} |
|
|
|
|
|
atualizaContato($dbcon, $_POST["client_id"], $nome, $fone, $email); |
|
|
|
|
|
//valores no form |
|
|
foreach ($fields as $value) { |
|
|
if (array_search($value, $_POST) !== false) { |
|
|
$smarty->assign($value, $value == "client_id" ? $id : $_POST[$value]); |
|
|
} |
|
|
} |
|
|
|
|
|
if ($result) { |
|
|
|
|
|
if ($_POST['intg_agenda'] && $_POST["client_agenda"] && $_POST['client_razao_social']) { |
|
|
integCalendar($_POST["client_agenda"], $_POST['client_razao_social'], trim('desenv02@simplesip.com.br')); |
|
|
} |
|
|
|
|
|
$msgRet = "Registro alterado com sucesso!"; |
|
|
$jsStartup[] = "alert('$msgRet');"; |
|
|
$smarty->assign("msg", $msgRet); |
|
|
if (!$_GET['refresh']) { |
|
|
$jsStartup[] = "window.opener.ResetForm();"; |
|
|
} |
|
|
|
|
|
$jsStartup[] = "window.close();"; |
|
|
} else { |
|
|
$msgRet = "A opera<EFBFBD><EFBFBD>o n<EFBFBD>o pode ser realizada!"; |
|
|
$jsStartup[] = "alert('$msgRet');"; |
|
|
$msgRet .= pg_last_error() ? (IsAdmin() ? " Erro: " . pg_last_error() : "") : ""; |
|
|
$smarty->assign("msg", $msgRet); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
function atualizaContato($dbcon, $cliente, $nome, $fone, $email = 'null') { |
|
|
$query = "SELECT clc_id FROM pbx_cliente_contato WHERE client_id = {$cliente} AND clc_contato_principal = 1;"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
$data = pg_fetch_assoc($result); |
|
|
|
|
|
if ($data) { |
|
|
$query = "UPDATE pbx_cliente_contato SET clc_nome = {$nome}, clc_email = {$email}, clc_fone = {$fone} WHERE clc_id = {$data['clc_id']};"; |
|
|
pg_query($dbcon, $query); |
|
|
} |
|
|
} |
|
|
|
|
|
function integCalendar($agenda, $empresa, $email) { |
|
|
if ((file_exists(CONF_PATH_INTEGRACAO . CONF_PATH_CLASS) && (file_exists(CONF_PATH_INTEGRACAO . CONF_PATH_TOKEN)) && (file_exists(CONF_PATH_INTEGRACAO . CONF_PATH_CREDENTIALS)))) { |
|
|
$formtData = strlen($agenda) == 10 ? FormatDtMssql($agenda) . " 00:00" : FormatDtMssql(substr($agenda, 0, 10)) . substr($agenda, 10, 16); |
|
|
|
|
|
$emails = GetAllMailAdmin(); |
|
|
$emails[]['email'] = $email; |
|
|
|
|
|
$gg = new GoogleCalendar(); |
|
|
$gg->getClient(); |
|
|
|
|
|
$dataIni = date('Y-m-d\TH:i:s-04:00', strtotime($formtData)); |
|
|
$dataFim = date('Y-m-d\TH:i:s-04:00', strtotime($formtData . ' +1 hours')); |
|
|
|
|
|
$link = $gg->createEventCalendar( |
|
|
'APRESENTACAO COM ' . RemoveAcentos($empresa), |
|
|
'AGENDAMENTO DA APRESENTACAO DOS PRODUTOS SIMPLES IP', |
|
|
$dataIni, |
|
|
$dataFim, |
|
|
$emails |
|
|
); |
|
|
|
|
|
return $link; |
|
|
} |
|
|
} |
|
|
|
|
|
function GetClienteEtapa($status) { |
|
|
|
|
|
$query = " select ctst_nome from pbx_campanha_contato_status where ctst_id = '$status';\n"; |
|
|
$result = pg_query($query); |
|
|
$data = pg_fetch_row($result); |
|
|
$statusAtual = $data[0]; |
|
|
$novaEtapa = ''; |
|
|
|
|
|
switch ($statusAtual) { |
|
|
case "NOVO": $novaEtapa = 'VALIDACAO'; |
|
|
break; |
|
|
case "ATENDIDA": |
|
|
case "N<EFBFBD>O ATENDIDA": |
|
|
case "ELETR<EFBFBD>NICA": |
|
|
case "MUDA": |
|
|
case "OCUPADA": |
|
|
case "DESLIGOU": |
|
|
case "CLIENTE": |
|
|
case "PROSPECT": |
|
|
case "LEAD": |
|
|
case "ENVIADO": |
|
|
case "AGENDADO": |
|
|
case "INTERESSE": |
|
|
case "CONTABILIDADE": $novaEtapa = 'PROSPECCAO'; |
|
|
break; |
|
|
case "N<EFBFBD>O ENVIAR": |
|
|
case "RESPONDIDO" : |
|
|
case "REPROCESSAR": |
|
|
case "INVALIDO": |
|
|
case "SEM INTERESSE": |
|
|
case "EXCLUIR": |
|
|
case "EXPORTADO": |
|
|
case "REMOVER": $novaEtapa = 'FINALIZACAO'; |
|
|
break; |
|
|
} |
|
|
|
|
|
$query = "select cletp_id from pbx_cliente_etapa where cletp_descricao = '$novaEtapa';\n"; |
|
|
$result = pg_query($query); |
|
|
|
|
|
if (!$result || !pg_num_rows($result)) { |
|
|
return ''; |
|
|
} |
|
|
$data = pg_fetch_row($result); |
|
|
return sprintf("\ncletp_id = '%s',", $data[0]); |
|
|
} |
|
|
|
|
|
?>
|
|
|
|