public function testBulkUpdate()
 {
     $returnValue = array(array('componente_curricular_id' => 1, 'ano_escolar_id' => 1, 'escola_id' => 1, 'turma_id' => 1, 'carga_horaria' => NULL), array('componente_curricular_id' => 3, 'ano_escolar_id' => 1, 'escola_id' => 1, 'turma_id' => 1, 'carga_horaria' => 100));
     $componentes = array(array('id' => 1, 'cargaHoraria' => 100), array('id' => 2, 'cargaHoraria' => NULL));
     $mock = $this->getDbMock();
     // 1 SELECT, 1 DELETE, 1 INSERT e 1 UPDATE
     $mock->expects($this->exactly(4))->method('Consulta');
     $mock->expects($this->exactly(3))->method('ProximoRegistro')->will($this->onConsecutiveCalls(TRUE, TRUE, FALSE));
     $mock->expects($this->exactly(2))->method('Tupla')->will($this->onConsecutiveCalls($returnValue[0], $returnValue[1]));
     $mapper = new ComponenteCurricular_Model_TurmaDataMapper($mock);
     $mapper->bulkUpdate(1, 1, 1, $componentes);
 }
예제 #2
0
 function atualizaComponentesCurriculares($codSerie, $codEscola, $codTurma, $componentes, $cargaHoraria, $usarComponente)
 {
     require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
     $mapper = new ComponenteCurricular_Model_TurmaDataMapper();
     $componentesTurma = array();
     foreach ($componentes as $key => $value) {
         $carga = isset($usarComponente[$key]) ? NULL : $cargaHoraria[$key];
         $componentesTurma[] = array('id' => $value, 'cargaHoraria' => $carga);
     }
     $mapper->bulkUpdate($codSerie, $codEscola, $codTurma, $componentesTurma);
 }
 function copiarComponenteCurricularTurma($turmaOrigemId, $turmaDestinoId)
 {
     $dataMapper = new ComponenteCurricular_Model_TurmaDataMapper();
     $componentesTurmaOrigem = $dataMapper->findAll(array(), array('turma' => $turmaOrigemId));
     foreach ($componentesTurmaOrigem as $componenteTurmaOrigem) {
         $data = array('componenteCurricular' => $componenteTurmaOrigem->get('componenteCurricular'), 'escola' => $componenteTurmaOrigem->get('escola'), 'cargaHoraria' => $componenteTurmaOrigem->get('cargaHoraria'), 'turma' => $turmaDestinoId, 'anoEscolar' => $componenteTurmaOrigem->get('anoEscolar'));
         $componenteTurmaDestino = $dataMapper->createNewEntityInstance($data);
         $dataMapper->save($componenteTurmaDestino);
     }
 }
예제 #4
0
 /**
  * Retorna as instâncias de ComponenteCurricular_Model_Componente de uma turma.
  *
  * @param int $serieId O código do ano escolar/série da turma.
  * @param int $escola  O código da escola da turma.
  * @param int $turma   O código da turma.
  * @param ComponenteCurricular_Model_TurmaDataMapper $mapper (Opcional) Instância
  *   do mapper para selecionar todas as referências de
  *   ComponenteCurricular_Model_Componente persistidas para a turma.
  * @param ComponenteCurricular_Model_ComponenteDataMapper $componenteMapper (Opcional)
  *   Instância do mapper para recuperar as instâncias de
  *   ComponenteCurricular_Model_Componente recuperadas por $mapper.
  * @return array
  */
 public static function getComponentesTurma($serieId, $escola, $turma, ComponenteCurricular_Model_TurmaDataMapper $mapper = NULL, ComponenteCurricular_Model_ComponenteDataMapper $componenteMapper = NULL, $componenteCurricularId = null)
 {
     if (is_null($mapper)) {
         require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
         $mapper = new ComponenteCurricular_Model_TurmaDataMapper();
     }
     $where = array('turma' => $turma);
     if (is_numeric($componenteCurricularId)) {
         $where['componente_curricular_id'] = $componenteCurricularId;
     }
     $componentesTurma = $mapper->findAll(array(), $where);
     // Não existem componentes específicos para a turma
     if (0 == count($componentesTurma)) {
         return self::getEscolaSerieDisciplina($serieId, $escola, $componenteMapper, $componenteCurricularId);
     }
     $componentes = array();
     foreach ($componentesTurma as $componenteTurma) {
         $componente = new stdClass();
         $componente->id = $componenteTurma->get('componenteCurricular');
         $componente->cargaHoraria = $componenteTurma->cargaHoraria;
         $componentes[] = $componente;
     }
     return self::_hydrateComponentes($componentes, $serieId, $componenteMapper);
 }