Commit ecf234c0fbae409a9856358d3a21df810a21463b

Authored by Carolina Cavalcanti
0 parents

Disponibilizando fontes do e-Sic-Livre

- versão inicial
- mesma versão enviada para o Avalia SPB
Showing 299 changed files with 71362 additions and 0 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 299 files displayed.

.gitignore 0 → 100644
  1 +++ a/.gitignore
... ... @@ -0,0 +1,2 @@
  1 +nbproject/
  2 +js/RGraph/demos
... ...
acompanhamento/cadastro.php 0 → 100644
  1 +++ a/acompanhamento/cadastro.php
... ... @@ -0,0 +1,364 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 + include("manutencao.php");
  12 + include("../inc/topo.php");
  13 +?>
  14 +
  15 +<script language="JavaScript" src="../js/XmlHttpLookup.js"></script>
  16 +
  17 +<script src="inc/js/functions.js"></script>
  18 +<h1>Informação da Solicitação</h1>
  19 +<br><br>
  20 +<script>
  21 + function fechaTudo(){
  22 + document.getElementById('lnDemanda1').style.display = 'none';
  23 + document.getElementById('lnDemanda2').style.display = 'none';
  24 + document.getElementById('lnDemanda3').style.display = 'none';
  25 + document.getElementById('lnDemanda4').style.display = 'none';
  26 + document.getElementById('lnDemanda5').style.display = 'none';
  27 + document.getElementById('lnAnexos').style.display = 'none';
  28 + document.getElementById('lnMovimentacoes').style.display = 'none';
  29 + //if(isDefined(document.getElementById('lnListaRecursos')))
  30 + // document.getElementById('lnListaRecursos').style.display = 'none';
  31 +
  32 + //se tiver em andamento e nao for ultima instancia
  33 + <?php if($situacao == "N" and $instancia != "U") {?>
  34 + document.getElementById('btnRecurso').style.display = 'none';
  35 + document.getElementById('btnEnviar').style.display = 'none';
  36 + <?php }?>
  37 + document.getElementById('lnRecurso1').style.display = 'none';
  38 + document.getElementById('lnRecurso2').style.display = 'none';
  39 + }
  40 +
  41 + function abreFechaDemanda()
  42 + {
  43 + if(document.getElementById('lnDemanda1').style.display == '')
  44 + {
  45 + document.getElementById('lnDemanda1').style.display = 'none';
  46 + document.getElementById('lnDemanda2').style.display = 'none';
  47 + document.getElementById('lnDemanda3').style.display = 'none';
  48 + document.getElementById('lnDemanda4').style.display = 'none';
  49 + document.getElementById('lnDemanda5').style.display = 'none';
  50 + }
  51 + else
  52 + {
  53 + document.getElementById('lnDemanda1').style.display = '';
  54 + document.getElementById('lnDemanda2').style.display = '';
  55 + document.getElementById('lnDemanda3').style.display = '';
  56 + document.getElementById('lnDemanda4').style.display = '';
  57 + document.getElementById('lnDemanda5').style.display = '';
  58 + }
  59 + }
  60 +
  61 + function abreFechaAnexos()
  62 + {
  63 + if(document.getElementById('lnAnexos').style.display == '')
  64 + document.getElementById('lnAnexos').style.display = 'none';
  65 + else
  66 + document.getElementById('lnAnexos').style.display = '';
  67 + }
  68 +
  69 +
  70 + function abreFechaMovimentacoes()
  71 + {
  72 + if(document.getElementById('lnMovimentacoes').style.display == '')
  73 + document.getElementById('lnMovimentacoes').style.display = 'none';
  74 + else
  75 + document.getElementById('lnMovimentacoes').style.display = '';
  76 + }
  77 +
  78 + function abreFechaListaRecursos()
  79 + {
  80 + if(document.getElementById('lnListaRecursos').style.display == '')
  81 + document.getElementById('lnListaRecursos').style.display = 'none';
  82 + else
  83 + document.getElementById('lnListaRecursos').style.display = '';
  84 + }
  85 +
  86 +
  87 + function executaOperacao(acao)
  88 + {
  89 + if(confirm("Confirma operação?"))
  90 + {
  91 + document.getElementById("acao").value = acao;
  92 + document.getElementById("formulario").submit();
  93 + }
  94 + }
  95 +
  96 + function preparaRecurso(){
  97 + fechaTudo();
  98 + document.getElementById("btnRecurso").style.display = 'none';
  99 + document.getElementById("btnEnviar").style.display = '';
  100 + document.getElementById("lnRecurso1").style.display = '';
  101 + document.getElementById("lnRecurso2").style.display = '';
  102 + document.getElementById('btnCancelar').style.display = '';
  103 + }
  104 +
  105 +
  106 + function cancelaAcao()
  107 + {
  108 + fechaTudo();
  109 + document.getElementById('lnDemanda1').style.display = '';
  110 + document.getElementById('lnDemanda2').style.display = '';
  111 + document.getElementById('lnDemanda3').style.display = '';
  112 + document.getElementById('lnDemanda4').style.display = '';
  113 + document.getElementById('lnDemanda5').style.display = '';
  114 +
  115 + //se tiver em andamento e nao for ultima instancia
  116 + <?php if($situacao == "N" and $instancia != "U") {?>
  117 + document.getElementById('btnRecurso').style.display = '';
  118 + document.getElementById('btnEnviar').style.display = 'none';
  119 + <?php }?>
  120 + document.getElementById("lnRecurso1").style.display = 'none';
  121 + document.getElementById("lnRecurso2").style.display = 'none';
  122 +
  123 + document.getElementById('btnCancelar').style.display = 'none';
  124 + }
  125 +</script>
  126 +<form action="<?php echo URL_BASE_SISTEMA;?>acompanhamento/cadastro.php" id="formulario" method="post">
  127 +
  128 +<input type="hidden" name="fltnumprotocolo" value="<?php echo $fltnumprotocolo; ?>">
  129 +<input type="hidden" name="fltsolicitante" value="<?php echo $fltsolicitante; ?>">
  130 +<input type="hidden" name="fltsituacao" value="<?php echo $fltsituacao; ?>">
  131 +
  132 +<input type="hidden" name="acao" id="acao" value="<?php echo $acao; ?>">
  133 +
  134 +<input type="hidden" name="idsolicitacao" value="<?php echo $idsolicitacao; ?>">
  135 +<input type="hidden" name="idsecretariaresposta" value="<?php echo $idsecretariaresposta; ?>">
  136 +<input type="hidden" name="idsolicitante" id="idsolicitante" value="<?php echo $idsolicitante;?>">
  137 +<input type="hidden" name="idsolicitacaoorigem" value="<?php echo $idsolicitacaoorigem; ?>">
  138 +<input type="hidden" name="numeroprotocolo" value="<?php echo $numeroprotocolo; ?>">
  139 +<input type="hidden" name="instancia" id="instancia" value="<?php echo $instancia;?>">
  140 +<input type="hidden" name="idtiposolicitacao" id="idtiposolicitacao" value="<?php echo $idtiposolicitacao;?>">
  141 +<input type="hidden" name="recursosolicitado" id="recursosolicitado" value="<?php echo $recursosolicitado;?>">
  142 +<input type="hidden" name="situacao" id="situacao" value="<?php echo $situacao;?>">
  143 +<input type="hidden" name="textosolicitacao" id="textosolicitacao" value="<?php echo $textosolicitacao;?>">
  144 +<input type="hidden" name="formaretorno" id="formaretorno" value="<?php echo $formaretorno;?>">
  145 +<input type="hidden" name="dataprevisaorespota" id="dataprevisaorespota" value="<?php echo $dataprevisaorespota;?>">
  146 +<input type="hidden" name="datasolicitacao" id="datasolicitacao" value="<?php echo $datasolicitacao;?>">
  147 +<input type="hidden" name="datarecebimentosolicitacao" id="datarecebimentosolicitacao" value="<?php echo $datarecebimentosolicitacao;?>">
  148 +<input type="hidden" name="usuariorecebimento" id="usuariorecebimento" value="<?php echo $usuariorecebimento;?>">
  149 +<input type="hidden" name="dataprorrogacao" id="dataprorrogacao" value="<?php echo $dataprorrogacao;?>">
  150 +<input type="hidden" name="motivoprorrogacao" id="motivoprorrogacao" value="<?php echo $motivoprorrogacao;?>">
  151 +<input type="hidden" name="usuarioprorrogacao" id="usuarioprorrogacao" value="<?php echo $usuarioprorrogacao;?>">
  152 +<input type="hidden" name="dataresposta" id="dataresposta" value="<?php echo $dataresposta;?>">
  153 +<input type="hidden" name="resposta" id="resposta" value="<?php echo $resposta;?>">
  154 +<input type="hidden" name="usuarioresposta" id="usuarioresposta" value="<?php echo $usuarioresposta;?>">
  155 +
  156 +
  157 +<table align="center" cellpadding="0" width="100%" cellspacing="1" class="tabDetalhe">
  158 + <tr>
  159 + <th align="left" width="100%" colspan="4" style="background-color: #abcdef" onclick="abreFechaDemanda()">DADOS DA SOLICITAÇÃO </th>
  160 + </tr>
  161 + <tr id="lnDemanda1">
  162 + <td align="left">
  163 + <b>Numero Protocolo</b> <br>
  164 + &nbsp;&nbsp;<?php echo $numeroprotocolo; ?>
  165 + </td>
  166 + <td align="left">
  167 + <b>Tipo Solicitação</b> <br>
  168 + &nbsp;&nbsp;<?php echo Solicitacao::getDescricaoTipoSolicitacao($idtiposolicitacao); ?>
  169 + <?php if(!empty($idsolicitacaoorigem)){?>
  170 + <a href="<?php echo URL_BASE_SISTEMA;?>acompanhamento/cadastro.php?codigo=<?php echo $idsolicitacaoorigem?>">[Visualizar Processo Origem]</a>
  171 + <?php }?>
  172 + </td>
  173 + <td align="left">
  174 + <b>Situação</b> <br>
  175 + &nbsp;&nbsp;<?php echo Solicitacao::getDescricaoSituacao($situacao); ?>
  176 + </td>
  177 + <td align="left">
  178 + <b>Forma Retorno</b> <br>
  179 + &nbsp;&nbsp;<?php echo Solicitacao::getDescricaoFormaRetorno($formaretorno);?>
  180 + </td>
  181 + </tr>
  182 + <tr id="lnDemanda2">
  183 + <td align="left" valign="top">
  184 + <b>Data da Solicitação</b> <br>
  185 + &nbsp;&nbsp;<?php echo $datasolicitacao; ?>
  186 + </td>
  187 + <td align="left" valign="top">
  188 + <b>Previsão Retorno</b> <br>
  189 + &nbsp;&nbsp;<?php echo $dataprevisaorespota; ?>
  190 + </td>
  191 + <td align="left" valign="top">
  192 + <b>Solicitação Recebida em</b> <br>
  193 + &nbsp;&nbsp;<?php echo !empty($datarecebimentosolicitacao)?$datarecebimentosolicitacao." por ".$usuariorecebimento:"Não Recebido";?>
  194 + </td>
  195 + <td align="left" valign="top">
  196 + <b>Porrogação</b> <br>
  197 + &nbsp;&nbsp;<?php echo !empty($dataprorrogacao)?"Prorrogado em: ".$dataprorrogacao." por ".$usuarioprorrogacao. "<br>&nbsp;&nbsp;Motivo: ".$motivoprorrogacao:"Não Prorrogado";?>
  198 + </td>
  199 + </tr>
  200 + <tr id="lnDemanda3">
  201 + <td align="left" colspan="4">
  202 + <b>Solicitação</b><br>
  203 + &nbsp;&nbsp;<?php echo $textosolicitacao;?>
  204 + </td>
  205 + </tr>
  206 + <tr id="lnDemanda4">
  207 + <td align="left" colspan="2">
  208 + <b>Data Resposta</b> <br>
  209 + &nbsp;&nbsp;<?php echo $dataresposta;?>
  210 + </td>
  211 + <td align="left" colspan="2">
  212 + <b>Respondido por</b> <br>
  213 + &nbsp;&nbsp;<?php echo $usuarioresposta; ?>
  214 + </td>
  215 + </tr>
  216 + <tr id="lnDemanda5">
  217 + <td align="left" colspan="4">
  218 + <b>Resposta</b><br>
  219 + &nbsp;&nbsp;<?php echo $resposta;?>
  220 + </td>
  221 + </tr>
  222 + <tr>
  223 + <th align="left" colspan="6" onclick="abreFechaAnexos()" style="background-color: #abcdef">ANEXOS</th>
  224 + </tr>
  225 + <tr id="lnAnexos">
  226 + <td width="100%" colspan="4">
  227 + <table align="center" width="100%" cellpadding="0" cellspacing="1" class="tabListaDetalhe">
  228 + <?php
  229 + $rsAnexo = execQuery("select * from lda_anexo where idsolicitacao=$idsolicitacao order by idanexo");
  230 + $i=0;
  231 + while($row = mysql_fetch_array($rsAnexo)){
  232 + $i++;
  233 + ?>
  234 + <tr>
  235 + <td align="left"><a href="<?php echo getURL("lda")."/".$row['nome'];?>" target="_blank"><?php echo "Arquivo ".$i;?></a></td>
  236 + </tr>
  237 + <?php
  238 + }?>
  239 + </table>
  240 + </td>
  241 + </tr>
  242 + <tr>
  243 + <th align="left" colspan="4" style="background-color: #abcdef" onclick="abreFechaMovimentacoes()">MOVIMENTAÇÕES</th>
  244 + </tr>
  245 + <tr id="lnMovimentacoes">
  246 + <td width="100%" colspan="4">
  247 + <table align="center" width="100%" cellpadding="0" cellspacing="1" class="tabListaDetalhe">
  248 + <tr>
  249 + <th>Data Envio</th>
  250 + <th>Usuário Envio</th>
  251 + <th>Destino</th>
  252 + <th>Data Recebimento</th>
  253 + <th>Usuário Recebimento</th>
  254 + </tr>
  255 + <?php
  256 + $rsMov = Solicitacao::getMovimentacao($idsolicitacao);
  257 +
  258 + while($row = mysql_fetch_array($rsMov)){
  259 + ?>
  260 + <tr>
  261 + <td><?php echo bdToDate($row["dataenvio"]);?></td>
  262 + <td><?php echo $row["usuarioenvio"];?></td>
  263 + <td><?php echo $row["destino"];?></td>
  264 + <td><?php echo bdToDate($row["datarecebimento"]);?></td>
  265 + <td><?php echo $row["usuariorecebimento"];?></td>
  266 + </tr>
  267 + <?php
  268 + }?>
  269 + </table>
  270 + </td>
  271 + </tr>
  272 + <?php
  273 + //$permiterecurso = true;
  274 + $permiterecurso = Solicitacao::getPodeRecurso($idsolicitacao,$idsolicitacaoorigem);
  275 + if($instancia == "I") { //se for solicitação inicial, mostra os recursos se houver
  276 +
  277 + $existerecurso = true;
  278 + $rsRec = Solicitacao::getRecursos($idsolicitacao);
  279 + if(mysql_num_rows($rsRec) > 0)
  280 + {
  281 + $permiterecurso = false;
  282 + ?>
  283 + <tr>
  284 + <th align="left" style="background-color: #abcdef" colspan="4" onclick="abreFechaListaRecursos()">RECURSOS</th>
  285 + </tr>
  286 + <tr id="lnListaRecursos">
  287 + <td width="100%" colspan="4">
  288 + <table align="center" width="100%" cellpadding="0" cellspacing="1" class="tabListaDetalhe">
  289 + <tr>
  290 + <th>Data Solicitação</th>
  291 + <th>Recurso</th>
  292 + <th>Situação</th>
  293 + <th>Previsão Resposta</th>
  294 + <th>Data Resposta</th>
  295 + </tr>
  296 + <?php
  297 + while($row = mysql_fetch_array($rsRec)){
  298 + ?>
  299 + <tr>
  300 + <td><?php echo bdToDate($row["datasolicitacao"]);?></td>
  301 + <td><?php echo $row["tiposolicitacao"];?></td>
  302 + <td><?php echo Solicitacao::getDescricaoSituacao($row["situacao"]);?></td>
  303 + <td><?php echo bdToDate($row["dataprevisaoresposta"]);?></td>
  304 + <td><?php echo bdToDate($row["dataresposta"]);?></td>
  305 + </tr>
  306 + <?php
  307 + }?>
  308 + </table>
  309 + </td>
  310 + </tr>
  311 + <?php
  312 + }
  313 + }
  314 + ?>
  315 + <tr id="lnRecurso1" style="display: none">
  316 + <td valign="top" align="left">Solicitação de Recurso: </td>
  317 + <td colspan="3" align="left"><textarea name="txttextosolicitacao" id="txttextosolicitacao" rows="10" cols="60" onkeyup="setMaxLength(4000,this);"><?php echo $txttextosolicitacao;?></textarea></td>
  318 + </tr>
  319 + <tr id="lnRecurso2" style="display: none">
  320 + <td valign="top" align="left">Forma de retorno: </td>
  321 + <td align="left" colspan="3">
  322 + <select name="txtformaretorno" id="txtformaretorno">
  323 + <option value="E" <?php echo $txtformaretorno=="E"?"selected":""; ?>>E-mail</option>
  324 + <option value="C" <?php echo $txtformaretorno=="C"?"selected":""; ?>>Correio</option>
  325 + <option value="F" <?php echo $txtformaretorno=="F"?"selected":""; ?>>Fax</option>
  326 + </select>
  327 + </td>
  328 + </tr>
  329 + <tr>
  330 + <td colspan="4">
  331 + <br>
  332 + <?php
  333 + //se tiver resposta negada, e permitir recurso
  334 + if($situacao == "N" and $permiterecurso)
  335 + {
  336 + ?>
  337 + <input type="button" value="Solicitar Recurso" class="botaoformulario" name="recurso" id="btnRecurso" onclick="preparaRecurso();"/>
  338 + <input type="button" value="Enviar" class="botaoformulario" name="enviar" id="btnEnviar" onclick="executaOperacao(this.value);" style="display: none"/>
  339 + <?php
  340 + }
  341 + ?>
  342 +
  343 + <input type="button" value="Cancelar" class="botaoformulario" name="btnCancelar" id="btnCancelar" onclick="cancelaAcao();" style="display: none" />
  344 + <input type="button" value="Voltar" class="botaoformulario" name="voltar" onclick="location.href='<?php echo URL_BASE_SISTEMA;?>acompanhamento/index.php?<?php echo $parametrosIndex;?>'" />
  345 + </td>
  346 + </tr>
  347 +</table>
  348 +</form>
  349 +
  350 +<?php if($situacao == "N" or $situacao == "R"){?>
  351 + <br><br>
  352 + <iframe src="../enquete/" height="400" width="800" frameborder="0" />
  353 +<?php }?>
  354 +
  355 +<?php
  356 +if($acao == "Enviar")
  357 +{
  358 + echo "<script>preparaRecurso();</script>";
  359 +}
  360 +getErro($erro);
  361 +
  362 +
  363 +include("../inc/rodape.php");
  364 +?>
