Commit 6f07a95cafaa4b7eb13d393f8e37c0fe0bdb0e40

Authored by Eriksen Costa
1 parent ef6bda7c
Exists in master

Adicionado módulo {{{TransporteEscolar}}}:

 * Funcionalidade básica, apenas permite o cadastramento de alunos que usam transporte escolar
 * Possui apenas as opções "Estadual" e "Municipal" em "Responsável" pelo transporte
 * Informação útil ao Educacenso
ieducar/misc/database/deltas/26_cria_tabela_modules_transporte_aluno.sql 0 → 100644
... ... @@ -0,0 +1,31 @@
  1 +-- //
  2 +
  3 +--
  4 +-- Cria a tabela transporte_aluno no schema modules.
  5 +--
  6 +-- @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  7 +-- @license @@license@@
  8 +-- @version $Id$
  9 +--
  10 +
  11 +CREATE TABLE modules.transporte_aluno
  12 +(
  13 + aluno_id integer NOT NULL,
  14 + responsavel integer NOT NULL,
  15 + user_id integer NOT NULL,
  16 + created_at timestamp without time zone NOT NULL,
  17 + updated_at timestamp without time zone,
  18 + CONSTRAINT transporte_aluno_pk PRIMARY KEY (aluno_id)
  19 +) WITH (OIDS=FALSE);
  20 +
  21 +ALTER TABLE modules.transporte_aluno ADD
  22 + CONSTRAINT transporte_aluno_aluno_fk
  23 + FOREIGN KEY (aluno_id)
  24 + REFERENCES pmieducar.aluno (cod_aluno)
  25 + ON UPDATE NO ACTION ON DELETE CASCADE;
  26 +
  27 +-- //@UNDO
  28 +
  29 +DROP TABLE modules.transporte_aluno;
  30 +
  31 +-- //
0 32 \ No newline at end of file
... ...
ieducar/misc/database/ieducar.sql
... ... @@ -10831,6 +10831,19 @@ ALTER SEQUENCE tabela_arredondamento_valor_id_seq OWNED BY tabela_arredondamento
10831 10831 SELECT pg_catalog.setval('tabela_arredondamento_valor_id_seq', 1, false);
10832 10832  
10833 10833  
  10834 +--
  10835 +-- Name: transporte_aluno; Type: TABLE; Schema: modules; Owner: -; Tablespace:
  10836 +--
  10837 +
  10838 +CREATE TABLE transporte_aluno (
  10839 + aluno_id integer NOT NULL,
  10840 + responsavel integer NOT NULL,
  10841 + user_id integer NOT NULL,
  10842 + created_at timestamp without time zone NOT NULL,
  10843 + updated_at timestamp without time zone
  10844 +);
  10845 +
  10846 +
10834 10847 SET search_path = pmiacoes, pg_catalog;
10835 10848  
10836 10849 --
... ... @@ -17816,6 +17829,12 @@ SET search_path = modules, pg_catalog;
17816 17829  
17817 17830  
17818 17831  
  17832 +--
  17833 +-- Data for Name: transporte_aluno; Type: TABLE DATA; Schema: modules; Owner: -
  17834 +--
  17835 +
  17836 +
  17837 +
