• Nenhum resultado encontrado

Sisorc. Tutorial de Criação de Novos Módulos

N/A
N/A
Protected

Academic year: 2021

Share "Sisorc. Tutorial de Criação de Novos Módulos"

Copied!
15
0
0

Texto

(1)

Sisorc

Sisorc

Tutorial de Criação de Novos Módulos

Tutorial de Criação de Novos Módulos

(2)

Banco de Dados

Banco de Dados





Para criar um novo módulo é aconselhável que todas as

Para criar um novo módulo é aconselhável que todas as

tabelas destinadas a este módulo esteja dentro de um

tabelas destinadas a este módulo esteja dentro de um

novo schema.

novo schema.





Atualmente existem os seguintes schemas:

Atualmente existem os seguintes schemas:



 Fin : Módulo FinanceiroFin : Módulo Financeiro 

 Lab: Módulo de LaboratóriosLab: Módulo de Laboratórios 

 Ods: Módulo de Ordem de ServiçoOds: Módulo de Ordem de Serviço 

 Prj: Módulo de ProjetosPrj: Módulo de Projetos 

 Sys: Módulo do SistemaSys: Módulo do Sistema 

 Usr: Módulo de UsuáriosUsr: Módulo de Usuários 

(3)

Exemplo: Almoxarifado

Exemplo: Almoxarifado



 Nomenclatura do banco de dados:Nomenclatura do banco de dados:



 Idt: identificadorIdt: identificador



 Nme: nomeNme: nome



 Txt: textoTxt: texto



 Cod: código(normalmente FK)Cod: código(normalmente FK)

  Tbl: TabelaTbl: Tabela   Vlr: valorVlr: valor   Sts: StatusSts: Status 

 Dta: DataDta: Data



 Exemplos:Exemplos:



 nme_usuario = Nome do usuárionme_usuario = Nome do usuário



 cod_amostra = Código da cod_amostra = Código da Amostra

(4)

Padrão de Projeto MVC

Padrão de Projeto MVC



 O Sisorc foi implementando utilizando o padrão de projeto O Sisorc foi implementando utilizando o padrão de projeto

MVC, porém ele não está orientado a objetos, na verdade MVC, porém ele não está orientado a objetos, na verdade existem algumas classes, mas para otimizar o desempenho e existem algumas classes, mas para otimizar o desempenho e diminuir o tempo de desenvolvimento ele não está totalmente diminuir o tempo de desenvolvimento ele não está totalmente orientado a objetos.

orientado a objetos.



 As principais classes são:As principais classes são:



 TTpl : Renderização de TemplatesTTpl : Renderização de Templates



 Table: Tabela(HTML)Table: Tabela(HTML)



 Tau: conversão e operações usuaisTau: conversão e operações usuais



 TDbw: Wrapper do banco de dadosTDbw: Wrapper do banco de dados



 Modelos e Regras de Negócio ficam na pasta: MDLModelos e Regras de Negócio ficam na pasta: MDL



 Views e Templates ficam na pasta: TPLViews e Templates ficam na pasta: TPL



(5)

Permissões

Permissões





Ao criar um novo módulo é necessário criar as

Ao criar um novo módulo é necessário criar as

permissões de acesso a neste módulo.

permissões de acesso a neste módulo.





As permissões ficam armazenadas na tabela

As permissões ficam armazenadas na tabela

usr.tbl_permissoes.

usr.tbl_permissoes.

(6)

Exemplo: Criação de Permissão

Exemplo: Criação de Permissão



 Para criar uma permissão Para criar uma permissão

basta criar um Sigla(PK) e basta criar um Sigla(PK) e preencher a descrição.

preencher a descrição.



 Vale lembrar que as Vale lembrar que as

permissões são empilhadas, permissões são empilhadas, então um usuário pode ter então um usuário pode ter várias permissões.

várias permissões.



 Importante: Todos os Importante: Todos os

usuários devem ter ao menos usuários devem ter ao menos a permissão de “USR

a permissão de “USR -

-Usuário do Sistema”, caso Usuário do Sistema”, caso contrário eles não conseguem contrário eles não conseguem nem entrar no sistema.

(7)

Criação de Menus

Criação de Menus



 A criação de menus é feita dentro do arquivo: A criação de menus é feita dentro do arquivo:

