├── .gitignore
├── LICENSE
├── README.md
├── fotos
├── 1.jpg
├── 2.jpg
├── 3.jpg
└── 4.jpg
├── ponto.sql
├── ponto
├── .htaccess
├── css
│ ├── acompanhamento.css
│ ├── calendario.css
│ ├── estilos.css
│ ├── estrutura.css
│ ├── font-awesome
│ │ ├── css
│ │ │ ├── font-awesome.css
│ │ │ └── font-awesome.min.css
│ │ ├── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ ├── fontawesome-webfont.woff
│ │ │ └── fontawesome-webfont.woff2
│ │ ├── less
│ │ │ ├── animated.less
│ │ │ ├── bordered-pulled.less
│ │ │ ├── core.less
│ │ │ ├── fixed-width.less
│ │ │ ├── font-awesome.less
│ │ │ ├── icons.less
│ │ │ ├── larger.less
│ │ │ ├── list.less
│ │ │ ├── mixins.less
│ │ │ ├── path.less
│ │ │ ├── rotated-flipped.less
│ │ │ ├── screen-reader.less
│ │ │ ├── stacked.less
│ │ │ └── variables.less
│ │ └── scss
│ │ │ ├── _animated.scss
│ │ │ ├── _bordered-pulled.scss
│ │ │ ├── _core.scss
│ │ │ ├── _fixed-width.scss
│ │ │ ├── _icons.scss
│ │ │ ├── _larger.scss
│ │ │ ├── _list.scss
│ │ │ ├── _mixins.scss
│ │ │ ├── _path.scss
│ │ │ ├── _rotated-flipped.scss
│ │ │ ├── _screen-reader.scss
│ │ │ ├── _stacked.scss
│ │ │ ├── _variables.scss
│ │ │ └── font-awesome.scss
│ ├── formulario.css
│ ├── imgs
│ │ ├── bigLoader.gif
│ │ ├── contrair.gif
│ │ ├── expandir.gif
│ │ ├── fundo_bt.gif
│ │ ├── fundo_bt_amarelo.gif
│ │ ├── fundo_bt_desabilitado.gif
│ │ ├── fundo_bt_verde.gif
│ │ ├── fundo_bt_vermelho.gif
│ │ ├── fundo_tab.jpg
│ │ ├── icone_aviso.png
│ │ ├── icone_erro.png
│ │ ├── icone_informacao.png
│ │ ├── icone_proibido.png
│ │ ├── icone_sucesso.png
│ │ ├── icone_zoom_in.png
│ │ └── smallLoader.gif
│ ├── jquery
│ │ ├── images
│ │ │ ├── Thumbs.db
│ │ │ ├── animated-overlay.gif
│ │ │ ├── ui-bg_flat_15_cd0a0a_40x100.png
│ │ │ ├── ui-bg_flat_90_7b7b7b_40x100.png
│ │ │ ├── ui-bg_glass_100_e4f1fb_1x400.png
│ │ │ ├── ui-bg_glass_50_3baae3_1x400.png
│ │ │ ├── ui-bg_glass_80_d7ebf9_1x400.png
│ │ │ ├── ui-bg_highlight-hard_100_f2f5f7_1x100.png
│ │ │ ├── ui-bg_highlight-hard_70_000000_1x100.png
│ │ │ ├── ui-bg_highlight-soft_100_deedf7_1x100.png
│ │ │ ├── ui-bg_highlight-soft_25_ffef8f_1x100.png
│ │ │ ├── ui-icons_2694e8_256x240.png
│ │ │ ├── ui-icons_2e83ff_256x240.png
│ │ │ ├── ui-icons_3d80b3_256x240.png
│ │ │ ├── ui-icons_72a7cf_256x240.png
│ │ │ └── ui-icons_ffffff_256x240.png
│ │ └── jquery-ui-1.10.3.custom.min.css
│ ├── materialize
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── css
│ │ │ ├── materialize.css
│ │ │ └── materialize.min.css
│ │ ├── font
│ │ │ ├── material-design-icons
│ │ │ │ ├── LICENSE.txt
│ │ │ │ ├── Material-Design-Icons.eot
│ │ │ │ ├── Material-Design-Icons.svg
│ │ │ │ ├── Material-Design-Icons.ttf
│ │ │ │ ├── Material-Design-Icons.woff
│ │ │ │ └── Material-Design-Icons.woff2
│ │ │ └── roboto
│ │ │ │ ├── Roboto-Bold.ttf
│ │ │ │ ├── Roboto-Bold.woff
│ │ │ │ ├── Roboto-Bold.woff2
│ │ │ │ ├── Roboto-Light.ttf
│ │ │ │ ├── Roboto-Light.woff
│ │ │ │ ├── Roboto-Light.woff2
│ │ │ │ ├── Roboto-Medium.ttf
│ │ │ │ ├── Roboto-Medium.woff
│ │ │ │ ├── Roboto-Medium.woff2
│ │ │ │ ├── Roboto-Regular.ttf
│ │ │ │ ├── Roboto-Regular.woff
│ │ │ │ ├── Roboto-Regular.woff2
│ │ │ │ ├── Roboto-Thin.ttf
│ │ │ │ ├── Roboto-Thin.woff
│ │ │ │ └── Roboto-Thin.woff2
│ │ └── js
│ │ │ ├── materialize.js
│ │ │ └── materialize.min.js
│ ├── registro.css
│ ├── simples.css
│ ├── tabela.css
│ ├── texto.css
│ └── yii.css
├── imgs
│ ├── banner.png
│ ├── fundo-listrado-diagonal.gif
│ ├── logo.png
│ ├── logoPonto.png
│ ├── logo_branco.png
│ ├── mouse_normal_g.png
│ └── mouse_normal_xg.png
├── index.php
├── js
│ ├── acompanhamento.js
│ ├── acompanhamentoChefia.js
│ ├── calendario.js
│ ├── circle-progress.js
│ ├── compensacao.js
│ ├── consolida.js
│ ├── gerencia.js
│ ├── horarioOrgao.js
│ ├── jquery
│ │ └── jquery.maskedinput-1.2.2.js
│ ├── pedidoAjuste.js
│ ├── pedidosAvaliacao.js
│ ├── pedidosCertificados.js
│ ├── registro.js
│ ├── relatorio.js
│ └── restricao.js
└── protected
│ ├── .htaccess
│ ├── components
│ ├── ComponenteSeguranca.php
│ ├── ConversorDataBehavior.php
│ ├── Helper.php
│ ├── Identidade.php
│ ├── IdentidadeInterface.php
│ ├── Repositorio.php
│ ├── Sessao.php
│ └── UsuarioWeb.php
│ ├── config
│ └── config.php
│ ├── controllers
│ ├── AcompanhamentoController.php
│ ├── AjusteController.php
│ ├── BaseController.php
│ ├── CalendarioController.php
│ ├── CompensacaoController.php
│ ├── ConsolidaController.php
│ ├── GerenciaController.php
│ ├── HorariosController.php
│ ├── RegistroController.php
│ ├── RelatorioController.php
│ ├── RestricaoController.php
│ └── TempLoginController.php
│ ├── models
│ ├── Abono.php
│ ├── Ajuste.php
│ ├── ArquivoAjuste.php
│ ├── CargaHorariaMesServidor.php
│ ├── CategoriaFuncional.php
│ ├── Compensacao.php
│ ├── DadoFuncional.php
│ ├── DefinicoesOrgao.php
│ ├── Frequencia.php
│ ├── GrupoEmprego.php
│ ├── JustificativaAjuste.php
│ ├── LogErroAcessoRegistro.php
│ ├── Orgao.php
│ ├── Permissao.php
│ ├── Pessoa.php
│ ├── Ponto.php
│ ├── PontoEAjuste.php
│ └── RestricaoRelogio.php
│ └── views
│ ├── acompanhamento
│ ├── acompanhamentoChefia.php
│ └── index.php
│ ├── ajuste
│ ├── dadosPedido.php
│ ├── dadosPedidoCertificado.php
│ ├── pedido.php
│ ├── pedidosAvaliacao.php
│ └── pedidosCertificados.php
│ ├── calendario
│ └── index.php
│ ├── compensacao
│ ├── dadosPedido.php
│ ├── dadosPedidoCertificado.php
│ ├── pedido.php
│ └── pedidosAvaliacao.php
│ ├── consolida
│ └── index.php
│ ├── gerencia
│ └── index.php
│ ├── horarios
│ ├── exibirHorariosOrgao.php
│ └── horariosOrgaos.php
│ ├── layouts
│ ├── main.php
│ └── registroPonto.php
│ ├── registro
│ ├── index.php
│ ├── login.php
│ ├── mensagem.php
│ └── selecionaVinculo.php
│ ├── relatorio
│ ├── _periodos.php
│ ├── exibicao.php
│ └── index.php
│ ├── restricao
│ └── index.php
│ └── tempLogin
│ └── login.php
└── repositorio
├── abreArquivo.php
└── docs
├── F727BC55D5AA
└── F727BC55D5AA.txt
/.gitignore:
--------------------------------------------------------------------------------
1 | ponto/assets/*
2 | !assets/.gitignore
3 | protected/runtime/*
4 | !protected/runtime/.gitignore
5 | protected/data/*.db
6 | themes/classic/views/
7 | yii
8 | /.gitignore
9 | assets
10 | runtime
11 | nbproject
12 | /ponto/nbproject/
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sistema de Ponto ELetrônico Livre (SPELL)
2 | Esse sistema foi desenvolvido no [Centro de Processamento de Dados](http://www.ufrgs.br/cpd/)(CPD) da [Universidade Federal do Rio Grande do Sul](http://www.ufrgs.br/)(UFRGS) com base no sistema já utilizado na Universidade para ser disponibilizado a outras instituições que estejam necessitando de uma solução para registro e acompanhamento da carga horária dos seus servidores.
3 | O sistema foi portado em colaboração com a [Universidade Federal Fluminense](http://www.uff.br/)(UFF).
4 |
5 | ## Funcionalidades
6 | * Acompanhamento de horários (funcionário e chefia)
7 | * Registro de horários
8 | * Solicitação de ajustes e abonos de horas
9 |
10 | ## Guia de instalação
11 |
12 | #### **Pré-requisitos**
13 | Para testar o sistema o computador deve conter os seguintes softwares:
14 | * [PHP 5.3](https://secure.php.net/downloads.php) ou superior
15 | * [Yii Framework 1.1](https://github.com/yiisoft/yii/releases/download/1.1.17/yii-1.1.17.467ff50.zip)
16 | * Servidor Web (Recomenda-se o [USBWebserver](http://www.usbwebserver.net))
17 |
18 | #### **Como configurar**
19 | 1. Baixe e mova o código fonte para a pasta de páginas do servidor. No caso do USBWebserver, coloque na pasta `root`
20 | 2. Baixe e extraia o Yii Framework para a pasta raiz do servidor
21 | 3. Execute o arquivo [ponto.sql](ponto.sql) no banco de dados
22 |
23 | Por pardrão, as credenciais de acesso do banco de dados são:
24 | ```
25 | usuário: root
26 | senha: usbw
27 | ```
28 |
29 | #### **Como testar**
30 | * Para visualizar a tela do ponto acesse `localhost:8080/ponto`
31 | * Para visualizar a tela de serviços acesse `localhost:8080/tempLogin/login`
32 |
33 | Lista de usuários cadastrados para teste:
34 |
35 | | Login | Senha | Tipo | Chefia | Cadastrado
36 | |:---|:---|:---|:---|:---|
37 | |1||Técnico|4|Departamento|
38 | |2||Técnico|1|Unidade acadêmica|
39 | |3||Docente|2|Órgão máximo|
40 | |4||Técnico|0|Departamento|
41 |
42 | *Observação: pode-se informar qualquer senha para realizar o login*
43 |
44 | ## Guia de configuração
45 |
46 | #### **Configurações PHP e Apache**
47 |
48 | Para que o sistema funcione, é necessário habilitar as tags curtas (short_open_tag) no php.ini e habilitar o mod_rewrite nas configurações do Apache.
49 |
50 | #### **Conexão com o banco de dados**
51 | Os dados de acesso ao banco de dados são especificados no arquivo `ponto/protected/config/config.php`.
52 | Basta alterar os valores contidos na chave `db` do array `components`.
53 |
54 | ```
55 | 'db'=>array(
56 | 'connectionString' => 'mysql:host=localhost:3307;dbname=ponto',
57 | 'emulatePrepare' => true,
58 | 'username' => 'root',
59 | 'password' => 'usbw',
60 | 'charset' => 'utf8',
61 | ),
62 | ```
63 |
64 | #### **Segurança do end-point de registros**
65 | Para garantir que somente os pontos oficiais possam realizar registros,
66 | recomenda-se adicionar o seguinte código no método `beforeAction` da classe
67 | `RegistroController` realizando as substituições necessárias:
68 |
69 | ```
70 | if (($ipv4 != 'Número IPv4 da rede') && ($ipv6 != 'Número IPv6 da rede')) {
71 | $this->render('mensagem', array(
72 | 'mensagem' => "O registro de Ponto só funciona na rede da Universidade.",
73 | ));
74 | return false;
75 | }
76 | ```
77 |
78 | ## Mais informações
79 | Para mais informações, guias e tutoriais sobre o projeto acesse a [Wiki](https://github.com/ufrgs/spell/wiki/) do repositório.
80 |
--------------------------------------------------------------------------------
/fotos/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/fotos/1.jpg
--------------------------------------------------------------------------------
/fotos/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/fotos/2.jpg
--------------------------------------------------------------------------------
/fotos/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/fotos/3.jpg
--------------------------------------------------------------------------------
/fotos/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/fotos/4.jpg
--------------------------------------------------------------------------------
/ponto/.htaccess:
--------------------------------------------------------------------------------
1 | RewriteEngine on
2 |
3 | # if a directory or a file exists, use it directly
4 | RewriteCond %{REQUEST_FILENAME} !-f
5 | RewriteCond %{REQUEST_FILENAME} !-d
6 |
7 | # otherwise forward it to index.php
8 | RewriteRule . index.php
--------------------------------------------------------------------------------
/ponto/css/acompanhamento.css:
--------------------------------------------------------------------------------
1 | /*
2 | Created on : 09/11/2015, 16:00:30
3 | */
4 | .alinhaDireita {
5 | text-align: right;
6 | }
7 |
8 | h2 {
9 | padding-left: 0;
10 | }
11 |
12 | #divProgressos {
13 | float: right;
14 | width: calc(50% - 30px);
15 | margin-bottom: 10px;
16 | }
17 |
18 | .progresso {
19 | display: inline-block;
20 | margin: 0 5px;
21 | }
22 |
23 | .progresso label {
24 | display: block;
25 | }
26 |
27 | .progresso .circulo {
28 | margin: 5px 0;
29 | text-align: center;
30 | }
31 |
32 | .progresso .circulo span {
33 | float: right;
34 | display: block;
35 | width: 120px;
36 | margin-left: -120px;
37 | margin-top: 40px;
38 | }
39 | @media screen and (-webkit-min-device-pixel-ratio:0) {
40 | .progresso .circulo span {
41 | margin-top: -80px;
42 | }
43 | }
44 |
45 | #divRegistros {
46 | padding-top: 160px;
47 | }
48 |
49 | #tabelaRegistros a {
50 | text-decoration: none;
51 | cursor: pointer;
52 | }
53 |
54 | #tabelaRegistros a i {
55 | visibility: hidden;
56 | }
57 |
58 | #tabelaRegistros i.aviso {
59 | visibility: visible;
60 | padding: 0 15px;
61 | color: orange;
62 | }
63 |
64 | #tabelaRegistros a:hover i {
65 | visibility: visible;
66 | }
67 |
68 | .modelo1 tr td {
69 | padding: 5px 10px;
70 | }
71 |
72 | .jornadaTotal {
73 | display: inline-block;
74 | width: 46px;
75 | font-weight: bold;
76 | }
77 |
78 | #abasTipoAcompanhamento {
79 | margin: 5px 0;
80 | border-bottom: 1px solid #ccc;
81 | }
82 |
83 | #abasTipoAcompanhamento .aba {
84 | display: inline-block;
85 | margin: 0 10px -1px;
86 | padding: 5px 30px;
87 | border: 1px solid #ccc;
88 | border-bottom: none;
89 | border-radius: 10px 10px 0 0;
90 | background-color: #efefef;
91 | }
92 |
93 | #abasTipoAcompanhamento .aba.ativa {
94 | border-bottom: 1px solid #fff;
95 | background-color: #fff;
96 | }
--------------------------------------------------------------------------------
/ponto/css/calendario.css:
--------------------------------------------------------------------------------
1 | .alinhaDireita {
2 | text-align: right;
3 | }
4 |
5 | h2 {
6 | padding-left: 0;
7 | }
8 |
9 | .calendario thead th {
10 | line-height: 3rem;
11 | }
12 |
13 | .calendario th.domingo {
14 | color: #c00;
15 | }
16 |
17 | .calendario tbody td {
18 | padding: 1em 5px 5px;
19 | border: 1px solid #ccc;
20 | min-width: 7rem;
21 | vertical-align: top;
22 | }
23 |
24 | .calendario tbody td.vazia {
25 | border: none;
26 | }
27 |
28 | .calendario tbody td .numeroDia {
29 | float: right;
30 | margin-top: -1em;
31 | color: #ccc;
32 | font-weight: bold;
33 | }
34 |
35 | .calendario tbody td.dia1 .numeroDia, .calendario tbody td.feriado .numeroDia {
36 | color: #e55;
37 | }
38 |
39 | .calendario tbody td label {
40 | display: block;
41 | font-size: 0.8rem;
42 | color: #888;
43 | }
44 |
45 | .calendario tbody td .dado {
46 | padding: 2px 0;
47 | font-size: 2rem;
48 | display: block;
49 | width: 7rem;
50 | text-align: right;
51 | }
52 |
53 | .calendario tbody td.afastado {
54 | background: url("../imgs/fundo-listrado-diagonal.gif") repeat;
55 | }
56 |
57 | .calendario tbody td .afastamentos {
58 | display: block;
59 | min-height: 4rem;
60 | font-size: 0.8rem;
61 | font-weight: bold;
62 | }
63 |
64 | .dadoRotulado {
65 | font-weight: bold;
66 | }
--------------------------------------------------------------------------------
/ponto/css/estilos.css:
--------------------------------------------------------------------------------
1 |
2 | @import './estrutura.css';
3 | @import './simples.css';
4 | @import './texto.css';
5 | @import './tabela.css';
6 | @import './formulario.css';
7 | @import './yii.css';
8 | @import './jquery/jquery-ui-1.10.3.custom.min.css';
--------------------------------------------------------------------------------
/ponto/css/estrutura.css:
--------------------------------------------------------------------------------
1 |
2 | header {
3 | padding: 10px 20px;
4 | text-align: center;
5 | border-bottom: 1px solid #0091ea;
6 | }
7 |
8 | header .tituloGeral {
9 | font-size: 2em;
10 | color: #0091ea;
11 | }
12 |
13 | header a {
14 | float: right;
15 | }
16 |
17 | main {
18 | padding: 10px;
19 | }
20 |
21 | main nav {
22 | width: 200px;
23 | float: left;
24 | }
25 |
26 | main nav > span {
27 | display: inline-block;
28 | color: #555;
29 | margin: 5px 0;
30 | }
31 |
32 | main nav ul {
33 | list-style: none;
34 | margin-left: 0;
35 | }
36 |
37 | main nav li a {
38 | display: block;
39 | padding: 5px;
40 | margin: 5px 0;
41 | color: #fff;
42 | background-color: #0066CC;
43 | text-decoration: none;
44 | transition-duration: 0.3s;
45 | }
46 | main nav li a:hover {
47 | color: #fff;
48 | background-color: #0088DD;
49 | }
50 | main nav li.ativo a {
51 | color: #004182;
52 | background-color: #fff;
53 | border: 1px solid #004182;
54 | border-collapse: collapse;
55 | }
56 |
57 | main section {
58 | width: calc(100% - 240px);
59 | padding: 0 20px;
60 | margin-left: 200px;
61 | }
62 |
63 | @media print {
64 | .escondeNaImpressao, .escondeNaImpressao * {
65 | display: none !important;
66 | }
67 | main section {
68 | width: calc(100% - 40px);
69 | padding: 0 20px;
70 | margin-left: 0px;
71 | }
72 | }
--------------------------------------------------------------------------------
/ponto/css/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/ponto/css/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/ponto/css/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/ponto/css/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/ponto/css/font-awesome/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/font-awesome/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/ponto/css/font-awesome/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.6.1 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/ponto/css/formulario.css:
--------------------------------------------------------------------------------
1 | /* CSS Document */
2 |
3 | /* Labels */
4 |
5 | label.esquerdaAlinhado {
6 | width: 230px;
7 | display: block;
8 | float: left;
9 | text-align: right;
10 | margin-right: 5px;
11 | padding-top: 3px;
12 | width: 100px;
13 | color: #25365A;
14 | }
15 |
16 | label.esquerdaAlinhado.maior {
17 | width: 150px;
18 | }
19 |
20 | label.esquerdaAlinhado.bemGrande {
21 | width: 200px;
22 | }
23 |
24 | label.esquerdaAlinhado.paraTexto {
25 | padding-top: 0px !important;
26 | }
27 |
28 | label.direita {
29 | margin: 0;
30 | padding: 3px 10px 0 0;
31 | color: #25365A;
32 | }
33 |
34 | .dadoRotulado {
35 | display: inline-block;
36 | padding: 3px 0;
37 | }
38 |
39 | input, textarea, select {
40 | margin: 2px 0;
41 | padding: 3px;
42 | border: 1px solid #ababab;
43 | }
44 |
45 | input.semRotuloEsquerda, select.semRotuloEsquerda, textarea.semRotuloEsquerda, button.semRotuloEsquerda {
46 | margin-left: 105px;
47 | }
48 |
49 | input.semRotuloEsquerda.maior, select.semRotuloEsquerda.maior, textarea.semRotuloEsquerda.maior, button.semRotuloEsquerda.maior {
50 | margin-left: 155px;
51 | }
52 |
53 | input.semRotuloEsquerda.bemGrande, select.semRotuloEsquerda.bemGrande, textarea.semRotuloEsquerda.bemGrande, button.semRotuloEsquerda.bemGrande {
54 | margin-left: 205px;
55 | }
56 |
57 | textarea {
58 | line-height: 1.5em;
59 | }
60 |
61 | /* Botao */
62 |
63 | button, .button, input[type=button], input[type=submit] {
64 | height: 22px;
65 | color: #FFF;
66 | font-weight: bold;
67 | font-size: 11px;
68 | background-color: #9BCDFF;
69 | background: url(imgs/fundo_bt.gif) repeat-x;
70 | margin: 5px;
71 | border-radius: 4px;
72 | border: 1px solid #1F63A7;
73 | padding-bottom: 4px;
74 | padding-left: 8px;
75 | padding-right: 8px;
76 | cursor: pointer;
77 | }
78 |
79 | button:hover, .button:hover, input[type=button]:hover, input[type=submit]:hover {
80 | border: 1px solid #000066;
81 | color: #E9F1FD;
82 | }
83 |
84 | button.desabilitado, .button.desabilitado, .botaoDesabilitado, button:disabled, .button:disabled {
85 | background-color: #ccc;
86 | background: url(imgs/fundo_bt_desabilitado.gif) repeat-x top;
87 | border: 1px solid #A5C1DC;
88 | cursor: default;
89 | }
90 |
91 | button.btPerigo, .button.btPerigo, .btPerigo {
92 | background-color: #BD2C34;
93 | background: url(imgs/fundo_bt_vermelho.gif) repeat-x top;
94 | border: 1px solid #A0252C;
95 | }
96 |
97 | button.btPerigo:hover, .button.btPerigo:hover {
98 | border: 1px solid #660000;
99 | color: #FFE8E8;
100 | }
101 |
102 | button.btSucesso, .button.btSucesso, .btSucesso {
103 | background-color: #259C32;
104 | background: url(imgs/fundo_bt_verde.gif) repeat-x top;
105 | border: 1px solid #29963F;
106 | }
107 |
108 | button.btSucesso:hover, .button.btSucesso:hover {
109 | border: 1px solid #006600;
110 | color: #E8FFE8;
111 | }
112 |
113 | button.btAlerta, .button.btAlerta, .btAlerta {
114 | background-color: #C4A515;
115 | background: url(imgs/fundo_bt_amarelo.gif) repeat-x top;
116 | border: 1px solid #998118;
117 | color: #000;
118 | }
119 |
120 | button.btAlerta:hover, .button.btAlerta:hover {
121 | border: 1px solid #706012;
122 | color: #222;
123 | }
--------------------------------------------------------------------------------
/ponto/css/imgs/bigLoader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/bigLoader.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/contrair.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/contrair.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/expandir.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/expandir.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_bt.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_bt.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_bt_amarelo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_bt_amarelo.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_bt_desabilitado.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_bt_desabilitado.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_bt_verde.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_bt_verde.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_bt_vermelho.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_bt_vermelho.gif
--------------------------------------------------------------------------------
/ponto/css/imgs/fundo_tab.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/fundo_tab.jpg
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_aviso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_aviso.png
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_erro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_erro.png
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_informacao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_informacao.png
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_proibido.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_proibido.png
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_sucesso.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_sucesso.png
--------------------------------------------------------------------------------
/ponto/css/imgs/icone_zoom_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/icone_zoom_in.png
--------------------------------------------------------------------------------
/ponto/css/imgs/smallLoader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/imgs/smallLoader.gif
--------------------------------------------------------------------------------
/ponto/css/jquery/images/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/Thumbs.db
--------------------------------------------------------------------------------
/ponto/css/jquery/images/animated-overlay.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/animated-overlay.gif
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_flat_15_cd0a0a_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_flat_15_cd0a0a_40x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_flat_90_7b7b7b_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_flat_90_7b7b7b_40x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_glass_100_e4f1fb_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_glass_100_e4f1fb_1x400.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_glass_50_3baae3_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_glass_50_3baae3_1x400.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_glass_80_d7ebf9_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_glass_80_d7ebf9_1x400.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_highlight-hard_70_000000_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_highlight-hard_70_000000_1x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_highlight-soft_100_deedf7_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_highlight-soft_100_deedf7_1x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-bg_highlight-soft_25_ffef8f_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-icons_2694e8_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-icons_2694e8_256x240.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-icons_2e83ff_256x240.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-icons_3d80b3_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-icons_3d80b3_256x240.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-icons_72a7cf_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-icons_72a7cf_256x240.png
--------------------------------------------------------------------------------
/ponto/css/jquery/images/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/jquery/images/ui-icons_ffffff_256x240.png
--------------------------------------------------------------------------------
/ponto/css/materialize/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014-2015 Materialize
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ponto/css/materialize/README.md:
--------------------------------------------------------------------------------
1 | 
2 | ===========
3 |
4 | [](https://gitter.im/Dogfalo/materialize?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5 | Materialize, a CSS Framework based on material design
6 |
7 | ### Current Version : v0.97.2
8 |
9 | ## Sass Requirements:
10 | - Ruby Sass 3.3+, LibSass 0.6+
11 |
12 | ## Supported Browsers:
13 | Chrome 35+, Firefox 31+, Safari 7+, IE 10+
14 |
15 | ## Changelog
16 | - v0.97.2 (Nov 8, 2015)
17 | - Image support inside select
18 | - Optgroup supported in select
19 | - Multiple select added
20 | - Card styling fixes
21 | - Breadcrumbs added
22 | - Scrollable tabs
23 | - Tooltips and dropdowns position themselves more intelligently inside the window
24 | - FAB menu is click-toggleable
25 | - Horizontal FAB support added
26 | - v0.97.1 (Sep 13, 2015)
27 | - Added new range slider with uses noUiSlider to provide powerful options
28 | - Added CSS for Chips
29 | - Toasts support adding of html elements
30 | - Fixed select destroy/creation bug
31 | - Bugfixes for dropdown, badges, collections, scrollfire
32 | - Added default preloader color variable
33 | - File input now supports multiple files and dynamically loaded elements
34 | - v0.97.0 (June 21, 2015)
35 | - **Documentation changed to use Official Google Icon web font**
36 | - **Input errors added**
37 | - Flicker on Firefox on dropdowns fixed
38 | - Pagination made more responsive
39 | - Modal now prevents scrolling
40 | - Modal animation added
41 | - Support for multiple modals added
42 | - Programmatic control of FAB to open/close added
43 | - Programmatic control of slider to play/pause added
44 | - Plus many more bug fixes
45 | - v0.96.1 (April 6, 2015)
46 | - Dropdown Fixes
47 | - Materialize functions fixed for Meteor
48 | - v0.96.0 (April 1, 2015)
49 | - **Toasts, transitions, scrollfire added under Materialize namespace**
50 | - **Dropdown is now created as a child of its parent**
51 | - Collapsibles supports nesting
52 | - Modal Bottom Sheet added
53 | - Indeterminate Checkboxes added
54 | - New Checkbox Style Added
55 | - Text Inputs supports placeholder/readonly
56 | - Google Inbox-like Collapsible added
57 | - Text Character Counter added
58 | - Waves no longer breaks on SVG's
59 |
60 | - v0.95.3 (Feb 25, 2015)
61 | - Parallax image loading / responsiveness fixes
62 | - Date picker supports month/year as dropdown
63 | - Dismissable collection items
64 | - Avatar collection items
65 | - Pagination Added
66 | - ScrollFire fixes
67 |
68 |
69 | ## Contributing
70 | [Please read CONTRIBUTING.md for more information](CONTRIBUTING.md)
71 |
--------------------------------------------------------------------------------
/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.eot
--------------------------------------------------------------------------------
/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/material-design-icons/Material-Design-Icons.woff2
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Bold.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Bold.woff2
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Light.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Light.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Light.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Light.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Light.woff2
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Medium.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Medium.woff2
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Regular.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Regular.woff2
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Thin.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Thin.woff
--------------------------------------------------------------------------------
/ponto/css/materialize/font/roboto/Roboto-Thin.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/css/materialize/font/roboto/Roboto-Thin.woff2
--------------------------------------------------------------------------------
/ponto/css/simples.css:
--------------------------------------------------------------------------------
1 | /* CSS Document */
2 |
3 | * {
4 | font-family: Verdana, Arial, Helvetica, sans-serif;
5 | margin: 0px;
6 | padding: 0px;
7 | font-size: 1em;
8 | font-size: 12px;
9 | }
10 |
11 | /* Correcoes do jQuery UI*/
12 | .ui-datepicker * {
13 | font-size: 0.95em;
14 | }
15 |
16 | .ui-tabs .ui-state-active, .ui-tabs .ui-widget-content .ui-state-active, .ui-tabs .ui-widget-header .ui-state-active {
17 | background: none !important;
18 | background-color: #f9fafb !important;
19 | }
20 | .ui-tabs .ui-state-active a, .ui-tabs .ui-widget-content .ui-state-active a, .ui-tabs .ui-widget-header .ui-state-active a, .ui-accordion-content a {
21 | color: #2779aa !important;
22 | }
23 |
24 | .ui-autocomplete-input {
25 | background: url('imgs/icone_zoom_in.png') no-repeat right center #fff;
26 | background-size: 20px 20px;
27 | }
28 | .ui-autocomplete-loading
29 | {
30 | background: url('imgs/smallLoader.gif') no-repeat right center;
31 | }
32 |
33 | body {
34 | font-family: Verdana, Arial, Helvetica, sans-serif;
35 | margin: 0;
36 | }
37 |
38 | a {
39 | color: #0066CC;
40 | text-decoration: underline;
41 | }
42 | a:hover {
43 | color: #006391;
44 | text-decoration: none;
45 | }
46 |
47 | .coluna50 {
48 | position: relative;
49 | float: left;
50 | display: block;
51 | width: 50%;
52 | }
53 |
54 | fieldset {
55 | background-color: #F7F7F7;
56 | border: 1px solid #CCCCCC;
57 | border-radius: 7px;
58 | padding: 10px;
59 | }
60 |
61 | fieldset legend {
62 | font-weight: bold;
63 | color: #006699;
64 | padding: 0 10px;
65 | }
66 |
67 | fieldset fieldset,
68 | fieldset fieldset fieldset fieldset,
69 | fieldset fieldset fieldset fieldset fieldset fieldset,
70 | fieldset fieldset fieldset fieldset fieldset fieldset fieldset fieldset
71 | {
72 | background-color: #fff;
73 | }
74 |
75 | fieldset fieldset fieldset,
76 | fieldset fieldset fieldset fieldset fieldset,
77 | fieldset fieldset fieldset fieldset fieldset fieldset fieldset
78 | {
79 | background-color: #F7F7F7;
80 | }
81 |
82 | .limpar {
83 | clear: both;
84 | }
85 |
86 | .clicavel {
87 | cursor: pointer;
88 | }
89 |
90 | .escondido {
91 | display: none;
92 | }
--------------------------------------------------------------------------------
/ponto/css/tabela.css:
--------------------------------------------------------------------------------
1 | /* CSS Document */
2 |
3 | /* Modelo 1 de tabela */
4 |
5 | table.modelo1 {
6 | border-collapse:collapse;
7 | margin: 10px;
8 | background-color: #efefef;
9 | }
10 |
11 | table.cemPorCento {
12 | width: 98%;
13 | }
14 |
15 | table.modelo1 td {
16 | padding: 3px 5px;
17 | margin: 0;
18 | border: 1px solid #CDCDCD;
19 | }
20 |
21 | table.modelo1 th {
22 | padding: 3px 5px;
23 | height: 28px;
24 | color: #006699;
25 | background: url(imgs/fundo_tab.jpg) repeat-x;
26 | border: 1px solid #8DCEFF;
27 | text-align: center;
28 | }
29 |
30 | .esq, .esquerda {
31 | text-align:left;
32 | padding-left: 10px;
33 | }
34 | .dir, .direita {
35 | text-align:right;
36 | padding-left: 10px;
37 | }
38 |
39 | table.modelo1 tbody tr:nth-child(odd) {
40 | background-color: #FFFFFF;
41 | }
42 | table.modelo1 tbody tr:nth-child(even) {
43 | background-color: #efefef;
44 | }
45 | table.modelo1 tbody tr:nth-child(odd):hover {
46 | background-color: #E4EDF5;
47 | }
48 | table.modelo1 tbody tr:nth-child(even):hover {
49 | background-color: #CCDDED;
50 | }
51 |
52 | table.centralizada {
53 | margin: 10px auto;
54 | }
--------------------------------------------------------------------------------
/ponto/css/texto.css:
--------------------------------------------------------------------------------
1 |
2 | h1 {
3 | font-size: 1.5em;
4 | color: #005B95;
5 | padding: 0 0px 10px;
6 | }
7 |
8 | h2 {
9 | font-size: 14px;
10 | padding: 5px 0px;
11 | color: #666;
12 | font-weight: normal;
13 | }
14 |
15 | h3 {
16 | font-size: 12px;
17 | padding: 5px 0px;
18 | }
19 |
20 | /*Fieldsets expansiveis*/
21 | fieldset.expansivel {
22 | padding: 0;
23 | }
24 |
25 | fieldset.expansivel legend {
26 | padding: 0.5em 1em 0.5em 2em;
27 | margin-left: 0.5em;
28 | background: url("imgs/expandir.gif") no-repeat;
29 | background-position: 0.5em center;
30 | cursor: pointer;
31 | transition: all .3s ease-out;
32 | }
33 |
34 | fieldset.expansivel .conteudo {
35 | display: none;
36 | padding: 0.5em;
37 | }
38 |
39 | fieldset.expansivel.expandido > legend {
40 | background-image: url("imgs/contrair.gif");
41 | }
42 |
43 | fieldset.expansivel.expandido > .conteudo {
44 | display: inherit;
45 | }
46 |
47 | /*Avisos*/
48 |
49 | .fieldInfo.comIcone legend, .fieldSucesso.comIcone legend,
50 | .fieldErro.comIcone legend, .fieldErro.comIconeProibicao legend, .fieldAlerta.comIcone legend
51 | {
52 | margin-left: -40px;
53 | }
54 |
55 | .fieldAlerta {
56 | color: #B14400;
57 | background-color: #FEFEDD !important;
58 | border: 1px solid #B14400;
59 | }
60 |
61 | .fieldAlerta legend{
62 | color: #B14400;
63 | font-weight: bold;
64 | }
65 |
66 | .fieldAlerta.comIcone {
67 | padding-left: 50px;
68 | background: url(imgs/icone_aviso.png) no-repeat #FEFEDD;
69 | background-position: 5px 50%;
70 | min-height: 30px;
71 | }
72 |
73 | .fieldSucesso{
74 | color: #007700;
75 | background-color: #E1FFE1 !important;
76 | border: 1px solid #007700;
77 | }
78 |
79 | .fieldSucesso legend{
80 | color: #007700;
81 | font-weight: bold;
82 | }
83 |
84 | .fieldSucesso.comIcone {
85 | padding-left: 50px;
86 | background: url(imgs/icone_sucesso.png) no-repeat #E1FFE1;
87 | background-position: 5px 50%;
88 | min-height: 30px;
89 | }
90 |
91 | .fieldErro {
92 | color: #AA0000;
93 | background-color: #FFE1E1 !important;
94 | border: 1px solid #a00;
95 | }
96 |
97 | .fieldErro legend{
98 | color: #AA0000;
99 | font-weight: bold;
100 | }
101 |
102 | .fieldErro.comIcone {
103 | padding-left: 50px;
104 | background: url(imgs/icone_erro.png) no-repeat #FFE1E1;
105 | background-position: 5px 50%;
106 | min-height: 30px;
107 | }
108 |
109 | .fieldErro.comIconeProibicao {
110 | padding-left: 50px;
111 | background: url(imgs/icone_proibido.png) no-repeat #FFE1E1;
112 | background-position: 5px 50%;
113 | min-height: 30px;
114 | }
115 |
116 | .fieldInfo {
117 | color: #006699;
118 | background-color: #F2F9FF !important;
119 | border: 1px solid #006699;
120 | }
121 | .fieldInfo legend {
122 | color: #006699;
123 | font-weight: bold;
124 | }
125 |
126 | .fieldInfo.comIcone {
127 | padding-left: 50px;
128 | background: url(imgs/icone_informacao.png) no-repeat #F2F9FF;
129 | background-position: 5px 50%;
130 | min-height: 30px;
131 | }
132 |
133 | .fieldAlerta legend, .fieldErro legend, .fieldInfo legend, .fieldSucesso legend {
134 | padding: 0 10px;
135 | }
136 |
137 | /* listas */
138 |
139 | ul.listaSimples {
140 | list-style: square;
141 | margin-left: 25px;
142 | }
143 |
144 | ul.listaComum, ol.listaComum, ul, ol {
145 | margin-left: 25px;
146 | }
147 |
148 | /* classes genericas */
149 |
150 | .textoCentralizado, .centro {
151 | text-align: center !important;
152 | }
153 |
154 | .textoJustificado {
155 | text-align: justify;
156 | }
157 |
158 | .textoADireita, .alinhaDireita {
159 | text-align: right;
160 | }
161 |
162 | .textoGrande {
163 | font-size: 16px;
164 | font-weight: bold;
165 | }
166 |
167 | .textoAzul, .textoMensagem {
168 | color: #005B95;
169 | }
170 |
171 | .textoVerde, .textoSucesso {
172 | color: #009D00;
173 | }
174 |
175 | .textoVermelho, .textoErro {
176 | color: #CC0000;
177 | }
178 |
179 | .textoAmarelo, .textoAlerta {
180 | color: #c1ae00;
181 | }
182 |
183 | .negrito {
184 | font-weight: bold;
185 | }
186 |
187 | .italico {
188 | font-style: italic;
189 | }
--------------------------------------------------------------------------------
/ponto/css/yii.css:
--------------------------------------------------------------------------------
1 | /* FLASH-ALERTS */
2 |
3 | .error {
4 | background-color: #FFE1E1 !important;
5 | }
6 |
7 | ul.flashes {
8 | list-style-type:none;
9 | }
10 |
11 | div.errorSummary ul {
12 | margin-left: 30px;
13 | }
14 |
15 | /* Flash Messages CSS from Yii (\framework\cli\views\webapp\css\main.css) */
16 |
17 | div.flash-error, div.flash-notice, div.flash-success, div.errorSummary {
18 | padding: .8em;
19 | margin-bottom: 1em;
20 | border: 2px solid #ddd;
21 | border-radius: 5px;
22 | margin: 10px;
23 | }
24 |
25 | div.flash-error, div.errorSummary {
26 | background: #FFE1E1 !important;
27 | color: #a00 !important;
28 | border-color: #a00 !important;
29 | }
30 |
31 | div.flash-notice {
32 | background: #FEFEDD !important;
33 | color: #B14400 !important;
34 | border-color: #B14400 !important;
35 | }
36 |
37 | div.flash-success {
38 | background: #E1FFE1 !important;
39 | color: #007700 !important;
40 | border-color: #007700 !important;
41 | }
42 |
43 | div.flash-error a , div.errorSummary a{
44 | color: #a00 !important;
45 | }
46 |
47 | div.flash-notice a {
48 | color: #B14400 !important;
49 | }
50 |
51 | div.flash-success a {
52 | color: #007700 !important;
53 | }
54 |
55 | /* CGRIDVIEW */
56 |
57 | .grid-view .summary {
58 | margin-top: -12px !important;
59 | }
60 |
61 | .grid-view table {
62 | background-color: #efefef !important;
63 | border-collapse: collapse;
64 | }
65 |
66 | .grid-view table.items th, .grid-view table.table th {
67 | height: 28px !important;
68 | padding: 3px 5px !important;
69 | background: url(imgs/fundo_tab.jpg) repeat-x !important;
70 | background-color: #DFF1FF !important;
71 | color: #006699 !important;
72 | font-size: 1em !important;
73 | border: 1px solid #8DCEFF !important;
74 |
75 | }
76 |
77 | .grid-view table.items th a, .grid-view table.table th a {
78 | color: #006699 !important;
79 | font-size: 1em !important;
80 | text-decoration: underline !important;
81 | }
82 |
83 | .grid-view table.items th a:hover, .grid-view table.table th a:hover {
84 | color: #006699 !important;
85 | text-decoration: none !important;
86 | }
87 |
88 | .grid-view table.item th
89 | {
90 | border: 1px solid white;
91 | }
92 |
93 | .grid-view table.items td, .grid-view table.table td
94 | {
95 | padding: 3px 5px !important;
96 | margin: 0 !important;
97 | border: 1px solid #CDCDCD !important;
98 | font-size: 12px !important;
99 | }
100 | .grid-view table.items tr.even, .grid-view table.table-striped tr:nth-child(even)
101 | {
102 | background-color: #efefef !important;
103 | }
104 |
105 | .grid-view table.items tr.odd, .grid-view table.table-striped tr:nth-child(odd)
106 | {
107 | background-color: #FFFFFF !important;
108 | }
109 |
110 | .grid-view table.items tr.even:hover, .grid-view table.table-striped tr:nth-child(even):hover {
111 | background-color: #CCDDED !important;
112 | }
113 |
114 | .grid-view table.items tr.odd:hover, .grid-view table.table-striped tr:nth-child(odd):hover {
115 | background-color: #E4EDF5 !important;
116 | }
117 |
118 | .grid-view .yiiPager li a {
119 | border-color: #CDCDCD !important;
120 | color: #000 !important;
121 | }
122 | .grid-view .yiiPager li a:hover {
123 | border-color: #666 !important;
124 | }
125 |
126 | .grid-view .yiiPager li.selected a {
127 | background-color: #eee !important;
128 | color: #666 !important;
129 | }
130 |
131 | .grid-view .filters input,
132 | .grid-view .filters select
133 | {
134 | width: 98% !important;
135 | }
--------------------------------------------------------------------------------
/ponto/imgs/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/banner.png
--------------------------------------------------------------------------------
/ponto/imgs/fundo-listrado-diagonal.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/fundo-listrado-diagonal.gif
--------------------------------------------------------------------------------
/ponto/imgs/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/logo.png
--------------------------------------------------------------------------------
/ponto/imgs/logoPonto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/logoPonto.png
--------------------------------------------------------------------------------
/ponto/imgs/logo_branco.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/logo_branco.png
--------------------------------------------------------------------------------
/ponto/imgs/mouse_normal_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/mouse_normal_g.png
--------------------------------------------------------------------------------
/ponto/imgs/mouse_normal_xg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufrgs/spell/f55b43f608bca5366da2e3b97d0e3fd85e85882c/ponto/imgs/mouse_normal_xg.png
--------------------------------------------------------------------------------
/ponto/index.php:
--------------------------------------------------------------------------------
1 | run();
17 |
--------------------------------------------------------------------------------
/ponto/js/acompanhamento.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | /**
4 | * **acompanhamento.js**
5 | *
6 | * Exibe o gráfico circular com a jornada semanal.
7 | *
8 | * @ignore
9 | * @event Evento da biblioteca Circle Progress para exibição e animação do circulo da jornada.
10 | * @link https://github.com/kottenator/jquery-circle-progress
11 | */
12 | $('#progressoDiario').circleProgress({
13 | value: $('#progressoDiario').attr('value'),
14 | size: 120,
15 | thickness: 15,
16 | fill: { color: "#ada" }
17 | });
18 |
19 | /**
20 | * **acompanhamento.js**
21 | *
22 | * Exibe o gráfico circular com a jornada semanal.
23 | *
24 | * @ignore
25 | * @event Evento da biblioteca Circle Progress para exibição e animação do circulo da jornada.
26 | * @link https://github.com/kottenator/jquery-circle-progress
27 | */
28 | $('#progressoSemanal').circleProgress({
29 | value: $('#progressoSemanal').attr('value'),
30 | size: 120,
31 | thickness: 15,
32 | fill: { color: "#6c6" }
33 | });
34 |
35 | /**
36 | * **acompanhamento.js**
37 | *
38 | * Exibe o gráfico circular com a jornada mensal até o dia atual.
39 | *
40 | * @ignore
41 | * @event Evento da biblioteca Circle Progress para exibição e animação do circulo da jornada.
42 | * @link https://github.com/kottenator/jquery-circle-progress
43 | */
44 | $('#progressoMensalAteHoje').circleProgress({
45 | value: $('#progressoMensalAteHoje').attr('value'),
46 | size: 120,
47 | thickness: 15,
48 | fill: { color: "#3a3" }
49 | });
50 |
51 | /**
52 | * **acompanhamento.js**
53 | *
54 | * Exibe o gráfico circular com a jornada mensal.
55 | *
56 | * @ignore
57 | * @event Evento da biblioteca Circle Progress para exibição e animação do circulo da jornada.
58 | * @link https://github.com/kottenator/jquery-circle-progress
59 | */
60 | $('#progressoMensal').circleProgress({
61 | value: $('#progressoMensal').attr('value'),
62 | size: 120,
63 | thickness: 15,
64 | fill: { color: "#181" }
65 | });
66 |
67 | /**
68 | * **acompanhamento.js**
69 | *
70 | * Evento que permitir ao servidor acompanhar o horário de outro vínculo caso
71 | * o mesmo esteja relacionado a mais de um vínculo.
72 | *
73 | * @ignore
74 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
75 | */
76 | $("#selVinculo").change(function() {
77 | if ($(this).val() != '') {
78 | window.location = HOME + 'acompanhamento/index/?v='+$(this).val();
79 | }
80 | });
81 |
82 | /**
83 | * **acompanhamento.js**
84 | *
85 | * Evento para filtragem de datas de acompanhamento.
86 | *
87 | * Esse filtro permite que o usuário selecione o tempo registrado de acordo
88 | * com um ano.
89 | *
90 | * @ignore
91 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
92 | */
93 | $("#ano").change(function() {
94 | if ($(this).val() != '') {
95 | window.location = HOME + 'acompanhamento/index/?v='+$("#nrVinculo").val()+'&a='+$(this).val();
96 | }
97 | });
98 |
99 | /**
100 | * **acompanhamento.js**
101 | *
102 | * Evento para filtragem de datas de acompanhamento.
103 | *
104 | * Esse filtro permite que o usuário selecione o tempo registrado de acordo
105 | * com um mês.
106 | *
107 | * @ignore
108 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
109 | */
110 | $("#mes").change(function() {
111 | if ($(this).val() != '') {
112 | window.location = HOME + 'acompanhamento/index/?v='+$("#nrVinculo").val()+'&a='+$("#ano").val()+'&m='+$(this).val();
113 | }
114 | });
115 | });
116 |
117 | /**
118 | * **acompanhamento.js**
119 | *
120 | * Função para realizar um pedido de ajuste no horário do servidor.
121 | *
122 | * @param {int} nrPonto Identificador do ponto eletrônico. Chave primária da classe Ponto
123 | * @param {int} novoRegistro Indicador de novo registro
124 | * @returns {void} Redireciona o usuário para a tela com o pedido de ajuste
125 | */
126 | function ajusta(nrPonto, novoRegistro) {
127 | if (novoRegistro == undefined) {
128 | novoRegistro = '';
129 | }
130 | window.location = HOME + 'ajuste/pedido/?v='+$("#nrVinculo").val()+'&n='+nrPonto+'&td='+novoRegistro;
131 | }
--------------------------------------------------------------------------------
/ponto/js/calendario.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 |
3 | /**
4 | * **calendario.js**
5 | *
6 | * Evento que permitir ao servidor acompanhar o horário de outro vínculo caso
7 | * o mesmo esteja relacionado a mais de um vínculo.
8 | *
9 | * @ignore
10 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
11 | */
12 | $("#selVinculo").change(function() {
13 | if ($(this).val() != '') {
14 | window.location = HOME + 'calendario/index/?v='+$(this).val();
15 | }
16 | });
17 |
18 | /**
19 | * **calendario.js**
20 | *
21 | * Evento para filtragem de datas de acompanhamento.
22 | *
23 | * Esse filtro permite que o usuário selecione o tempo registrado de acordo
24 | * com um ano.
25 | *
26 | * @ignore
27 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
28 | */
29 | $("#ano").change(function() {
30 | if ($(this).val() != '') {
31 | window.location = HOME + 'calendario/index/?v='+$("#nrVinculo").val()+'&a='+$(this).val();
32 | }
33 | });
34 |
35 | /**
36 | * **calendario.js**
37 | *
38 | * Evento para filtragem de datas de acompanhamento.
39 | *
40 | * Esse filtro permite que o usuário selecione o tempo registrado de acordo
41 | * com um mês.
42 | *
43 | * @ignore
44 | * @event Evento onChange. Quando o valor do campo é alterado essa ação é executada
45 | */
46 | $("#mes").change(function() {
47 | if ($(this).val() != '') {
48 | window.location = HOME + 'calendario/index/?v='+$("#nrVinculo").val()+'&a='+$("#ano").val()+'&m='+$(this).val();
49 | }
50 | });
51 | });
--------------------------------------------------------------------------------
/ponto/js/consolida.js:
--------------------------------------------------------------------------------
1 | /**
2 | * **consolida.js**
3 | *
4 | * Função utilizada para consolidar os registros do mês. Todos os servidores
5 | * com registro no mês selecionado terão seus horários consolidados.
6 | *
7 | * @returns {void} Mostra na tela uma mensagem de sucesso ou erro na operação
8 | */
9 | function servidores() {
10 | $("#mensagem").html('');
11 | $.ajax({
12 | url: HOME + "consolida/cargaHorariaServidores",
13 | type: "GET",
14 | data: {
15 | ano: $('#ano').val(),
16 | mes: $('#mes').val(),
17 | },
18 | success: function(retorno) {
19 | $("#mensagem").html(retorno);
20 | },
21 | error: function(retorno) {
22 | alert(retorno);
23 | $("#mensagem").html('');
24 | }
25 | });
26 | }
27 |
28 | /**
29 | * **consolida.js**
30 | *
31 | * Função utilizada para consolidar horários de um lote de servidores de um
32 | * determinado mês e ano.
33 | *
34 | * @returns {void} Mostra na tela uma mensagem de sucesso ou erro na operação
35 | */
36 | function lote() {
37 | $("#mensagem").html('
');
38 | $.ajax({
39 | url: HOME + "consolida/cargaHorariaLote",
40 | type: "GET",
41 | data: {
42 | ano: $('#ano').val(),
43 | mes: $('#mes').val(),
44 | lote: $('#servidores').val(),
45 | },
46 | success: function(retorno) {
47 | $("#mensagem").html(retorno);
48 | $('#servidores').val('');
49 | },
50 | error: function(retorno) {
51 | alert(retorno);
52 | $("#mensagem").html('');
53 | }
54 | });
55 | }
56 |
--------------------------------------------------------------------------------
/ponto/js/gerencia.js:
--------------------------------------------------------------------------------
1 |
2 | $(document).ready(function() {
3 | iniciaScripts();
4 |
5 | if ($("#pessoaAcompanhamento").val() != 0) {
6 | renderizaAcompanhamento({ p: $("#pessoaAcompanhamento").val()});
7 | }
8 |
9 | $("#acServidor").autocomplete({
10 | source: HOME + "gerencia/servidores",
11 | minLength: 3,
12 | delay: 500,
13 | select: function (event, ui) {
14 | $("#pessoaAcompanhamento").val(ui.item.id);
15 | renderizaAcompanhamento({ p: ui.item.id});
16 | }
17 | });
18 | });
19 |
20 | /**
21 | * **gerencia.js**
22 | *
23 | * Função para mostrar a jornada de trabalho de um servidor pesquisado na tela
24 | * de gerência.
25 | *
26 | * O parâmetro "dados" é passado no seguinte formato:
{p: 0}
27 | *
28 | * Para realizar a filtragem por data a função utiliza a seguinte representação:
29 | * ```
30 | * {
31 | * p: 3, // Chave primária da pessoa
32 | * v: 1, // Número do vínculo da pessoa
33 | * a: 2016, // Ano a ser visualizado
34 | * m: 4 // Número do mês
35 | * }
36 | * ```
37 | *
38 | * @param {int} JSON contendo a chave p com a chave primária da pessoa como valor
39 | * @returns {void} Mostra os registros de horário da pessoa pesquisada
40 | */
41 | function renderizaAcompanhamento(dados) {
42 | $.ajax({
43 | url: HOME + "acompanhamento/pessoa",
44 | type: "POST",
45 | data: dados,
46 | success: function(retorno) {
47 | $("#acompanhamento").html(retorno);
48 | iniciaScripts();
49 | },
50 | error: function(retorno) {
51 | alert(retorno);
52 | }
53 | });
54 | }
55 |
56 | /**
57 | * **gerencia.js**
58 | *
59 | * Funçao criada para excluir registros de ajustes e abonos no menu da gerência.
60 | *
61 | * @param {int} nr Chave primária do pedido
62 | * @param {string} tipo Tipo de pedido (ajuste ou abono)
63 | * @returns {void} Atualiza a tela após a remoção do pedido ou mostra mensagem de erro
64 | */
65 | function excluir(nr, tipo) {
66 | if (confirm("Tem certeza que deseja excluir esse pedido de ajuste?")) {
67 | $.ajax({
68 | type: 'POST',
69 | url: HOME + 'gerencia/excluirPedido',
70 | data: { nr: nr, tipo: tipo },
71 | success: function (result) {
72 | alert(result);
73 | if (result.indexOf("sucesso") != -1)
74 | document.location.reload(true);
75 | },
76 | error: function (result) {
77 | alert(result);
78 | }
79 | });
80 | }
81 | }
82 |
83 | /**
84 | * **gerencia.js**
85 | *
86 | * Script para definir os eventos da página de acompanhamento, como os circulos
87 | * que exibem a jornada de trabalho do servidor pesquisado e os elementos de
88 | * seleção de datas para filtragem de carga horária.
89 | *
90 | * @returns {void} Inicializa os eventos da página
91 | */
92 | function iniciaScripts() {
93 | $('#progressoDiario').circleProgress({
94 | value: $('#progressoDiario').attr('value'),
95 | size: 120,
96 | thickness: 15,
97 | fill: { color: "#ada" }
98 | });
99 | $('#progressoSemanal').circleProgress({
100 | value: $('#progressoSemanal').attr('value'),
101 | size: 120,
102 | thickness: 15,
103 | fill: { color: "#6c6" }
104 | });
105 | $('#progressoMensalAteHoje').circleProgress({
106 | value: $('#progressoMensalAteHoje').attr('value'),
107 | size: 120,
108 | thickness: 15,
109 | fill: { color: "#3a3" }
110 | });
111 | $('#progressoMensal').circleProgress({
112 | value: $('#progressoMensal').attr('value'),
113 | size: 120,
114 | thickness: 15,
115 | fill: { color: "#181" }
116 | });
117 | $("#selVinculo").change(function() {
118 | if ($(this).val() != '') {
119 | renderizaAcompanhamento({p:$("#pessoaAcompanhamento").val(), v:$(this).val()});
120 | }
121 | });
122 | $("#ano").change(function() {
123 | if ($(this).val() != '') {
124 | renderizaAcompanhamento({p:$("#pessoaAcompanhamento").val(), v:$("#nrVinculo").val(), a:$(this).val()});
125 | }
126 | });
127 | $("#mes").change(function() {
128 | if ($(this).val() != '') {
129 | renderizaAcompanhamento({p:$("#pessoaAcompanhamento").val(), v:$("#nrVinculo").val(), a:$("#ano").val(), m:$(this).val()});
130 | }
131 | });
132 | }
--------------------------------------------------------------------------------
/ponto/js/pedidosAvaliacao.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function() {
2 | $("#modal").dialog({title: "Informações do Pedido", autoOpen: false, width: 600, height: 450});
3 | });
4 |
5 | /**
6 | * **pedidosAvaliacao.js**
7 | *
8 | * Função utilizada para mostrar detalhes de um pedido de ajuste. Quando chamada
9 | * um modal é aberto com as informações do pedido.
10 | *
11 | * @param {int} nr Número do pedido a ser excluido
12 | * @param {string} tipo Tipo do pedido. Na tela de ajustes tem o valor "ajuste"
13 | * @returns {void} Mostra um modal com o pedido solicitado ou uma mensagem de erro
14 | */
15 | function verPedido(nr, tipo) {
16 | $.ajax({
17 | url: HOME+"ajuste/dadosPedido",
18 | type: 'POST',
19 | data: {'nr': nr, 'tipo': tipo},
20 | success: function(retorno) {
21 | $("#modal").html(retorno);
22 | $("#modal").dialog('open');
23 | $("#justificativa").focus();
24 | },
25 | error: function(retorno) {
26 | alert(retorno);
27 | }
28 | });
29 | }
30 |
31 | /**
32 | * **pedidosAvaliacao.js**
33 | *
34 | * Método utilizada para certificar um pedido de ajuste. Ao ser chamada, o método
35 | * faz uma requisição ao servidor contendo o tipo de pedido e o estado dele.
36 | *
37 | * @param {char} certifica S ou N indicando a aprovação ou reprovação do pedido de ajuste
38 | * @param {String} tipo Tipo do ajuste solicitado.
39 | * @returns {void} Mostra uma mensagem de sucesso ou erro após a tentativa de certificação
40 | */
41 | function certificarPedido(certifica, tipo) {
42 | if ($("#nrAjuste").val() != '') {
43 | if ((certifica == 'N') && ($("#justificativa").val().length < 3)) {
44 | $("#lblJustificativa").html("justificativa não pode ser vazia").addClass('textoVermelho');
45 | $("#justificativa").css('border', '1px solid #c00');
46 | }
47 | else {
48 | $.ajax({
49 | url: HOME+"ajuste/certificaPedido",
50 | type: 'POST',
51 | dataType: 'JSON',
52 | data: {
53 | nrPedido: $("#nrPedido").val(),
54 | tipo: tipo,
55 | certifica: certifica,
56 | justificativa: $("#justificativa").val(),
57 | },
58 | success: function(retorno) {
59 | $("#modal").html('
print
.
64 | */
65 | public function actionExcluirPedido()
66 | {
67 | if (isset($_POST['nr'], $_POST['tipo']) && in_array($_POST['tipo'], array('ajuste', 'abono'))) {
68 | if ($_POST['tipo'] == 'ajuste') {
69 | $pedido = Ajuste::model()->findByPk($_POST['nr']);
70 | $chave = 'nr_ajuste';
71 | $dataPedido = $pedido->data_hora_ponto;
72 | }
73 | else {
74 | $pedido = Abono::model()->findByPk($_POST['nr']);
75 | $chave = 'nr_abono';
76 | $dataPedido = $pedido->data_abono;
77 | }
78 |
79 | $matriculaServidor = $pedido->matricula;
80 | $nrVinculo = $pedido->nr_vinculo;
81 | ArquivoAjuste::model()->deleteAllByAttributes(array($chave => $_POST['nr']));
82 |
83 | if ($pedido->delete()) {
84 |
85 | // Se a exclusão está acontecendo após o fechamento do mês do pedido, recalcula o total de horas
86 | if ((date('m') > date('m', strtotime($dataPedido))) || (date('Y') > date('Y', strtotime($dataPedido)))) {
87 | $mesAnterior = (date('m') != 1 ? date('m')-1 : 12);
88 | $anoAnterior = (date('m') != 1 ? date('Y') : date('Y')-1);
89 | CargaHorariaMesServidor::buscaDadosESalva($matriculaServidor, $nrVinculo, $mesAnterior, $anoAnterior);
90 | }
91 | print 'Pedido excluído com sucesso!';
92 | }
93 | else {
94 | print 'Ocorreu um erro ao excluir o pedido.'.print_r($pedido->getErrors(), true);
95 | }
96 | }
97 | }
98 |
99 | /**
100 | * Action utilizada para pesquisa de servidores da Universidade.
101 | *
102 | * O método recebe uma parâmetro com o termo a ser comparado com o nome e
103 | * com o código da pessoa usando o comando LIKE da linguaguem SQL.
104 | *
105 | * Os resultadores encontrados serão devolvidos em formato JSON seguindo o
106 | * exemplo:
107 | *
108 | *
109 | * {
110 | * "id": 0,
111 | * "label": "0 - Nome",
112 | * "text": "0 - Nome"
113 | * }
114 | *
115 | *
116 | * @param string $term Texto a ser usado na comparação com o nome e o id
117 | */
118 | public function actionServidores($term)
119 | {
120 | $term = strtoupper(str_replace("'", "''", Helper::tiraAcento(trim($term))));
121 | $pessoas = Pessoa::model()->with(array(
122 | 'DadoFuncional' => array(
123 | 'select' => '',
124 | 'on' => 'coalesce(DadoFuncional.data_desligamento, DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)) > CURRENT_TIMESTAMP()
125 | and coalesce(DadoFuncional.data_aposentadoria, DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)) > CURRENT_TIMESTAMP()',
126 | 'joinType' => 'inner join'
127 | )
128 | ))->findAll(array(
129 | 'select' => 't.id_pessoa, t.nome_pessoa, t.nome_pessoa',
130 | 'condition' => "
131 | ( t.nome_pessoa like '%$term%' COLLATE utf8_general_ci or LTRIM(CAST(t.id_pessoa AS char(12))) = '$term' )
132 | and t.id_pessoa <> :id_pessoa",
133 | 'params' => array(
134 | ':id_pessoa' => Yii::app()->user->id_pessoa,
135 | ),
136 | 'order' => 't.nome_pessoa'
137 | ));
138 |
139 | $opcoes = array();
140 | if (!empty($pessoas)) {
141 | foreach ($pessoas as $pessoa) {
142 | $opcoes[] = array(
143 | 'id' => $pessoa->id_pessoa,
144 | 'label' => $pessoa->id_pessoa." - ".$pessoa->nome_pessoa,
145 | 'text' => $pessoa->id_pessoa." - ".$pessoa->nome_pessoa
146 | );
147 | }
148 | }
149 | else {
150 | $opcoes[] = array(
151 | 'id' => '',
152 | 'label' => 'Nenhum servidor encontrado',
153 | 'text' => 'Nenhum servidor encontrado'
154 | );
155 | }
156 |
157 | print CJSON::encode($opcoes);
158 | //Yii::app()->end();
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/ponto/protected/controllers/TempLoginController.php:
--------------------------------------------------------------------------------
1 |
12 | * @package cpd\spell
13 | * @subpackage controllers
14 | * @version v1.0
15 | * @since v1.0
16 | */
17 | class TempLoginController extends BaseController
18 | {
19 |
20 | /**
21 | * Action utlizada para permitir o login do usuário.
22 | *
23 | * Esse método permite o login nos ambientes de teste e produção e tem três
24 | * comportamentos:
25 | *
26 | * - Exibir a tela de autenticação para um usuário não logado
27 | * - Realizar o login de um usuário
28 | * - Redirecionar um usuário logado para a tela de acompanhamento de horários
29 | *
30 | * @todo Testar o login em ambiente de produção
31 | * @todo Registrar erro de login em arquivo de LOG
32 | * @todo Registrar sucesso em fazer login
33 | */
34 | public function actionLogin()
35 | {
36 | if (isset($_POST['usuario'])) {
37 | $usuario = intval($_POST['usuario']) % 1000000; // Usuário é numérico com no máximo 6 digitos
38 | $senha = str_replace("'", "''", $_POST['senha']);
39 |
40 | if (AMBIENTE == 'producao') {
41 | // TODO teste de senha em ambiente de produção
42 | if ($erro) {
43 | // TODO registro da falha em log
44 |
45 | $this->render('login', array(
46 | 'usuario' => $usuario,
47 | 'mensagem' => $result['mensagem'],
48 | ));
49 | Yii::app()->end();
50 | }
51 | }
52 | // TODO registro do acesso com sucesso
53 | Yii::app()->session['id_pessoa'] = $usuario;
54 | $this->redirect('/ponto/acompanhamento/index');
55 | } else if (isset(Yii::app()->session['id_pessoa'])) {
56 | $this->redirect('/ponto/acompanhamento/index');
57 | } else {
58 | $this->render('login');
59 | }
60 | }
61 |
62 | /**
63 | * Action utlizada para realizar o logout do usuário.
64 | *
65 | * A sessão do usuário é destruída e o mesmo é redirecionado para a página
66 | * de login.
67 | */
68 | public function actionSair()
69 | {
70 | Yii::app()->session->destroy();
71 | Yii::app()->session->close();
72 | $this->redirect('login');
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/ponto/protected/models/ArquivoAjuste.php:
--------------------------------------------------------------------------------
1 |
22 | * @package cpd\spell
23 | * @subpackage models
24 | * @version v1.0
25 | * @since v1.0
26 | */
27 | class ArquivoAjuste extends CActiveRecord
28 | {
29 | /**
30 | * Método do Yii Framework para definição da tabela associada ao objeto
31 | *
32 | * A string retornada define para o Yii qual tabela contém os registros a
33 | * serem mapeados para essa classe.
34 | *
35 | * @return string Nome da tabela no banco de dados associada ao objeto
36 | */
37 | public function tableName()
38 | {
39 | return 'arquivo_ajuste';
40 | }
41 |
42 | /**
43 | * Método do Yii Framework para definição da chave primária do objeto
44 | *
45 | * A string retornada indica a coluna contendo o identificador único do
46 | * objetos.
47 | *
48 | * @return string Nome da coluna referente à chave primária do objeto
49 | */
50 | public function primaryKey()
51 | {
52 | return 'nr_arquivo_ajuste';
53 | }
54 |
55 | /**
56 | * Método do Yii Framework para definição de regras de validação
57 | *
58 | * Aqui são definidos os atributos das colunas da tabela que presenta o
59 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
60 | * caracteres suportados.
61 | *
62 | * É recomendado apenas definir as regras para os atributos que forem ser
63 | * utilizados com dados do usuário.
64 | *
65 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
66 | * @return array Regras de validação para este modelo
67 | */
68 | public function rules()
69 | {
70 | return array(
71 | array('cod_repositorio', 'required'),
72 | array('nr_arquivo_ajuste, nr_ajuste, nr_abono, cod_repositorio', 'length', 'max'=>12),
73 | array('descricao_arquivo', 'length', 'max'=>256),
74 | array('nr_arquivo_ajuste, nr_ajuste, nr_abono, cod_repositorio, descricao_arquivo', 'safe', 'on'=>'search'),
75 | );
76 | }
77 |
78 | /**
79 | * Método do Yii Framework para definição de relacionamentos entre tabelas
80 | *
81 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
82 | * possuem.
83 | *
84 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
85 | * @return array Relacionamentos que esta tabela possui
86 | */
87 | public function relations()
88 | {
89 | return array(
90 | );
91 | }
92 |
93 | /**
94 | * Método do Yii Framework para definir descrições às colunas da tabela
95 | *
96 | * Aqui são definidos nomes mais amigáveis aos atributos do objeto. É
97 | * utilizado para gerar mensagens de erros mais claras e mostrar dados nas
98 | * telas da aplicação.
99 | *
100 | * @return array Lista de descrições no formato 'coluna'=>'descrição'
101 | */
102 | public function attributeLabels()
103 | {
104 | return array(
105 | 'nr_arquivo_ajuste' => 'Nr Seq Arquivo Ajuste',
106 | 'nr_ajuste' => 'Nr Seq Ajuste',
107 | 'nr_abono' => 'Nr Seq Abono',
108 | 'cod_repositorio' => 'Indentificador Repositorio',
109 | 'descricao_arquivo' => 'Descricao Arquivo',
110 | );
111 | }
112 |
113 | /**
114 | * Método do Yii Framework para buscar modelos
115 | *
116 | * Aqui é feita a pesquisa de um modelo de acordo com determinadas condições
117 | * passadas por parâmetro.
118 | *
119 | * @return CActiveDataProvider Conjunto de dados retornados da consulta
120 | */
121 | public function search()
122 | {
123 | $criteria=new CDbCriteria;
124 |
125 | $criteria->compare('nr_arquivo_ajuste',$this->nr_arquivo_ajuste,true);
126 | $criteria->compare('nr_ajuste',$this->nr_ajuste,true);
127 | $criteria->compare('nr_abono',$this->nr_abono,true);
128 | $criteria->compare('cod_repositorio',$this->cod_repositorio,true);
129 | $criteria->compare('descricao_arquivo',$this->descricao_arquivo,true);
130 |
131 | return new CActiveDataProvider($this, array(
132 | 'criteria'=>$criteria,
133 | ));
134 | }
135 |
136 | /**
137 | * Método do Yii Framework para retornar a instância da classe
138 | *
139 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
140 | * para permitir que o framework encontre a classe.
141 | *
142 | * @param string $className Nome da classe que é Active Record.
143 | * @return ArquivoAjuste A classe que é Active Record
144 | */
145 | public static function model($className=__CLASS__)
146 | {
147 | return parent::model($className);
148 | }
149 | }
150 |
--------------------------------------------------------------------------------
/ponto/protected/models/CategoriaFuncional.php:
--------------------------------------------------------------------------------
1 |
20 | * @package cpd\spell
21 | * @subpackage models
22 | * @version v1.0
23 | * @since v1.0
24 | */
25 | class CategoriaFuncional extends CActiveRecord
26 | {
27 |
28 | /**
29 | * Método do Yii Framework para retornar a instância da classe
30 | *
31 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
32 | * para permitir que o framework encontre a classe.
33 | *
34 | * @param string $className Nome da classe que é Active Record.
35 | * @return CategoriaFuncional A classe que é Active Record
36 | */
37 | public static function model($className=__CLASS__)
38 | {
39 | return parent::model($className);
40 | }
41 |
42 | /**
43 | * Método do Yii Framework para definição da tabela associada ao objeto
44 | *
45 | * A string retornada define para o Yii qual tabela contém os registros a
46 | * serem mapeados para essa classe.
47 | *
48 | * @return string Nome da tabela no banco de dados associada ao objeto
49 | */
50 | public function tableName()
51 | {
52 | return 'categoria';
53 | }
54 |
55 | /**
56 | * Método do Yii Framework para definição da chave primária do objeto
57 | *
58 | * A string retornada indica a coluna contendo o identificador único do
59 | * objetos.
60 | *
61 | * @return string Nome da coluna referente à chave primária do objeto
62 | */
63 | public function primaryKey()
64 | {
65 | return array('id_categoria');
66 | }
67 |
68 | /**
69 | * Método do Yii Framework para definição de relacionamentos entre tabelas
70 | *
71 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
72 | * possuem.
73 | *
74 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
75 | * @return array Relacionamentos que esta tabela possui
76 | */
77 | public function relations()
78 | {
79 | return array(
80 | 'grupoEmprego' => array(self::BELONGS_TO, 'GrupoEmprego', 'id_grupo'),
81 | );
82 | }
83 |
84 | /**
85 | * Método do Yii Framework para definição de regras de validação
86 | *
87 | * Aqui são definidos os atributos das colunas da tabela que presenta o
88 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
89 | * caracteres suportados.
90 | *
91 | * É recomendado apenas definir as regras para os atributos que forem ser
92 | * utilizados com dados do usuário.
93 | *
94 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
95 | * @return array Regras de validação para este modelo
96 | */
97 | public function rules()
98 | {
99 | return array(
100 | array('id_categoria, nome_categora, regime_trabalho', 'required'),
101 | array('id_categoria', 'length', 'max' => 3),
102 | array('nome_categoria', 'length', 'max' => 255),
103 | array('regime_trabalho', 'length', 'max' => 2)
104 | );
105 | }
106 | }
107 |
--------------------------------------------------------------------------------
/ponto/protected/models/DadoFuncional.php:
--------------------------------------------------------------------------------
1 |
28 | * @package cpd\spell
29 | * @subpackage models
30 | * @version v1.0
31 | * @since v1.0
32 | */
33 | class DadoFuncional extends CActiveRecord
34 | {
35 |
36 | /**
37 | * Método do Yii Framework para retornar a instância da classe
38 | *
39 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
40 | * para permitir que o framework encontre a classe.
41 | *
42 | * @param string $className Nome da classe que é Active Record.
43 | * @return DadoFuncional A classe que é Active Record
44 | */
45 | public static function model($className = __CLASS__)
46 | {
47 | return parent::model($className);
48 | }
49 |
50 | /**
51 | * Método do Yii Framework para definição da tabela associada ao objeto
52 | *
53 | * A string retornada define para o Yii qual tabela contém os registros a
54 | * serem mapeados para essa classe.
55 | *
56 | * @return string Nome da tabela no banco de dados associada ao objeto
57 | */
58 | public function tableName()
59 | {
60 | return 'dado_funcional';
61 | }
62 |
63 | /**
64 | * Método do Yii Framework para definição da chave primária do objeto
65 | *
66 | * A string retornada indica a coluna contendo o identificador único do
67 | * objetos.
68 | *
69 | * @return string Nome da coluna referente à chave primária do objeto
70 | */
71 | public function primaryKey()
72 | {
73 | return array('matricula', 'nr_vinculo');
74 | }
75 |
76 | /**
77 | * Método do Yii Framework para definição de relacionamentos entre tabelas
78 | *
79 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
80 | * possuem.
81 | *
82 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
83 | * @return array Relacionamentos que esta tabela possui
84 | */
85 | public function relations()
86 | {
87 | return array(
88 | 'OrgaoExercicio' => array(self::BELONGS_TO, 'Orgao', 'orgao_exercicio'),
89 | 'OrgaoLotacao' => array(self::BELONGS_TO, 'Orgao', 'orgao_lotacao'),
90 | 'CatFuncional' => array(self::BELONGS_TO, 'CategoriaFuncional', 'id_categoria'),
91 | 'GrupoEmprego' => array(self::BELONGS_TO, 'GrupoEmprego', 'id_grupo'),
92 | 'Pessoa' => array(self::BELONGS_TO, 'Pessoa', 'id_pessoa'),
93 | );
94 | }
95 |
96 | /**
97 | * Método do Yii Framework para definição de regras de validação
98 | *
99 | * Aqui são definidos os atributos das colunas da tabela que presenta o
100 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
101 | * caracteres suportados.
102 | *
103 | * É recomendado apenas definir as regras para os atributos que forem ser
104 | * utilizados com dados do usuário.
105 | *
106 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
107 | * @return array Regras de validação para este modelo
108 | */
109 | public function rules()
110 | {
111 | return array(
112 | array('matricula, nr_vinculo, id_pessoa, regime_trabalho, id_grupo, id_categoria, orgao_lotacao, orgao_exercicio, data_ingresso', 'required'),
113 | array('matricula', 'length', 'max' => 8),
114 | array('nr_vinculo', 'length', 'max' => 1),
115 | array('id_pessoa', 'length', 'max' => 6),
116 | array('regime_trabalho', 'length', 'max' => 2),
117 | array('id_grupo', 'length', 'max' => 2),
118 | array('id_categoria', 'length', 'max' => 3),
119 | array('orgao_lotacao, orgao_exercicio', 'length', 'max' => 5)
120 | );
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/ponto/protected/models/Frequencia.php:
--------------------------------------------------------------------------------
1 |
24 | * @package cpd\spell
25 | * @subpackage models
26 | * @version v1.0
27 | * @since v1.0
28 | */
29 | class Frequencia extends CActiveRecord {
30 |
31 | /**
32 | * Método do Yii Framework para retornar a instância da classe
33 | *
34 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
35 | * para permitir que o framework encontre a classe.
36 | *
37 | * @param string $className Nome da classe que é Active Record.
38 | * @return Frequencia A classe que é Active Record
39 | */
40 | public static function model($className=__CLASS__) {
41 | return parent::model($className);
42 | }
43 |
44 | /**
45 | * Método do Yii Framework para definição da tabela associada ao objeto
46 | *
47 | * A string retornada define para o Yii qual tabela contém os registros a
48 | * serem mapeados para essa classe.
49 | *
50 | * @return string Nome da tabela no banco de dados associada ao objeto
51 | */
52 | public function tableName() {
53 | return 'frequencia';
54 | }
55 |
56 | /**
57 | * Método do Yii Framework para definição da chave primária do objeto
58 | *
59 | * A string retornada indica a coluna contendo o identificador único do
60 | * objetos.
61 | *
62 | * @return string Nome da coluna referente à chave primária do objeto
63 | */
64 | public function primaryKey() {
65 | return 'nr_frequencia';
66 | }
67 |
68 | /**
69 | * Método do Yii Framework para definição de relacionamentos entre tabelas
70 | *
71 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
72 | * possuem.
73 | *
74 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
75 | * @return array Relacionamentos que esta tabela possui
76 | */
77 | public function relations() {
78 | return array(
79 | 'DadoFuncional' => array(self::BELONGS_TO, 'DadoFuncional', array('matricula' => 'id_pessoa', 'nr_vinculo' => 'nr_vinculo')),
80 | );
81 | }
82 |
83 | /**
84 | * Método do Yii Framework para definição de regras de validação
85 | *
86 | * Aqui são definidos os atributos das colunas da tabela que presenta o
87 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
88 | * caracteres suportados.
89 | *
90 | * É recomendado apenas definir as regras para os atributos que forem ser
91 | * utilizados com dados do usuário.
92 | *
93 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
94 | * @return array Regras de validação para este modelo
95 | */
96 | public function rules()
97 | {
98 | return array(
99 | array('nr_frequencia, matricula, nr_vinculo, nr_dias, data_frequencia, cod_frequencia', 'required'),
100 | array('nr_frequencia, matricula', 'length', 'max' => 8),
101 | array('nr_vinculo', 'length', 'max' => 1),
102 | array('nr_dias', 'length', 'max' => 11),
103 | array('cod_frequencia', 'length', 'max' => 3)
104 | );
105 | }
106 | }
--------------------------------------------------------------------------------
/ponto/protected/models/GrupoEmprego.php:
--------------------------------------------------------------------------------
1 |
20 | * @package cpd\spell
21 | * @subpackage models
22 | * @version v1.0
23 | * @since v1.0
24 | */
25 | class GrupoEmprego extends CActiveRecord
26 | {
27 |
28 | /**
29 | * Método do Yii Framework para retornar a instância da classe
30 | *
31 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
32 | * para permitir que o framework encontre a classe.
33 | *
34 | * @param string $className Nome da classe que é Active Record.
35 | * @return GrupoEmprego A classe que é Active Record
36 | */
37 | public static function model($className = __CLASS__)
38 | {
39 | return parent::model($className);
40 | }
41 |
42 | /**
43 | * Método do Yii Framework para definição da tabela associada ao objeto
44 | *
45 | * A string retornada define para o Yii qual tabela contém os registros a
46 | * serem mapeados para essa classe.
47 | *
48 | * @return string Nome da tabela no banco de dados associada ao objeto
49 | */
50 | public function tableName()
51 | {
52 | return 'grupo_emprego';
53 | }
54 |
55 | /**
56 | * Método do Yii Framework para definição da chave primária do objeto
57 | *
58 | * A string retornada indica a coluna contendo o identificador único do
59 | * objetos.
60 | *
61 | * @return string Nome da coluna referente à chave primária do objeto
62 | */
63 | public function primaryKey()
64 | {
65 | return array('id_grupo');
66 | }
67 |
68 | /**
69 | * Método do Yii Framework para definição de regras de validação
70 | *
71 | * Aqui são definidos os atributos das colunas da tabela que presenta o
72 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
73 | * caracteres suportados.
74 | *
75 | * É recomendado apenas definir as regras para os atributos que forem ser
76 | * utilizados com dados do usuário.
77 | *
78 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
79 | * @return array Regras de validação para este modelo
80 | */
81 | public function rules()
82 | {
83 | return array(
84 | array('id_grupo, segmento_grupo, nome_grupo', 'required'),
85 | array('id_grupo', 'length', 'max' => 2),
86 | array('segmento_grupo', 'length', 'max' => 1),
87 | array('nome_grupo', 'length', 'max' => 150)
88 | );
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/ponto/protected/models/JustificativaAjuste.php:
--------------------------------------------------------------------------------
1 |
20 | * @package cpd\spell
21 | * @subpackage models
22 | * @version v1.0
23 | * @since v1.0
24 | */
25 | class JustificativaAjuste extends CActiveRecord
26 | {
27 | /**
28 | * Método do Yii Framework para definição da tabela associada ao objeto
29 | *
30 | * A string retornada define para o Yii qual tabela contém os registros a
31 | * serem mapeados para essa classe.
32 | *
33 | * @return string Nome da tabela no banco de dados associada ao objeto
34 | */
35 | public function tableName()
36 | {
37 | return 'justificativa_ajuste';
38 | }
39 |
40 | /**
41 | * Método do Yii Framework para definição da chave primária do objeto
42 | *
43 | * A string retornada indica a coluna contendo o identificador único do
44 | * objetos.
45 | *
46 | * @return string Nome da coluna referente à chave primária do objeto
47 | */
48 | public function primaryKey()
49 | {
50 | return 'nr_justificativa';
51 | }
52 |
53 | /**
54 | * Método do Yii Framework para definição de regras de validação
55 | *
56 | * Aqui são definidos os atributos das colunas da tabela que presenta o
57 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
58 | * caracteres suportados.
59 | *
60 | * É recomendado apenas definir as regras para os atributos que forem ser
61 | * utilizados com dados do usuário.
62 | *
63 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
64 | * @return array Regras de validação para este modelo
65 | */
66 | public function rules()
67 | {
68 | return array(
69 | array('nr_justificativa, texto_justificativa', 'required'),
70 | array('nr_justificativa', 'length', 'max'=>2),
71 | array('texto_justificativa', 'length', 'max'=>256),
72 | array('nr_justificativa, texto_justificativa', 'safe', 'on'=>'search'),
73 | );
74 | }
75 |
76 | /**
77 | * Método do Yii Framework para definição de relacionamentos entre tabelas
78 | *
79 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
80 | * possuem.
81 | *
82 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
83 | * @return array Relacionamentos que esta tabela possui
84 | */
85 | public function relations()
86 | {
87 | return array(
88 | 'Ajustes' => array(self::HAS_MANY, 'Ajuste', 'nr_justificativa'),
89 | );
90 | }
91 |
92 | /**
93 | * Método do Yii Framework para definir descrições às colunas da tabela
94 | *
95 | * Aqui são definidos nomes mais amigáveis aos atributos do objeto. É
96 | * utilizado para gerar mensagens de erros mais claras e mostrar dados nas
97 | * telas da aplicação.
98 | *
99 | * @return array Lista de descrições no formato 'coluna'=>'descrição'
100 | */
101 | public function attributeLabels()
102 | {
103 | return array(
104 | 'nr_justificativa' => 'Nr Seq',
105 | 'texto_justificativa' => 'Denominação',
106 | );
107 | }
108 |
109 | /**
110 | * Método do Yii Framework para buscar modelos
111 | *
112 | * Aqui é feita a pesquisa de um modelo de acordo com determinadas condições
113 | * passadas por parâmetro.
114 | *
115 | * @return CActiveDataProvider Conjunto de dados retornados da consulta
116 | */
117 | public function search()
118 | {
119 | $criteria=new CDbCriteria;
120 |
121 | $criteria->compare('nr_justificativa',$this->nr_justificativa,true);
122 | $criteria->compare('texto_justificativa',$this->texto_justificativa,true);
123 |
124 | return new CActiveDataProvider($this, array(
125 | 'criteria'=>$criteria,
126 | ));
127 | }
128 |
129 | /**
130 | * Método do Yii Framework para retornar a instância da classe
131 | *
132 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
133 | * para permitir que o framework encontre a classe.
134 | *
135 | * @param string $className Nome da classe que é Active Record.
136 | * @return JustificativaAjuste A classe que é Active Record
137 | */
138 | public static function model($className=__CLASS__)
139 | {
140 | return parent::model($className);
141 | }
142 | }
143 |
--------------------------------------------------------------------------------
/ponto/protected/models/LogErroAcessoRegistro.php:
--------------------------------------------------------------------------------
1 |
25 | * @package cpd\spell
26 | * @subpackage models
27 | * @version v1.0
28 | * @since v1.0
29 | */
30 | class LogErroAcessoRegistro extends CActiveRecord
31 | {
32 | /**
33 | * Método do Yii Framework para definição da tabela associada ao objeto
34 | *
35 | * A string retornada define para o Yii qual tabela contém os registros a
36 | * serem mapeados para essa classe.
37 | *
38 | * @return string Nome da tabela no banco de dados associada ao objeto
39 | */
40 | public function tableName()
41 | {
42 | return 'log_erro_acesso_registro';
43 | }
44 |
45 | /**
46 | * Método do Yii Framework para definição de regras de validação
47 | *
48 | * Aqui são definidos os atributos das colunas da tabela que presenta o
49 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
50 | * caracteres suportados.
51 | *
52 | * É recomendado apenas definir as regras para os atributos que forem ser
53 | * utilizados com dados do usuário.
54 | *
55 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
56 | * @return array Regras de validação para este modelo
57 | */
58 | public function rules()
59 | {
60 | return array(
61 | array('id_pessoa, matricula, nr_vinculo, data_log, mensagem_log, ip_log, host_log', 'required'),
62 | array('id_pessoa', 'length', 'max'=>6),
63 | array('matricula', 'length', 'max'=>8),
64 | array('nr_vinculo', 'length', 'max'=>1),
65 | array('mensagem_log', 'length', 'max'=>512),
66 | array('ip_log', 'length', 'max'=>39),
67 | array('host_log', 'length', 'max'=>100),
68 | array('nr_log, id_pessoa, matricula, nr_vinculo, data_log, mensagem_log, ip_log, host_log', 'safe', 'on'=>'search'),
69 | );
70 | }
71 |
72 | /**
73 | * Método do Yii Framework para definição de relacionamentos entre tabelas
74 | *
75 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
76 | * possuem.
77 | *
78 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
79 | * @return array Relacionamentos que esta tabela possui
80 | */
81 | public function relations()
82 | {
83 | return array(
84 | );
85 | }
86 |
87 | /**
88 | * Método do Yii Framework para definir descrições às colunas da tabela
89 | *
90 | * Aqui são definidos nomes mais amigáveis aos atributos do objeto. É
91 | * utilizado para gerar mensagens de erros mais claras e mostrar dados nas
92 | * telas da aplicação.
93 | *
94 | * @return array Lista de descrições no formato 'coluna'=>'descrição'
95 | */
96 | public function attributeLabels()
97 | {
98 | return array(
99 | 'nr_log' => 'Nr Seq Log',
100 | 'id_pessoa' => 'Cod Pessoa',
101 | 'matricula' => 'Matricula Servidor',
102 | 'nr_vinculo' => 'Nr Vinculo',
103 | 'data_log' => 'Data Hora Log',
104 | 'mensagem_log' => 'Mensagem Erro',
105 | 'ip_log' => 'Iperro',
106 | 'host_log' => 'Host Erro',
107 | );
108 | }
109 |
110 | /**
111 | * Método do Yii Framework para buscar modelos
112 | *
113 | * Aqui é feita a pesquisa de um modelo de acordo com determinadas condições
114 | * passadas por parâmetro.
115 | *
116 | * @return CActiveDataProvider Conjunto de dados retornados da consulta
117 | */
118 | public function search()
119 | {
120 | $criteria=new CDbCriteria;
121 |
122 | $criteria->compare('nr_log',$this->nr_log,false);
123 | $criteria->compare('id_pessoa',$this->id_pessoa,false);
124 | $criteria->compare('matricula',$this->matricula,false);
125 | $criteria->compare('nr_vinculo',$this->nr_vinculo,false);
126 | $criteria->compare('data_log',$this->data_log,false);
127 | $criteria->compare('mensagem_log',$this->mensagem_log,false);
128 | $criteria->compare('ip_log',$this->ip_log,false);
129 | $criteria->compare('host_log',$this->host_log,false);
130 |
131 | return new CActiveDataProvider($this, array(
132 | 'criteria'=>$criteria,
133 | ));
134 | }
135 |
136 | /**
137 | * Método do Yii Framework para retornar a instância da classe
138 | *
139 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
140 | * para permitir que o framework encontre a classe.
141 | *
142 | * @param string $className Nome da classe que é Active Record.
143 | * @return LogErroAcessoRegistro A classe que é Active Record
144 | */
145 | public static function model($className=__CLASS__)
146 | {
147 | return parent::model($className);
148 | }
149 | }
150 |
--------------------------------------------------------------------------------
/ponto/protected/models/Orgao.php:
--------------------------------------------------------------------------------
1 |
24 | * @package cpd\spell
25 | * @subpackage models
26 | * @version v1.0
27 | * @since v1.0
28 | */
29 | class Orgao extends CActiveRecord
30 | {
31 | /**
32 | * Método do Yii Framework para retornar a instância da classe
33 | *
34 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
35 | * para permitir que o framework encontre a classe.
36 | *
37 | * @param string $className Nome da classe que é Active Record.
38 | * @return Orgao A classe que é Active Record
39 | */
40 | public static function model($className = __CLASS__)
41 | {
42 | return parent::model($className);
43 | }
44 |
45 | /**
46 | * Método do Yii Framework para definição da tabela associada ao objeto
47 | *
48 | * A string retornada define para o Yii qual tabela contém os registros a
49 | * serem mapeados para essa classe.
50 | *
51 | * @return string Nome da tabela no banco de dados associada ao objeto
52 | */
53 | public function tableName()
54 | {
55 | return 'Orgao';
56 | }
57 |
58 | /**
59 | * Método do Yii Framework para definição da chave primária do objeto
60 | *
61 | * A string retornada indica a coluna contendo o identificador único do
62 | * objetos.
63 | *
64 | * @return string Nome da coluna referente à chave primária do objeto
65 | */
66 | public function primaryKey()
67 | {
68 | return 'id_orgao';
69 | }
70 |
71 | /**
72 | * Método do Yii Framework para definição de relacionamentos entre tabelas
73 | *
74 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
75 | * possuem.
76 | *
77 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
78 | * @return array Relacionamentos que esta tabela possui
79 | */
80 | public function relations()
81 | {
82 | return array(
83 | 'DirigenteOrgao' => array(self::BELONGS_TO, 'DadoFuncional', 'matricula_dirigente'),
84 | 'DirigenteSubstituto' =>array(self::BELONGS_TO, 'DadoFuncional', 'matricula_substituto'),
85 | );
86 | }
87 |
88 | /**
89 | * Método do Yii Framework para definição de regras de validação
90 | *
91 | * Aqui são definidos os atributos das colunas da tabela que presenta o
92 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
93 | * caracteres suportados.
94 | *
95 | * É recomendado apenas definir as regras para os atributos que forem ser
96 | * utilizados com dados do usuário.
97 | *
98 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
99 | * @return array Regras de validação para este modelo
100 | */
101 | public function rules()
102 | {
103 | return array(
104 | array('id_orgao, sigla_orgao, nome_orgao', 'required'),
105 | array('id_orgao', 'length', 'max' => 5),
106 | array('sigla_orgao', 'length', 'max' => 10),
107 | array('nome_orgao', 'length', 'max' => 255),
108 | array('email', 'length', 'max' => 150),
109 | array('matricula_dirigente, matricula_substituto', 'length', 'max' => 8),
110 | array('id_orgao_superior', 'length', 'max' => 5)
111 | );
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/ponto/protected/models/Permissao.php:
--------------------------------------------------------------------------------
1 |
21 | * @package cpd\spell
22 | * @subpackage models
23 | * @version v1.0
24 | * @since v1.0
25 | */
26 | class Permissao extends CActiveRecord {
27 |
28 | /**
29 | * Método do Yii Framework para retornar a instância da classe
30 | *
31 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
32 | * para permitir que o framework encontre a classe.
33 | *
34 | * @param string $className Nome da classe que é Active Record.
35 | * @return Permissao A classe que é Active Record
36 | */
37 | public static function model($className=__CLASS__) {
38 | return parent::model($className);
39 | }
40 |
41 | /**
42 | * Método do Yii Framework para definição da tabela associada ao objeto
43 | *
44 | * A string retornada define para o Yii qual tabela contém os registros a
45 | * serem mapeados para essa classe.
46 | *
47 | * @return string Nome da tabela no banco de dados associada ao objeto
48 | */
49 | public function tableName() {
50 | return 'permissao';
51 | }
52 |
53 | /**
54 | * Método do Yii Framework para definição da chave primária do objeto
55 | *
56 | * A string retornada indica a coluna contendo o identificador único do
57 | * objetos.
58 | *
59 | * @return string Nome da coluna referente à chave primária do objeto
60 | */
61 | public function primaryKey() {
62 | return array('id_aplicacao', 'id_pessoa');
63 | }
64 |
65 | /**
66 | * Método do Yii Framework para definição de relacionamentos entre tabelas
67 | *
68 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
69 | * possuem.
70 | *
71 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
72 | * @return array Relacionamentos que esta tabela possui
73 | */
74 | public function relations() {
75 | return array(
76 | 'Pessoa' => array(self::BELONGS_TO, 'Pessoa', 'id_pessoa'),
77 | );
78 | }
79 |
80 | /**
81 | * Método do Yii Framework para definição de regras de validação
82 | *
83 | * Aqui são definidos os atributos das colunas da tabela que presenta o
84 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
85 | * caracteres suportados.
86 | *
87 | * É recomendado apenas definir as regras para os atributos que forem ser
88 | * utilizados com dados do usuário.
89 | *
90 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
91 | * @return array Regras de validação para este modelo
92 | */
93 | public function rules()
94 | {
95 | return array(
96 | array('id_aplicacao, id_pessoa, id_orgao', 'required'),
97 | array('id_aplicacao, id_pessoa', 'length', 'max' => 6),
98 | array('id_orgao', 'length', 'max' => 5)
99 | );
100 | }
101 | }
--------------------------------------------------------------------------------
/ponto/protected/models/Pessoa.php:
--------------------------------------------------------------------------------
1 |
21 | * @package cpd\spell
22 | * @subpackage models
23 | * @version v1.0
24 | * @since v1.0
25 | */
26 | class Pessoa extends CActiveRecord {
27 |
28 | /**
29 | * Método do Yii Framework para retornar a instância da classe
30 | *
31 | * Esse método deve ser implementado em todas as classe {@see CActiveRecord}
32 | * para permitir que o framework encontre a classe.
33 | *
34 | * @param string $className Nome da classe que é Active Record.
35 | * @return Pessoa A classe que é Active Record
36 | */
37 | public static function model($className=__CLASS__) {
38 | return parent::model($className);
39 | }
40 |
41 | /**
42 | * Método do Yii Framework para definição da tabela associada ao objeto
43 | *
44 | * A string retornada define para o Yii qual tabela contém os registros a
45 | * serem mapeados para essa classe.
46 | *
47 | * @return string Nome da tabela no banco de dados associada ao objeto
48 | */
49 | public function tableName() {
50 | return 'pessoa';
51 | }
52 |
53 | /**
54 | * Método do Yii Framework para definição da chave primária do objeto
55 | *
56 | * A string retornada indica a coluna contendo o identificador único do
57 | * objetos.
58 | *
59 | * @return string Nome da coluna referente à chave primária do objeto
60 | */
61 | public function primaryKey() {
62 | return 'id_pessoa';
63 | }
64 |
65 | /**
66 | * Método do Yii Framework para definição de relacionamentos entre tabelas
67 | *
68 | * Aqui são definidos as tabelas, os tipos de relação e as colunas que as
69 | * possuem.
70 | *
71 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.arr#declaring-relationship Como declarar relacionamentos
72 | * @return array Relacionamentos que esta tabela possui
73 | */
74 | public function relations() {
75 | return array(
76 | 'DadoFuncional' => array(self::HAS_ONE, 'DadoFuncional', 'id_pessoa'),
77 | 'DadosFuncionais' => array(self::HAS_MANY, 'DadoFuncional', 'id_pessoa'),
78 | );
79 | }
80 |
81 | /**
82 | * Método do Yii Framework para definição de regras de validação
83 | *
84 | * Aqui são definidos os atributos das colunas da tabela que presenta o
85 | * objeto como os campos que aceitam valores nulos e tamanho máximo de
86 | * caracteres suportados.
87 | *
88 | * É recomendado apenas definir as regras para os atributos que forem ser
89 | * utilizados com dados do usuário.
90 | *
91 | * @link http://www.yiiframework.com/doc/guide/1.1/en/form.model#declaring-validation-rules Como declarar regras
92 | * @return array Regras de validação para este modelo
93 | */
94 | public function rules()
95 | {
96 | return array(
97 | array('id_pessoa, nome_pessoa, email', 'required'),
98 | array('id_categoria', 'length', 'max' => 6),
99 | array('nome_pessoa', 'length', 'max' => 150),
100 | array('tipo_foto', 'length', 'max' => 4)
101 | );
102 | }
103 |
104 | /**
105 | * Método do Yii Framework para definição de escopos
106 | *
107 | * Esse método é utilizado para definir condições a serem aplicadas nas
108 | * pesquisas. A implementação atual define a quantidade padrão de pessoas
109 | * a serem retornadas por pesquisa usando o comando SQL LIMIT.
110 | *
111 | * @link http://www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes Como declarar escopos
112 | * @return array Lista de escopos definidos
113 | */
114 | public function scopes()
115 | {
116 | return array(
117 | 'limite' => array(
118 | 'limit' => 10,
119 | ),
120 | );
121 | }
122 |
123 | /**
124 | * Método do Yii Framework para persistir Active Records
125 | *
126 | * A sobrescrita do método nessa classe é utilizada para impedir que uma
127 | * instância dessa classe seja persistida pela aplicação.
128 | *
129 | * @param boolean $runValidation Variável para indicar se o modelo precisa ser validado antes de ser persistido
130 | * @param array $attributes Atributos extras para serem persistidos
131 | * @throws CException
132 | */
133 | public function save($runValidation = true, $attributes = NULL) {
134 | throw new CException("Operação inválida.");
135 | }
136 |
137 | /**
138 | * Método do Yii Framework para persistir Active Records
139 | *
140 | * A sobrescrita do método nessa classe é utilizada para impedir que uma
141 | * instância dessa classe seja removida do banco de dados pela aplicação.
142 | *
143 | * @throws CException
144 | */
145 | public function delete() {
146 | throw new CException("Operação inválida.");
147 | }
148 | }
--------------------------------------------------------------------------------
/ponto/protected/views/acompanhamento/acompanhamentoChefia.php:
--------------------------------------------------------------------------------
1 |
2 | $cs = Yii::app()->getClientScript();
3 | $cs->registerCssFile(Yii::app()->baseUrl."/css/acompanhamento.css");
4 | $cs->registerCssFile(Yii::app()->baseUrl."/css/calendario.css");
5 | $cs->registerScriptFile(Yii::app()->baseUrl."/js/acompanhamentoChefia.js", CClientScript::POS_END);
6 | $cs->registerScriptFile(Yii::app()->baseUrl."/js/circle-progress.js", CClientScript::POS_END);
7 | ?>
8 |
9 |