|
|
|
|
#!/usr/bin/php -q
|
|
|
|
|
<?php
|
|
|
|
|
//error_reporting(E_ALL);
|
|
|
|
|
//ini_set('display_errors', 1);
|
|
|
|
|
ini_set('display_errors', 'Off');
|
|
|
|
|
include("php_serial.class.php");
|
|
|
|
|
include("util/util.php");
|
|
|
|
|
include("funcoesBilhetes.php");
|
|
|
|
|
include('classificaBilhetes.php');
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Define o metodo a ser usado na gera<EFBFBD><EFBFBD>o do bilhetes
|
|
|
|
|
*/
|
|
|
|
|
$metodoExporta = INTEGRA_SERIAL;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Se for passado uma ou mais "datas separadas por virgula(informar as mesmas sem espa<EFBFBD>os)" na linha de comando
|
|
|
|
|
* sera feita a exporta<EFBFBD><EFBFBD>o com base nos parametros informados
|
|
|
|
|
*/
|
|
|
|
|
$isDataInfo;
|
|
|
|
|
$dataInfo = GetDataInfo($argv, $isDataInfo, $metodoExporta);
|
|
|
|
|
|
|
|
|
|
if (@EmExecucao()) {
|
|
|
|
|
exit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!GetIsDataInfo()) {
|
|
|
|
|
GravaDiasImportar($conn, $metodoExporta);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$dataExportar = !$isDataInfo ? GetDatasExportar() : $dataInfo;
|
|
|
|
|
|
|
|
|
|
foreach ($dataExportar as $data) {
|
|
|
|
|
if (GetIsDataInfo() || Integrar($conn, $data)) {
|
|
|
|
|
if (!VerificaFileExists($metodoExporta, $data)) {
|
|
|
|
|
GeraBilheteLeucotron($conn, $data, $metodoExporta);
|
|
|
|
|
if ($metodoExporta == INTEGRA_SERIAL)
|
|
|
|
|
break;
|
|
|
|
|
else
|
|
|
|
|
sleep(60);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
$fileExport = GetPathFile($data);
|
|
|
|
|
LogTrf("VerificaFileExists", "Verifica se o arquivo j<EFBFBD> existe ", "Arquivo j<EFBFBD> existe! Arquivo: $fileExport Data: $data.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@LimpaExecucao();
|
|
|
|
|
|
|
|
|
|
function GeraBilheteLeucotron($conn, $data, $metodo = INTEGRA_SOCKET) {
|
|
|
|
|
$retSck = 0;
|
|
|
|
|
$recurso = @GetRecurso($metodo, $data);
|
|
|
|
|
|
|
|
|
|
if ($recurso) {
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL) {
|
|
|
|
|
$recurso->deviceOpen("a+b");
|
|
|
|
|
}
|
|
|
|
|
$numReg = 0;
|
|
|
|
|
$arquivo = '';
|
|
|
|
|
$bilhetesSerial = array();
|
|
|
|
|
$rows = @ClassificaBilhetes($data, $metodo);
|
|
|
|
|
|
|
|
|
|
//ramal,data,duracao,numero,rota,tronco,ramaltransfer,tpLigacao,contaSenha,ramalOrig,procid,reg,uid,id,
|
|
|
|
|
foreach ($rows as $row) {
|
|
|
|
|
$ignorado = " ";
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL) {
|
|
|
|
|
$bilhetesSerial[$row["id"]] = $data;
|
|
|
|
|
}
|
|
|
|
|
//$id_bilhetes = $row["uid"];
|
|
|
|
|
$ramal = substr(trim($row["ramal"]), -4);
|
|
|
|
|
//if(strlen($ramal) > 4)$ramal = substr ($ramal, -4);
|
|
|
|
|
$ramal = str_pad($ramal, 5, " ", STR_PAD_RIGHT);
|
|
|
|
|
$dataBil = $row["data"];
|
|
|
|
|
$duracao = SecondToStrTime($row["duracao"]);
|
|
|
|
|
$rota = "";
|
|
|
|
|
$tronco = str_pad(trim(AjustaTronco($row["tronco"])), 4, "0", STR_PAD_LEFT);
|
|
|
|
|
$numero = trim($row["numero"]);
|
|
|
|
|
$numero = (substr($numero, 0, 1) == "0") ? substr($numero, 1) : $numero;
|
|
|
|
|
$numero = str_pad($numero, 16, " ", STR_PAD_RIGHT);
|
|
|
|
|
$ramaltransfer = str_pad("", 4, " ", STR_PAD_RIGHT);
|
|
|
|
|
$tpLigacao = trim(strtoupper($row["tpLigacao"]));
|
|
|
|
|
$sep = " ";
|
|
|
|
|
$ramalVerifica = trim($ramal);
|
|
|
|
|
if (($tpLigacao == 'O') && (is_numeric($ramalVerifica))) {
|
|
|
|
|
$linha = sprintf('%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s', $ignorado, $ramal, $sep, $dataBil, $sep, $duracao, $sep, $rota, $sep, $tronco, $sep, $numero, $sep, $ramaltransfer, $sep, $tpLigacao, "\n");
|
|
|
|
|
$arquivo .= $linha;
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL) {
|
|
|
|
|
$recurso->sendMessage($linha, 0.2);
|
|
|
|
|
$retSck = true;
|
|
|
|
|
LogTrf("GeraBilhetes", "sendMessage", $linha);
|
|
|
|
|
} else {
|
|
|
|
|
$retSck = fwrite($recurso, $linha);
|
|
|
|
|
}
|
|
|
|
|
if (!$retSck)
|
|
|
|
|
break;
|
|
|
|
|
$numReg++;
|
|
|
|
|
}
|
|
|
|
|
if ($metodo == INTEGRA_SOCKET)
|
|
|
|
|
usleep(200000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($retSck) {
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL) {
|
|
|
|
|
AtulizaInfo($conn, 0, $bilhetesSerial, '', INTEGRA_SERIAL);
|
|
|
|
|
} else {
|
|
|
|
|
if (!GetIsDataInfo()) {
|
|
|
|
|
AtulizaInfo($conn, $numReg, $arquivo, $data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
LogTrf("GeraBilhetes", "Gera<EFBFBD><EFBFBD>o dos Bilhetes", "Arquivo exportado: " . $GLOBALS["data"]);
|
|
|
|
|
} else {
|
|
|
|
|
$erro_info = error_get_last();
|
|
|
|
|
$erro = $erro_info['message'];
|
|
|
|
|
LogTrf("GeraBilhetes", "Gera<EFBFBD><EFBFBD>o dos Bilhetes", "Erro ao Atualizar Arquivo! Erro: " . $erro);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL)
|
|
|
|
|
LogTrf("Conexao", "Acesso Tarifador", "Erro ao conectar a porta Serial");
|
|
|
|
|
else
|
|
|
|
|
LogTrf("Conexao", "Acesso Tarifador", "Erro ao conectar servidor de socket");
|
|
|
|
|
}
|
|
|
|
|
if ($metodo == INTEGRA_SERIAL)
|
|
|
|
|
$recurso->deviceClose();
|
|
|
|
|
else
|
|
|
|
|
@fclose($recurso);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetDataInfo($argv, &$isDataInfo, $type = 0) {
|
|
|
|
|
$dataUser = isset($argv[1]) ? trim($argv[1]) : '';
|
|
|
|
|
$dataInfo = ($type == INTEGRA_SERIAL) ? ($dataUser ? $dataUser : date('Y-m-d') ) : $dataUser;
|
|
|
|
|
|
|
|
|
|
$isDataInfo = !empty($dataInfo);
|
|
|
|
|
|
|
|
|
|
return array($dataInfo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function GetIsDataInfo() {
|
|
|
|
|
return $GLOBALS["isDataInfo"];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function VerificaFileExists($metodo, $data) {
|
|
|
|
|
return ($metodo == INTEGRA_FILE) && file_exists(GetPathFile($data));
|
|
|
|
|
}
|
|
|
|
|
?>
|