public function _createPhone($form, $id, $cc = false, $registered = false, $visit = false) { $eventModel = new Event(); $contactModel = new Contact(); $meetingModel = new Meeting(); $values = $form->getValues(); $eventData = $values; if ($visit || $registered) { $eventData['meeting_title'] = $eventData['visit_meeting_title']; $eventData['money_amount'] = $eventData['visit_money_amount']; $eventData['responsible_branch'] = Zend_Auth::getInstance()->getIdentity()->id_branch; $eventData['responsible_adviser'] = Zend_Auth::getInstance()->getIdentity()->id; $eventData['event_at'] = $eventData['visit_event_at']; $eventData['meeting_length'] = 0; $eventData['comment'] = $eventData['visit_comment']; unset($eventData['visit_meeting_title'], $eventData['visit_event_at'], $eventData['visit_money_amount'], $eventData['visit_meeting_length'], $eventData['visit_comment'], $eventData['visit_classification']); } $contact = $contactModel->findOne($id); $contact->changeGuardian(); $contact->cc_status = $cc ? '{2,1,0}' : '{4,0,0}'; if (!$cc) { $contact->branch_status = 1; } if (!$cc && ($visit || $registered)) { $contact->is_comeback = false; } if ($contact->marketing_status == 1 && $cc) { $contact->marketing_status = 4; } if ($cc) { $contact->cc_phone_count++; } else { $contact->phone_count++; } $event = $eventModel->createRow(); $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'] = (int) ($registered || $visit); $eventData['registrant_branch'] = Zend_Auth::getInstance()->getIdentity()->id_branch; $eventData['id_branch'] = $eventData['responsible_branch']; $eventData['contact_type'] = $contact->type; $eventData['contacts'] = 1; if (Zend_Auth::getInstance()->getIdentity()->jednostka['type'] == 3) { $eventData['cc_meeting_title'] = $eventData['meeting_title']; } 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; } $meeting = $meetingModel->createRow(); $meetingData = array(); $meetingData['id_contact'] = $id; if (Zend_Auth::getInstance()->getIdentity()->jednostka['type'] == 3) { $meetingData['cc_meeting_title'] = $eventData['meeting_title']; } $meetingData['meeting_title'] = $eventData['meeting_title']; $meetingData['interest_point'] = $eventData['interest_point']; $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'] = (int) ($registered || $visit); $meetingData['contacts'] = 1; $meetingData['money_amount'] = $eventData['money_amount']; if (isset($eventData['responsible_adviser'])) { $meetingData['id_user'] = $eventData['responsible_adviser']; } $event->setFromArray($eventData); try { $eventModel->getAdapter()->beginTransaction(); $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 created.'; $logger = Zend_Registry::get('logger'); Zend_Registry::set('logger', array_merge($logger, $message)); return $ret; }