deviceSet($device); return $serial; } else return false; } function GetPathFile($data, $type = INTEGRA_FILE, $path = '') { if ($type == INTEGRA_SERIAL) { $port = empty($path) ? '/dev/ttyS0' : $path; return $port; } return '/var/lib/asterisk/scripts/tarifador/bilhetes/bilhetes01'; return sprintf('/var/lib/asterisk/scripts/tarifador/bilhetes/_%s_bilhetes.txt', $data); return '/troca/bilhetes01'; } function ConectSck() { $conn = $GLOBALS["conn"]; $query = "select prm_tarifador_host, prm_tarifador_port from pbx_parametros where id = 1"; $result = pg_query($conn, $query); if ($result) { $row = pg_fetch_array($result); $host = $row["prm_tarifador_host"]; $port = $row["prm_tarifador_port"]; return fsockopen($host, $port); } return false; } function GravaLogBil($log) { $path = "/var/log/tarifador.log"; $arq = fopen($path, 'a'); fwrite($arq, $log); fclose($arq); } function LogTrf($metodo, $descricao, $msg, $adc = '') { $data = date("Y-m-d H:i:s"); $adc = trim($adc) == '' ? '' : sprintf("\nInformacao adicional: %s\n", $adc); /* * Captura informacoes sobre erros no sistema */ $str = sprintf("Funcao: [%s] Data: [%s] \nDescricao: %s\n%sMsg: %s\n\n", $metodo, $data, $descricao, $adc, $msg); GravaLogBil($str); } function Integrar($conn, $data) { $query = "select trf_data, trf_num_reg, trf_file, trf_exportado from pbx_tarifador_log where trf_data = '$data'"; $result = pg_query($conn, $query); if (!$result) { return false; } else { $row = pg_fetch_array($result); return $row["trf_exportado"] == 0; } return false; } function GetDatasExportar() { $conn = $GLOBALS["conn"]; $query = "select trf_data from pbx_tarifador_log where trf_exportado = 0"; $result = pg_query($conn, $query); if (!$result) { return false; } else { $datas = array(); while ($row = pg_fetch_array($result)) { $datas[] = $row["trf_data"]; } return $datas; } } function AtulizaInfo($conn, $numReg, $arquivo, $data, $type = INTEGRA_SOCKET) { if ($type == INTEGRA_SERIAL) { foreach ($arquivo as $key => $value) { $query = "insert into pbx_bilhetes_online(id_bilhetes, data)values('$key', '$value');"; $result = pg_query($conn, $query); } } else { $tentativa = 0; while (true) { $arquivo = QuotedStr($arquivo); $query = "update pbx_tarifador_log set trf_num_reg = '$numReg', trf_file = $arquivo, trf_exportado = '1' where trf_data = '$data'"; $result = pg_query($conn, $query); if ($result || ($tentativa > 10)) { return true; } sleep(1); $conStr = $GLOBALS["conStr"]; @cdpg_close(); $conn = pg_connect($conStr); $tentativa++; } return false; } } function InsereInfo($conn, $data) { $query = "insert into pbx_tarifador_log(trf_data)values('$data')"; return pg_query($conn, $query); } function GetDataIntegra($conn) { $query = "select now()::date -1 as data"; $result = pg_query($conn, $query); $row = pg_fetch_array($result); return $row["data"]; } function GravaDiasImportar($conn, $type = 0) { /* * Caso o servidor tenha ficado inativo por um periodo * esta funcao inclui os dias que devem ser importados * na tabela pbx_tarifador_log */ if ($type == INTEGRA_SERIAL) return true; $data = GetDataIntegra($conn); $query = "select '$data' - max(trf_data) as dias_importar, max(trf_data) as ult_importacao from pbx_tarifador_log"; $result = pg_query($conn, $query); if (!$result) return false; $row = pg_fetch_array($result); $diasImportar = $row["dias_importar"]; $ultImportacao = $row["ult_importacao"]; if ($diasImportar > 0) { $query = "begin"; $result = pg_query($conn, $query); $cont = 0; while ($cont < $diasImportar) { $cont++; $query = "select cast('$ultImportacao' as date) + $cont as data"; $result = pg_query($conn, $query); if (!$result) { break; } $row = pg_fetch_array($result); $result = InsereInfo($conn, $row['data']); if (!$result) { break; } } if ($result) { $query = "commit"; $result = pg_query($conn, $query); return $result; } else { $query = "rollback"; @pg_query($conn, $query); LogTrf("GravaDiasImportar", "Inclui periodo de importacao", "Erro: " . pg_last_error($conn)); return false; } } } function SecondToStrTime($sec) { $seconds = $sec; $hours = floor($seconds / 3600); $seconds -= $hours * 3600; $minutes = floor($seconds / 60); $seconds -= $minutes * 60; $hours = strlen($hours) == 1 ? "0" . $hours : $hours; $minutes = strlen($minutes) == 1 ? "0" . $minutes : $minutes; $seconds = strlen($seconds) == 1 ? "0" . $seconds : $seconds; return "$hours:$minutes:$seconds"; } function EmExecucao() { $path = trim(GetPathFileExec()); if (file_exists($path)) { @LogTrf("EmExecucao", "Verifica se o arquivo esta executando", "O script ja esta em execucao! Path: " . $path); return true; } $result = fopen(GetPathFileExec(), 'a'); if (!$result) { @LogTrf("EmExecucao", "Verifica se foi possivel criar aquivo de controle de execucao", "Erro ao Criar Arquivo!"); } return !$result; } function LimpaExecucao() { if (file_exists(GetPathFileExec())) { unlink(GetPathFileExec()); } } function GetPathFileExec() { /* * Arquivo de controle de execucao simultanea */ return sprintf('/tmp/tarifador_%s.txt', date('Y-m-d')); } function AjustaTronco($tronco) { /* * Remove copia ate encontrar um -(hifem) se existir */ return strpos($tronco, '-') !== false ? substr($tronco, 0, strpos($tronco, '-')) : $tronco; } ?>