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