Example #1
0
 public function getWeek($week, $year, $locationId = null)
 {
     $zd = new Zend_Date();
     $event = new Event();
     $workshop = new Workshop();
     if ($week == 1) {
         $calData['prevWeekNum'] = 52;
         $calData['prevYear'] = $year - 1;
         $calData['nextWeekNum'] = 2;
         $calData['nextYear'] = $year;
     } else {
         if ($week == 52) {
             $calData['prevWeekNum'] = 51;
             $calData['prevYear'] = $year;
             $calData['nextWeekNum'] = 1;
             $calData['nextYear'] = $year + 1;
         } else {
             $calData['prevWeekNum'] = $week - 1;
             $calData['prevYear'] = $year;
             $calData['nextWeekNum'] = $week + 1;
             $calData['nextYear'] = $year;
         }
     }
     // go back to the current week
     $zd->setYear($year);
     $zd->setWeek($week);
     // set the weekday to sunday for the display purposes
     $zd->setWeekday("sunday");
     $month = $zd->get(Zend_Date::MONTH_SHORT);
     for ($x = 0; $x < 7; $x++) {
         $tmp = array();
         $tmp['startDay'] = $zd->get(Zend_Date::WEEKDAY_DIGIT);
         $tmp['month'] = $zd->get(Zend_Date::MONTH_SHORT);
         $tmp['day'] = $zd->get(Zend_Date::DAY_SHORT);
         $tmp['monthName'] = $zd->get(Zend_Date::MONTH_NAME);
         $tmp['monthDays'] = $zd->get(Zend_Date::MONTH_DAYS);
         $tmp['year'] = $zd->get(Zend_Date::YEAR);
         $tmp['weekNum'] = $zd->get(Zend_Date::WEEK);
         $tmp['date'] = $zd->getTimestamp();
         $calData[$x] = $tmp;
         $where = $event->getAdapter()->quoteInto('date = ?', $tmp['year'] . "-" . $tmp['month'] . "-" . $tmp['day']);
         $where .= " AND ";
         $where .= $event->getAdapter()->quoteInto('status = ?', 'open');
         if (!is_null($locationId)) {
             $where .= " AND ";
             $where .= $event->getAdapter()->quoteInto('locationId = ?', $locationId);
         }
         $calData[$x]['events'] = $event->fetchAll($where, 'startTime')->toArray();
         for ($y = 0; $y < count($calData[$x]['events']); $y++) {
             if (isset($calData[$x]['events'][$y]['workshopId'])) {
                 $tmpStart = strtotime($calData[$x]['events'][$y]['startTime']);
                 $tmpEnd = strtotime($calData[$x]['events'][$y]['endTime']);
                 $calData[$x]['events'][$y]['numMinutes'] = ($tmpEnd - $tmpStart) / 60;
                 $workshopId = $calData[$x]['events'][$y]['workshopId'];
                 $calData[$x]['events'][$y]['workshop'] = $workshop->find($workshopId)->toArray();
             }
         }
         $zd->addDay(1);
     }
     $calData['weekNum'] = $zd->get(Zend_Date::WEEK);
     $calData['year'] = $year;
     return $calData;
 }
