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.

162 lines
6.9 KiB

<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
$template = "indisponivel.tpl";
$tpLayout = 1;
$path_som = $_SESSION["path_som"];
define("DIR_INDISPONIBILIDADE", $path_som);
$jsStartup[] = "function desabUpload(valor){document.getElementById(\"ind_file\").disabled = (valor != \"\");}";
$smarty->assign("arqIndisponivel", GetArqInd());
if (GetFormAcao() == FORM_NEW) {
$acaoForm = FORM_INSERT;
$dacSel = $_GET["idDac"] ? $_GET["idDac"] : ( $_SESSION["SSdacInsert"] ? $_SESSION["SSdacInsert"] : GetIdDacPadrao($dbcon, $_SESSION["SSidUser"]) );
$smarty->assign("ind_data", date('d/m/Y'));
$smarty->assign("ind_inicio", "00:00");
$smarty->assign("ind_fim", "23:59");
$smarty->assign("listaDac", GetDac($dbcon, $dacSel));
//$smarty->assign("arqIndisponivel", GetArqInd());
} else {
$arquivo = $_FILES["ind_file"];
$acaoForm = FORM_INSERT;
if (!validaForm($fields, $fieldsObrig, $fieldsType, $fieldsDiplay, $msgForm) || !ValidaArquivoIndisponivilidade()) {
if (!ValidaArquivoIndisponivilidade())
$msgForm[] = "Inclua apenas arquivos mp3!";
//formata mensagem de erro para script
$msgRet = "";
foreach ($msgForm as $value)
$msgRet .= "\\n" . $value;
$jsStartup[] = "alert('$msgRet');";
//valores no form
foreach ($fields as $value)
$smarty->assign($value, $_POST[$value]);
$dacSel = $_POST["listaDacs"];
$smarty->assign("listaDac", GetDac($dbcon, $dacSel));
//$smarty->assign("arqIndisponivel", GetArqInd());
}
else {
$moveFile = 1;
if (!empty($arquivo["name"])) {
if (!ExecutaComando('ls /', $dbcon)) {
echo "<script language=\"JavaScript\" type=\"text/JavaScript\">
<!--
alert('N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o, verifique as configura<EFBFBD><EFBFBD>es padr<EFBFBD>o!');
window.close();
//-->
</script>";
exit;
}
$nomeArq = strtolower($_FILES['ind_file']['name']);
//$caracteres = array("ç","~","^","]","[","{","}",";",":","´",",",">","<","-","/","|","@","$","%","ã","â","á","à","é","è","ó","ò","+","=","*","&","(",")","!","#","?","`","ã"," ","©","'","\\");
//$arquivo_tratado = str_replace($caracteres,"",$nomeArq);
$arquivo_tratado = LimpaString($nomeArq);
$nomeArq = DIR_INDISPONIBILIDADE . $arquivo_tratado;
$moveFile = move_uploaded_file($_FILES['ind_file']['tmp_name'], $nomeArq);
$nomeArq = split('\.', $nomeArq);
$updArq = $nomeArq[0];
$extensao = $nomeArq[1];
if ($extensao == 'mp3') {
$comando = "ffmpeg -y -i $updArq.mp3 -ar 8000 -ac 1 -ab 64 -f mulaw $updArq.ulaw";
ExecutaComando($comando, $dbcon);
}
$nomeArq = DIR_INDISPONIBILIDADE . $arquivo["name"];
if ($extensao == 'mp3') {
$arqMov = DIR_INDISPONIBILIDADE . GetDirArqSom($dbcon) . $arquivo_tratado;
$comando = "mv -f $updArq.mp3 $arqMov";
ExecutaComando($comando, $dbcon);
}
}
if (!$moveFile) {
$msgRet = "N<EFBFBD>o foi poss<EFBFBD>vel gravar o aquivo!";
//echo $msgRet;
$jsStartup[] = "alert('$msgRet');";
//valores no form
foreach ($fields as $value)
$smarty->assign($value, $_POST[$value]);
$dacSel = $_POST["listaDacs"];
$smarty->assign("listaDac", GetDac($dbcon, $dacSel));
//$smarty->assign("arqIndisponivel", GetArqInd());
} else if (!$_POST["ind_feriado"] && empty($arquivo["name"]) && empty($_POST["listaArqIndisponivel"])) {
$msgRet = "arquivo de audio <EFBFBD> obrigat<EFBFBD>rio!";
$jsStartup[] = "alert('$msgRet');";
//valores no form
foreach ($fields as $value)
$smarty->assign($value, $_POST[$value]);
$dacSel = $_POST["listaDacs"];
$smarty->assign("listaDac", GetDac($dbcon, $dacSel));
} else {
$fer = $_POST["ind_feriado"] ? 1 : 0;
$desc = empty($_POST["ind_descricao"]) ? 'null' : QuotedStr($_POST["ind_descricao"]);
$arq = !empty($arquivo["name"]) ? $arquivo_tratado : $_POST["listaArqIndisponivel"];
$query = "insert into pbx_indisponivel
( id_dac, ind_data, ind_inicio, ind_fim, id_usuario, ind_file, ind_feriado, ind_descricao)
values(%s, %s, %s, %s, %s, %s, %s, %s)";
$query = sprintf($query, $_POST["listaDacs"], QuotedStr(FormatDtMssql($_POST["ind_data"])), QuotedStr($_POST["ind_inicio"]), QuotedStr($_POST["ind_fim"]), GetIdUser(), QuotedStr($arq), $fer, $desc);
$result = pg_query($dbcon, $query);
if ($result) {
$jsStartup[] = "window.opener.ResetForm();";
$msg = "Registro inserido com sucesso!";
$smarty->assign("msg", $msgRet);
$jsStartup[] = "alert('$msg');";
$jsStartup[] = "window.close();";
} else {
$msg = "N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o";
$jsStartup[] = "alert('$msg');";
$erroNat = pg_last_error($dbcon);
$erroNat = stripos($erroNat, "key violates") || stripos($erroNat, "pkIndisponivel") ? "Per<EFBFBD>odo j<EFBFBD> Cadastrado" : $erroNat;
$msgErro = "N<EFBFBD>o foi poss<EFBFBD>vel realizar a opera<EFBFBD><EFBFBD>o! Erro: " . $erroNat;
$smarty->assign("msgErro", $msgErro);
foreach ($fields as $value)
$smarty->assign($value, $_POST[$value]);
$smarty->assign("ind_descricao", $_POST["ind_descricao"]);
$dacSel = !$_POST["listaDacs"] ? $_SESSION["SSdacInsert"] : $_POST["listaDacs"];
$smarty->assign("listaDac", GetDac($dbcon, $dacSel));
}
}
}
}
function GetArqInd() {
$diretorio = dir(DIR_INDISPONIBILIDADE);
$arqs = " <select name=\"listaArqIndisponivel\" id=\"anuncio\" onchange=\"desabUpload(this.value)\">\n";
$arqs .= "<option value=\"\" selected>------------</option>\n";
while ($file = $diretorio->read()) {
if ((substr($file, 0, 1) != '.') && (!stripos($file, ".old")) && ($file != 'mp3') && ($file != 'arquivos_mp3')) {
$arq = explode('.', $file);
$arqs .= "<option value=\"$file\">$arq[0]</option>\n";
}
}
$arqs .= "</select>\n";
return $arqs;
}
function ValidaArquivoIndisponivilidade() {
$arq = $_FILES['ind_file']['name'];
return !empty($_POST["listaArqIndisponivel"]) || (empty($_POST["listaArqIndisponivel"]) && ( stripos($arq, "mp3") !== false ));
}
?>