|
|
|
|
#!/usr/bin/php -q
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
include "vendor/autoload.php";
|
|
|
|
|
include 'util/Logger.php';
|
|
|
|
|
|
|
|
|
|
use phpseclib3\Net\SFTP;
|
|
|
|
|
|
|
|
|
|
$logger = new Logger('backupfiles');
|
|
|
|
|
|
|
|
|
|
$data_manual = isset($argv[1]) ? $argv[1] : null;
|
|
|
|
|
$data_manual1 = isset($argv[2]) ? $argv[2] : $data_manual;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Impress<EFBFBD>o com formato UTF8
|
|
|
|
|
*/
|
|
|
|
|
header("Content-type: text/html; charset=UTF8");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Caminho relativo do local tempor<EFBFBD>rio do relat<EFBFBD>rio;
|
|
|
|
|
*/
|
|
|
|
|
define('REL_FILE', '/tmp/RETORNO_DISCADOR.txt');
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* CONEXAO COM FTP QUINTINO
|
|
|
|
|
*/
|
|
|
|
|
define('SFTP_HOST', 'sftp-ctbc.marketdata.com.br');
|
|
|
|
|
define('SFTP_PORT', '22');
|
|
|
|
|
define('SFTP_USER', 'algar-quint-ext-01');
|
|
|
|
|
define('SFTP_PASSWD', 'guardiao@50QTN');
|
|
|
|
|
define('SFTP_FOLDER', 'Descentralizado');
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$sftp = new SFTP(SFTP_HOST);
|
|
|
|
|
$login = $sftp->login(SFTP_USER, SFTP_PASSWD);
|
|
|
|
|
if ($login) {
|
|
|
|
|
$sftp->chdir(SFTP_FOLDER);
|
|
|
|
|
} else {
|
|
|
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel conectar ao servidor de SFTP.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
while (comparaData($data_manual, $data_manual1)) {
|
|
|
|
|
$dataRel = $data_manual;
|
|
|
|
|
if (!$data_manual) {
|
|
|
|
|
$dataRel = date('Y-m-d', strtotime(date('Y-m-d') . '-1 days'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** Execu<EFBFBD><EFBFBD>o da extra<EFBFBD><EFBFBD>o do relat<EFBFBD>rio. **/
|
|
|
|
|
Query($dataRel);
|
|
|
|
|
$rename = RenameFile($dataRel);
|
|
|
|
|
|
|
|
|
|
if (!$sftp->put($rename, $rename, SFTP::SOURCE_LOCAL_FILE)) {
|
|
|
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel enviar o arquivo para o servidor de SFTP.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$logger->success("File Sended $rename - $dataRel");
|
|
|
|
|
unlink($rename);
|
|
|
|
|
|
|
|
|
|
if ($data_manual) {
|
|
|
|
|
$data_manual = date("Y-m-d", strtotime($data_manual . ' +1 day'));
|
|
|
|
|
} else {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
$logger->error($ex->getMessage());
|
|
|
|
|
unlink($rename);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Renoveia o arquivo para o formato previsto pela ALGAR
|
|
|
|
|
* Ex: AAAAMMDD_RETORNO_DISCADOR.txt
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
function RenameFile($dataFim) {
|
|
|
|
|
if (file_exists(REL_FILE)) {
|
|
|
|
|
$rename = str_replace("-", "", $dataFim) . '_RETORNO_DISCADOR.txt';
|
|
|
|
|
copy(REL_FILE, $rename);
|
|
|
|
|
unlink(REL_FILE);
|
|
|
|
|
return $rename;
|
|
|
|
|
}
|
|
|
|
|
throw new Exception("Nao foi possivel renomeiar o Relatorio Gerado!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Query para a extra<EFBFBD><EFBFBD>o do relat<EFBFBD>rio de acordo com a data prevista na
|
|
|
|
|
* entrada dados informa<EFBFBD><EFBFBD>es no momento de execu<EFBFBD><EFBFBD>o do script;
|
|
|
|
|
*
|
|
|
|
|
* @param date $dataIni
|
|
|
|
|
* @param date $dataFim
|
|
|
|
|
*/
|
|
|
|
|
function Query($dataRel) {
|
|
|
|
|
ConnectAlgar();
|
|
|
|
|
$query = sprintf("COPY(
|
|
|
|
|
SELECT
|
|
|
|
|
'' AS cod_campanha,
|
|
|
|
|
'' AS cod_cliente,
|
|
|
|
|
'' AS num_cpf_cnpj,
|
|
|
|
|
'' AS nome_cliente,
|
|
|
|
|
CASE WHEN (length(b.chm_dst) <= 9) THEN a.emp_ddd || b.chm_dst
|
|
|
|
|
WHEN (length(b.chm_dst) >= 12) THEN SUBSTRING(b.chm_dst,2,12)
|
|
|
|
|
ELSE b.chm_dst END AS telefone_tentativa_contato,
|
|
|
|
|
CASE WHEN (b.chm_evento = 'NOANSWERS')THEN 'SEM SUCESSO' ELSE 'SUCESSO' END AS des_motivo_finalizacao,
|
|
|
|
|
clas_descricao_item AS des_sub_motivo_finalizacao,
|
|
|
|
|
'' AS elegivel,
|
|
|
|
|
chm_calldate AS dt_contato,
|
|
|
|
|
'' AS des_campanha,
|
|
|
|
|
prt_proto_parceiro AS oportunity_key,
|
|
|
|
|
emp_nome_fantasia AS nome_parceiro,
|
|
|
|
|
emp_cnpj AS cnpj_parceiro
|
|
|
|
|
FROM vds_empresas a
|
|
|
|
|
INNER JOIN vds_chamadas b ON a.emp_id = b.emp_id
|
|
|
|
|
INNER JOIN vds_classificacoes c ON b.uid = c.uid
|
|
|
|
|
INNER JOIN vds_protcolos d ON b.uid = d.uid
|
|
|
|
|
WHERE b.chm_evento IN ('COMPLETAAGENT','COMPLETACALLER','COMPLETACALLERRAMAL','COMPLETACALLERRAMAL','NOANSWERS')
|
|
|
|
|
AND length(b.chm_dst) > 6
|
|
|
|
|
AND b.chm_data_bilhete::DATE = '%s'
|
|
|
|
|
AND bloqueio_anatel is null
|
|
|
|
|
ORDER BY emp_nome_fantasia )
|
|
|
|
|
TO '%s'
|
|
|
|
|
(DELIMITER '|', FORMAT CSV)", $dataRel, REL_FILE);
|
|
|
|
|
|
|
|
|
|
pg_query($query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Conex<EFBFBD>o com o banco de dados da ALGAR.
|
|
|
|
|
*
|
|
|
|
|
* @return Object
|
|
|
|
|
*/
|
|
|
|
|
function ConnectAlgar() {
|
|
|
|
|
$dbhost = "127.0.0.1";
|
|
|
|
|
$dbport = "5432";
|
|
|
|
|
$dbname = "pbx";
|
|
|
|
|
$user = "contacte";
|
|
|
|
|
$passwd = "ctepgSQL";
|
|
|
|
|
$conn = pg_connect("host=$dbhost port=$dbport dbname=$dbname user=$user password=$passwd");
|
|
|
|
|
return $conn;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function comparaData($data1, $data2) {
|
|
|
|
|
if ($data1) {
|
|
|
|
|
return strtotime($data1) - strtotime($data2) <= 0;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
?>
|