0 365 \ No newline at end of file
... ...
acompanhamento/index.php 0 → 100644
  1 +++ a/acompanhamento/index.php
... ... @@ -0,0 +1,122 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 +include("../inc/autenticar.php");
  12 +include_once("../class/solicitacao.class.php");
  13 +include("../inc/topo.php");
  14 +include("../inc/paginacaoPorPostIni.php");
  15 +
  16 +$filtro = "";
  17 +
  18 +$numprotocolo = $_REQUEST["fltnumprotocolo"];
  19 +$idsolicitante = getSession("uid");
  20 +$situacao = $_REQUEST["fltsituacao"];
  21 +
  22 +$parametrosIndex = "fltnumprotocolo=$numprotocolo&fltsituacao=$situacao"; //parametros a ser passado para a pagina de detalhamento, fazendo com que ao voltar para o index traga as informações passadas anteriormente
  23 +
  24 +if (!empty($numprotocolo)) $filtro.= " and concat(sol.numprotocolo,'/',sol.anoprotocolo) = '$numprotocolo'";
  25 +if (!empty($situacao)) $filtro.= " and sol.situacao = '$situacao'";
  26 +
  27 +
  28 +
  29 +//seleciona as solicitações não respondidas e sua ultima movimentação (recupera variaveis de configuracao de prazos)
  30 +/*
  31 + * Quando a situação for A ou T, trata da primeira tramitação do processo.
  32 + */
  33 +$sql = "select sol.*, tip.nome as tiposolicitacao
  34 + from lda_solicitacao sol, lda_tiposolicitacao tip
  35 + where tip.idtiposolicitacao = sol.idtiposolicitacao
  36 + and sol.idsolicitante = $idsolicitante
  37 + $filtro
  38 + order by sol.anoprotocolo, sol.numprotocolo, sol.idsolicitacao";
  39 +
  40 +/*if ($_REQUEST['imprimir']) {
  41 + generateReport(array("!PATH" => "ouv_CategoriaProblema.jasper", "@sql" => $sql, "@usuario" => $_SESSION['usuario'], "@titulo" => "Listagem das Categorias dos Problemas"));
  42 +}*/
  43 +
  44 +$rs = execQueryPag($sql);
  45 +
  46 +?>
  47 +<h1>Consulta de Solicitações Realizadas</h1>
  48 +<br><br>
  49 +<form action="<?php echo URL_BASE_SISTEMA;?>/acompanhamento/index.php" method="post" id="formulario">
  50 +<input type="hidden" name="pagina" id="pagina" value="<?php echo $pagina?>">
  51 +<fieldset style="width: 50%;">
  52 +<legend>Buscar:</legend>
  53 + <table align="center">
  54 + <tr>
  55 + <td nowrap>Nº do Protocolo (numero/ano):</td>
  56 + <td><input type="text" name="fltnumprotocolo" id="fltnumprotocolo" value="<?php echo $numprotocolo; ?>" maxlength="50" size="30" /></td>
  57 + </tr>
  58 + <tr>
  59 + <td>Situação:</td>
  60 + <td>
  61 + <select name="fltsituacao" id="fltsituacao">
  62 + <option value="" <?php echo empty($situacao)?"selected":""; ?>>--Todos--</option>
  63 + <option value="A" <?php echo $situacao=="A"?"selected":""; ?>>Aberto</option>
  64 + <option value="T" <?php echo $situacao=="T"?"selected":""; ?>>Em tramitação</option>
  65 + <option value="N" <?php echo $situacao=="N"?"selected":""; ?>>Negado</option>
  66 + <option value="R" <?php echo $situacao=="R"?"selected":""; ?>>Respondido</option>
  67 + </select>
  68 + </td>
  69 + </tr>
  70 + <tr>
  71 + <td colspan="2" align="center">
  72 + <br>
  73 + <input type="submit" class="botaoformulario" value="Buscar" name="acao" />
  74 + <input type="button" class="botaoformulario" value="Limpar" name="limpar" onclick="document.getElementById('fltnumprotocolo').value='';document.getElementById('fltsituacao').value='';" />
  75 + </td>
  76 + </tr>
  77 + </table>
  78 +</fieldset>
  79 +
  80 +<br>
  81 +<table class="tabLista">
  82 + <tr>
  83 + <th>Protocolo</th>
  84 + <th>Tipo de Solicitação</th>
  85 + <th>Data Solicitação</th>
  86 + <th>Previsão Resposta</th>
  87 + <th>Prorrogado?</th>
  88 + <th>Situação</th>
  89 + <th>Data Resposta</th>
  90 + </tr>
  91 + <?php
  92 + $cor=false;
  93 + while ($registro = mysql_fetch_array($rs)) {
  94 + $click = "editar('".$registro["idsolicitacao"]."&$parametrosIndex','".URL_BASE_SISTEMA."acompanhamento/cadastro');";
  95 +
  96 + if($cor)
  97 + $corLinha = "#dddddd";
  98 + else
  99 + $corLinha = "#ffffff";
  100 + $cor = !$cor;
  101 + ?>
  102 + <tr onMouseOver="this.style.backgroundColor = getCorSelecao(true);" onMouseOut="this.style.backgroundColor = '<?php echo $corLinha;?>';" style="background-color:<?php echo $corLinha;?>;cursor:pointer; cursor:hand; ">
  103 + <td onClick="<?php echo $click; ?>"><?php echo $registro["numprotocolo"]."/".$registro["anoprotocolo"]; ?></td>
  104 + <td onClick="<?php echo $click; ?>"><?php echo $registro["tiposolicitacao"]; ?></td>
  105 + <td onClick="<?php echo $click; ?>"><?php echo bdToDate($registro["datasolicitacao"]); ?></td>
  106 + <td onClick="<?php echo $click; ?>"><?php echo bdToDate($registro["dataprevisaoresposta"]); ?></td>
  107 + <td onClick="<?php echo $click; ?>"><?php echo (!empty($registro["dataprorrogacao"]))?"Sim":"Não"; ?></td>
  108 + <td onClick="<?php echo $click; ?>"><?php echo Solicitacao::getDescricaoSituacao($registro["situacao"]); ?></td>
  109 + <td onClick="<?php echo $click; ?>"><?php echo (!empty($registro["dataresposta"]))?bdToDate($registro["dataresposta"]):"-"; ?></td>
  110 + </tr>
  111 + <?php
  112 + } ?>
  113 + <tr>
  114 + <td align="right" colspan="12">
  115 + <?php include("../inc/paginacaoPorPostFim.php");?>
  116 + </td>
  117 + </tr>
  118 +</table>
  119 +</form>
  120 +<?php
  121 + include "../inc/rodape.php";
  122 +?>
