Esempio n. 1
0
 private function _buildReservation(Reservation $reservation)
 {
     $reservation->setDoctor($this->_doctor);
     $reservation->setDesiredVisitTime($this->_fromTime->getTimestamp());
     $reservation->setFinalVisitTime($this->_fromTime->getTimestamp());
     $reservation->setVisitEndTime($this->_toTime->getTimestamp());
     $reservation->setVisitorName($this->_data->visitorName);
     $reservation->setVisitorPhone($this->_data->visitorPhone);
     $serviceCollection = $reservation->getServiceCollection();
     foreach ($this->_services as $service) {
         $serviceCollection->add($service);
     }
     $reservation->setStatus($reservation::STATUS_NEW);
     $reservation->save();
     return $reservation;
 }
Esempio n. 2
0
 public function setTimeOverlapsWith(MedOptima_DateTime $fromDateTime, MedOptima_DateTime $toDateTime)
 {
     $from = $fromDateTime->getTimestamp();
     $to = $toDateTime->getTimestamp();
     $firstOr = new RM_Query_Where();
     $firstOr->add('finalVisitTime', '<=', $from)->add('visitEndTime', '>', $from);
     $secondOr = new RM_Query_Where();
     $secondOr->add('finalVisitTime', '<', $to)->add('visitEndTime', '>', $to);
     $thirdOr = new RM_Query_Where();
     $thirdOr->add('finalVisitTime', '>=', $from)->add('finalVisitTime', '<', $to);
     $fourthOr = new RM_Query_Where();
     $fourthOr->add('visitEndTime', '>', $from)->add('visitEndTime', '<', $to);
     $where = new RM_Query_Where();
     $where->addSubOr($firstOr)->addSubOr($secondOr)->addSubOr($thirdOr)->addSubOr($fourthOr);
     $this->_getWhere()->addSub($where);
 }