17819 17838 SET search_path = pmiacoes, pg_catalog;
17820 17839  
17821 17840 --
... ... @@ -20139,6 +20158,7 @@ INSERT INTO changelog VALUES (22, &#39;Main&#39;, &#39;NOW()&#39;, &#39;NOW()&#39;, &#39;dbdeploy&#39;, &#39;22_cria
20139 20158 INSERT INTO changelog VALUES (23, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '23_cria_tabela_modules_componente_curricular_turma.sql');
20140 20159 INSERT INTO changelog VALUES (24, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '24_altera_tipo_campo_carga_horaria_pmieducar_servidor_alocacao.sql');
20141 20160 INSERT INTO changelog VALUES (25, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '25_adiciona_campo_zona_localizacao_tabelas_enderecamento.sql');
  20161 +INSERT INTO changelog VALUES (26, 'Main', 'NOW()', 'NOW()', 'dbdeploy', '26_cria_tabela_modules_transporte_aluno.sql');
20142 20162  
20143 20163  
20144 20164 --
... ... @@ -27152,6 +27172,14 @@ ALTER TABLE ONLY tabela_arredondamento_valor
27152 27172 ADD CONSTRAINT tabela_arredondamento_valor_pkey PRIMARY KEY (id);
27153 27173  
27154 27174  
  27175 +--
  27176 +-- Name: transporte_aluno_pk; Type: CONSTRAINT; Schema: modules; Owner: -; Tablespace:
  27177 +--
  27178 +
  27179 +ALTER TABLE ONLY transporte_aluno
  27180 + ADD CONSTRAINT transporte_aluno_pk PRIMARY KEY (aluno_id);
  27181 +
  27182 +
27155 27183 SET search_path = pmiacoes, pg_catalog;
27156 27184  
27157 27185 --
... ... @@ -32944,6 +32972,14 @@ ALTER TABLE ONLY tabela_arredondamento_valor
32944 32972 ADD CONSTRAINT tabela_arredondamento_tabela_arredondamento_valor_fk FOREIGN KEY (tabela_arredondamento_id) REFERENCES tabela_arredondamento(id) ON UPDATE RESTRICT ON DELETE RESTRICT;
32945 32973  
32946 32974  
  32975 +--
  32976 +-- Name: transporte_aluno_aluno_fk; Type: FK CONSTRAINT; Schema: modules; Owner: -
  32977 +--
  32978 +
  32979 +ALTER TABLE ONLY transporte_aluno
  32980 + ADD CONSTRAINT transporte_aluno_aluno_fk FOREIGN KEY (aluno_id) REFERENCES pmieducar.aluno(cod_aluno) ON DELETE CASCADE;
  32981 +
  32982 +
32947 32983 SET search_path = pmiacoes, pg_catalog;
32948 32984  
32949 32985 --
... ...
ieducar/modules/Transporte/Model/Aluno.php 0 → 100644
... ... @@ -0,0 +1,82 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Transporte
  27 + * @subpackage Modules
  28 + * @since Arquivo disponível desde a versão 1.2.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'CoreExt/Entity.php';
  33 +
  34 +/**
  35 + * Transporte_Model_Aluno class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Transporte
  41 + * @subpackage Modules
  42 + * @since Classe disponível desde a versão 1.2.0
  43 + * @version @@package_version@@
  44 + */
  45 +class Transporte_Model_Aluno extends CoreExt_Entity
  46 +{
  47 + protected $_data = array(
  48 + 'aluno' => NULL,
  49 + 'responsavel' => NULL,
  50 + 'user' => NULL,
  51 + 'created_at' => NULL,
  52 + 'updated_at' => NULL
  53 + );
  54 +
  55 + protected $_references = array(
  56 + 'responsavel' => array(
  57 + 'value' => NULL,
  58 + 'class' => 'Transporte_Model_Responsavel',
  59 + 'file' => 'Transporte/Model/Responsavel.php'
  60 + )
  61 + );
  62 +
  63 + public function __construct($options = array())
  64 + {
  65 + parent::__construct($options);
  66 + unset($this->_data['id']);
  67 + }
  68 +
  69 + public function getDefaultValidatorCollection()
  70 + {
  71 + require_once 'Transporte/Model/Responsavel.php';
  72 + $responsavel = Transporte_Model_Responsavel::getInstance();
  73 +
  74 + return array(
  75 + 'aluno' => new CoreExt_Validate_Numeric(),
  76 + 'responsavel' => new CoreExt_Validate_Choice(array(
  77 + 'choices' => $responsavel->getKeys())
  78 + ),
  79 + 'user' => new CoreExt_Validate_Numeric()
  80 + );
  81 + }
  82 +}
0 83 \ No newline at end of file
... ...
ieducar/modules/Transporte/Model/AlunoDataMapper.php 0 → 100644
... ... @@ -0,0 +1,61 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Transporte
  27 + * @subpackage Modules
  28 + * @since Arquivo disponível desde a versão 1.2.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'CoreExt/DataMapper.php';
  33 +require_once 'Transporte/Model/Aluno.php';
  34 +
  35 +/**
  36 + * Transporte_Model_AlunoDataMapper class.
  37 + *
  38 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  39 + * @category i-Educar
  40 + * @license @@license@@
  41 + * @package Transporte
  42 + * @subpackage Modules
  43 + * @since Classe disponível desde a versão 1.2.0
  44 + * @version @@package_version@@
  45 + */
  46 +class Transporte_Model_AlunoDataMapper extends CoreExt_DataMapper
  47 +{
  48 + protected $_entityClass = 'Transporte_Model_Aluno';
  49 + protected $_tableName = 'transporte_aluno';
  50 + protected $_tableSchema = 'modules';
  51 +
  52 + protected $_attributeMap = array(
  53 + 'aluno' => 'aluno_id',
  54 + 'responsavel' => 'responsavel',
  55 + 'user' => 'user_id',
  56 + 'created_at' => 'created_at',
  57 + 'updated_at' => 'updated_at'
  58 + );
  59 +
  60 + protected $_primaryKey = array('aluno');
  61 +}
0 62 \ No newline at end of file
... ...
ieducar/modules/Transporte/Model/Responsavel.php 0 → 100644
... ... @@ -0,0 +1,59 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Transporte
  27 + * @subpackage Modules
  28 + * @since Arquivo disponível desde a versão 1.2.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'CoreExt/Enum.php';
  33 +
  34 +/**
  35 + * Transporte_Model_Responsavel class.
  36 + *
  37 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  38 + * @category i-Educar
  39 + * @license @@license@@
  40 + * @package Transporte
  41 + * @subpackage Modules
  42 + * @since Classe disponível desde a versão 1.2.0
  43 + * @version @@package_version@@
  44 + */
  45 +class Transporte_Model_Responsavel extends CoreExt_Enum
  46 +{
  47 + const ESTADUAL = 1;
  48 + const MUNICIPAL = 2;
  49 +
  50 + protected $_data = array(
  51 + self::ESTADUAL => 'Estadual',
  52 + self::MUNICIPAL => 'Municipal'
  53 + );
  54 +
  55 + public static function getInstance()
  56 + {
  57 + return self::_getInstance(__CLASS__);
  58 + }
  59 +}
0 60 \ No newline at end of file
... ...
ieducar/modules/Transporte/_data/install.sql 0 → 100644
... ... @@ -0,0 +1,15 @@
  1 +CREATE TABLE modules.transporte_aluno
  2 +(
  3 + aluno_id integer NOT NULL,
  4 + responsavel integer NOT NULL,
  5 + user_id integer NOT NULL,
  6 + created_at timestamp without time zone NOT NULL,
  7 + updated_at timestamp without time zone,
  8 + CONSTRAINT transporte_aluno_pk PRIMARY KEY (aluno_id)
  9 +) WITH (OIDS=FALSE);
  10 +
  11 +ALTER TABLE modules.transporte_aluno ADD
  12 + CONSTRAINT transporte_aluno_aluno_fk
  13 + FOREIGN KEY (aluno_id)
  14 + REFERENCES pmieducar.aluno (cod_aluno)
  15 + ON UPDATE NO ACTION ON DELETE CASCADE;
0 16 \ No newline at end of file
... ...
ieducar/modules/Transporte/_tests/AlunoTest.php 0 → 100644
... ... @@ -0,0 +1,69 @@
  1 +<?php
  2 +
  3 +/**
  4 + * i-Educar - Sistema de gestão escolar
  5 + *
  6 + * Copyright (C) 2006 Prefeitura Municipal de Itajaí
  7 + * <ctima@itajai.sc.gov.br>
  8 + *
  9 + * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo
  10 + * sob os termos da Licença Pública Geral GNU conforme publicada pela Free
  11 + * Software Foundation; tanto a versão 2 da Licença, como (a seu critério)
  12 + * qualquer versão posterior.
  13 + *
  14 + * Este programa é distribuí­do na expectativa de que seja útil, porém, SEM
  15 + * NENHUMA GARANTIA; nem mesmo a garantia implí­cita de COMERCIABILIDADE OU
  16 + * ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral
  17 + * do GNU para mais detalhes.
  18 + *
  19 + * Você deve ter recebido uma cópia da Licença Pública Geral do GNU junto
  20 + * com este programa; se não, escreva para a Free Software Foundation, Inc., no
  21 + * endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  22 + *
  23 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  24 + * @category i-Educar
  25 + * @license @@license@@
  26 + * @package Transporte
  27 + * @subpackage UnitTests
  28 + * @since Arquivo disponível desde a versão 1.2.0
  29 + * @version $Id$
  30 + */
  31 +
  32 +require_once 'Transporte/Model/Aluno.php';
  33 +require_once 'Transporte/Model/Responsavel.php';
  34 +
  35 +/**
  36 + * Transporte_Model_AlunoTest class.
  37 + *
  38 + * @author Eriksen Costa Paixão <eriksen.paixao_bs@cobra.com.br>
  39 + * @category i-Educar
  40 + * @license @@license@@
  41 + * @package Transporte
  42 + * @subpackage UnitTests
  43 + * @since Classe disponível desde a versão 1.2.0
  44 + * @version @@package_version@@
  45 + */
  46 +class Transporte_Model_AlunoTest extends UnitBaseTest
  47 +{
  48 + protected $_entity = NULL;
  49 +
  50 + protected function setUp()
  51 + {
  52 + $this->_entity = new Transporte_Model_Aluno();
  53 + }
  54 +
  55 + public function testEntityValidators()
  56 + {
  57 + // Recupera os objetos CoreExt_Validate
  58 + $validators = $this->_entity->getDefaultValidatorCollection();
  59 + $this->assertType('CoreExt_Validate_Numeric', $validators['aluno']);
  60 + $this->assertType('CoreExt_Validate_Choice', $validators['responsavel']);
  61 + $this->assertType('CoreExt_Validate_Numeric', $validators['user']);
  62 +
  63 + // Verifica se a opção 'choices' corresponde aos valores do Enum Responsavel.
  64 + $responsavel = Transporte_Model_Responsavel::getInstance();
  65 + $this->assertEquals(
  66 + $responsavel->getKeys(), $validators['responsavel']->getOption('choices')
  67 + );
  68 + }
  69 +}
0 70 \ No newline at end of file
... ...