|
|
|
|
#!/usr/bin/php -q
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* RELATORIO DE PESQUISA
|
|
|
|
|
*
|
|
|
|
|
* Este relat<EFBFBD>rio busca as informa<EFBFBD><EFBFBD>es conforme as pesquisas e repostas dos clientes
|
|
|
|
|
* das filias Algar, para ser encaminha em um Servico de armazenamento da AWS S3Bucket
|
|
|
|
|
*
|
|
|
|
|
* # Os recursos utilizados sao os SDK AWS PHP para fazer a comunicao.
|
|
|
|
|
*
|
|
|
|
|
* DOCs:
|
|
|
|
|
* https://docs.aws.amazon.com/code-samples/latest/catalog/php-s3-PutObject.php.html
|
|
|
|
|
* https://gist.github.com/keithweaver/70eb06d98b008113ce97f6148fbea83d
|
|
|
|
|
*/
|
|
|
|
|
require 'vendor/autoload.php';
|
|
|
|
|
require 'util/Logger.php';
|
|
|
|
|
|
|
|
|
|
use Aws\S3\S3Client;
|
|
|
|
|
use Aws\S3\Exception\S3Exception;
|
|
|
|
|
|
|
|
|
|
define('PATH_FILE_PSQAWS', '/tmp/RELATORIO_PESQUISA_AWS.csv');
|
|
|
|
|
header("Content-type: text/html; charset=UTF8");
|
|
|
|
|
|
|
|
|
|
$log = new Logger('relpesquisaaws', true);
|
|
|
|
|
|
|
|
|
|
$bucketName = 'algartelecom-datalake-digital';
|
|
|
|
|
$IAM_KEY = 'AKIAYVQKUW52THP55R6O';
|
|
|
|
|
$IAM_SECRET = '2xIcQrXSdFcbs8fwEaZtMS9cuT5x9LIC4jCJRMB5';
|
|
|
|
|
|
|
|
|
|
$data_manual = isset($argv[1]) ? $argv[1] : null;
|
|
|
|
|
$data_manual1 = isset($argv[2]) ? $argv[2] : $data_manual;
|
|
|
|
|
|
|
|
|
|
while (comparaData($data_manual, $data_manual1)) {
|
|
|
|
|
$dataRel = $data_manual;
|
|
|
|
|
$log->debug('PREPARANDO ARQUIVO PARA ENVIO '. $data_manual);
|
|
|
|
|
if (!$data_manual) {
|
|
|
|
|
$dataRel = date('Y-m-d', strtotime(date('Y-m-d') . '-1 days'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getQuery($data_manual, $log);
|
|
|
|
|
$rename = RenameFile($dataRel);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$s3 = S3Client::factory(
|
|
|
|
|
array(
|
|
|
|
|
'credentials' => array(
|
|
|
|
|
'key' => $IAM_KEY,
|
|
|
|
|
'secret' => $IAM_SECRET
|
|
|
|
|
),
|
|
|
|
|
'version' => 'latest',
|
|
|
|
|
'region' => 'us-east-1'
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$log->error($e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$keyName = 'simplesIp/simplesIp_data_arrive/' . basename($rename);
|
|
|
|
|
try {
|
|
|
|
|
$file = $rename;
|
|
|
|
|
$return = $s3->putObject(
|
|
|
|
|
array(
|
|
|
|
|
'Bucket' => $bucketName,
|
|
|
|
|
'Key' => $keyName,
|
|
|
|
|
'SourceFile' => $file,
|
|
|
|
|
'StorageClass' => 'REDUCED_REDUNDANCY'
|
|
|
|
|
)
|
|
|
|
|
);
|
|
|
|
|
$log->debug('STATUS ENVIO '. print_r((array)$return, true));
|
|
|
|
|
} catch (S3Exception $e) {
|
|
|
|
|
$log->error($e->getMessage());
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$log->error($e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
unlink($rename);
|
|
|
|
|
if ($data_manual) {
|
|
|
|
|
$data_manual = date("Y-m-d", strtotime($data_manual . ' +1 day'));
|
|
|
|
|
} else {
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getQuery($data_manual, $log) {
|
|
|
|
|
ConnectAlgar();
|
|
|
|
|
try {
|
|
|
|
|
$query = sprintf("COPY(
|
|
|
|
|
SELECT a.uid,chm_calldate, emp_nome_fantasia,chm_fila,chm_dst,prt_proto_parceiro,pl_descricao,
|
|
|
|
|
(SELECT array_to_string(array_agg(pq_questao || ' | ' || po_opcao), ' || ') FROM vds_pesquisa WHERE uniqueid = a.uid) as pesquisa
|
|
|
|
|
FROM vds_chamadas a
|
|
|
|
|
INNER JOIN vds_protcolos b ON b.emp_id = a.emp_id AND b.uid = a.uid
|
|
|
|
|
INNER JOIN vds_empresas c ON c.emp_id = a.emp_id
|
|
|
|
|
INNER JOIN vds_pesquisa_log d ON d.uniqueid = a.uid AND d.emp_id = a.emp_id
|
|
|
|
|
LEFT JOIN vds_pesquisa e ON e.emp_id = a.emp_id AND e.uniqueid = a.uid
|
|
|
|
|
LEFT JOIN vds_pesquisa_regitra f ON f.uniqueid = e.uniqueid
|
|
|
|
|
WHERE a.chm_evento IN ('COMPLETEAGENT','COMPLETECALLER','COMPLETAAGENT','COMPLETACALLER', 'TRANSFER')
|
|
|
|
|
AND chm_data_bilhete = '%s'
|
|
|
|
|
GROUP BY a.uid,emp_nome_fantasia, chm_fila, chm_calldate, chm_src, chm_dst, prt_proto_parceiro, pl_descricao
|
|
|
|
|
ORDER BY emp_nome_fantasia DESC )
|
|
|
|
|
TO '%s' DELIMITER ';'", $data_manual, PATH_FILE_PSQAWS);
|
|
|
|
|
|
|
|
|
|
return pg_query($query);
|
|
|
|
|
} catch (Exception $ex) {
|
|
|
|
|
$log->error($ex->getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Renoveia o arquivo para o formato previsto pela ALGAR
|
|
|
|
|
* Ex: YYYY_MM_DD.csv
|
|
|
|
|
* @return boolean
|
|
|
|
|
*/
|
|
|
|
|
function RenameFile($dataFim) {
|
|
|
|
|
if (file_exists(PATH_FILE_PSQAWS)) {
|
|
|
|
|
$rename = str_replace("-", "_", $dataFim) . '.csv';
|
|
|
|
|
copy(PATH_FILE_PSQAWS, $rename);
|
|
|
|
|
unlink(PATH_FILE_PSQAWS);
|
|
|
|
|
return $rename;
|
|
|
|
|
}
|
|
|
|
|
throw new Exception("Nao foi possivel renomeiar o Relatorio Gerado!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function comparaData($data1, $data2) {
|
|
|
|
|
if ($data1) {
|
|
|
|
|
return strtotime($data1) - strtotime($data2) <= 0;
|
|
|
|
|
} else {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
?>
|