0 123 \ No newline at end of file
... ...
acompanhamento/manutencao.php 0 → 100644
  1 +++ a/acompanhamento/manutencao.php
... ... @@ -0,0 +1,120 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 + include_once("../inc/autenticar.php");
  12 + include_once("../class/solicitacao.class.php");
  13 +
  14 + $codigo = $_GET["codigo"];
  15 + $acao = $_POST["acao"];
  16 +
  17 +
  18 + //persistencia dos campos de filtro do index
  19 + $fltnumprotocolo = $_REQUEST["fltnumprotocolo"];
  20 + $fltsituacao = $_REQUEST["fltsituacao"];
  21 +
  22 + $parametrosIndex = "fltnumprotocolo=$fltnumprotocolo&fltsituacao=$fltsituacao"; //parametros a ser passado para a pagina de detalhamento, fazendo com que ao voltar para o index traga as informações passadas anteriormente
  23 + //-----
  24 +
  25 + //se for passado código para edição e nao tiver sido postado informação do formulario busca dados do banco
  26 + if(!$_POST['acao'] and !empty($codigo))
  27 + {
  28 + $acao = "Alterar";
  29 +
  30 + //recupera campos da demanda
  31 + $sol = new Solicitacao($codigo);
  32 +
  33 +
  34 + $idsolicitacao = $sol->getIdSolicitacao();
  35 + $idsolicitante = $sol->getIdSolicitante();
  36 + $idsolicitacaoorigem = $sol->getIdSolicitacaoOrigem();
  37 + $numeroprotocolo = $sol->getNumeroProtocolo();
  38 + $textosolicitacao = $sol->getTextoSolicitacao();
  39 + $idtiposolicitacao = $sol->getIdTipoSolicitacao();
  40 + $instancia = Solicitacao::getInstaciaTipoSolicitacao($idtiposolicitacao);
  41 + $formaretorno = $sol->getFormaRetorno();
  42 + $situacao = $sol->getSituacao();
  43 + $datasolicitacao = $sol->getDataSolicitacao();
  44 + $datarecebimentosolicitacao = $sol->getDataRecebimentoSolicitacao();
  45 + $usuariorecebimento = $sol->getUsuarioRecebimento();
  46 + $dataprevisaoresposta = $sol->getDataPrevisaoResposta();
  47 + $dataprorrogacao = $sol->getDataProrrogacao();
  48 + $motivoprorrogacao = $sol->getMotivoProrrogacao();
  49 + $usuarioprorrogacao = $sol->getUsuarioProrrogacao();
  50 + $dataresposta = $sol->getDataResposta();
  51 + $resposta = $sol->getResposta();
  52 + $usuarioresposta = $sol->getUsuarioResposta();
  53 + $idsecretariaresposta = $sol->getIdSecretariaResposta();
  54 + }
  55 + else
  56 + {
  57 +
  58 + //recupera valores do formulario
  59 +
  60 + //campos de leitura
  61 + $idsolicitacao = $_POST['idsolicitacao'];
  62 + $idsolicitante = $_POST['idsolicitante'];
  63 + $idsolicitacaoorigem = $_POST['idsolicitacaoorigem'];
  64 + $numeroprotocolo = $_POST['numeroprotocolo'];
  65 + $textosolicitacao = $_POST['textosolicitacao'];
  66 + $idtiposolicitacao = $_POST['idtiposolicitacao'];
  67 + $instancia = $_POST['instancia'];
  68 + $formaretorno = $_POST['formaretorno'];
  69 + $situacao = $_POST['situacao'];
  70 + $datasolicitacao = $_POST['datasolicitacao'];
  71 + $datarecebimentosolicitacao = $_POST['datarecebimentosolicitacao'];
  72 + $usuariorecebimento = $_POST['usuariorecebimento'];
  73 + $dataprevisaoresposta = $_POST['dataprevisaoresposta'];
  74 + $dataprorrogacao = $_POST['dataprorrogacao'];
  75 + $motivoprorrogacao = $_POST['motivoprorrogacao'];
  76 + $usuarioprorrogacao = $_POST['usuarioprorrogacao'];
  77 + $dataresposta = $_POST['dataresposta'];
  78 + $resposta = $_POST['resposta'];
  79 + $usuarioresposta = $_POST['usuarioresposta'];
  80 + $idsecretariaresposta = $_POST['idsecretariaresposta'];
  81 +
  82 + //campos do recurso
  83 + $txttextosolicitacao = $_POST['txttextosolicitacao'];
  84 + $txtformaretorno = $_POST['txtformaretorno'];
  85 + }
  86 +
  87 + $erro="";
  88 +
  89 + if ($_POST['acao'])
  90 + {
  91 + //se for envio de recurso
  92 + if ($acao == "Enviar")
  93 + {
  94 + $sol = new Solicitacao();
  95 +
  96 + //recupera o proximo tipo de solicitação, caso retorne falso, deu erro
  97 + if(Solicitacao::getProximoTipoSolicitacao($idsolicitacao,$idtiposolicitacaorecurso,$erro))
  98 + {
  99 + //se nao existir solicitação original
  100 + if (empty($idsolicitacaoorigem))
  101 + $sol->setIdSolicitacaoOrigem($idsolicitacao); //o recurso terá a solicitação atual como original
  102 + else
  103 + $sol->setIdSolicitacaoOrigem($idsolicitacaoorigem); //o recurso manterá a solicitação original
  104 +
  105 + $sol->setTextoSolicitacao($txttextosolicitacao);
  106 + $sol->setFormaRetorno($txtformaretorno);
  107 + $sol->setIdSolicitante(getSession("uid"));
  108 +
  109 + //caso nao exista SIC centralizador, o direcionamento vai para quem deu a resposta
  110 + if(!Solicitacao::existeSicCentralizador())
  111 + $sol->setIdSecretariaSelecionada($idsecretariaresposta);
  112 +
  113 + if ($sol->cadastraRecurso($idtiposolicitacaorecurso))
  114 + header("Location: index.php?$parametrosIndex");
  115 + else
  116 + $erro = $sol->getErro ();
  117 + }
  118 + }
  119 + }
  120 +?>
