Example #1
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;
 }