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); }
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); } }
/** * 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); }