0 121 \ No newline at end of file
... ...
alterasenha/index.php 0 → 100644
  1 +++ a/alterasenha/index.php
... ... @@ -0,0 +1,42 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 + include("manutencao.php");
  12 +
  13 + include("../inc/topo.php");
  14 +?>
  15 +<h1>Redefinição de Senha</h1>
  16 +<br><br>
  17 +<form action="<?php echo SITELNK;?>alterasenha/index.php" id="formulario" method="post">
  18 +<table id="tabelaSolucaoCidada" align="center" cellpadding="0" cellspacing="1">
  19 + <tr>
  20 + <td><b>Senha atual:</b></td>
  21 + <td><input type="password" name="senhaatual" size="50" maxlength="50" /> </td>
  22 + </tr>
  23 + <tr>
  24 + <td><b>Nova senha:</b></td>
  25 + <td><input type="password" name="novasenha" size="50" maxlength="50" /> </td>
  26 + </tr>
  27 + <tr>
  28 + <td><b>Confirme a nova senha:</b></td>
  29 + <td><input type="password" name="confirmasenha" size="50" maxlength="50" /> </td>
  30 + </tr>
  31 + <tr><td colspan="2"><td></tr>
  32 + <tr>
  33 + <td colspan="2" align="center" style="border-top:1px solid #000000">
  34 + <br><input type="submit" value="Alterar" class="botaoformulario" name="acao" />
  35 + </td>
  36 + </tr>
  37 +</table>
  38 +
  39 +</form>
  40 +<?php
  41 +getErro($erro);
  42 +include("../inc/rodape.php");?>
