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.

298 lines
11 KiB

<?php
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
function GetTypesForm() {
return array('texto', 'numero', 'data', 'dataHora', 'arquivo', 'alpha', 'alphanumerico');
}
function GetLinhasSelect($dbCon, $tableName, $tableWhere, $fieldsSelect, $fields, $fieldParamConsulta, $fieldsTypes, &$fieldsForm, $arKeyDb, $arOperacao, $defOperacao = 'insert', $ini = 0) {
// Campos que v<EFBFBD>o retornar do banco na consulta
$fildQuery = ArSelectToStr($fieldsSelect);
$arFieldSelect = explode(',', $fildQuery);
$fieldImg = $fieldsForm['fieldImg'];
$fieldImgOper = $fieldsForm['fieldImgOper'];
//link default para novo registro
$lkInsertDef = GetOperacoes($defOperacao, $arOperacao['arqCampanha'], 0);
if ($ini) {
$colspan = (count($arFieldSelect) + count($arOperacao));
$fieldsForm['linhas'] = sprintf('<tr%s><td align="center" colspan="%s">%s %s</td></tr>', $class, $colspan, 'Informe os parametros e clique em consultar!', $lkInsertDef);
return;
}
// Formata a clausula where
$where = is_array($tableWhere) ? ArWhereToStr($tableWhere, $fieldParamConsulta, $fieldsForm) : $tableWhere;
// Formata a query
$query = sprintf('select %s from %s where %s', $fildQuery, $tableName, $where);
$result = pg_query($dbCon, $query);
$class = $fieldsForm['classLinha'];
$class = empty($class) ? "" : " class=\"$class\" ";
if ($result && pg_num_rows($result)) {
$linha = "";
while ($row = pg_fetch_array($result)) {
$linha .= sprintf('<tr%s>', $class);
foreach ($fieldsSelect as $key => $value) {
if ($value) {
$vl = $row[$key];
$linha .= sprintf('<td align="%s">%s</td>', GetAlignForm($fieldsTypes[$key]), FormataValue($row, $fieldsTypes, $vl, $fieldImg[$key], $fieldImgOper[$key]));
}
}
foreach ($arOperacao as $key => $value) {
$linha .= sprintf('<td align="center">%s</td>', GetOperacoes($key, $value, $row[$arKeyDb[0]]));
}
$linha .= '</tr>';
}
$fieldsForm['linhas'] = $linha;
} else {
$colspan = (count($arFieldSelect) + count($arOperacao));
$fieldsForm['linhas'] = sprintf('<tr%s><td align="center" colspan="%s">%s %s</td></tr>', $class, $colspan, 'Nenhum registro encontrado!', $lkInsertDef);
}
}
function GetCabecalioSelect($arSelect, $arDisplay, &$arFieldForm, $arType, $arOperacao) {
$class = $arFieldForm['clasHead'];
$class = empty($arFieldForm['clasHead']) ? '' : " clas=\"$class\" ";
$str = sprintf("<tr%s>", $class);
foreach ($arSelect as $key => $value) {
if ($value) {
$str .= sprintf('<th align="%s">%s</th>', GetAlignForm($arType[$key]), $arDisplay[$key]);
}
}
$oper = count($arOperacao);
$str .= $oper ? sprintf('<th align="center" colspan="%s">Opera<EFBFBD><EFBFBD>es</th>', $oper) : "";
$str .= '</tr>';
$arFieldForm['headLinhas'] = $str;
}
function GetAlignForm($type) {
$tp = explode(',', $type);
switch ($tp[0]) {
case 'texto' :
case 'alpha' :
case 'alphanumerico' : return 'left';
case 'numero': return 'right';
case 'data':
case 'dataHora': return 'center';
default : return 'center';
}
}
function FormataValue($rowDados, $fieldsTypes, $vl, $fieldImg, $fieldImgOper) {
if (isset($fieldImg)) {
$imgs = explode(';', $fieldImg);
foreach ($imgs as $imgValus) {
$arImg = explode(':', $imgValus);
if ($arImg[1] == $vl) {
if (isset($fieldImgOper)) {
$arOper = explode(',', $fieldImgOper);
$varUrl = sprintf('&%s=%s', $arOper[2], $rowDados[$arOper[2]]);
return GetLinkForm($varUrl, $arOper[3], $arOper[0], $arOper[6], $arOper[4], $arOper[5], $arImg[2]);
//'jnAtvCampanha,,cmp_id,116,610, 275, Ativa<EFBFBD><EFBFBD>o/Destiva<EFBFBD><EFBFBD>o Campanha!'
}
return sprintf('<img src="%s" border="0" Title="%s">', $arImg[1], $arImg[2]);
}
}
}
return $vl;
}
function ArWhereToStr($arWhere, $arParam, $arForm) {
$str = "";
/*
* O array $arWhere tem como chave($key) o campo da busca
* e o valor($value) operador a ser utilizado utilizado
*
* O array $arParam sua chave <EFBFBD> igual a chave em $arForm que
* cont<EFBFBD>m os valores vindos dos formularios
*/
foreach ($arWhere as $key => $value) {
$campoBusca = $key;
$operadorBusca = $value;
/*
* Esta funcao retorna a chave do array passado no primeiro parametro
* quando o valor deste array coincidir com o valor passado no segundo
* parametro
*/
$KeyValor = ArKeyFromValue($arParam, $key);
$valorBusca = (strtolower($operadorBusca) == 'like') ? QuotedStr(PreparaLike($arForm[$KeyValor])) : QuotedStr($arForm[$KeyValor]);
$str .= (empty($str) ? "" : " AND ") . sprintf('%s %s %s', $campoBusca, $operadorBusca, $valorBusca);
}
return $str;
//$tableWhere = array('cmp_descricao' => 'like');
//$fieldParamConsulta = array('txtConsulta' => 'cmp_descricao');
}
function ArSelectToStr($arFields) {
global $fieldsDefault;
$str = "";
foreach ($arFields as $key => $value) {
if ($value) {
if ($value == 2)
$key = QuotedStr($fieldsDefault[$key]) . ' as ' . $key;
if (empty($str)) {
$str = $key;
} else {
$str .= ', ' . $key;
}
}
}
return " " . $str . " ";
}
function ArKeyFromValue($ar, $val) {
foreach ($ar as $key => $value) {
if ($val == $value) {
return $key;
}
}
return "";
}
function GetVarForm($arSource, &$arDest) {
foreach ($arSource as $key => $values)
$arDest[$key] = $arSource[$key];
}
function GetOperacoes($oper, $param, $key, $paramAux = '') {
$prm = explode(',', $param);
$idProg = $GLOBALS['idProg'];
$nomeJanela = $prm[0];
$imagem = $prm[1];
$campoKey = $prm[2];
$progId = $prm[3];
$wJan = $prm[4];
$hJan = $prm[5];
$title = $prm[6];
if ($oper == 'insert') {
$lk = GetLinkFormInsert($nomeJanela, $imagem);
} else if ($oper == 'update') {
$varUrl = sprintf('&%s=%s', $campoKey, $key);
$lk = GetLinkFormUpdate($varUrl, $nomeJanela, $imagem);
} else if ($oper == 'delete') {
$nomeFuncao = 'DeletaRegistro';
$lk = GetFormDelete($idProg, $key, $paramAux, $nomeFuncao, $imagem);
} else {
$varUrl = sprintf('&%s=%s', $campoKey, $key);
$lk = GetLinkForm($varUrl, $progId, $nomeJanela, $title, $wJan, $hJan, $imagem);
}
return $lk;
}
function GetFormDelete($idProg, $id, $param, $nomeFuncao, $imagem = "") {
/*
* $param: passar parametro de url completo ex.: &nomeVar=valor
*/
$link = "";
$img = "";
$imgDef = empty($imagem) ? "imgSite/fecha16.png" : $imagem;
$atributos = "resizable=NO,scrollbars=NO";
$janW = $GLOBALS["janW"] ? $GLOBALS["janW"] : 500;
$janH = $GLOBALS["janH"] ? $GLOBALS["janH"] : 400;
$action = FORM_DELETE;
$img = "<img src=\"$imgDef\" width=\"16\" height=\"16\" border=\"0\" title=\"Apaga este registro!\">";
$link = "<a href=\"javaScript:$nomeFuncao('$idProg', '$id' , '$param');\">$img</a>";
return $link;
}
function InsertDefault(&$arForm, $arDefault) {
foreach ($arDefault as $key => $value) {
if (!$arForm[$key]) {
$arForm[$key] = $arDefault[$key];
}
}
}
function GetAcaoForm($arForm) {
/*
* Retorna o dipo de acao que o usuario esta realizando
* com base no parametro formAction
*/
if (isset($arForm["btGravar"]) && ($arForm["btGravar"] == "Salvar"))
return FORM_SAVE;
else if ((isset($arForm["btConsulta"]) && ($arForm["btConsulta"] == "Consultar")) || (!isset($arForm["formAction"])))
return FORM_SELECT;
if (isset($arForm["formAction"]) && ($arForm["formAction"] == FORM_NEW))
return FORM_NEW;
else if (isset($arForm["formAction"]) && ($arForm["formAction"] == FORM_UPDATE))
return FORM_UPDATE;
else if (isset($arForm["formAction"]) && ($arForm["formAction"] == FORM_DELETE))
return FORM_DELETE;
else
return $arForm["formAction"];
}
function ModificaAction(&$fieldsForm, $arFuncoes, $arChange) {
$modif = 0;
foreach ($arFuncoes as $value) {
if (isset($fieldsForm[$value]))
$modif = 1;
}
if ($modif) {
$fieldsForm['formAction'] = FORM_UNDEF;
} else if (!isset($fieldsForm['btGravar'])) {
foreach ($arChange as $key => $value) {
if (isset($fieldsForm[$key]))
$fieldsForm['formAction'] = $value;
}
}
}
function fmtMsg($str, $silent = 1) {
$arReplace = array("'", "\n");
if (!$silent)
$GLOBALS['jsStartup'][] = sprintf("alert('%s');", trim(str_replace($arReplace, "", $str)));
return sprintf('<span style="font-size: 12px; font-weight:bold; color:#0000FF;">%s</span>', $str);
}
function fmtErro($str, $erroAnexo = '') {
if (!empty($erroAnexo) && IsAdmin()) {
$arReplace = array("^", "~", "`", "'", "'", "\n");
$GLOBALS['jsStartup'][] = sprintf("alert('%s %s');", $str, trim(str_replace($arReplace, "", RemoveAcentos($erroAnexo))));
$strJs = $str;
$str = sprintf('<span style="font-size: 12px; font-weight:bold; color:#000000;">%s</span>
<span style="font-size: 12px; font-style:italic; color:#FF0000;">Erro: %s</span', $str, $erroAnexo);
} else {
$GLOBALS['jsStartup'][] = "alert('$str');";
$str = sprintf('<span style="font-size: 12px; font-weight:bold; color:#FF0000;"> %s</span>', $str);
}
return $str;
}
function GetLinkForm($varUrl, $idProg, $nomeJanela, $title = "", $wJan = 0, $hJan = 0, $imagem = "", $text = '') {
$link = "";
$img = "";
$imgDef = empty($imagem) ? "imgSite/desel12.gif" : $imagem;
$atributos = "resizable=NO,scrollbars=NO";
$janW = $wJan ? $wJan : ($GLOBALS["janW"] ? $GLOBALS["janW"] : 500);
$janH = $hJan ? $hJan : ($GLOBALS["janH"] ? $GLOBALS["janH"] : 400);
$titleImg = !empty($title) ? $title : 'Opera<EFBFBD><EFBFBD>es';
$action = FORM_UNDEF;
$img = "<img src=\"$imgDef\" border=\"0\" title=\"$titleImg\" align=\"absmiddle\" style=\"vertical-align: middle\">";
$link = "<a href=\"javaScript:NovaJanela('index.php?idProg=$idProg&formAction=$action$varUrl', '$nomeJanela', '$janW', '$janH', '$atributos');\">$img$text</a>";
return $link;
}
?>