/** * @access protected * @param int $codTurma * @param int $dia * @param int $mes * @param int $ano * @param array $counter * @param int $dia_semana * @param bool $mes_final * @return int */ function _getNumeroDias($codTurma, $dia, $mes, $ano, $counter, $mes_final = FALSE, $dia_semana = NULL) { static $calendarioTurmaMapper = NULL; $year = $ano; $month = $mes; $date = mktime(1, 1, 1, $month, $dia, $year); $first_day_of_month = strtotime('-' . (date('d', $date) - 1) . ' days', $date); $last_day_of_month = strtotime('+' . (date('t', $first_day_of_month) - 1) . ' days', $first_day_of_month); $last_day_of_month = date('d', $last_day_of_month); $obj_calendario = new clsPmieducarCalendarioAnoLetivo(); $obj_calendario->setCamposLista('cod_calendario_ano_letivo'); $lista_calendario = $obj_calendario->lista(NULL, $this->ref_cod_escola, NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, 1); // Dias não letivos da turma $diasNaoLetivosTurma = array(); if (is_array($lista_calendario)) { $lista_calendario = array_shift($lista_calendario); $obj_dia = new clsPmieducarCalendarioDia(); $obj_dia->setCamposLista('dia'); $dias_nao_letivo = $obj_dia->lista($lista_calendario, $mes, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, "'n'"); // Instancia o mapper apenas uma vez if (is_null($calendarioTurmaMapper)) { require_once 'Calendario/Model/TurmaDataMapper.php'; $calendarioTurmaMapper = new Calendario_Model_TurmaDataMapper(); } // Carrega os dias do mês da turma $where = array('calendarioAnoLetivo' => $lista_calendario, 'ano' => $ano, 'mes' => $mes, 'turma' => $codTurma); $diasTurma = $calendarioTurmaMapper->findAll(array(), $where); // Separa apenas os dias da turma que forem não-letivos foreach ($diasTurma as $diaTurma) { if (in_array($diaTurma->dia, $dias_nao_letivo)) { $diasNaoLetivosTurma[] = $diaTurma->dia; } } } if ($mes_final) { $last_day_of_month = $dia; $dia = 1; } // Argumentos para o callback $counter $args = array('dia' => $dia, 'mes' => $mes, 'ano' => $ano, 'last_day_of_month' => $last_day_of_month, 'diasNaoLetivosTurma' => $diasNaoLetivosTurma, 'dia_semana' => $dia_semana); return call_user_func_array($counter, $args); }