0 43 \ No newline at end of file
... ...
alterasenha/manutencao.php 0 → 100644
  1 +++ a/alterasenha/manutencao.php
... ... @@ -0,0 +1,39 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 + include_once("../inc/autenticar.php");
  12 + include_once("../class/solicitante.class.php");
  13 +
  14 +
  15 + $erro = ""; //grava o erro, se houver, e exibe por meio de alert (javascript) atraves da funcao getErro() chamada no arquivo do formulario. ps: a função é declara em inc/security.php
  16 +
  17 +
  18 + //se tiver sido postado informação do formulario
  19 + if($_POST['acao'])
  20 + {
  21 +
  22 + $idsolicitante = getSession("uid");
  23 + $senhaatual = $_POST["senhaatual"];
  24 + $novasenha = $_POST["novasenha"];
  25 + $confirmasenha = $_POST["confirmasenha"];
  26 +
  27 +
  28 + $solicitante = new Solicitante();
  29 +
  30 + if (!$solicitante->alteraSenha($idsolicitante,$senhaatual,$novasenha,$confirmasenha))
  31 + $erro = $solicitante->getErro();
  32 + else
  33 + echo "<script>location.href='".URL_BASE_SISTEMA."index.php';</script>";
  34 +
  35 + $solicitante = null;
  36 + }
  37 +
  38 +
  39 +?>
