|
|
<?php |
|
|
|
|
|
$paramPesquisa = isset($_REQUEST['paramPesquisa']) ? $_REQUEST['paramPesquisa'] : ''; |
|
|
$filtro = trim(isset($_REQUEST["paramPesquisa"]) ? trim($_REQUEST["paramPesquisa"]) : ''); |
|
|
$cloid = trim(isset($_REQUEST["clo_id"]) ? trim($_REQUEST["clo_id"]) : ''); |
|
|
$clientTipoContato = trim(isset($_REQUEST["client_tipo_contato"]) ? trim($_REQUEST["client_tipo_contato"]) : ''); |
|
|
$clientEtapa = ($_REQUEST["client_etapa"] != "-1") ? trim($_REQUEST["client_etapa"]) : '1'; |
|
|
$clientStatus = ($_REQUEST["client_status"] != "-1") ? trim($_REQUEST["client_status"]) : '-1'; |
|
|
$clientUf = trim(isset($_REQUEST["client_uf"]) ? trim($_REQUEST["client_uf"]) : ''); |
|
|
$clientAgenda = trim(isset($_REQUEST["client_agenda"]) ? trim($_REQUEST["client_agenda"]) : ''); |
|
|
$dataIni = isset($_REQUEST['dataIni']) && is_date($_REQUEST['dataIni']) ? $_REQUEST['dataIni'] : ''; |
|
|
$dataFim = isset($_REQUEST['dataFim']) && is_date($_REQUEST['dataFim']) ? $_REQUEST['dataFim'] : ''; |
|
|
$tipoDataSet = isset($_REQUEST['tipoDataSet']) ? $_REQUEST['tipoDataSet'] : 'Contato'; |
|
|
$client_user_contato = isset($_REQUEST['client_user_contato']) ? $_REQUEST['client_user_contato'] : ''; |
|
|
|
|
|
/** |
|
|
* Dados para ser passado via AJAX |
|
|
*/ |
|
|
$action = isset($_GET['action']) ? $_GET['action'] : null; |
|
|
$ajax = isset($_GET['ajax']) ? $_GET['ajax'] : null; |
|
|
$data = isset($_GET['data']) ? $_GET['data'] : null; |
|
|
|
|
|
if ($ajax && $action) { |
|
|
if ($action == 'sendmail') { |
|
|
echo enviarMailCampanha($data, $dbcon); |
|
|
} |
|
|
|
|
|
if ($action == 'addvendamais') { |
|
|
$conn = ConectaMssql(); |
|
|
echo ExportaContato($conn, $data); |
|
|
} |
|
|
exit(); |
|
|
} |
|
|
|
|
|
if (!isset($acao)) { |
|
|
$acao = FORM_SELECT; |
|
|
} |
|
|
|
|
|
$filtroNovo = !isset($_REQUEST["pgn"]) ? '' : sprintf("¶mPesquisa%s&pgn=%s&bloco=%s&pg=%s", $_REQUEST["paramPesquisa"], $_REQUEST["pgn"], $_REQUEST["bloco"], $_REQUEST["pg"]); |
|
|
|
|
|
$recontaPag = ($acao == 'inseri') || (GetFormAcao() == FORM_DELETE) || isset($_POST['pesquisa']); |
|
|
|
|
|
$refresh = false; |
|
|
if (GetFormAcao() == FORM_DELETE) { |
|
|
$client_id = $_GET["id"]; |
|
|
$query = "delete from pbx_cliente where client_id = $client_id"; |
|
|
$result = pg_query($dbcon, $query); |
|
|
|
|
|
if ($result) { |
|
|
$msgRet = "Registro excluido com sucesso!"; |
|
|
} else { |
|
|
$msgRet = "N<EFBFBD>o foi poss<EFBFBD>vel excluir o registro!"; |
|
|
} |
|
|
$jsStartup[] = "alert('$msgRet')"; |
|
|
$refresh = true; |
|
|
} |
|
|
|
|
|
$template = 'contribuinteSelect.tpl'; |
|
|
|
|
|
$linha = ""; |
|
|
$numReg = 0; |
|
|
$msgErro = ""; |
|
|
$acaoForm = FORM_SELECT; |
|
|
|
|
|
$selContrib = (isset($_GET["selContrib"]) && $_GET["selContrib"]) || (isset($_POST["selContrib"]) && $_POST["selContrib"]); |
|
|
if ($selContrib) { |
|
|
$tpLayout = 1; |
|
|
$wTab = "100%"; |
|
|
$tForm = GetNomeCadCli(); |
|
|
$_SESSION["selContrib"] = true; |
|
|
} |
|
|
$consulta = $selContrib && isset($_GET["fone"]) ? soNumero($_GET["fone"]) : $filtro; |
|
|
$_SESSION["paramPesquisa"] = $filtro; |
|
|
|
|
|
//if ((isset($_POST['pesquisa']) && $_POST['pesquisa']) || ($selContrib)) { |
|
|
if ($filtro) { |
|
|
$compl = PreparaLike($filtro, true); |
|
|
$compl = sprintf("AND (a.client_razao_social ILIKE %s OR " |
|
|
. "client_nome_contato ILIKE %s " |
|
|
. "OR sonumero(a.client_telefone) ILIKE %s OR " |
|
|
. "client_obs ILIKE %s OR " |
|
|
. "client_municipio ILIKE %s OR " |
|
|
. "apelido ILIKE %s OR " |
|
|
. "client_email ILIKE %s OR " |
|
|
. "client_id IN (SELECT client_id FROM pbx_cliente_anotacoes WHERE cla_anotacao ILIKE %s))\n", $compl, $compl, $compl, $compl, $compl, $compl, $compl, $compl); |
|
|
} |
|
|
|
|
|
if ($clientEtapa) { |
|
|
$compl .= "\n AND a.cletp_id = '{$clientEtapa}' \n"; |
|
|
} |
|
|
|
|
|
if ($clientStatus != '-1') { |
|
|
$clientStatus = !$clientStatus ? '0' : $clientStatus; |
|
|
$compl .= " AND client_status = '{$clientStatus}' \n"; |
|
|
} |
|
|
|
|
|
if ($clientUf) { |
|
|
$compl .= " AND client_uf = '{$clientUf}' \n"; |
|
|
} |
|
|
|
|
|
if ($clientTipoContato) { |
|
|
$compl .= " AND client_tipo_contato = '{$clientTipoContato}' \n"; |
|
|
} |
|
|
|
|
|
if ($cloid) { |
|
|
$compl .= " AND a.clo_id = '{$cloid}' AND cmp_id IS NOT NULL \n"; |
|
|
} |
|
|
|
|
|
if ($client_user_contato) { |
|
|
$compl .= " AND client_user_contato = '$client_user_contato' "; |
|
|
} |
|
|
|
|
|
if (GetMatricula()) { |
|
|
$compl .= sprintf("\n AND (client_user_contato = '%s' OR b.cfr_id IN (SELECT x.cfr_id FROM pbx_fornecedor_permissao x WHERE matricula_permissao = '%s'))", GetMatricula(), GetMatricula()); |
|
|
} |
|
|
|
|
|
//$tipoData = (strtoupper($tipoDataSet) == 'CONTATO') ? 'client_data_contato' : 'client_agendamento'; |
|
|
$tipoData = "client_update"; |
|
|
if (is_date($dataIni) && is_date($dataFim)) { |
|
|
$compl .= sprintf(" AND {$tipoData}::DATE >= '%s' and {$tipoData}::date <= '%s' \n", FormatDtMssql($dataIni), FormatDtMssql($dataFim)); |
|
|
} else if (is_date($dataIni)) { |
|
|
$compl .= sprintf(" AND {$tipoData}::DATE >= '%s' \n", FormatDtMssql($dataIni)); |
|
|
} else if (is_date($dataFim)) { |
|
|
$compl .= sprintf(" AND {$tipoData}::DATE <= '%s' \n", FormatDtMssql($dataFim)); |
|
|
} |
|
|
|
|
|
$query = "SELECT client_ref_id, client_out_id, client_id, client_tipo_documento, client_documento, ctst_nome, client_razao_social, client_nome_fantasia, |
|
|
client_municipio, client_uf, client_telefone, client_email, client_nome_contato, client_fone_contato, |
|
|
client_email_contato, client_obs, client_tipo_contato, client_data_contato, d.apelido, |
|
|
client_user_contato, client_agendamento, a.cletp_id, f.cletp_descricao, client_status, |
|
|
(SELECT apelido FROM pbx_usuarios WHERE id = a.user_reg) as modificado |
|
|
FROM pbx_cliente a |
|
|
INNER JOIN pbx_cliente_origem b ON a.clo_id = b.clo_id |
|
|
INNER JOIN pbx_cliente_fornecedor c ON b.cfr_id = c.cfr_id |
|
|
inner join pbx_cliente_etapa f on f.cletp_id = a.cletp_id |
|
|
LEFT JOIN pbx_usuarios d on d.matricula = a.client_user_contato |
|
|
LEFT JOIN pbx_campanha_contato_status e ON e.ctst_id = a.client_status::int |
|
|
WHERE 1=1 $compl ORDER BY client_razao_social"; |
|
|
|
|
|
$_SESSION['SSQueryClient'] = $query; |
|
|
|
|
|
$params = "¶mPesquisa=$filtro&client_tipo_contato=$clientTipoContato&client_etapa=$clientEtapa&client_status=$clientStatus&client_uf=$clientUf&dataIni=$dataIni&dataFim=$dataFim&client_user_contato=$client_user_contato&clo_id=$cloid"; |
|
|
$links = PaginaDados($idProg, $query, $params, $regPagina, $offSet, $pagMostra, true); |
|
|
$query .= " LIMIT $regPagina OFFSET $offSet"; |
|
|
|
|
|
// echo $query; exit; |
|
|
|
|
|
$result = pg_query($dbcon, $query); |
|
|
while ($row = @pg_fetch_array($result)) { |
|
|
$client_id = $row["client_id"]; |
|
|
$client_tipo_documento = $row["client_tipo_documento"]; |
|
|
$client_documento = $row["client_documento"]; |
|
|
$cletp_descricao = $row["cletp_descricao"]; |
|
|
$client_status = $row["ctst_nome"]; |
|
|
$client_data_contato = substr(FormataDBDataHora($row["client_data_contato"]), 0, 10); |
|
|
$client_agendamento = FormataDBDataHora($row["client_agendamento"]); |
|
|
$client_razao = $row["client_razao_social"]; |
|
|
$client_razao_social = GetLinkFormUpdate("&id=$client_id", "cadCliente", "", 0, 1, $row["client_razao_social"]); |
|
|
$client_nome_fantasia = $row["client_nome_fantasia"]; |
|
|
$client_nome_contato = $row["client_nome_contato"]; |
|
|
$client_municipio = $row["client_municipio"]; |
|
|
$client_uf = $row["client_uf"]; |
|
|
$client_telefone = $row["client_telefone"]; |
|
|
$client_email = $row["client_email"]; |
|
|
$client_tipo_contato = $row["client_tipo_contato"]; |
|
|
$client_usercontato = $row["modificado"]; |
|
|
$client_agente = $row["apelido"]; |
|
|
$client_class = $row["clit_descricao"]; |
|
|
$acaoApaga = GetLinkFormDelete($client_id . "|" . $params, 'DeletaContribuinte'); |
|
|
$acaoAtualiza = GetLinkFormUpdate("&id=$client_id", 'cadCliente'); |
|
|
$clientOutId = ($client_status == '446') ? $row["client_out_id"] : 0; |
|
|
|
|
|
list($nomeDisp) = explode(" ", $row["client_razao_social"]); |
|
|
|
|
|
$discar = RemoveDddPadrao($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\">"; |
|
|
|
|
|
if ($row["client_email"]) { |
|
|
$mailsend = "<a href=\"javaScript:NovaJanela('index.php?idProg=349&client_id={$row["client_id"]}', 'clientMail', '1250', '750', 'jhTela')\"><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\">"; |
|
|
} |
|
|
|
|
|
if ($row["client_email"] && $row["client_telefone"] && $row["client_status"] == '13') { |
|
|
$vendamais = "<a href='#' onclick=\"sendContribuiente('{$row["client_out_id"]}', 'addvendamais')\"><img src=\"imgSite/vendamais.png\" border=\"0\" width=\"16\" height=\"16\" alt=\"Exportar o registro no Venda+: $nomeDisp\" title=\"Exportar o registro no Venda+: $nomeDisp\"></a>"; |
|
|
} else { |
|
|
$vendamais = '<img src="imgSite/vendamais-no.png" border="0" width="16" height="16" title="Contato possui pendencia para ser Exportado!">'; |
|
|
} |
|
|
|
|
|
$sound = sprintf("<a href=\"javaScript:NovaJanela('index.php?idProg=347&client_id={$row["client_id"]}&n=%s', 'audioContato', '1250', '500', 'jhTela')\"><img src=\"imgSite/sound22.png\" border='0' width='16' height='16' title='<EFBFBD>udios do cliente!'></a>", base64_encode($row['client_nome_fantasia'])); |
|
|
$linkRamal = "<a href=\"javaScript:RetornaAbd('$discar',{$row["client_id"]});\">$acao</a>"; |
|
|
|
|
|
$janH = 650; |
|
|
$anotacoesCliente = GetLinkFormAction("jnAnotacoes", FORM_SELECT, 46, "imgSite/Comment.png", "client_id={$client_id}&client_razao={$client_razao}&client_out_id={$clientOutId}", ""); |
|
|
|
|
|
$linha .= "<tr> |
|
|
<td align=\"right\">$client_id</td> |
|
|
<td align=\"left\">$client_data_contato</td> |
|
|
<td align=\"left\">$client_agendamento</td> |
|
|
<td align=\"left\">$client_razao_social</td> |
|
|
<td align=\"left\">$cletp_descricao</td> |
|
|
<td align=\"left\">$client_status</td> |
|
|
<td align=\"left\">$client_municipio</td> |
|
|
<td align=\"left\">$client_uf</td> |
|
|
<td align=\"left\">$client_nome_contato</td> |
|
|
<td align=\"left\">$client_telefone</td> |
|
|
<td align=\"left\">$client_email</td> |
|
|
<td align=\"left\">$client_tipo_contato</td> |
|
|
<td align=\"left\">$client_agente</td> |
|
|
<td align=\"left\">$client_usercontato</td> |
|
|
<td width=\"20\" style=\"border-right: 0\" align=\"center\">$mailsend</td> |
|
|
<td width=\"20\" style=\"border-left: 0\" align=\"center\">$vendamais</td> |
|
|
<td width=\"20\" style=\"border-left: 0\" align=\"center\">$anotacoesCliente</td> |
|
|
<td width=\"20\" style=\"border-left: 0\" align=\"center\">$sound</td> |
|
|
<td width=\"20\" align=\"center\">$acaoAtualiza</td> |
|
|
</tr>"; |
|
|
|
|
|
//<td width=\"20\" style=\"border-left: 0\" align=\"center\">$acaoApaga</td> |
|
|
|
|
|
$numReg++; |
|
|
} |
|
|
|
|
|
$imgCampEmail = "<a href=\"javaScript:NovaJanela('index.php?idProg=349&cmp=1', 'clientMail', '1250', '750', 'jhTela')\"><img src=\"imgSite/Message.png\" border=\"0\" width=\"16\" height=\"16\" align=\"absmiddle\" alt=\"Criar campanha com a lista de contatos selecionados na tela\" title=\"Criar campanha com a lista de contatos selecionados na tela\"> Campanha Email</a>"; |
|
|
$imgNovo = GetLinkFormInsert("cadCliente", 'images/novo.gif', $filtroNovo, ' Novo Registro'); |
|
|
$imgUpdate = '<a href="javaScript:NovaJanela(\'index.php?idProg=338\', \'novaListaCliente\', \'500\', \'500\', \'jhTela\')"><img src="imgSite/Update.png" width="16px" border="0" align="absmiddle" /> Nova Lista</a>'; |
|
|
|
|
|
$smarty->assign("list_cliente", GetClienteLista($cloid)); |
|
|
$smarty->assign("client_tipo_contato", GetClientTipoContato($clientTipoContato)); |
|
|
$smarty->assign("client_etapa", GetEtapaProspect($clientEtapa)); |
|
|
$smarty->assign("client_status", GetStatusProspect($clientStatus, true)); |
|
|
$smarty->assign("client_uf", GetClientUf($clientUf, true)); |
|
|
$smarty->assign("tipoDataSet", $tipoDataSet); |
|
|
$smarty->assign("dataIni", $dataIni); |
|
|
$smarty->assign("dataFim", $dataFim); |
|
|
$smarty->assign("linhas", $linha); |
|
|
$smarty->assign("paramPesquisa", $paramPesquisa); |
|
|
$smarty->assign("imgCampEmail", $imgCampEmail); |
|
|
$smarty->assign("imgNovo", $imgNovo); |
|
|
$smarty->assign("imgUpdate", $imgUpdate); |
|
|
$smarty->assign("links", $links); |
|
|
$smarty->assign("pagMostra", $pagMostra); |
|
|
$smarty->assign("totalReg", $totalReg); |
|
|
$smarty->assign("pgn", $_REQUEST["pgn"]); |
|
|
$smarty->assign("bloco", $_REQUEST["bloco"]); |
|
|
$smarty->assign("pg", $_REQUEST["pg"]); |
|
|
$smarty->assign("agentes", (PermissaoAdminCampanha(GetMatricula()) ? AgenteCampanha($client_user_contato) : '')); |
|
|
|
|
|
function enviarMailCampanha($mail, $dbcon) { |
|
|
$params = array(); |
|
|
$representante = GetUsuario($dbcon, GetMatricula()); |
|
|
$params['email_template'] = 'campanha_vendas.html'; |
|
|
$params['email_conta_envio'] = "vendas@simplesip.com.br"; |
|
|
$params['email_senha_envio'] = "SimpleS#Root@2021"; |
|
|
$params['email_retorno'] = "vendas@simplesip.com.br"; |
|
|
$params['email_template_info'] = array('NOME' => $representante['nome']); |
|
|
$params['email_html'] = 'campanha_vendas.html'; |
|
|
$params['email_envio'] = $mail; |
|
|
$params['email_assunto'] = 'Transforme agora em seu Callcenter'; |
|
|
if (SendEmail($params)) { |
|
|
$msg = "Email enviado com sucesso!"; |
|
|
sendedMail($dbcon, $mail); |
|
|
} else { |
|
|
$msg = "N<EFBFBD>o foi poss<EFBFBD>vel realizar o envio!"; |
|
|
} |
|
|
return $msg; |
|
|
} |
|
|
|
|
|
function sendedMail($conn, $mail) { |
|
|
$query = "UPDATE pbx_cliente SET client_status = '16' WHERE client_email = '{$mail}';"; |
|
|
pg_query($conn, $query); |
|
|
} |
|
|
|
|
|
function ExportaContato($conn, $outid) { |
|
|
|
|
|
try { |
|
|
$dados = getContatoLead($outid); |
|
|
|
|
|
if (!$dados) { |
|
|
throw new Exception("Este contato ainda possui pendencias para ser exportado!"); |
|
|
} |
|
|
|
|
|
$msql = ConectaMssql(); |
|
|
if (!mssql_query('begin tran', $conn)) { |
|
|
throw new Exception("Nao foi possivel inciar uma trasacao com o Venda+."); |
|
|
} |
|
|
|
|
|
//@dataEnvio, @VendedorId, @RazaoSocial, @Email, @Telefone, @TipoPessoa, @CGC_CPF, @RegiaoId, @uf, @municipio, @ClienteStatusId, @ClienteIdExterno, @NomeContato |
|
|
$query = sprintf("EXEC dbo.sip_insert_prospect '%s','%s',%s,%s,'%s','%s','%s',%s,'%s',%s,'%s','%s', %s, '%s'", |
|
|
$dados['conf_data'], $dados['vendedor_id'], |
|
|
QuotedStr($dados['client_razao_social']), QuotedStr($dados['client_email']), |
|
|
$dados['client_telefone'], ($dados['client_tipo_pessoa'] == "CNPJ" ? "J" : "F"), |
|
|
trim($dados['client_documento']), |
|
|
QuotedStr($dados['client_regiao']), $dados['client_uf'], QuotedStr($dados['client_municipio']), |
|
|
"EM PROSPEC<EFBFBD><EFBFBD>O", $dados['client_id'], QuotedStr($dados['client_nome_contato']), GetMatricula()); |
|
|
|
|
|
if (!$result = mssql_query($query, $conn)) { |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel exportar o contato.\n{$query}\n"); |
|
|
} |
|
|
|
|
|
if (!$data = mssql_fetch_row($result)) { |
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel consultar o contato no VM.\n{$query}\n"); |
|
|
} |
|
|
|
|
|
if (!mssql_query('commit tran', $conn)) { |
|
|
throw new Exception("Nao foi possivel inciar uma trasacao com o Venda+."); |
|
|
} |
|
|
|
|
|
mssql_close($msql); |
|
|
AtulizaContatoVendaMais($outid, $data[0]); |
|
|
return "Contato Exportado com sucesso! Contato ID: " . $data[0]; |
|
|
} catch (Exception $ex) { |
|
|
mssql_query('rollback tran', $conn); |
|
|
return $ex->getMessage(); |
|
|
} |
|
|
} |
|
|
|
|
|
function getContatoLead($outid = null) { |
|
|
|
|
|
$query = "SELECT client_data_contato, client_razao_social, |
|
|
client_email_contato, client_fone_contato, client_tipo_contato, client_documento, |
|
|
client_endereco, client_uf, client_municipio, client_status, client_id, client_nome_contato, client_user_contato, |
|
|
(select reg_sigla from mkt_regiao_estados where reg_uf = b.client_uf) as client_regiao |
|
|
FROM pbx_cliente b |
|
|
WHERE client_status = '13' "; |
|
|
|
|
|
if ($outid) { |
|
|
$query .= " AND client_out_id = '$outid' "; |
|
|
} |
|
|
|
|
|
$result = pg_query($query); |
|
|
$resp = pg_fetch_assoc($result); |
|
|
|
|
|
$rs = GetCodVendedor($resp['client_user_contato']); |
|
|
$resp['vendedor_id'] = $rs['cod_vendedor']; |
|
|
$resp['conf_data'] = date('Y-m-d H:i:s'); |
|
|
return $resp; |
|
|
} |
|
|
|
|
|
function GetCodVendedor($clientUserContato) { |
|
|
$query = sprintf("SELECT * FROM pbx_cliente_referencia_vendedor WHERE matricula = '%s'", $clientUserContato); |
|
|
$result = pg_query($query); |
|
|
$resp = pg_fetch_assoc($result); |
|
|
if (!$resp) { |
|
|
throw new Exception('Voc<EFBFBD> n<EFBFBD>o possui nenhum vendedor referenciado!'); |
|
|
} |
|
|
return $resp; |
|
|
} |
|
|
|
|
|
function AtulizaContatoVendaMais($outid, $idvenda) { |
|
|
$query = sprintf("UPDATE pbx_cliente SET client_out_id = '{$idvenda}', client_status = '21', user_reg = %s, client_update = NOW() WHERE client_out_id = '$outid';", GetIdUser()); |
|
|
$result = pg_query($query); |
|
|
if (!$result) { |
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel atualizar o registro de exporta<EFBFBD><EFBFBD>o'); |
|
|
} |
|
|
} |
|
|
|
|
|
?>
|
|
|
|