|
|
|
|
<?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]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|