... ...
cadastro/formulario.php 0 → 100644
  1 +++ a/cadastro/formulario.php
... ... @@ -0,0 +1,209 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +?>
  11 +<script language="JavaScript" src="<?php echo URL_BASE_SISTEMA;?>js/XmlHttpLookup.js"></script>
  12 +
  13 +<script>
  14 + function selecionaTipoPessoa(tipo)
  15 + {
  16 + if(tipo=="F")
  17 + {
  18 + document.getElementById('lblNome').innerHTML = "Nome";
  19 + document.getElementById('lblCpfcnpj').innerHTML = "CPF";
  20 + document.getElementById('lnEscolaridade').style.display = "";
  21 + document.getElementById('lnProfissao').style.display = "";
  22 + }
  23 + else
  24 + {
  25 + document.getElementById('lblNome').innerHTML = "Razão Social";
  26 + document.getElementById('lblCpfcnpj').innerHTML = "CNPJ";
  27 + document.getElementById('lnEscolaridade').style.display = "none";
  28 + document.getElementById('lnProfissao').style.display = "none";
  29 + }
  30 + }
  31 +</script>
  32 +
  33 +
  34 +<div align="center">
  35 +<table align="center" cellpadding="0" cellspacing="1">
  36 + <tr style="margin: 5px;">
  37 + <th style="border-bottom:1px solid #000000" align="left" colspan="2">Dados Pessoais</th><br>
  38 + </tr>
  39 + <tr id="ldadosCidadao">
  40 + <td colspan="2">
  41 + <table align="left" width="100%" cellpadding="10" cellspacing="10">
  42 + <tr>
  43 + <td align="left">*Tipo de Pessoa:</td>
  44 + <td align="left" valign="top">
  45 + <input type="radio" name="tipopessoa" value="F" <?php echo ($tipopessoa=="F")?"checked":""; ?> onclick="selecionaTipoPessoa('F');">Física
  46 + <input type="radio" name="tipopessoa" value="J" <?php echo ($tipopessoa=="J")?"checked":""; ?> onclick="selecionaTipoPessoa('J');">Jurídica
  47 + </td>
  48 + </tr>
  49 + <tr>
  50 + <td align="left">*<span id="lblNome"><?php echo ($tipopessoa=="J")?"Razão Social":"Nome"; ?></span>:</td>
  51 + <td align="left"><input type="text" name="nome" id="nome" value="<?php echo $nome;?>" size="58" maxlength="100" /> </td>
  52 + </tr>
  53 + <tr>
  54 + <td align="left">*<span id="lblCpfcnpj"><?php echo ($tipopessoa=="J")?"CNPJ":"CPF"; ?></span>:</td>
  55 + <td align="left">
  56 + <input type="text" name="cpfcnpj" value="<?php echo $cpfcnpj;?>" onkeyup="soNumero(this);" onblur="document.getElementById('span_usuario').innerHTML = this.value;" size="14" maxlength="14" />
  57 + </td>
  58 + </tr>
  59 + <tr id="lnFaixaEtaria">
  60 + <td align="left">Faixa Etária:</td>
  61 + <td align="left">
  62 + <select name="idfaixaetaria" id="idfaixaetaria">
  63 + <option value="">----</option>
  64 + <?php $rsFxt = execQuery("select * from lda_faixaetaria order by nome"); ?>
  65 + <?php while($rowfxt=mysql_fetch_array($rsFxt)){?>
  66 + <option value="<?php echo $rowfxt['idfaixaetaria'];?>" <?php echo $rowfxt['idfaixaetaria']==$idfaixaetaria?"selected":""; ?>><?php echo $rowfxt['nome'];?></option>
  67 + <?php }?>
  68 + </select>
  69 +
  70 + </td>
  71 + </tr>
  72 + <tr id="lnEscolaridade">
  73 + <td align="left">Escolaridade:</td>
  74 + <td align="left">
  75 + <select name="idescolaridade" id="idescolaridade">
  76 + <option value="">----</option>
  77 + <?php $rsEsc = execQuery("select * from lda_escolaridade order by nome"); ?>
  78 + <?php while($rowesc=mysql_fetch_array($rsEsc)){?>
  79 + <option value="<?php echo $rowesc['idescolaridade'];?>" <?php echo $rowesc['idescolaridade']==$idescolaridade?"selected":""; ?>><?php echo $rowesc['nome'];?></option>
  80 + <?php }?>
  81 + </select>
  82 +
  83 + </td>
  84 + </tr>
  85 + <tr id="lnProfissao">
  86 + <td align="left">Profissão:</td>
  87 + <td align="left">
  88 + <input type="text" name="profissao" value="<?php echo $profissao;?>" size="30" maxlength="50" />
  89 + </td>
  90 + </tr>
  91 + <tr>
  92 + <td align="left">Tipo Telefone:</td>
  93 + <td align="left">
  94 + <select name="idtipotelefone" id="idtipotelefone">
  95 + <option value="">----</option>
  96 + <?php $rstel = execQuery("select * from lda_tipotelefone order by nome"); ?>
  97 + <?php while($rowtel=mysql_fetch_array($rstel)){?>
  98 + <option value="<?php echo $rowtel['idtipotelefone'];?>" <?php echo $rowtel['idtipotelefone']==$idtipotelefone?"selected":""; ?>><?php echo $rowtel['nome'];?></option>
  99 + <?php }?>
  100 + </select>
  101 + Telefone: (<input type="text" name="dddtelefone" value="<?php echo $dddtelefone;?>" onkeyup="soNumero(this);" size="2" maxlength="2" /> )
  102 + <input type="text" name="telefone" value="<?php echo $telefone;?>" onkeyup="soNumero(this);" size="15" maxlength="15" />
  103 + </td>
  104 + </tr>
  105 + <tr>
  106 + <td align="left">*E-mail:</td>
  107 + <td align="left">
  108 + <input type="text" name="email" value="<?php echo $email;?>" size="50" maxlength="150" />
  109 + </td>
  110 + </tr>
  111 + <tr>
  112 + <td align="left">*Confirme E-mail:</td>
  113 + <td align="left">
  114 + <input type="text" name="confirmeemail" value="<?php echo $confirmeemail;?>" size="50" maxlength="150" />
  115 + </td>
  116 + </tr>
  117 + </table>
  118 + </td>
  119 + </tr>
  120 +
  121 + <tr>
  122 + <th style="border-bottom:1px solid #000000" align="left" colspan="2">Endereço</th>
  123 + </tr>
  124 + <tr id="lendereco">
  125 + <td colspan="2">
  126 + <input type="hidden" name="idlogradouro" id="idlogradouro" value="<?php echo $idlogradouro;?>">
  127 + <table width="100%">
  128 + <tr>
  129 + <td align="left">CEP:</td>
  130 + <td align="left">
  131 + <input type="text" name="cep" id="cep" value="<?php echo $cep;?>" autocomplete="off" onkeyup="busca(this.value,this.value.length==8,'<?php echo URL_BASE_SISTEMA;?>inc/buscacep')" onclick="busca(this.value,this.value.length==8,'<?php echo URL_BASE_SISTEMA;?>inc/buscacep')" maxlength="8" size="10" />
  132 + <a href="javascript:window.open('<?php echo URL_BASE_SISTEMA;?>inc/busca_cep_correios.htm','')"><img src="<?php echo URL_BASE_SISTEMA;?>img/busca_cep_correios.gif" border="0" align="absmiddle" style="margin:0px;padding:0px" title="Pesquisa CEP no site dos correios"></a>
  133 + </td>
  134 + </tr>
  135 + <tr>
  136 + <td align="left">Logradouro:</td>
  137 + <td align="left">
  138 + <input type="text" name="logradouro" id="logradouro" value="<?php echo $logradouro;?>" maxlength="255" size="60" />
  139 + </td>
  140 + </tr>
  141 + <tr>
  142 + <td align="left">Bairro:</td>
  143 + <td align="left">
  144 + <input type="text" onmouseover="this.title=this.value" name="bairro" id="bairro" value="<?php echo $bairro;?>" maxlength="100" size="50">
  145 + </td>
  146 + </tr>
  147 + <tr>
  148 + <td align="left">Cidade:</td>
  149 + <td><input type="text" name="cidade" onmouseover="this.title=this.value" id="cidade" value="<?php echo $cidade;?>" maxlength="255" size="35">
  150 + <select name="uf" id="uf">
  151 + <option value="">- UF -</option>
  152 + <?php $rsuf = execQuery("select sigla from gen_estados order by sigla"); ?>
  153 + <?php while($rowuf=mysql_fetch_array($rsuf)){?>
  154 + <option value="<?php echo $rowuf['sigla'];?>" <?php echo $rowuf['sigla']==$uf?"selected":""; ?>><?php echo $rowuf['sigla'];?></option>
  155 + <?php }?>
  156 + </select>
  157 + </td>
  158 + </tr>
  159 + <tr>
  160 + <td align="left">Número:</td>
  161 + <td align="left">
  162 + <input type="text" name="numero" id="numero" value="<?php echo $numero;?>" maxlength="10" size="10" />
  163 + Complemento:
  164 + <input type="text" name="complemento" id="complemento" value="<?php echo $complemento;?>" maxlength="50" size="50" margin=10px; />
  165 + </td>
  166 + </tr>
  167 + <script>
  168 + InitQueryCode('cep', '<?php echo URL_BASE_SISTEMA;?>inc/lkpcep.php?q=');
  169 + document.getElementById('nome').focus();
  170 + </script>
  171 + </table>
  172 + </td>
  173 + </tr>
  174 +
  175 + <tr>
  176 + <th style="border-bottom:1px solid #000000" align="left" colspan="2">Acesso ao e-SIC</th>
  177 + </tr>
  178 + <tr>
  179 + <td align="left">*Usuário:</td>
  180 + <td align="left">
  181 + <b>
  182 + <span id="span_usuario">&nbsp;</span>
  183 + </b>
  184 + </td>
  185 + </tr>
  186 + <tr>
  187 + <td align="left">*Senha:</td>
  188 + <td align="left">
  189 + <input type="password" name="senha" value="<?php echo $senha;?>" size="30" maxlength="30" />
  190 + </td>
  191 + </tr>
  192 + <tr>
  193 + <td align="left">*Confirme Senha:</td>
  194 + <td align="left">
  195 + <input type="password" name="confirmasenha" value="<?php echo $confirmasenha;?>" size="30" maxlength="30" />
  196 + </td>
  197 + </tr>
  198 +
  199 + <tr><td colspan="2"><td></tr>
  200 + <tr>
  201 + <td colspan="2" align="center" style="border-top:1px solid #000000">
  202 + <br><input type="submit" class="botaoformulario" value="Salvar" name="acao" />
  203 + </td>
  204 + </tr>
  205 +</table>
  206 +
  207 +<script>selecionaTipoPessoa('<?php echo $tipopessoa;?>');</script>
  208 +
  209 +</div>
