You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.4 KiB

#!/usr/bin/php -q
<?php
include('configAcesso.php');
include('util/util.php');
/*
* DIRETORIO DE LOG's GERADOS
*/
$pathLog = "/var/log/funil_vendas_diario.log";
/*
* Este script tem o proposito de popular a tabela vds_chamadas_diaria que guarda a
* sumarizacao das chamadas para dar mais desempenho nos relatorios.
*
* Para importar todo o banco de uma vez executo o script com o primeiro parametros igual a "I" ex.: ./funilVendasDiario.php I;
* Para importar um periodo passe as datas inicial e final ex.: ./funilVendasDiario.php 01/01/2020 31/03/2020;
* Para importar o dia atual nao precisa passar nada, as datas serao automaticamente ajustadas;
*/
$params = GetParamsVendaDiaria($argv);
/*
* Tipo da importacao, "I" -> importa o banco todo, "D" usa um range de datas
*/
$import = $params['tipo_importa'];
/*
* Data Inicial.
*/
$dataIni = $params['data_inicial'];
/*
* Data Final.
*/
$dataFim = $params['data_final'];
/*
* CONFIGURACAO AO BANCO DE DADOS LOCAL
*/
$conn = GetConnect();
try {
if ($import == "I") {
$query = "truncate table vds_chamadas_diario;\n";
} else {
$query = sprintf("delete from vds_chamadas_diario where data_ini >= %s and data_ini <= %s;\n", QuotedStr($dataIni), QuotedStr($dataFim));
}
$query .= "insert into vds_chamadas_diario (id_pk_emp,originadas,atendidas,vendido,nao_atendidas,data_ini,data_fim)
select a.emp_id,count(*) as originadas,
sum(case when(chm_evento in( 'COMPLETAAGENT', 'TRANSFER', 'COMPLETACALLER', 'COMPLETECALLER', 'COMPLETEAGENT'))then 1 else 0 end) as atendidas,
sum(case when(clas_descricao = 'VENDA')then 1 else 0 end) as vendido,
sum(case when(chm_evento = 'NOANSWERS')then 1 else 0 end) as nao_atendidas,
chm_data_bilhete,chm_data_bilhete
from vds_chamadas a
left outer join vds_classificacoes b on b.emp_id = a.emp_id and b.uid = a.uid \n";
if ($import != "I") {
$query .= sprintf("where chm_data_bilhete >= %s and chm_data_bilhete <= %s \n", QuotedStr($dataIni), QuotedStr($dataFim));
}
$query .= " group by a.emp_id,chm_data_bilhete,chm_data_bilhete
order by chm_data_bilhete; ";
if (!pg_query($conn, $query)) {
RaiseExcept("N<EFBFBD>o foi possivel atualizar os dados. \nCmd: {$query}\n", true);
}
} catch (Exception $ex) {
GravarLog($ex->getMessage());
}
function GravarLog($log, $type = 'ERROR') {
global $pathLog;
$log = date('d/m/Y H:i:s') . " [ $type ] " . $log . "\n";
file_put_contents($pathLog, $log, FILE_APPEND);
}
function GetConnect() {
$str = sprintf("host='%s' port='%s' dbname='%s' user='%s' password='%s'", "127.0.0.1", "5432", "pbx", "contacte", "ctepgSQL");
$conn = pg_connect($str);
return $conn;
}
function GetParamsVendaDiaria($argv) {
$params = array();
$param1 = isset($argv[1]) ? $argv[1] : false;
$param2 = isset($argv[2]) ? $argv[2] : false;
/*
* Indica que <EFBFBD> para importar todo o banco de dados.
*/
if ($param1 == 'I') {
return array("tipo_importa" => 'I', 'data_inicial' => '', 'data_final' => '');
}
$params['tipo_importa'] = 'D';
$params['data_inicial'] = is_date($param1) ? FormatDtMssql($param1) : date("Y-m-d");
$params['data_final'] = ($param2 && is_date($param2)) ? FormatDtMssql($param2) : date("Y-m-d");
return $params;
}