Example #2
0
 /**
  *
  * @param int $id
  * @param bool $cc
  * @return int
  */
 public function updatePhone($form, $id, $id_meeting, $cc = false)
 {
     //        return $this->execute(__METHOD__, func_get_args(), array('logger' => array('writer' => 'contact', 'changes' => false), 'parent' => array('id' => $id, 'class' => 'Contact')));
     //    }
     //    public function _updatePhone($form, $id, $id_meeting, $cc = false) {
     $eventModel = new Event();
     $contactModel = new Contact();
     $meetingModel = new Meeting();
     $values = $form->getValues();
     $contact = $contactModel->findOne($id);
     $contact->changeGuardian();
     $contact->cc_status = $cc ? '{2,1,0}' : '{4,0,0}';
     $lastEvent = $contact->getNextEvent();
     $event = $eventModel->createRow();
     $meeting = $meetingModel->findOne($id_meeting);
     $eventData = $values;
     $eventData['cc_meeting_title'] = $meeting->cc_meeting_title;
     $eventData['id_meeting'] = $id_meeting;
     $eventData['id_contact'] = $id;
     $eventData['created_by'] = Zend_Auth::getInstance()->getIdentity()->id;
     $eventData['id_event_type'] = 1;
     $eventData['confirmed'] = 0;
     $eventData['confirmation_required'] = 0;
     $eventData['meeting_registered'] = 0;
     $eventData['registrant_branch'] = Zend_Auth::getInstance()->getIdentity()->id_branch;
     $eventData['id_branch'] = $eventData['responsible_branch'];
     $eventData['contact_type'] = $contact->type;
     //        if($lastEvent->id_event_type == 1) {
     $eventData['moved'] = ++$meeting->moved;
     //        }
     $eventData['contacts'] = ++$meeting->contacts;
     if ($eventData['meeting_title']) {
         $meetingTitle = new MeetingTitle();
         $eventData['interest_point'] = $meetingTitle->findOne($eventData['meeting_title'])->id_product_type;
     } else {
         $eventData['interest_point'] = null;
     }
     if (!$eventData['responsible_adviser']) {
         unset($eventData['responsible_adviser']);
     }
     if ($contact->id_company != null) {
         $eventData['id_company'] = $contact->id_company;
     }
     $meetingData = array();
     $meetingData['id_contact'] = $id;
     $meetingData['interest_point'] = $eventData['interest_point'];
     $meetingData['cc_meeting_title'] = $meeting->cc_meeting_title;
     $meetingData['meeting_title'] = $eventData['meeting_title'];
     $meetingData['id_branch'] = $eventData['responsible_branch'];
     $meetingData['meeting_at'] = $eventData['event_at'];
     $meetingData['length'] = '0';
     $meetingData['id_meeting_type'] = 1;
     $meetingData['confirmed'] = 0;
     $meetingData['confirmation_required'] = 0;
     $meetingData['registered'] = 0;
     $meetingData['moved'] = $meeting->moved;
     $meetingData['contacts'] = $meeting->contacts;
     if (isset($eventData['responsible_adviser'])) {
         $meetingData['id_user'] = $eventData['responsible_adviser'];
     }
     //        $lc = new Logic_Contact();
     //        $lc->saveClassification(array("classification_{$eventData['interest_point']}" => $eventData['classification']), $id, true);
     //        unset($eventData['classification']);
     $event->setFromArray($eventData);
     $lastEveteDate = strtotime($lastEvent->event_at);
     $nextEveteDate = strtotime($eventData['event_at']);
     $lastEventAt = new DateTime(date('Y-m-d H:i:s', mktime(0, 0, 0, date('m', $lastEveteDate), date('d', $lastEveteDate), date('Y', $lastEveteDate))));
     $nextEventAt = new DateTime(date('Y-m-d H:i:s', mktime(0, 0, 0, date('m', $nextEveteDate), date('d', $nextEveteDate), date('Y', $nextEveteDate))));
     if ($lastEventAt->diff($nextEventAt)->format('%r') == 0) {
         $lastEvent->is_latest_this_day = 0;
     }
     $lastEvent->moved_days = new Zend_Db_Expr((int) $lastEventAt->diff($nextEventAt)->format('%r%a'));
     try {
         $eventModel->getAdapter()->beginTransaction();
         $lastEvent->save();
         $event_id = $event->save();
         $meetingData['id_event'] = $event_id;
         $meeting->setFromArray($meetingData);
         $meeting->save();
         if (!$cc) {
             $contact->after_meeting_out = 0;
         }
         $ret = $contact->save();
         $eventModel->getAdapter()->commit();
     } catch (Exception $e) {
         $eventModel->getAdapter()->rollBack();
         throw $e;
     }
     $message['messages']['Contact'][$id] = 'Phone event was updated.';
     $logger = Zend_Registry::get('logger');
     Zend_Registry::set('logger', array_merge($logger, $message));
     return $ret;
 }
 /**
  * Allows a user to cancel an event 
  * 
  */
 public function cancelEventAction()
 {
     $get = Zend_Registry::get('getFilter');
     if (!isset($get->eventId)) {
         throw new Ot_Exception_Input('msg-error-eventIdNotSet');
     }
     $workshop = new Workshop();
     $event = new Event();
     $location = new Location();
     $thisEvent = $event->find($get->eventId);
     if (is_null($thisEvent)) {
         throw new Ot_Exception_Data('msg-error-noEvent');
     }
     $i = new Event_Instructor();
     $where = $i->getAdapter()->quoteInto('eventId = ?', $get->eventId);
     $results = $i->fetchAll($where);
     $currentInstructors = array();
     foreach ($results as $r) {
         $currentInstructors[] = $r->accountId;
     }
     if (!$this->_helper->hasAccess('view-all-instructor-pages') && !in_array(Zend_Auth::getInstance()->getIdentity()->accountId, $currentInstructors)) {
         throw new Ot_Exception_Access('msg-error-noWorkshopAccess');
     }
     $thisEvent = $thisEvent->toArray();
     $thisEvent['startTime'] = strftime('%l:%M %p', strtotime($thisEvent['startTime']));
     $thisEvent['endTime'] = strftime('%l:%M %p', strtotime($thisEvent['endTime']));
     $thisEvent['location'] = $location->find($thisEvent['locationId'])->toArray();
     $thisEvent['workshop'] = $workshop->find($thisEvent['workshopId'])->toArray();
     $this->view->event = $thisEvent;
     $form = Ot_Form_Template::delete('eventDelete', 'workshop-schedule-cancelEvent:cancel');
     if ($this->_request->isPost() && $form->isValid($_POST)) {
         $dba = $event->getAdapter();
         $dba->beginTransaction();
         $where = $dba->quoteInto('eventId = ?', $get->eventId);
         $data = array('status' => 'canceled');
         try {
             $result = $event->update($data, $where);
         } catch (Exception $e) {
             $dba->rollback();
             throw $e;
         }
         $attendee = new Event_Attendee();
         try {
             $attendee->update($data, $where);
         } catch (Exception $e) {
             $dba->rollback();
             throw $e;
         }
         $dba->commit();
         $this->_helper->flashMessenger->addMessage('msg-info-eventCanceled');
         $date = explode('-', $thisEvent['date']);
         $this->_helper->redirector->gotoUrl('/workshop/schedule?startYear=' . $date[0] . '&startMonth=' . (int) $date[1]);
     }
     $this->_helper->pageTitle('workshop-schedule-cancelEvent:title');
     $this->view->form = $form;
 }