0 210 \ No newline at end of file
... ...
cadastro/index.php 0 → 100644
  1 +++ a/cadastro/index.php
... ... @@ -0,0 +1,30 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +
  11 + require_once("manutencao.php");
  12 + require_once("../inc/topo.php");
  13 +?>
  14 +
  15 +<div align="center">
  16 +<h1>Cadastro do Solicitante</h1>
  17 +</div>
  18 +<br>
  19 +<?php if(!empty($_GET['r'])){?>
  20 + Cadastro Realizado com sucesso! <br><br>
  21 + Em instantes você receberá uma solicitação de confirmação do cadastro no seu e-mail: <?php echo $_GET['r']?>.<br>
  22 +<?php }else{?>
  23 + <form action="<?php echo URL_BASE_SISTEMA;?>cadastro/index.php" id="formulario" method="post">
  24 + <?php include_once("../cadastro/formulario.php");?>
  25 + </form>
  26 + <?php
  27 + getErro($erro);
  28 +}
  29 +include("../inc/rodape.php");
  30 +?>
0 31 \ No newline at end of file
... ...
cadastro/manutencao.php 0 → 100644
  1 +++ a/cadastro/manutencao.php
... ... @@ -0,0 +1,106 @@
  1 +<?php
  2 +/**********************************************************************************
  3 + Sistema e-SIC Livre: sistema de acesso a informação baseado na lei de acesso.
  4 +
  5 + Copyright (C) 2014 Prefeitura Municipal do Natal
  6 +
  7 + Este programa é software livre; você pode redistribuí-lo e/ou
  8 + modificá-lo sob os termos da Licença GPL2.
  9 +***********************************************************************************/
  10 +