forked from SimplesIP/pabx-app
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.
145 lines
5.0 KiB
145 lines
5.0 KiB
#!/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ção do bilhetes |
|
*/ |
|
$metodoExporta = INTEGRA_SERIAL; |
|
|
|
/* |
|
* Se for passado uma ou mais "datas separadas por virgula(informar as mesmas sem espaços)" na linha de comando |
|
* sera feita a exportaçã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á existe ", "Arquivo já 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ção dos Bilhetes", "Arquivo exportado: " . $GLOBALS["data"]); |
|
} else { |
|
$erro_info = error_get_last(); |
|
$erro = $erro_info['message']; |
|
LogTrf("GeraBilhetes", "Geraçã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)); |
|
} |
|
?>
|
|
|