mdl/lgn/fra_menu.php mdl/lgn/fra_menu.php



 Dentro deste arquivo existe um array com o seguinte formato:Dentro deste arquivo existe um array com o seguinte formato:



 array(array(

'fin',

'fin', // Grupo do menu// Grupo do menu 'LUS‘,

'LUS‘, // Permissão do usuário// Permissão do usuário 'Análises',

'Análises', // Rótulo do menu // Rótulo do menu 'ctl.php?act=lab.fan_lst‘ // Ação 'ctl.php?act=lab.fan_lst‘ // Ação );

);



 O menu será construído dinamicamente, neste caso, irá aparecer O menu será construído dinamicamente, neste caso, irá aparecer

a opção ‘Análises’ para os usuários que tiverem a permissão LUS a opção ‘Análises’ para os usuários que tiverem a permissão LUS

(8)

Exemplo: Menu Produtos

Exemplo: Menu Produtos





Para criar este menu

Para criar este menu

basta adicionar a seguinte

basta adicionar a seguinte

linha no arquivo:

linha no arquivo:

mdl/lgn/fra_menu.php

mdl/lgn/fra_menu.php





array('fin', 'ALM',

array('fin', 'ALM',

'Produtos','ctl.php?act=al

'Produtos','ctl.php?act=al

m.pdt_crud')

(9)

Arquivo de Mapeamento de Controle

Arquivo de Mapeamento de Controle

de Acesso

de Acesso



 Todos os módulos devem ter um ou mais arquivos de mapeamento, esse arquivo de mapeamento Todos os módulos devem ter um ou mais arquivos de mapeamento, esse arquivo de mapeamento

é responsável por indicar ao controlador a view, o modelo e a pe

é responsável por indicar ao controlador a view, o modelo e a permissão daquela ação.rmissão daquela ação.



 Por motivos de desempenho não foi escolhido o formato XML, este arquivo possui o seguinte Por motivos de desempenho não foi escolhido o formato XML, este arquivo possui o seguinte

formato: formato:



 <?php<?php



 $map = array($map = array(



 'atv_lst' => array('src' => 'atv/atv_lst.php','tpl' => 'skn/pgn_lst.htm','skn' => 'lim', 'per' => 'atv_lst' => array('src' => 'atv/atv_lst.php','tpl' => 'skn/pgn_lst.htm','skn' => 'lim', 'per' =>

'PRJ') 'PRJ')



 ?>?>



 Onde: atv_lst = é o nome da açãoOnde: atv_lst = é o nome da ação



 Src: é o nome do arquivo que possui o código fonte para tratamento da ação.Src: é o nome do arquivo que possui o código fonte para tratamento da ação.



 Tpl: é o nome do arquivo de template que será renderizado.Tpl: é o nome do arquivo de template que será renderizado.



 Skn: é o nome da skin.Skn: é o nome da skin. 

 Atualmente as skins são:Atualmente as skins são: 

 lim = renderiza diretamente o arquivo indicado.lim = renderiza diretamente o arquivo indicado.



 prn = renderiza o arquivo utilizando o arquivo: “skn/pgn_prn.htprn = renderiza o arquivo utilizando o arquivo: “skn/pgn_prn.htm”.m”.



 non = Não renderiza nenhum arquivo, utilizado para javascript dinon = Não renderiza nenhum arquivo, utilizado para javascript dinâmicos e geração de PDF e XLS.nâmicos e geração de PDF e XLS.



(10)

Exemplo: CRUD de Produtos

Exemplo: CRUD de Produtos



 Criando o arquivo de mapeamento(ctl/map_Criando o arquivo de mapeamento(ctl/map_almalm.php):.php):

  <?php<?php $map = array( $map = array( 'pdt_crud' => array( 'pdt_crud' => array( 'src' =>'alm/pdt_crud.php', 'src' =>'alm/pdt_crud.php', 'tpl' =>'skn/crud_prn.htm', 'tpl' =>'skn/crud_prn.htm', 'skn' => 'prn', 'skn' => 'prn', 'per' => 'ALM‘ 'per' => 'ALM‘ ) ) ); ); ?> ?> 

 Este mapeamento significa que a ação: almEste mapeamento significa que a ação: alm.pdt_crud tem como .pdt_crud tem como

modelo o arquivo alm/pdt_crud.php, a view skn/crud_prn.htm, modelo o arquivo alm/pdt_crud.php, a view skn/crud_prn.htm, a skin prn e a permissão ‘ALM’ como parametros.

(11)

Modelo

Modelo



 O controlador ao identificar no mapeamento qual é o arquivo de O controlador ao identificar no mapeamento qual é o arquivo de

modelo irá fazer o include do arquivo e executar a função main modelo irá fazer o include do arquivo e executar a função main deste arquivo.

deste arquivo.



 Um arquivo de modelo tem sempre o seguinte formato:Um arquivo de modelo tem sempre o seguinte formato:

  <?php<?php // includes // includes // Functions // Functions function main($tau){ function main($tau){ // Código fonte // Código fonte

return $lbl; // $lbl é um array to tipo key => value utiliza

return $lbl; // $lbl é um array to tipo key => value utilizando ndo na renderização. na renderização. } } ?> ?>

(12)

Exemplo: Criação do modelo

Exemplo: Criação do modelo



 <?php<?php



 requirerequire('./('./src/crud.phpsrc/crud.php');');



 functionfunctionmainmain($($tautau){){



 $$opcopc= $= $tautau-->>getget('('opc');opc');



 if ($if ($opc==''){ $oopc==''){ $opc= 'pc= 'rea'; }rea'; }



 $$cfgcfg= = arrayarray((



 ''titletitle' => 'Produtos',' => 'Produtos',



 ''pkpk' => '' => 'idt_produto',idt_produto',



 ''tabletable' => '' => 'alm.tbl_produtos',alm.tbl_produtos',



 ''fieldsfields' => ' => arrayarray( (



 ''nme_produtonme_produto' => ' => arrayarray((



 ''typetype' => 'string',' => 'string',



 ''namename' => 'Nome',' => 'Nome',



 ''notnullnotnull' => ' => truetrue



 ),),



 ''txt_descricaotxt_descricao' => ' => arrayarray((



 ''typetype' => '' => 'text',text',



 ''namename' => 'Descrição',' => 'Descrição',



 ''notnullnotnull' => ' => truetrue



 ) )



 ),),



 ''createcreate' => ' => arrayarray((



 ''fieldsfields' => '' => 'nme_produtonme_produto,,txt_descricaotxt_descricao''



 ),),



 ''readread' => ' => arrayarray((



 ''filtersfilters' => '' => 'nme_produto',nme_produto',



 ''fieldsfields' => '' => 'nme_produtonme_produto,,txt_descricaotxt_descricao',',



 ''sqlsql' => '' => 'selectselect##fieldsfields# # fromfromalm.tbl_produtosalm.tbl_produtoswherewhere##wherewhere#'#'



 ),),



 ''updateupdate' => ' => arrayarray((



 ''fieldsfields' => '' => 'nme_produtonme_produto,,txt_descricaotxt_descricao''



 ),),



 ''deletedelete' => ' => arrayarray()()



 ););



 $$lbllbl= = crudcrud($($opcopc, $, $cfgcfg););

  returnreturn$$lbllbl;;   }}   ?>?>

Neste caso estamos utilizando o

Neste caso estamos utilizando o

arquivo “

arquivo “src/crud.phpsrc/crud.php” este ” este arquivo gera páginas CRUD

arquivo gera páginas CRUD

tradicionais, inclusive com FK.

(13)

Telas:

Telas:

(14)

Dicionário

Dicionário



 Nos modelos foram utilizado as seguintes siglas:Nos modelos foram utilizado as seguintes siglas:



 atvatv=> Atividades=> Atividades



 autaut=> Automóveis=> Automóveis



 cbbcbb=> => ComboboxCombobox



 com => Combustívelcom => Combustível



 doc => Tipo de Documentodoc => Tipo de Documento



 empemp=> Empresas=> Empresas



 finfin=> Financeiro=> Financeiro



 fonfon=> Fonte=> Fonte



 gesges=> Gestão=> Gestão



 lablab=> Laboratórios=> Laboratórios



 lgnlgn=> => LoginLogin



 loglog=> => LogsLogs



 motmot=> Motoristas=> Motoristas



 odsods=> Ordem de Serviço=> Ordem de Serviço



 pacpac=> Plano de ação=> Plano de ação



 pespes=> Pesquisador=> Pesquisador



 prjprj=> Projetos=> Projetos



 tdstds=> Tipo de despesa=> Tipo de despesa



 uni => Unidadesuni => Unidades



 usrusr=> Usuários=> Usuários



(15)

Dicionário

Dicionário

Cont.

Cont.



 insins=> Inserir=> Inserir



 altalt=> Alterar=> Alterar



 deldel=> apagar=> apagar



 prnprn=> Ação principal=> Ação principal



 pstpst=> Post=> Post



 frmfrm=> Formulário=> Formulário



 sol => Solicitaçãosol => Solicitação



 vis => Visualizarvis => Visualizar



 detdet=> Detalhes=> Detalhes



 lstlst=> Lista=> Lista



 gragra=> Gráfico=> Gráfico



 Exemplo arquivo: mdl/usr/alt_frm.phpExemplo arquivo: mdl/usr/alt_frm.php



 mdlmdl=> Modelo=> Modelo



 usrusr=> Usuários=> Usuários



Referências

Documentos relacionados

Várias medidas têm vindo a ser tomadas nos últimos anos pelo Ministério da Saúde de Moçambique (MISAU) para minimizar o impacto negativo da infecção pelo HIV que

Essa é a situação para os bancos centrais que têm objetivos explícitos tanto para segurança quanto para eficiência (B, HK, SE, US) e também para alguns outros cujos objetivos são

Atenas e Esparta eram as cidades mais importantes da Grécia Antiga e que deixaram uma herança visível até os nossos dias. As demais alternativas não são corretas, pois Roma fica

Relativamente à orientação proposta após observação na urgência, 122 casos (16,5%) foram internados e 84 (11,3%) orientados para a Consulta de Crise na Adolescência (trata-se

▪ Isso significa que NÃO existe uma regra escrita, REGRA FORMAL, que defina exatamente quem deve ocupar tais cargos. Nesse caso, prefeitos e prefeitas são livres para escolher

Na Figura 1 são apresentados os dados médios mensais de temperatura máxima diária, temperatura mínima diária, temperatura média diária e umidade relativa do ar, para o período

§ 1º Toda carga que exigir Permissão de Trânsito deverá ser lacrada pelo emitente, na origem, lançando o(s) número(s) do(s) lacre(s) na Permissão de Trânsito, exceto

 G3 (Não Adesão) – Indivíduos pertencentes a este grupo apresentam os seguintes indicadores: uso intermitente da medicação quando se sentem bem; esquecimento de tomar o