public function countMinutesPerWeek($activityId, $roomId, $tst, $reservation_id = null) { $c = ReservationPeer::getWeekCriteria($tst); $c->addAnd(ReservationPeer::CARD_ID, $this->getId(), Criteria::EQUAL); $c->addAnd(ReservationPeer::ACTIVITY_ID, $activityId, Criteria::EQUAL); $zones = $this->getActiveSubscriptionsZones($activityId, $roomId); $rooms = ZonePeer::getRooms($zones); $rooms_ids = array(); foreach ($rooms as $room) { $rooms_ids[] = $room->getId(); } $c->addJoin(ReservationPeer::ROOMPROFILE_ID, RoomprofilePeer::ID); $c->addAnd(RoomprofilePeer::ROOM_ID, $rooms_ids, Criteria::IN); if (!is_null($reservation_id)) { $c->addand(ReservationPeer::ID, $reservation_id, Criteria::NOT_EQUAL); } $c->clearSelectColumns(); $c->addSelectColumn('SUM(' . ReservationPeer::DURATION . ')'); $c->setLimit(1); $stmt = ReservationPeer::doSelectStmt($c); if ($row = $stmt->fetch(PDO::FETCH_NUM)) { return $row[0]; } return 0; }