run($_REQUEST['action']);
?> ]]>
run($_REQUEST['action']);
?>
]]>
run($_REQUEST['action']);
?> ]]>
]]>
run($_REQUEST['action']);
?> ]]>
run($_REQUEST['action']);
?> ]]>
run($_REQUEST['action']);
?> ]]>
{include file=header.tpl}
{wf_ajax_init}
Arquivo:
{wf_file_upload_init}
{wf_file_upload name=arquivo max=1}
Anexos:
{wf_file_upload name=anexos}
]]>
{include file=header.tpl}
{include file=Visualizar.tpl}
]]>
{include file=header.tpl}
{wf_ajax_init}
Pesquisar:
Macroprocessos:
{html_options name=cbMacroprocessos options=$cbMacroprocessos onChange="getProcessos(cbMacroprocessos.value);"}
Processo:
Tipo de Documento:
{html_options name=cbTiposDocumento options=$cbTiposDocumento}
Título
{if $mostra_normas eq "ativas"}
{elseif $mostra_normas eq "inativas"}
{/if}
{$linksPaginacao}
{$titulos_ordenacao[0].name}
{$titulos_ordenacao[1].name}
{$titulos_ordenacao[2].name}
{$titulos_ordenacao[3].name}
{$titulos_ordenacao[4].name}
{$titulos_ordenacao[5].name}
Ação
{foreach item=elem from=$result}
{$elem.mpr_sigla}
{$elem.pro_descricao}
{$elem.tpd_sigla}
{$elem.nrm_codigo}
{$elem.nrm_situacao_ref}
{$elem.nrm_titulo}
{/foreach}
{include file=bottom_table.tpl}
]]>
{include file=header.tpl}
{wf_ajax_init}
{$linksPaginacao}
{$titulos_ordenacao[0].name}
{$titulos_ordenacao[1].name}
{$titulos_ordenacao[2].name}
{$titulos_ordenacao[3].name}
{$titulos_ordenacao[4].name}
{$titulos_ordenacao[5].name}
Ação
{foreach item=elem from=$result}
{$elem.mpr_sigla}
{$elem.pro_descricao}
{$elem.tpd_sigla}
{$elem.nrm_codigo}
{$elem.nrm_situacao_ref}
{$elem.nrm_titulo}
{/foreach}
{include file=bottom_table.tpl}
]]>
{include file=header.tpl}
{wf_ajax_init}
{wf_select_user_init}
{literal}
{/literal}
Elaborador:
{wf_select_user name="idElaborador" id_value=$idElaborador desc_value=$nomeElaborador organization="CELEPAR"}
Área do Elaborador:
{html_options name=cbAreaElaborador options=$cbAreas selected=$sctAreaElaborador}
Gestor:
{wf_select_user name="idGestor" id_value=$idGestor desc_value=$nomeGestor organization="CELEPAR"}
Área Gestora:
{html_options name=cbAreasGestoras options=$cbAreas selected=$sctAreaGestora}
Diretor:
{wf_select_user name="idDiretor" id_value=$idDiretor desc_value=$nomeDiretor organization="CELEPAR"}
Diretoria:
{html_options name=cbDiretorias options=$cbAreas selected=$sctDiretoria}
Diretor Juridico:
{wf_select_user name="idDiretorJuridico" id_value=$idDiretorJuridico desc_value=$nomeDiretorJuridico organization="CELEPAR"}
Tipo de Documento:
{html_options name=cbTiposDocumentos options=$cbTiposDocumentos selected=$sctTipoDocumento}
Macroprocesso:
{html_options name=cbMacroprocessos options=$cbMacroprocessos selected=$sctMacroprocesso onChange="getProcessos(cbMacroprocessos.value);"}
Processo:
{html_options name=cbProcessos options=$cbProcessos selected=$sctProcesso}
Título:
Data do Início da Vigência:
{wf_calendar_init}
{wf_calendar default=true id=dtDataVigencia name=dtDataVigencia value=$DataVigencia}
Objetivo:
Âmbito de Aplicação:
{html_options name=cbAmbitoAplicacao options=$cbAreas selected=$sctAmbitoAplicacao}
Palavras-Chave:
Status:
{html_options name=cbStatus options=$cbStatus selected=$sctStatus}
Número da Revisão:
{section name=files loop=$Arquivos}
{literal}
{/literal}
{if $smarty.section.files.first}
Arquivo:
{else}
{if $smarty.section.files.index == 1}
Anexos:
{else}
{/if}
{/if}
{wf_download_link getParams="action=$downloadMethod&id=`$Arquivos[files].id`&norma_id=$normaId" text=$Arquivos[files].nome}
{sectionelse}
{literal}
{/literal}
{/section}
Anexos:
{wf_file_upload name=anexos}
{literal}
{/literal}
]]>
{include file=header.tpl}
{wf_ajax_init}
Elaborador:
{$nomeElaborador}
Área do Elaborador:
{$nomeArea}
Área Gestora:
{html_options name=cbAreasGestoras options=$cbAreasGestoras selected=$sctAreaGestora}
Tipo de Documento:
{html_options name=cbTiposDocumentos options=$cbTiposDocumentos selected=$sctTipoDocumento}
Macroprocesso:
{html_options name=cbMacroprocessos options=$cbMacroprocessos selected=$sctMacroprocesso onChange="getProcessos(this.value);"}
Processo:
Título:
Objetivo:
Âmbito de Aplicação:
{html_options name=cbAmbitoAplicacao options=$cbAmbitoAplicacao selected=$sctAmbitoAplicacao}
Palavras-Chave:
]]>
{include file=header.tpl}
{* mostra o botão e novo e os links de paginação *}
{$linksPaginacao}
{* Mostra os registros *}
{$titulos_ordenacao[0].name}
{$titulos_ordenacao[1].name}
Ação
{foreach item=elem from=$result}
{$elem.sigla}
{$elem.descricao}
{/foreach}
{include file=bottom_table.tpl}
]]>
{include file=header.tpl}
Sigla:
Descrição:
{if $modo eq "inserir"}
{else}
{/if}
]]>
{include file=header.tpl}
Macroprocesso:
Processo:
{if $modo eq inserir}
{else}
{/if}
{if $modo eq "inserir"}
{else}
{/if}
]]>
{include file=header.tpl}
Sigla:
Descrição:
{if $modo eq "inserir"}
{else}
{/if}
]]>
{include file=header.tpl}
{* mostra o botão e novo e os links de paginação *}
{$linksPaginacao}
{* Mostra os registros *}
{$titulos_ordenacao[0].name}
{$titulos_ordenacao[1].name}
{$titulos_ordenacao[2].name}
Ação
{foreach item=elem from=$result}
{$elem.mpr_sigla}
{$elem.mpr_descricao}
{$elem.pro_descricao}
{/foreach}
{include file=bottom_table.tpl}
]]>
{include file=header.tpl}
{* mostra o botão e novo e os links de paginação *}
{$linksPaginacao}
{* Mostra os registros *}
{$titulos_ordenacao[0].name}
{$titulos_ordenacao[1].name}
Ação
{foreach item=elem from=$result}
{$elem.sigla}
{$elem.descricao}
{/foreach}
{include file=bottom_table.tpl}
]]>
Tipo de Documento:
{$nomeTipoDocumento}
Macroprocesso:
{$nomeMacroprocesso}
Processo:
{$nomeProcesso}
Título:
{$TituloNorma}
Código:
{$CodigoNorma}
Data do Início da Vigência:
{$DataVigencia}
Objetivo:
{$ObjetivoNorma}
Âmbito de Aplicação:
{$nomeAmbitoAplicacao}
Palavras-Chave:
{$PalavrasChave}
Status:
{$nomeStatus}
{section name=files loop=$Arquivos}
{if $smarty.section.files.first}
Arquivo:
{else}
{if $smarty.section.files.index == 1}
Anexos:
{else}
{/if}
{/if}
{wf_download_link getParams="action=$downloadMethod&id=`$Arquivos[files].id`&norma_id=$NormaId" text=$Arquivos[files].nome}
{/section}
]]>
{include file=header.tpl}
{include file=Visualizar.tpl}
]]>
{if $count_items > 0}
Encontrados {$count_items} registros.
{else}
Nenhum registro encontrado.
{/if}
]]>
{foreach item=elem from=$msgs}
{if $msgclass eq "msg_erro"}
{else}
{/if}
{$elem}
{/foreach}
]]>
DAO->connect();
$query =
"SELECT " .
"* " .
"FROM " .
"normas.processo " .
"WHERE " .
"macroprocesso_id = $selected_mpr " .
"ORDER BY " .
"descricao";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
$rows[] = $row;
$processos[] = array('id' => 0, 'nome' => "--- Selecione um processo ---");
if(count($rows))
foreach($rows as $elem){
$processos[] = array('id' => $elem['processo_id'], 'nome' => $elem['descricao']);
}
$this->DAO->disconnect();
return $processos;
}
}
?>
]]>
model->pesquisarAction();
$this->loadViewVars();
}
/**
* Executa a chamada do método visualizarAction da Model,
* mostra o template de visualização e carrega as variáveis da camada view
*
* @access public
* @return void
*/
function visualizar(){
$this->model->visualizarAction();
$this->showForm($this->VISUALIZAR);
$this->loadViewVars();
}
/**
* Executa a chamada do método switchVisualizacaoAction
* @access public
* @return void
* @param string $tipo_normas ativas ou inativas
*/
function switchVisualizacao(){
$this->model->switchVisualizacaoAction();
$this->loadViewVars();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
pLdap = $this->factory->getInstance('wf_ldap');
$this->pOrgchart = $this->factory->getInstance('wf_orgchart');
}
/**
* Filtra a consulta das normas por tipo de documento, macroprocesso, processo e título
*
* @access public
* @return void
*/
function pesquisarAction(){
$this->_montaTela();
$where['mpr_id'] = $this->request['cbMacroprocessos'];
$where['pro_id'] = $this->request['cbProcessos'];
$where['tpd_id'] = $this->request['cbTiposDocumento'];
$where['titulo'] = $this->request['titulo_busca'];
$where['status'] = $this->request['mostra_normas'];
$_GET['status'] = $this->request['mostra_normas'];
$this->addViewVar('mostra_normas', $where['status']);
$this->_showConsulta($where);
}
/**
* carrega os atributos da classe a partir de dados do banco para mostrar
* a visualização de uma norma
*
* @access public
* @return void
*/
function visualizarAction(){
$this->_visualizarNorma();
}
/**
* Muda a visualização das normas de ativas para inativas e vice-versa
* @access public
* @return void
*/
function switchVisualizacaoAction(){
$tipo_normas = $this->request['params'];
$this->_montaTela();
$this->addViewVar('mostra_normas', $tipo_normas);
$_GET['status'] = $tipo_normas;
$this->_showConsulta(array('status' => $tipo_normas));
}
/**
* lista as normas existentes utilizando a classe de paginação
*
* @access public
* @return void
*/
function defaultAction(){
$this->_montaTela();
if (!$_GET['status']){
$where['status'] = "ativas";
} else {
$where['status'] = $_GET['status'];
}
$this->addViewVar('mostra_normas', $where['status']);
$_GET['status'] = $where['status'];
$this->_showConsulta($where);
}
/**
* Monta os campos de pesquisa da tela
* @access private
* @return void
*/
function _montaTela(){
$this->addViewVar("activity_title", "Sistema Normativo - Consultar");
$query =
"SELECT " .
"* " .
"FROM " .
"normas.macroprocesso " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
$rows[] = $row;
$macroprocessos[] = "--- Selecione um macroprocesso ---";
foreach($rows as $row)
$macroprocessos[$row['macroprocesso_id']] = $row['sigla'].
" - ".
$row['descricao'];
unset($rows);
$this->addViewVar('cbMacroprocessos', $macroprocessos);
$query =
"SELECT " .
"* " .
"FROM " .
"normas.tipo_documento " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
$rows[] = $row;
$tipos_documento[] = "--- Selecione um tipo de documento ---";
foreach($rows as $row)
$tipos_documento[$row['tipo_documento_id']] = $row['sigla'].
" - ".
$row['descricao'];
unset($rows);
$this->addViewVar('cbTiposDocumento', $tipos_documento);
}
/**
* método auxiliar para a consulta
*
* @param array $where Array com o id do macroprocesso, o id do processo, id do tipo do documento e uma substring do título
* @access private
* @return void
*/
function _showConsulta($where = ""){
if ($_GET['s_co'] == 0){
$_GET['s_co'] = 4;
$_GET['s_so'] = 1;
}
$query_where = "WHERE ";
if($where['status'] == "ativas") $query_where .= "nrm.status = 1";
else $query_where .= "nrm.status <> 1";
if (count($where) > 1){
$_GET['mpr_id'] = $where['mpr_id'];
$_GET['pro_id'] = $where['pro_id'];
$_GET['tpd_id'] = $where['tpd_id'];
$_GET['titulo'] = $where['titulo'];
} else {
$where['mpr_id'] = $_GET['mpr_id'];
$where['pro_id'] = $_GET['pro_id'];
$where['tpd_id'] = $_GET['tpd_id'];
$where['titulo'] = $_GET['titulo'];
}
if($where['mpr_id']) $query_where .= " AND mpr.macroprocesso_id = ".$where['mpr_id'];
if($where['pro_id']) $query_where .= " AND pro.processo_id = ".$where['pro_id'];
if($where['tpd_id']) $query_where .= " AND tpd.tipo_documento_id = ".$where['tpd_id'];
if($where['titulo']) $query_where .= " AND LOWER(nrm.titulo) LIKE '%".$this->DAO->quote(strtolower($where['titulo']))."%'";
$query =
"SELECT ".
"mpr.sigla AS mpr_sigla, " .
"pro.descricao AS pro_descricao, " .
"tpd.sigla AS tpd_sigla, " .
"(CASE WHEN nrm.status = 0 ".
"THEN 'EM_ELAB' " .
"ELSE (tpd.sigla || '-' || mpr.sigla || '-' || ltrim(to_char(nrm.sequencia,'000')) || '-' || ltrim(to_char(nrm.num_revisao,'00'))) ".
"END) AS nrm_codigo, ".
"(CASE ".
"WHEN nrm.status = 0 THEN 'EE' ".
"WHEN nrm.status = 1 THEN 'VG' ".
"WHEN nrm.status = 2 THEN 'OB' ".
"WHEN nrm.status = 3 THEN 'SP' ".
"WHEN nrm.status = 4 THEN 'RV' ".
"WHEN nrm.status = 5 THEN 'ER' ".
"ELSE 'XX' ".
"END) AS nrm_situacao_ref, ".
"nrm.titulo AS nrm_titulo, " .
"nrm.norma_id AS nrm_id, " .
"nrm.macroprocesso_id AS nrm_mpr_id, " .
"nrm.processo_id AS nrm_pro_id, " .
"tpd.tipo_documento_id AS tpd_id, " .
"nrm.tipo_documento_id AS nrm_tpd_id, " .
"mpr.macroprocesso_id AS mpr_id, " .
"pro.processo_id AS pro_id " .
"FROM ".
"normas.norma nrm ".
"INNER JOIN ".
"normas.tipo_documento tpd ".
"ON ".
"(nrm.tipo_documento_id = tpd.tipo_documento_id) ".
"INNER JOIN ".
"normas.macroprocesso mpr ".
"ON ".
"(nrm.macroprocesso_id = mpr.macroprocesso_id) ".
"INNER JOIN ".
"normas.processo pro ".
"ON ".
"(nrm.processo_id = pro.processo_id) " .
$query_where;
$titulos_ordenacao = array();
$titulos_ordenacao[] = array('name' => "Mpr.", 'id' => "1");
$titulos_ordenacao[] = array('name' => "Processo", 'id' => "2");
$titulos_ordenacao[] = array('name' => "Tpd.", 'id' => "3");
$titulos_ordenacao[] = array('name' => "Código", 'id' => "4");
$titulos_ordenacao[] = array('name' => "Sit.", 'id' => "5");
$titulos_ordenacao[] = array('name' => "Título", 'id' => "6");
$paging = $this->factory->getInstance("wf_paging");
$paging->configure(PAGING_NUMBER_OF_ITEMS, $_GET);
$paging->useDatabase(true);
$paging->enableSorting(true);
$paging->setSortingTitles($titulos_ordenacao);
$result = $paging->restrictDBItems($this->DAO, $query);
$this->addViewVar('count_items', $paging->itemsCount);
$this->addViewVar('titulos_ordenacao', $paging->getSortingTitles());
$this->addViewVar('linksPaginacao', $paging->autoLinks(PAGING_MAX_NUMBER_OF_LINKS));
$this->addViewVar('result', $result);
}
}
?>
]]>
super(&$model, &$env);
}
/**
* executa a chamada do método downloadDataBaseAction
*
* @access public
* @return void
*/
function downloadDataBase(){
$this->model->downloadDataBaseAction();
}
/**
* Executa a chamada do método downloadPropertiesAction
*
* @access public
* @return void
*/
function downloadProperties(){
$this->model->downloadPropertiesAction();
}
}
?>
]]>
model->pesquisarAction();
$this->loadViewVars();
}
function editar(){
$this->model->editarAction();
$this->showForm($this->EDT);
$this->loadViewVars();
}
function alterar(){
$this->model->alterarAction();
$this->__default();
}
/**
* Executa a chamada do método visualizarAction da Model,
* mostra o template de visualização e carrega as variáveis da camada view
*
* @access public
* @return void
*/
function visualizar(){
$this->model->visualizarAction();
$this->showForm($this->VISUALIZAR);
$this->loadViewVars();
}
/**
* função para remover uma norma
*/
function remover(){
$this->model->removerAction();
$this->__default();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
pLdap = $this->factory->getInstance('wf_ldap');
$this->pOrgchart = $this->factory->getInstance('wf_orgchart');
}
/**
* carrega os atributos da classe a partir de dados do banco para mostrar
* a visualização de uma norma
*
* @access public
* @return void
*/
function visualizarAction(){
$this->_visualizarNorma();
}
/**
* lista as normas existentes utilizando a classe de paginação
*
* @access public
* @return void
*/
function defaultAction(){
$this->addViewVar("titulo","Sistema de Normas");
$this->addViewVar("activity_title", "Sistema Normativo - Editar Normas");
$this->_showConsulta();
}
/**
* remove uma norma
*
* @access public
* @return void
*/
function removerAction(){
$nrm_id = $this->request['normaId'];
$this->DAO->Link_ID->StartTrans();
$query =
"DELETE FROM " .
"normas.arquivo " .
"WHERE " .
"norma_id = ?";
$queryOK = true;
if(!$this->DAO->Link_ID->query($query, array($nrm_id)))
$queryOK = false;
$query =
"DELETE FROM " .
"normas.norma " .
"WHERE " .
"norma_id = ?";
if(!$this->DAO->Link_ID->query($query, array($nrm_id)))
$queryOK = false;
if($queryOK)
$this->DAO->Link_ID->CompleteTrans();
else {
$this->addViewVar('msgs', array("A transação no banco falhou"));
$this->addViewVar('msgclass', "msg_erro");
$this->DAO->Link_ID->FailTrans();
}
}
/**
* carrega a página de edição de normas
*
* @access public
* @return void
*/
function editarAction(){
$nrm_id = $this->request['params'];
$this->_updateDataBaseAttributesAction($nrm_id);
$OrgchartAreas = $this->pOrgchart->getOrganizationAreas($this->_Elaborador['employee']['organizacao_id']);
foreach($OrgchartAreas as $area){
$areas[$area['area_id']] = $area['sigla'].
" - ".
$area['descricao'];
}
$query =
"SELECT " .
"* " .
"FROM " .
"normas.tipo_documento " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
$tiposDocumentos[$row['tipo_documento_id']] = $row['sigla'].
" - ".
$row['descricao'];
$query =
"SELECT " .
"* " .
"FROM " .
"normas.macroprocesso " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
$macroprocessos[$row['macroprocesso_id']] = $row['sigla'].
" - " .
$row['descricao'];
$query =
"SELECT " .
"* " .
"FROM " .
"normas.processo " .
"WHERE " .
"macroprocesso_id = ?" .
"ORDER BY " .
"descricao";
$result = $this->DAO->Link_ID->query($query, array($this->_Macroprocesso['id']));
while($row = $result->fetchRow())
$processos[$row['processo_id']] = $row['descricao'];
$status = array();
$status[0] = "Em Elaboração";
$status[1] = "Vigente";
$status[2] = "Obsoleta";
$status[3] = "Suspensa";
$status[4] = "Revogada";
$status[5] = "Em Revisão";
$this->addViewVar('normaId', $nrm_id);
$this->addViewVar('idElaborador', $this->_Elaborador['user']['uidnumber']);
$this->addViewVar('nomeElaborador', $this->_Elaborador['user']['cn']);
$this->addViewVar('organizacaoId', $this->_Elaborador['employee']['organizacao_id']);
$this->addViewVar('idGestor', $this->_Gestor['user']['uidnumber']);
$this->addViewVar('nomeGestor', $this->_Gestor['user']['cn']);
$this->addViewVar('idDiretor', $this->_Diretor['user']['uidnumber']);
$this->addViewVar('nomeDiretor', $this->_Diretor['user']['cn']);
$this->addViewVar('idDiretorJuridico', $this->_DiretorJuridico['user']['uidnumber']);
$this->addViewVar('nomeDiretorJuridico', $this->_DiretorJuridico['user']['cn']);
$this->addViewVar('cbTiposDocumentos', $tiposDocumentos);
$this->addViewVar('sctTipoDocumento', $this->_TipoDocumento['id']);
$this->addViewVar('cbMacroprocessos', $macroprocessos);
$this->addViewVar('sctMacroprocesso', $this->_Macroprocesso['id']);
$this->addViewVar('cbProcessos', $processos);
$this->addViewVar('sctProcesso', $this->_Processo['id']);
$this->addViewVar('TituloNorma', $this->_TituloNorma);
$this->addViewVar('DataVigencia', $this->_DataVigencia);
$this->addViewVar('ObjetivoNorma', $this->_ObjetivoNorma);
$this->addViewVar('PalavrasChave', $this->_PalavrasChave);
$this->addViewVar('txNumRevisao', $this->_NumRevisao);
for($i = 0; $i < count($this->_Arquivos); $i++){
$Arquivos[$i]['id'] = $this->_Arquivos[$i]['arquivo_id'];
$Arquivos[$i]['nome'] = $this->_Arquivos[$i]['name'];
$Arquivos[$i]['is_anexo'] = $this->_Arquivos[$i]['is_anexo'];
}
$this->addViewVar('Arquivos', $Arquivos);
$this->addViewVar('cbStatus', $status);
$this->addViewVar('cbAreas', $areas);
$this->addViewVar('sctStatus', $this->_Status);
$this->addViewVar('sctAreaElaborador', $this->_Elaborador['area']['area_id']);
$this->addViewVar('sctAreaGestora', $this->_Gestor['area']['area_id']);
$this->addViewVar('sctDiretoria', $this->_Diretor['area']['area_id']);
$this->addViewVar('sctAmbitoAplicacao', $this->_AmbitoAplicacao['id']);
$this->addViewVar('downloadMethod', "downloadDataBase");
$this->addViewVar('activity_title', "Sistema Normativo - Editar Norma");
}
/**
* Executa a ação de alteração dos dados no banco
*
* @access public
* @return void
*/
function alterarAction(){
$nrm_id = $this->request['normaId'];
$this->_Elaborador =
$this->_setEmployee($this->request['idElaborador'],
$this->request['cbAreaElaborador']);
$this->_Gestor =
$this->_setEmployee($this->request['idGestor'],
$this->request['cbAreasGestoras']);
$this->_Diretor =
$this->_setEmployee($this->request['idDiretor'],
$this->request['cbDiretorias']);
$this->_DiretorJuridico =
$this->_setEmployee($this->request['idDiretorJuridico'],
ID_AREA_DJ);
$this->_TipoDocumento['id'] = $this->request['cbTiposDocumentos'];
$this->_Macroprocesso['id'] = $this->request['cbMacroprocessos'];
$this->_Processo['id'] = $this->request['cbProcessos'];
$this->_TituloNorma = $this->request['txTituloNorma'];
$this->_DataVigencia = $this->request['dtDataVigencia'];
$this->_ObjetivoNorma = $this->request['txObjetivoNorma'];
$this->_AmbitoAplicacao['id'] = $this->request['cbAmbitoAplicacao'];
$this->_PalavrasChave = $this->request['txPalavrasChave'];
$this->_Status['id'] = $this->request['cbStatus'];
$this->_NumRevisao = $this->request['txNumRevisao'];
$arquivo = array();
$anexos = array();
$this->_Arquivos = array();
$arquivo = wf_get_uploaded_files("arquivo");
$anexos = wf_get_uploaded_files("anexos");
if(count($arquivo))
if(!$arquivo[0]['error']){
$arquivo[0]['is_anexo'] = 0;
$this->_Arquivos[] = $arquivo[0];
}
if(count($anexos))
foreach($anexos as $elem){
if(!$elem['error']){
$elem['is_anexo'] = 1;
$this->_Arquivos[] = $elem;
}
}
if(strlen($this->request['params']))
$filesToRemove = explode(';', $this->request['params']);
$this->_updateNorma($nrm_id, $filesToRemove);
}
/**
* método auxiliar para a consulta
*
* @param array $where Array com o id do macroprocesso, o id do processo, id do tipo do documento e uma substring do título
* @access private
* @return void
*/
function _showConsulta($where = ""){
if ($_GET['s_co'] == 0){
$_GET['s_co'] = 4;
$_GET['s_so'] = 1;
}
if(!$where){
$where['mpr_id'] = $_GET['mpr_id'];
$where['pro_id'] = $_GET['pro_id'];
$where['tpd_id'] = $_GET['tpd_id'];
$where['titulo'] = $_GET['titulo'];
} else {
$_GET['mpr_id'] = $where['mpr_id'];
$_GET['pro_id'] = $where['pro_id'];
$_GET['tpd_id'] = $where['tpd_id'];
$_GET['titulo'] = $where['titulo'];
}
if(count($where)){
$query_where = "WHERE " .
"1 = 1";
if($where['mpr_id']) $query_where .= " AND mpr.macroprocesso_id = ".$where['mpr_id'];
if($where['pro_id']) $query_where .= " AND pro.processo_id = ".$where['pro_id'];
if($where['tpd_id']) $query_where .= " AND tpd.tipo_documento_id = ".$where['tpd_id'];
if($where['titulo']) $query_where .= " AND nrm.titulo LIKE '%".$where['titulo']."%'";
}
$query =
"SELECT ".
"mpr.sigla AS mpr_sigla, " .
"pro.descricao AS pro_descricao, " .
"tpd.sigla AS tpd_sigla, " .
"(CASE WHEN nrm.status = 0 ".
"THEN 'EM_ELAB' " .
"ELSE (tpd.sigla || '-' || mpr.sigla || '-' || ltrim(to_char(nrm.sequencia,'000')) || '-' || ltrim(to_char(nrm.num_revisao,'00'))) ".
"END) AS nrm_codigo, ".
"(CASE ".
"WHEN nrm.status = 0 THEN 'EE' ".
"WHEN nrm.status = 1 THEN 'VG' ".
"WHEN nrm.status = 2 THEN 'OB' ".
"WHEN nrm.status = 3 THEN 'SP' ".
"WHEN nrm.status = 4 THEN 'RV' ".
"WHEN nrm.status = 5 THEN 'ER' ".
"ELSE 'XX' ".
"END) AS nrm_situacao_ref, ".
"nrm.titulo AS nrm_titulo, " .
"nrm.norma_id AS nrm_id, " .
"nrm.macroprocesso_id AS nrm_mpr_id, " .
"nrm.processo_id AS nrm_pro_id, " .
"tpd.tipo_documento_id AS tpd_id, " .
"nrm.tipo_documento_id AS nrm_tpd_id, " .
"mpr.macroprocesso_id AS mpr_id, " .
"pro.processo_id AS pro_id " .
"FROM ".
"normas.norma nrm ".
"INNER JOIN ".
"normas.tipo_documento tpd ".
"ON ".
"(nrm.tipo_documento_id = tpd.tipo_documento_id) ".
"INNER JOIN ".
"normas.macroprocesso mpr ".
"ON ".
"(nrm.macroprocesso_id = mpr.macroprocesso_id) ".
"INNER JOIN ".
"normas.processo pro ".
"ON ".
"(nrm.processo_id = pro.processo_id) " .
$query_where;
$titulos_ordenacao = array();
$titulos_ordenacao[] = array('name' => "Mpr.", 'id' => "1");
$titulos_ordenacao[] = array('name' => "Processo", 'id' => "2");
$titulos_ordenacao[] = array('name' => "Tpd", 'id' => "3");
$titulos_ordenacao[] = array('name' => "Código", 'id' => "4");
$titulos_ordenacao[] = array('name' => "Sit.", 'id' => "5");
$titulos_ordenacao[] = array('name' => "Título", 'id' => "6");
$paging = $this->factory->getInstance("wf_paging");
$paging->configure(PAGING_NUMBER_OF_ITEMS, $_GET);
$paging->useDatabase(true);
$paging->enableSorting(true);
$paging->setSortingTitles($titulos_ordenacao);
$result = $paging->restrictDBItems($this->DAO, $query);
$this->addViewVar('count_items', $paging->itemsCount);
$this->addViewVar('titulos_ordenacao', $paging->getSortingTitles());
$this->addViewVar('linksPaginacao', $paging->autoLinks(PAGING_MAX_NUMBER_OF_LINKS));
$this->addViewVar('result', $result);
}
/**
* Atualiza a tabela de arquivos
*
* @access private
* @param int $nrm_id O Id da norma a ser atualizada
* @param array $filesToRemove Array com os "is_anexo" para serem removidos
* @return false se ocorrer algum problema no update ou true se tudo correr bem
*/
function _updateFiles($nrm_id, $filesToRemove){
// verifica se o arquivo foi removido e se existe um para reposição
if(count($filesToRemove)){
$query =
"SELECT " .
"is_anexo " .
"FROM " .
"normas.arquivo " .
"WHERE " .
"arquivo_id = ?";
$rem = false;
foreach($filesToRemove as $f){
$result = $this->DAO->Link_ID->query($query, array($f));
if($result->fields['is_anexo'] == 0){
$rem = true;
break;
}
}
$ins = false;
if(count($this->_Arquivos)){
foreach($this->_Arquivos as $arquivo)
if(!$arquivo['is_anexo']){
$ins = true;
break;
}
}
if(!(($rem && $ins)
|| !($rem || $ins)))
return false;
}
if(count($filesToRemove)){
foreach($filesToRemove as $arq_id){
$query =
"DELETE FROM " .
"normas.arquivo " .
"WHERE " .
"arquivo_id = ?";
if(!$this->DAO->Link_ID->query($query, array($arq_id)))
return false;
}
}
if(count($this->_Arquivos)){
$query =
"INSERT INTO " .
"normas.arquivo(" .
"norma_id, " .
"nome, " .
"tipo, " .
"tamanho, " .
"is_anexo," .
"conteudo) ".
"VALUES(?,?,?,?,?,?)";
for($i=0; $i < count($this->_Arquivos); $i++ ){
$args[] = $nrm_id;
$args[] = $this->_Arquivos[$i]['name'];
$args[] = $this->_Arquivos[$i]['type'];
$args[] = $this->_Arquivos[$i]['size'];
$args[] = $this->_Arquivos[$i]['is_anexo'];
$args[] = base64_encode(serialize(array($this->_Arquivos[$i]['content'])));
if(!$this->DAO->Link_ID->query($query, $args))
return false;
unset($args);
}
}
return true;
}
/**
* Atualiza a tabela de normas
*
* @access protected
* @param int $nrm_id O Id da norma a ser atualizada
* @param array $filesToRemove Array com os "is_anexo" para serem removidos
* @return false se ocorrer algum problema no update ou true se tudo correr bem
*/
function _updateNorma($nrm_id, $filesToRemove){
$query =
"SELECT " .
"* " .
"FROM " .
"normas.norma " .
"WHERE " .
"norma_id = ?";
if(!$this->DAO->Link_ID->query($query, array($nrm_id)))
return false;
$query = "
UPDATE " .
"normas.norma " .
"SET " .
"elaborador_id = ?, " .
"area_elaborador_id = ?, " .
"area_gestora_id = ?, " .
"gerente_id = ?, " .
"diretor_juridico_id = ?, " .
"diretoria_id = ?, " .
"diretor_id = ?, " .
"tipo_documento_id = ?, " .
"macroprocesso_id = ?, " .
"processo_id = ?, " .
"titulo = ?, " .
"num_revisao = ?, " .
"data_vigencia = ?, " .
"objetivo = ?, " .
"ambito_aplicacao = ?, " .
"palavras_chave = ?, " .
"status = ? " .
"WHERE " .
"norma_id = ?";
$args[] = $this->_Elaborador['user']['uidnumber'];
$args[] = $this->_Elaborador['area']['area_id'];
$args[] = $this->_Gestor['area']['area_id'];
$args[] = $this->_Gestor['user']['uidnumber'];
$args[] = $this->_DiretorJuridico['user']['uidnumber'];
$args[] = $this->_Diretor['area']['area_id'];
$args[] = $this->_Diretor['user']['uidnumber'];
$args[] = $this->_TipoDocumento['id'];
$args[] = $this->_Macroprocesso['id'];
$args[] = $this->_Processo['id'];
$args[] = $this->_TituloNorma;
$args[] = $this->_NumRevisao;
if($this->_DataVigencia){
$data = explode('/', $this->_DataVigencia);
$args[] = $data[2].$data[1].$data[0];
} else $args[] = "";
$args[] = $this->_ObjetivoNorma;
$args[] = $this->_AmbitoAplicacao['id'];
$args[] = $this->_PalavrasChave;
$args[] = $this->_Status['id'];
$args[] = $nrm_id;
$this->DAO->Link_ID->StartTrans();
if($this->DAO->Link_ID->query($query, $args)) $queryOK = true;
else $queryOK = false;
$queryOK = $this->_updateFiles($nrm_id, $filesToRemove);
if($queryOK){
$this->addViewVar('msgs', array("A modificação foi feita com sucesso"));
$this->addViewVar('msgclass', "msg_sucesso");
$this->DAO->Link_ID->CompleteTrans();
return true;
} else {
$this->addViewVar('msgs', array("A transação falhou"));
$this->addViewVar('msgclass', "msg_erro");
$this->DAO->Link_ID->FailTrans();
return false;
}
}
}
?>
]]>
model->adicionarArquivosAction()){
$this->loadViewVars();
$this->showForm($this->ADD_FILES);
} else {
$this->__default();
}
}
/**
* Executa a chamada do método enviarAction
*
* @return void
* @access public
*/
function enviar(){
$this->model->enviarAction();
}
/**
* Executa o método default
*
* @return void
* @access public
*/
function cancelar(){
$this->__default();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
pLdap = $this->factory->getInstance('wf_ldap');
$this->pOrgchart = $this->factory->getInstance('wf_orgchart');
$elaborador = $this->pOrgchart->getEmployee($this->getWfProperty('wf_user_id'));
$this->_Elaborador =
$this->_setEmployee($this->getWfProperty('wf_user_id'),
$elaborador['area_id']);
$area_dj = $this->pOrgchart->getArea(ID_AREA_DJ);
$this->_DiretorJuridico =
$this->_setEmployee($area_dj['titular_funcionario_id'],
$area_dj['area_id']);
$this->pOrganizacaoAreas =
$this->pOrgchart->getOrganizationAreas($this->_Elaborador['area']['organizacao_id']);
$this->pRegex = $this->factory->getInstance('wf_regex');
}
/**
* retorna a diretoria de uma área.
*
* @return (Objeto área - Orgchart) a diretoria de uma área ou ela própria caso não tenha diretoria.
* @access private
*/
function getDiretoria($area_id){
$area = $this->pOrgchart->getArea($area_id);
if($area['area_status_id'] == 3){ //diretoria
return $area;
} else {
if(($area['superior_area_id'] == $this->_Gestor['organizacao_id']) // a área superior é a organização
|| ($area['superior_area_id'] == $area['area_id']) // a área superior é a própria área
|| empty($area['superior_area_id'])){ // não tem área superior
return $this->_Gestor['area'];
}
return $this->getDiretoria($area['superior_area_id']);
}
}
/**
* função que consiste os dados do formulário
*
* @access public
* @return true caso o formulário esteja consistente
* @return false caso o formulário esteja incosistente
*/
function adicionarArquivosAction(){
// verifica se foi selecionada alguma área na combo de áreas gestoras
if(($area_gestora_id = $this->request['cbAreasGestoras']) == 0){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "Uma área gestora deve ser selecionada";
} else {
$area_gestora = $this->pOrgchart->getArea($area_gestora_id);
$this->_Gestor =
$this->_setEmployee($area_gestora['titular_funcionario_id'],
$area_gestora['area_id']);
$diretoria = $this->getDiretoria($this->_Gestor['area']['area_id']);
$this->_Diretor =
$this->_setEmployee($diretoria['titular_funcionario_id'],
$diretoria['area_id']);
$this->addViewVar('Gestor', htmlspecialchars(serialize($this->_Gestor)));
$this->addViewVar('Diretor', htmlspecialchars(serialize($this->_Diretor)));
}
// verifica se algum tipo de documento foi selecionado
if(($tipo_documento_id = $this->request['cbTiposDocumentos']) == 0){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "Um tipo de documento deve ser selecionado";
} else {
$this->_TipoDocumento['id'] = $tipo_documento_id;
$query = "
SELECT
*
FROM
normas.tipo_documento
WHERE
tipo_documento_id = ?
";
$result = $this->DAO->Link_ID->query($query, array($tipo_documento_id));
$this->_TipoDocumento['cn'] = $result->fields['sigla'] .
" - " .
$result->fields['descricao'];
unset($result);
$this->addViewVar('TipoDocumento', htmlspecialchars(serialize($this->_TipoDocumento)));
}
// verifica se algum maprocesso foi selecionado
if(($macroprocesso_id = $this->request['cbMacroprocessos']) == 0){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "Um macroprocesso deve ser selecionado";
} else {
$this->_Macroprocesso['id'] = $macroprocesso_id;
$query = "
SELECT
*
FROM
normas.macroprocesso
WHERE
macroprocesso_id = ?
";
$result = $this->DAO->Link_ID->query($query, array($macroprocesso_id));
$this->_Macroprocesso['cn'] = $result->fields['sigla'].
" - " .
$result->fields['descricao'];
unset($result);
$this->addViewVar('Macroprocesso', htmlspecialchars(serialize($this->_Macroprocesso)));
}
if(($processo_id = $this->request['cbProcessos']) == 0){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "Um processo deve ser selecionado";
$macroprocesso_id = 0;
} else {
$this->_Processo['id'] = $processo_id;
$query = "
SELECT
*
FROM
normas.processo
WHERE
processo_id = ?
";
$result = $this->DAO->Link_ID->query($query, array($processo_id));
$this->_Processo['cn'] = $result->fields['descricao'];
unset($result);
$this->addViewVar('Processo',htmlspecialchars(serialize($this->_Processo)));
}
if(($this->_TituloNorma = $this->request['txTituloNorma']) == ""){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "O campo TITULO deve ser preenchido";
} else {
$this->addViewVar('TituloNorma', $this->_TituloNorma);
}
if(($this->_ObjetivoNorma = $this->request['txObjetivoNorma']) == ""){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "A área OBJETIVO deve ser preenchida";
} else {
$this->addViewVar('ObjetivoNorma', $this->_ObjetivoNorma);
}
if(($ambito_aplicacao = $this->request['cbAmbitoAplicacao']) == 0){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "Uma área deve ser selecionado para o âmbito da aplicação da norma";
} else {
$this->_AmbitoAplicacao['id'] = $ambito_aplicacao;
$result = $this->pOrgchart->getArea($this->_AmbitoAplicacao);
$this->_AmbitoAplicacao['cn'] = $result['sigla'].
" - ".
$result['descricao'];
$this->addViewVar('AmbitoAplicacao', htmlspecialchars(serialize($this->_AmbitoAplicacao)));
}
if(($this->_PalavrasChave = $this->request['txPalavrasChave']) == ""){
$this->addViewVar('msgclass', "msg_erro");
$msgs[] = "O campo PALAVRAS CHAVE deve ser preenchido";
} else {
$this->addViewVar('PalavrasChave', $this->_PalavrasChave);
}
$this->addViewVar('activity_title', "Sistema Normativo - Adicionar arquivos");
$this->addViewVar('sctAreaGestora', $this->_Gestor['area']['area_id']);
$this->addViewVar('sctTipoDocumento', $this->_TipoDocumento['id']);
$this->addViewVar('sctMacroprocesso', $this->_Macroprocesso['id']);
$this->addViewVar('sctProcesso', $this->_Processo['id']);
$this->addViewVar('sctAmbitoAplicacao', $this->_AmbitoAplicacao);
$this->addViewVar('nomeElaborador', $this->_Elaborador['user']['cn']);
$this->addViewVar('nomeArea', $this->_Elaborador['area']['sigla'].
" - ".
$this->_Elaborador['area']['descricao']);
$this->addViewVar('nomeAreaGestora', $this->_Gestor['area']['sigla'].
" - " .
$this->_Gestor['area']['descricao']);
$this->addViewVar('nomeGestor', $this->_Gestor['user']['cn']);
$this->addViewVar('nomeDiretorJuridico', $this->_DiretorJuridico['user']['cn']);
$this->addViewVar('nomeDiretoria', $this->_Diretor['area']['sigla'].
" - ".
$this->_Diretor['area']['descricao']);
$this->addViewVar('nomeDiretor', $this->_Diretor['user']['cn']);
$this->addViewVar('nomeTipoDocumento', $this->_TipoDocumento['cn']);
$this->addViewVar('nomeMacroprocesso', $this->_Macroprocesso['cn']);
$this->addViewVar('nomeProcesso', $this->_Processo['cn']);
$this->addViewVar('TituloNorma', $this->_TituloNorma);
$this->addViewVar('DataVigencia', $this->_DataVigencia);
$this->addViewVar('ObjetivoNorma', $this->_ObjetivoNorma);
$this->addViewVar('nomeAmbitoAplicacao', $this->_AmbitoAplicacao['cn']);
$this->addViewVar('PalavrasChave', $this->_PalavrasChave);
// carrega as mensagens de erro, se houverem.
$this->addViewVar('msgs', $msgs);
if(count($msgs)) return false;
return true;
}
/**
* função que, provisóriamente, insere uma nova norma no banco de dados.
*
* A intúito horiginal dessa função é que ela apenas jogue os dados para as properties da instancia
* e comite a mesma, fazendo com que a próxima instancia, uma switch inicie o restante do processo.
*
* @return void
* @access public
*/
function enviarAction(){
// $this->_Elaborador; Carregada na construtora
// $this->_DiretorJuridico; Carregada na construtora
$this->_Gestor = unserialize($this->request['Gestor']);
$this->_Diretor = unserialize($this->request['Diretor']);
$this->_TipoDocumento = unserialize($this->request['TipoDocumento']);
$this->_Macroprocesso = unserialize($this->request['Macroprocesso']);
$this->_Processo = unserialize($this->request['Processo']);
$this->_AmbitoAplicacao = unserialize($this->request['AmbitoAplicacao']);
$this->_TituloNorma = $this->request['TituloNorma'];
$this->_ObjetivoNorma = $this->request['ObjetivoNorma'];
$this->_PalavrasChave = $this->request['PalavrasChave'];
$tmp_Arquivos = array_merge(wf_get_uploaded_files("arquivo"),
wf_get_uploaded_files("anexos"));
$this->_Arquivos = array();
foreach($tmp_Arquivos as $elem){
if(!$elem['error']) $this->_Arquivos[] = $elem;
}
$this->DAO->Link_ID->StartTrans();
$query = "
SELECT
nextval('normas.seq_norma')";
$norma_id = $this->DAO->query($query);
$query = "
INSERT INTO " .
"normas.norma(" .
"norma_id, " .
"elaborador_id, " .
"area_elaborador_id, " .
"area_gestora_id, " .
"gerente_id, " .
"diretor_juridico_id, " .
"diretoria_id, " .
"diretor_id, " .
"tipo_documento_id, " .
"macroprocesso_id, " .
"processo_id, " .
"titulo, " .
"num_revisao, " .
"sequencia, ".
"objetivo, " .
"ambito_aplicacao, " .
"palavras_chave, " .
"status) " .
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$args[] = $norma_id->fields['nextval'];
$args[] = $this->_Elaborador['user']['uidnumber'];
$args[] = $this->_Elaborador['area']['area_id'];
$args[] = $this->_Gestor['area']['area_id'];
$args[] = $this->_Gestor['user']['uidnumber'];
$args[] = $this->_DiretorJuridico['user']['uidnumber'];
$args[] = $this->_Diretor['area']['area_id'];
$args[] = $this->_Diretor['user']['uidnumber'];
$args[] = $this->_TipoDocumento['id'];
$args[] = $this->_Macroprocesso['id'];
$args[] = $this->_Processo['id'];
$args[] = $this->_TituloNorma;
$args[] = 1;
$args[] = $this->_getCodeSequence($this->_TipoDocumento['id'],
$this->_Macroprocesso['id']);
$args[] = $this->_ObjetivoNorma;
$args[] = $this->_AmbitoAplicacao['id'];
$args[] = $this->_PalavrasChave;
$args[] = 0;
$queryOK = ($this->DAO->Link_ID->query($query, $args)) ? true : false;
unset($args);
$query =
"INSERT INTO " .
"normas.arquivo(" .
"norma_id, " .
"nome, " .
"tipo, " .
"tamanho, " .
"is_anexo," .
"conteudo) ".
"VALUES(?,?,?,?,?,?)";
for($i=0; $i < count($this->_Arquivos); $i++ ){
$args[] = $norma_id->fields['nextval'];
$args[] = $this->_Arquivos[$i]['name'];
$args[] = $this->_Arquivos[$i]['type'];
$args[] = $this->_Arquivos[$i]['size'];
$args[] = (!$i) ? 0 : 1; // false se não for anexo
$args[] = base64_encode(serialize(array($this->_Arquivos[$i]['content'])));
if(!$this->DAO->Link_ID->query($query, $args)){
$queryOK = false;
break;
}
unset($args);
}
if($queryOK) $this->DAO->Link_ID->CompleteTrans();
else {
$this->DAO->Link_ID->FailTrans();
$msgs[] = "A atualização no banco de dados falhou";
$this->addViewVar('msgs', $msgs);
$this->addViewVar('msgclass', "msg_erro");
}
$this->commitInstance();
}
/**
* função padrão da atividade. Preenche os arrays para posteriormente popular as combos da camada view,
* recupera as informações automáticas.
*
* @return void
* @access public
*/
function defaultAction(){
$area_elaborador = $this->_Elaborador['area']['sigla'].
" - ".
$this->_Elaborador['area']['descricao'];
$areas_gestoras[0] = "--- Selecione a área gestora ---";
foreach($this->pOrganizacaoAreas as $area){
$areas_gestoras[$area['area_id']] = $area['sigla'].
" - ".
$area['descricao'];
}
$query =
"SELECT ".
"* ".
"FROM " .
"normas.tipo_documento " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
if($row) $rows[] = $row;
$tipos_documentos[0] = "--- Selecione um tipo ---";
foreach($rows as $elem){
$tipos_documentos[$elem['tipo_documento_id']] = $elem['sigla'].
" - ".
$elem['descricao'];
}
$query =
"SELECT ".
"* ".
"FROM " .
"normas.macroprocesso " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
unset($rows);
while($row = $result->fetchRow())
if($row) $rows[] = $row;
$macroprocessos[0] = "--- Selecione um macroprocesso ---";
foreach($rows as $elem){
$macroprocessos[$elem['macroprocesso_id']] = $elem['sigla'].
" - ".
$elem['descricao'];
}
$result = $this->pOrgchart->getOrganizationAreas($this->_Elaborador['employee']['organizacao_id']);
$ambito_aplicacao[0] = "--- Selecione uma área ---";
foreach($result as $area){
$ambito_aplicacao[$area['area_id']] = $area['sigla'].
" - ".
$area['descricao'];
}
$this->addViewVar('activity_title', "Sistema Normativo - Elaborar Norma");
$this->addViewVar('nomeElaborador', $this->_Elaborador['user']['cn']);
$this->addViewVar('nomeArea', $area_elaborador);
$this->addViewVar('cbAreasGestoras', $areas_gestoras);
$this->addViewVar('cbTiposDocumentos', $tipos_documentos);
$this->addViewVar('cbMacroprocessos', $macroprocessos);
$this->addViewVar('cbAmbitoAplicacao', $ambito_aplicacao);
}
}
?>
]]>
model->incluirAction();
$this->showForm($this->INS);
$this->loadViewVars();
}
/**
* Executa a chamada do método inserirAction e executa o método
* default
*
* @return void
* @access public
*/
function inserir(){
$this->model->inserirAction();
$this->__default();
}
/**
* Executa o método default
*/
function cancelar(){
$this->__default();
}
/**
* Executa a chamada do método editarAction
* carrega as variáveis da camada view e mostra o
* template de edição de macroprocessos
*
* @access public
* @return void
*/
function editar(){
$this->model->editarAction();
$this->loadViewVars();
$this->showForm($this->EDT);
}
/**
* Executa a chamada do método alterarAction
* e executa o método default
*
* @access public
* @return void
*/
function alterar(){
$this->model->alterarAction();
$this->__default();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
request['params'];
$query = "SELECT * FROM normas.macroprocesso ".
"WHERE macroprocesso_id = ?";
$result = $this->DAO->Link_ID->query($query, array($id));
$this->addViewVar('modo', "alterar");
$this->addViewVar('macroprocesso', $result->fields);
$this->addViewVar('activity_title', "Sistema Normativo - Alterar Macroprocesso");
}
/**
* método de atualização dos dados de um macroprocesso no banco de dados
*
* @access public
* @return void
*/
function alterarAction(){
$id = $this->request['id'];
$query =
"UPDATE " .
"normas.macroprocesso ".
"SET " .
"sigla = ?, " .
"descricao = ? " .
"WHERE " .
"macroprocesso_id = ?";
$args[] = $this->request['sigla'];
$args[] = $this->request['descricao'];
$args[] = $id;
$result = $this->DAO->Link_ID->query($query, $args);
if($result){
$this->addViewVar('msgclass', "msg_sucesso");
$this->addViewVar('msgs', array("Cadastro atualizado com sucesso"));
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', array("Não foi possível atualizar o cadastro"));
}
}
/**
* Carrega as variáveis da view para mostrar a tela de inclusão de macroprocessos
*
* @access public
* @return void
*/
function incluirAction(){
$this->addViewVar('modo', "inserir");
$this->addViewVar('activity_title', "Sistema Normativo - Incluir Macroprocesso");
}
/**
* Método de inclusão de um macroprocesso no banco de dados
*
* @access public
* @return void
*/
function inserirAction(){
if(!($args[] = $this->request['sigla']))
$msgs[] = "O campo SIGLA deve ser preenchido.";
if(!($args[] = $this->request['descricao']))
$msgs[] = "O campo DESCRIÇÃO deve ser preenchido.";
if(!count($msgs)){
$query = "INSERT INTO " .
"normas.macroprocesso(sigla, descricao) ".
"VALUES(?,?)";
if($this->DAO->Link_ID->query($query, $args)){
$this->addViewVar('msgclass', "msg_sucesso");
$this->addViewVar('msgs', array("Cadastro realizado com sucesso"));
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', array("Não foi possível fazer o cadastro"));
}
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', $msgs);
}
}
/**
* Mostra a listagem de todos os macroprocessos existentes utilizando a classe de paginação
*
* @access public
* @return void
*/
function defaultAction(){
$this->addViewVar("titulo","Sistema de Normas");
$this->addViewVar("activity_title", "Sistema Normativo - Manter Macroprocesso");
$query = "SELECT " .
"* " .
"FROM " .
"normas.macroprocesso";
$titulos_ordenacao = array();
$titulos_ordenacao[] = array('name' => "Sigla", 'id' => "1");
$titulos_ordenacao[] = array('name' => "Descricao", 'id' => "2");
$paging = $this->factory->getInstance("wf_paging");
$paging->configure(PAGING_NUMBER_OF_ITEMS, $_GET);
$paging->useDatabase(true);
$paging->enableSorting(true);
$paging->setSortingTitles($titulos_ordenacao);
$result = $paging->restrictDBItems($this->DAO, $query);
$this->addViewVar('titulos_ordenacao', $paging->getSortingTitles());
$this->addViewVar('count_items', $paging->itemsCount);
$this->addViewVar('result', $result);
$this->addViewVar('linksPaginacao', $paging->autoLinks(PAGING_MAX_NUMBER_OF_LINKS));
}
}
?>
]]>
DAO->query($query);
echo "quantidade ".$result->fields['qtd'];
return $result->fields['qtd'] + 1;
}
/**
* função para carregar as properties a partir do banco de dados
*
* @access protected
* @return void
* @param int $nrm_id o id da norma da qual serão extraídos os dados para a carga das properties
*/
function _updateDataBaseAttributesAction($nrm_id){
$query =
"SELECT ".
"nrm.norma_id AS nrm_id, " .
"nrm.elaborador_id AS nrm_elaborador_id, " .
"nrm.area_elaborador_id AS nrm_area_elaborador_id, " .
"nrm.gerente_id AS nrm_gerente_id, " .
"nrm.area_gestora_id AS nrm_area_gestora_id, " .
"nrm.diretor_id AS nrm_diretor_id, " .
"nrm.diretoria_id AS nrm_diretoria_id, " .
"nrm.diretor_juridico_id AS nrm_diretor_juridico_id, " .
"nrm.tipo_documento_id AS nrm_tpd_id, " .
"nrm.macroprocesso_id AS nrm_mpr_id, " .
"nrm.processo_id AS nrm_pro_id, " .
"nrm.titulo AS nrm_titulo, " .
"(tpd.sigla || '-' || mpr.sigla || '-' || ltrim(to_char(nrm.sequencia,'000')) || '-' || ltrim(to_char(nrm.num_revisao,'00'))) AS nrm_codigo, ".
"to_char(nrm.data_vigencia, 'DD/MM/YYYY') AS nrm_data_vigencia, " .
"nrm.objetivo AS nrm_objetivo, " .
"nrm.ambito_aplicacao AS nrm_ambito_aplicacao, " .
"nrm.palavras_chave AS nrm_palavras_chave, " .
"nrm.status AS nrm_status, " .
"nrm.num_revisao AS nrm_num_revisao, " .
"tpd.tipo_documento_id AS tpd_id, " .
"tpd.sigla AS tpd_sigla, " .
"tpd.descricao AS tpd_descricao, " .
"mpr.macroprocesso_id AS mpr_id, " .
"mpr.sigla AS mpr_sigla, " .
"mpr.descricao AS mpr_descricao, " .
"pro.processo_id AS pro_id, " .
"pro.descricao AS pro_descricao " .
"FROM ".
"normas.norma nrm ".
"INNER JOIN ".
"normas.tipo_documento tpd ".
"ON ".
"(nrm.tipo_documento_id = tpd.tipo_documento_id) ".
"INNER JOIN ".
"normas.macroprocesso mpr ".
"ON ".
"(nrm.macroprocesso_id = mpr.macroprocesso_id) ".
"INNER JOIN ".
"normas.processo pro ".
"ON ".
"(nrm.processo_id = pro.processo_id) " .
"WHERE " .
"nrm.norma_id = ?";
$result = $this->DAO->Link_ID->query($query, array($nrm_id));
$this->_Elaborador =
$this->_setEmployee($result->fields['nrm_elaborador_id'],
$result->fields['nrm_area_elaborador_id']);
$this->_Gestor =
$this->_setEmployee($result->fields['nrm_gerente_id'],
$result->fields['nrm_area_gestora_id']);
$this->_Diretor =
$this->_setEmployee($result->fields['nrm_diretor_id'],
$result->fields['nrm_diretoria_id']);
$this->_DiretorJuridico =
$this->_setEmployee($result->fields['nrm_diretor_juridico_id'],
ID_AREA_DJ);
$this->_TipoDocumento['id'] = $result->fields['tpd_id'];
$this->_TipoDocumento['cn'] = $result->fields['tpd_sigla'].
" - ".
$result->fields['tpd_descricao'];
$this->_Macroprocesso['id'] = $result->fields['mpr_id'];
$this->_Macroprocesso['cn'] = $result->fields['mpr_sigla'].
" - ".
$result->fields['mpr_descricao'];
$this->_Processo['id'] = $result->fields['pro_id'];
$this->_Processo['cn'] = $result->fields['pro_descricao'];
$this->_TituloNorma = $result->fields['nrm_titulo'];
$this->_CodigoNorma = $result->fields['nrm_codigo'];
$this->_DataVigencia = $result->fields['nrm_data_vigencia'];
$this->_ObjetivoNorma = $result->fields['nrm_objetivo'];
$ambito_aplicacao = $this->pOrgchart->getArea($result->fields['nrm_ambito_aplicacao']);
$this->_AmbitoAplicacao['id'] = $ambito_aplicacao['area_id'];
$this->_AmbitoAplicacao['cn'] = $ambito_aplicacao['sigla'].
" - ".
$ambito_aplicacao['descricao'];
$this->_PalavrasChave = $result->fields['nrm_palavras_chave'];
$this->_Status['id'] = $result->fields['nrm_status'];
$this->_NumRevisao = $result->fields['nrm_num_revisao'];
switch($result->fields['nrm_status']){
case 0:
$this->_Status['cn'] = "Em Elaboração";
break;
case 1:
$this->_Status['cn'] = "Vigente";
break;
case 2:
$this->_Status['cn'] = "Obsoleta";
break;
case 3:
$this->_Status['cn'] = "Suspensa";
break;
case 4:
$this->_Status['cn'] = "Revogada";
break;
case 5:
$this->_Status['cn'] = "Em Revisão";
break;
default:
$this->_Status['cn'] = "ERROR";
}
$this->_updateDataBaseFilesAction($nrm_id);
}
/**
* função que carrega a property _Arquivos a partir de dados do banco de dados
*
* @access protected
* @return void
* @param int $nrm_id O id da norma da qual se quer fazer download dos arquivos
*/
function _updateDataBaseFilesAction( $nrm_id ){
$query =
"SELECT " .
"* " .
"FROM " .
"normas.arquivo " .
"WHERE " .
"norma_id = ? " .
"ORDER BY " .
"is_anexo";
$result = $this->DAO->Link_ID->query($query, array($nrm_id));
while($row = $result->fetchRow())
if($row) $tmpArquivos[] = $row;
for($i = 0; $i < count($tmpArquivos); $i++){
$this->_Arquivos[$i]['arquivo_id'] = $tmpArquivos[$i]['arquivo_id'];
$this->_Arquivos[$i]['name'] = $tmpArquivos[$i]['nome'];
$this->_Arquivos[$i]['type'] = $tmpArquivos[$i]['tipo'];
$this->_Arquivos[$i]['size'] = $tmpArquivos[$i]['tamanho'];
$conteudo = unserialize(base64_decode($tmpArquivos[$i]['conteudo']));
$this->_Arquivos[$i]['content'] = $conteudo[0];
$this->_Arquivos[$i]['is_anexo'] = $tmpArquivos[$i]['is_anexo'];
}
}
/**
* função para automatizar o carregamento dos atributos _Elaborador, _Gestor,
* _Diretor e _DiretorJuridico
*
* @access protected
* @param int $uid O Id do usuário
* @param int $area_id O Id da área
* @return Um array de arrays com os dados de user (ldap), employee (orgchart) e área (orgchart)
*/
function _setEmployee($uid, $area_id){
$ret['user'] = $this->pLdap->get_entry($uid);
$ret['employee'] = $this->pOrgchart->getEmployee($uid);
$ret['area'] = $this->pOrgchart->getArea($area_id);
return $ret;
}
/**
* função para fazer download de arquivos que estejam no banco de dados
*
* @access protected
* @return void
*/
function downloadDataBaseAction(){
$this->_updateDataBaseFilesAction( $_GET['norma_id'] );
$this->_downloadAction();
}
/**
* função para fazer download de arquivos que estejam em na property _Arquivos
* da instancia
*
* @access protected
* @return void
*/
function downloadPropertiesAction(){
$this->updateAttributes();
$this->_downloadAction();
}
/**
* função para fazer downloads de arquivos desde que eles estejam no
* atributo _Arquivos da classe model
*
* @access privado
* $return void
*/
function _downloadAction(){
function download($params){
foreach($params['model']->_Arquivos as $arq)
if($arq['arquivo_id'] == $params['id']){
$fileToDownload = array();
$fileToDownload['filename'] = $arq['name'];
$fileToDownload['content'] = $arq['content'];
}
return $fileToDownload;
}
wf_handle_download(array_merge($_GET, array('model' => $this)), "download");
}
/**
* carrega os atributos da classe model dos dados do banco e
* carrega as variáveis da camada view
*
* @access protected
* @return void
*/
function _visualizarNorma(){
$nrm_id = $this->request['params'];
$this->_updateDataBaseAttributesAction($nrm_id);
for($i = 0; $i < count($this->_Arquivos); $i++){
$Arquivos[$i]['id'] = $this->_Arquivos[$i]['arquivo_id'];
$Arquivos[$i]['nome'] = $this->_Arquivos[$i]['name'];
}
$this->addViewVar('NormaId', $nrm_id);
$this->addViewVar('nomeElaborador', $this->_Elaborador['user']['cn']);
$this->addViewVar('nomeArea', $this->_Elaborador['area']['sigla'].
" - ".
$this->_Elaborador['area']['descricao']);
$this->addViewVar('nomeAreaGestora', $this->_Gestor['area']['sigla'].
" - " .
$this->_Gestor['area']['descricao']);
$this->addViewVar('nomeGestor', $this->_Gestor['user']['cn']);
$this->addViewVar('nomeDiretorJuridico', $this->_DiretorJuridico['user']['cn']);
$this->addViewVar('nomeDiretoria', $this->_Diretor['area']['sigla'].
" - ".
$this->_Diretor['area']['descricao']);
$this->addViewVar('nomeDiretor', $this->_Diretor['user']['cn']);
$this->addViewVar('nomeTipoDocumento', $this->_TipoDocumento['cn']);
$this->addViewVar('nomeMacroprocesso', $this->_Macroprocesso['cn']);
$this->addViewVar('nomeProcesso', $this->_Processo['cn']);
$this->addViewVar('TituloNorma', $this->_TituloNorma);
$this->addViewVar('CodigoNorma', $this->_CodigoNorma);
$this->addViewVar('DataVigencia', $this->_DataVigencia);
$this->addViewVar('ObjetivoNorma', $this->_ObjetivoNorma);
$this->addViewVar('nomeAmbitoAplicacao', $this->_AmbitoAplicacao['cn']);
$this->addViewVar('PalavrasChave', $this->_PalavrasChave);
$this->addViewVar('nomeStatus', $this->_Status['cn']);
$this->addViewVar('Arquivos', $Arquivos);
$this->addViewVar('downloadMethod', "downloadDataBase");
$this->addViewVar('activity_title', "Sistema Normativo - Visualizar Norma - ".$this->_CodigoNorma);
}
}
?>
]]>
model->incluirAction();
$this->loadViewVars();
$this->showForm($this->INS);
}
/**
* Executa a ação de inserir um novo processo no banco
*
* @return NULL
* @access public
*/
function inserir(){
$this->model->inserirAction();
$this->__default();
}
/**
* Mostra o formulário de edição de um processo existente
*
* @return NULL
* @access public
*/
function editar(){
$this->model->editarAction();
$this->loadViewVars();
$this->showForm($this->EDT);
}
/**
* Executa a ação de alteração de um processo no banco
*
* @return NULL
* @access public
*/
function alterar(){
$this->model->alterarAction();
$this->__default();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
addViewVar('activity_title', "Sistema Normativo - Incluir Processo");
$this->addViewVar('modo', "inserir");
$query =
"SELECT ".
"* ".
"FROM ".
"normas.macroprocesso ".
"ORDER BY ".
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
if($row) $rows[] = $row;
$this->addViewVar('macroprocesso', $rows);
}
/**
* Carrega as variáveis variáveis da camada view para mostrar a tela de alteração de um processo
*
* @access public
* @return void
*/
function editarAction(){
$params = explode(';',$this->request['params']);
$query =
"SELECT " .
"* " .
"FROM " .
"normas.macroprocesso " .
"ORDER BY " .
"sigla";
$result = $this->DAO->query($query);
while($row = $result->fetchRow())
if($row) $rows[] = $row;
$this->addViewVar('selected', $params[0]);
$this->addViewVar('macroprocesso', $rows);
$this->addViewVar('proc_descricao', $params[1]);
$this->addViewVar('proc_id', $params[2]);
$this->addViewVar('activity_title', "Sistema Normativo - Alterar Processo");
}
/**
* Insere um processo no banco de dados
*
* @access public
* @return void
*/
function inserirAction(){
$sucesso = true;
if(($args[] = $this->request['cb_macroprocesso']) == 0){
$sucesso = false;
$msgclass = "msg_erro";
$msgs[] = "Um macro-processo deve ser selecionado";
}
if(!($args[] = $this->request['descricao'])){
$sucesso = false;
$msgclass = "msg_erro";
$msgs[] = "O campo DESCRICAO deve ser preenchido";
}
if($sucesso){
$query =
"INSERT INTO ".
"normas.processo " .
"(macroprocesso_id, descricao) " .
"VALUES " .
"(?,?)";
if($this->DAO->Link_ID->query($query, $args)){
$msgclass = "msg_sucesso";
$msgs[] = "Cadastro realizado com sucesso";
} else {
$msgclass = "msg_erro";
$msgs[] = "Não foi possível executar a inserção";
}
}
$this->addViewVar('msgs', $msgs);
$this->addViewVar('msgclass', $msgclass);
$this->addViewVar('activity_title', "Incluir Processo");
}
/**
* Altera um processo no banco de dados
*
* @access public
* @return void
*/
function alterarAction(){
$sucesso = true;
if(($args[] = $this->request['cb_macroprocesso']) == 0){
$sucesso = false;
$msgclass = "msg_erro";
$msgs[] = "Um macroprocesso deve ser selecionado";
}
if(!($args[] = $this->request['descricao'])){
$sucesso = false;
$msgclass = "msg_erro";
$msgs[] = "O campo DESCRIÇÃO deve ser preenchido";
}
$args[] = $this->request['params'];
if($sucesso){
$query =
"UPDATE " .
"normas.processo " .
"SET " .
"macroprocesso_id = ?, " .
"descricao = ? " .
"WHERE " .
"processo_id = ?";
if(!($this->DAO->Link_ID->query($query, $args))){
$msgclass = "msg_erro";
$msgs[] = "Não foi possível atualizar o cadastro";
} else {
$msgclass = "msg_sucesso";
$msgs[] = "Cadastro atualizado com sucesso";
}
}
$this->addViewVar('msgclass', $msgclass);
$this->addViewVar('msgs', $msgs);
}
/**
* mostra a listagem de processos salvos no banco de dados utilizando a classe de paginação
*
* @access public
* @return void
*/
function defaultAction(){
$this->addViewVar("titulo","Sistema de Normas");
$this->addViewVar("activity_title", "Sistema Normativo - Manter Processos");
$query =
"SELECT " .
"mpr.sigla AS mpr_sigla, ".
"mpr.descricao AS mpr_descricao, ".
"pro.descricao AS pro_descricao, ".
"mpr.macroprocesso_id AS mpr_id, ".
"pro.processo_id AS pro_id, ".
"pro.macroprocesso_id AS pro_mpr_id ".
"FROM ".
"normas.macroprocesso mpr, ".
"normas.processo pro ".
"WHERE ".
"mpr.macroprocesso_id = pro.macroprocesso_id";
$titulos_ordenacao = array();
$titulos_ordenacao[] = array('name' => "Sigla", 'id' => "1");
$titulos_ordenacao[] = array('name' => "Macroprocesso", 'id' => "2");
$titulos_ordenacao[] = array('name' => "Processo", 'id' => "3");
$paging = $this->factory->getInstance("wf_paging");
$paging->configure(PAGING_NUMBER_OF_ITEMS, $_GET);
$paging->useDatabase(true);
$paging->enableSorting(true);
$paging->setSortingTitles($titulos_ordenacao);
$result = $paging->restrictDBItems($this->DAO, $query);
$this->addViewVar('titulos_ordenacao', $paging->getSortingTitles());
$this->addViewVar('count_items', $paging->itemsCount);
$this->addViewVar('result', $result);
$this->addViewVar('linksPaginacao', $paging->autoLinks(PAGING_MAX_NUMBER_OF_LINKS));
}
}
?>
]]>
model->incluirAction();
$this->showForm($this->INS);
$this->loadViewVars();
}
/**
* Executa o método inserirAction e o método default
*
* @access public
* @return void
*/
function inserir(){
$this->model->inserirAction();
$this->__default();
}
/**
* Executa a chamada do métodp editarAction, mostra o template de alteração
* e carrega as variáveis da camada view
*
* @access public
* @return void
*/
function editar(){
$this->model->editarAction();
$this->showForm($this->EDT);
$this->loadViewVars();
}
/**
* Executa o metodo alterarAction e o método default
*
* @access public
* @return void
*/
function alterar(){
$this->model->alterarAction();
$this->__default();
}
/**
* Executa a chamada do método default
*
* @access public
* @return void
*/
function cancelar(){
$this->__default();
}
/**
* Ação padrão da atividade.
*
* @return boolean
* @access private
*/
function __default(){
$this->model->defaultAction();
$this->loadViewVars();
}
/**
* Execução da aplicação.
*
* @return void
* @access public
*/
function run ($action){
$this->model->DAO->connect();
$this->dispatch($action);
$this->model->DAO->disconnect();
}
}
?>
]]>
request['params'];
$query =
"SELECT " .
"* " .
"FROM " .
"normas.tipo_documento ".
"WHERE " .
"tipo_documento_id = ?";
$result = $this->DAO->Link_ID->query($query, array($id));
$this->addViewVar('modo', "alterar");
$this->addViewVar('tipo_documento', $result->fields);
$this->addViewVar('activity_title', "Sistema Normativo - Alterar Tipo de Documento");
}
/**
* Altera um tipo de documento no banco de dados
*
* @access public
* @return void
*/
function alterarAction(){
$id = $this->request['id'];
$query =
"UPDATE " .
"normas.tipo_documento ".
"SET " .
"sigla = ?, " .
"descricao = ? " .
"WHERE " .
"tipo_documento_id = ?";
$args[] = $this->request['sigla'];
$args[] = $this->request['descricao'];
$args[] = $id;
$result = $this->DAO->Link_ID->query($query, $args);
if($result){
$this->addViewVar('msgclass', "msg_sucesso");
$this->addViewVar('msgs', array("Cadastro atualizado com sucesso"));
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', array("Não foi possível atualizar o cadastro"));
}
}
/**
* Carrega as variáveis da camada view para mostrar a tela de inclusão de um tipo de documento
*
* @access public
* @return void
*/
function incluirAction(){
$this->addViewVar('modo', "inserir");
$this->addViewVar('activity_title', "Sistema Normativo - Incluir Tipo de Documento");
}
/**
* Insere um tipo de documento no banco de dados
*
* @access public
* @return void
*/
function inserirAction(){
if(!($args[] = $this->request['sigla']))
$msgs[] = "O campo SIGLA deve ser preenchido.";
if(!($args[] = $this->request['descricao']))
$msgs[] = "O campo DESCRIÇÃO deve ser preenchido.";
if(!count($msgs)){
$query = "INSERT INTO " .
"normas.tipo_documento(" .
"sigla, " .
"descricao) ".
"VALUES(?,?)";
if($this->DAO->Link_ID->query($query, $args)){
$this->addViewVar('msgclass', "msg_sucesso");
$this->addViewVar('msgs', array("Cadastro realizado com sucesso"));
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', array("Não foi possível fazer o cadastro"));
}
} else {
$this->addViewVar('msgclass', "msg_erro");
$this->addViewVar('msgs', $msgs);
}
}
/**
* Mostra a listagem dos tipos de documento utilizando a classe de paginação
*
* @access public
* @return void
*/
function defaultAction(){
$this->addViewVar("titulo","Sistema de Normas");
$this->addViewVar("activity_title", "Sistema Normativo - Manter Tipo de Documentos");
$query = "SELECT " .
"* " .
"FROM " .
"normas.tipo_documento";
$titulos_ordenacao = array();
$titulos_ordenacao[] = array('name' => "Sigla", 'id' => "1");
$titulos_ordenacao[] = array('name' => "Tipo de Documento", 'id' => "2");
$paging = $this->factory->getInstance("wf_paging");
$paging->configure(PAGING_NUMBER_OF_ITEMS, $_GET);
$paging->useDatabase(true);
$paging->enableSorting(true);
$paging->setSortingTitles($titulos_ordenacao);
$result = $paging->restrictDBItems($this->DAO, $query);
$this->addViewVar('titulos_ordenacao', $paging->getSortingTitles());
$this->addViewVar('count_items', $paging->itemsCount);
$this->addViewVar('result', $result);
$this->addViewVar('linksPaginacao', $paging->autoLinks(PAGING_MAX_NUMBER_OF_LINKS));
}
}
?>
]]>