Пример #1
0
 public function view()
 {
     if (!$this->loadData()) {
         $this->dataError();
         sendBack();
     }
     $person = $this->_uses[$this->modeltype];
     $person_id = $person->{$person->idField};
     $party_id = $person->party_id;
     $company = DataObjectFactory::Factory('Company');
     $slcustomer = DataObjectFactory::Factory('SLCustomer');
     if ($person->isLoaded()) {
         $company->load($person->company_id);
         $slcustomer->loadBy('company_id', $person->company_id);
     }
     if (!$person->isLoaded()) {
         $flash = Flash::instance();
         $flash->addError('You do not have permission to view this person.');
         sendTo($this->name, 'index', $this->_modules);
         return;
     }
     $sidebar = new SidebarController($this->view);
     // Need loose coupling method - use person categories?
     $employee = DataObjectFactory::Factory('Employee');
     $employee->loadBy('person_id', $person_id);
     if ($employee->isLoaded()) {
         $sidebar->addList('currently_viewing', array('view' => array('tag' => 'view ' . $person->fullname, 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'view', 'id' => $person_id))));
     } else {
         $sidebar->addCurrentBox('currently_viewing', $person->fullname, array('module' => 'contacts', 'controller' => 'persons', 'id' => $person->id));
     }
     $items = array();
     $ao = AccessObject::Instance();
     if ($ao->hasPermission('crm')) {
         $items += array('opportunities' => array('tag' => 'Opportunities', 'link' => array('module' => 'crm', 'controller' => 'opportunitys', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'crm', 'controller' => 'opportunitys', 'action' => 'new', 'person_id' => $person_id)), 'activities' => array('tag' => 'Activities', 'link' => array('module' => 'crm', 'controller' => 'activitys', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'crm', 'controller' => 'activitys', 'action' => 'new', 'person_id' => $person_id)));
     }
     if ($ao->hasPermission('ticketing')) {
         $items += array('tickets' => array('tag' => 'Tickets', 'link' => array('module' => 'ticketing', 'controller' => 'tickets', 'action' => 'viewcompany', 'originator_person_id' => $person_id), 'new' => array('module' => 'ticketing', 'controller' => 'tickets', 'action' => 'new', 'originator_person_id' => $person_id)));
     }
     if (isModuleAdmin('projects')) {
         $items += array('resource_template' => array('tag' => 'Resource Template', 'link' => array('module' => 'projects', 'controller' => 'resourcetemplate', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'projects', 'controller' => 'resourcetemplate', 'action' => 'new', 'person_id' => $person_id)));
     }
     $items += array('spacer', 'notes' => array('tag' => 'Notes', 'link' => array('module' => 'contacts', 'controller' => 'partynotes', 'action' => 'viewperson', 'party_id' => $party_id), 'new' => array('module' => 'contacts', 'controller' => 'partynotes', 'action' => 'new', 'party_id' => $party_id)), 'spacer', 'attachments' => array('tag' => 'Attachments', 'link' => array('module' => 'contacts', 'controller' => 'personattachments', 'action' => 'index', 'person_id' => $person_id), 'new' => array('module' => 'contacts', 'controller' => 'personattachments', 'action' => 'new', 'data_model' => 'person', 'entity_id' => $person_id)), 'spacer', 'addresses' => array('tag' => 'Addresses', 'link' => array('module' => 'contacts', 'controller' => 'partyaddresss', 'action' => 'viewperson', 'party_id' => $party_id), 'new' => array('module' => 'contacts', 'controller' => 'partyaddresss', 'action' => 'new', 'party_id' => $party_id)), 'spacer', 'phone' => array('tag' => 'Phone', 'link' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'viewperson', 'party_id' => $party_id, 'type' => 'T'), 'new' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'new', 'party_id' => $party_id, 'type' => 'T')), 'mobile' => array('tag' => 'Mobile', 'link' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'viewperson', 'party_id' => $party_id, 'type' => 'M'), 'new' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'new', 'party_id' => $party_id, 'type' => 'M')), 'fax' => array('tag' => 'Fax', 'link' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'viewperson', 'party_id' => $party_id, 'type' => 'F'), 'new' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'new', 'party_id' => $party_id, 'type' => 'F')), 'email' => array('tag' => 'Email', 'link' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'viewperson', 'party_id' => $party_id, 'type' => 'E'), 'new' => array('module' => 'contacts', 'controller' => 'partycontactmethods', 'action' => 'new', 'party_id' => $party_id, 'type' => 'E')), 'spacer', 'meetings' => array('tag' => 'Meetings', 'link' => array('module' => 'calendar', 'controller' => 'calendarevents', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'calendar', 'controller' => 'calendarevents', 'action' => 'new', 'person_id' => $person_id)), 'calls' => array('tag' => 'Calls', 'link' => array('module' => 'contacts', 'controller' => 'loggedcalls', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'contacts', 'controller' => 'loggedcalls', 'action' => 'new', 'person_id' => $person_id)));
     if ($slcustomer->isLoaded()) {
         $items += array('sorders' => array('tag' => 'Sales Orders/Quotes', 'link' => array('module' => 'sales_order', 'controller' => 'sorders', 'action' => 'viewperson', 'person_id' => $person_id), 'new' => array('module' => 'sales_order', 'controller' => 'sorders', 'action' => 'new', 'person_id' => $person_id, 'slmaster_id' => $slcustomer->id)));
     }
     $sidebar->addList('related_items', $items);
     $category = DataObjectFactory::Factory('peopleInCategories');
     $this->view->set('categories', implode(',', $category->getCategorynames($person_id)));
     $current_categories = $category->getCategoryID($person_id);
     $ledger_category = DataObjectFactory::Factory('LedgerCategory');
     foreach ($ledger_category->getPersonTypes($current_categories) as $model_name => $model_detail) {
         $do = DataObjectFactory::Factory($model_name);
         $do->loadBy('person_id', $person_id);
         if ($do->isLoaded()) {
             $sidebar->addList('related_items', array($model_name => array('tag' => $do->getTitle(), 'link' => array('module' => $model_detail['module'], 'controller' => $model_detail['controller'], 'action' => 'view', $do->idField => $do->{$do->idField}))));
         } else {
             $sidebar->addList('related_items', array($model_name => array('tag' => $do->getTitle(), 'new' => array('module' => $model_detail['module'], 'controller' => $model_detail['controller'], 'action' => 'new', 'person_id' => $person->{$person->idField}))));
         }
     }
     $this->view->register('sidebar', $sidebar);
     $this->view->set('sidebar', $sidebar);
     $category = DataObjectFactory::Factory('PeopleInCategories');
     $this->view->set('categories', implode(',', $category->getCategorynames($person_id)));
     if ($person instanceof Person) {
         $pl = new PreferencePageList('recently_viewed_people' . EGS_COMPANY_ID);
         $pl->addPage(new Page(array('module' => 'contacts', 'controller' => 'persons', 'action' => 'view', 'id' => $person_id), 'person', $person->firstname . ' ' . $person->surname));
         $pl->save();
     }
 }
Пример #2
0
 public function view()
 {
     if (!$this->loadData()) {
         $this->dataError();
         sendBack();
     }
     $task = $this->_uses[$this->modeltype];
     if (!$task->isLoaded()) {
         $flash = Flash::Instance();
         $flash->addError("The selected task does not exist");
         sendTo('tasks', 'index', array('projects'));
     }
     $sidebar = new SidebarController($this->view);
     //		$sidebar->addList(
     //			'Actions',
     //			array(
     //				'new_task'=>array(
     //					'link'=>array('modules'=>$this->_modules,'controller'=>$this->name,'action'=>'new'),
     //					'tag'=>'new_task'
     //				)
     //			)
     //		);
     $sidebar->addList('currently_viewing', array($task->name => array('tag' => $task->name, 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'view', 'id' => $task->id)), 'edit' => array('tag' => 'Edit', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'edit', 'id' => $task->id)), 'delete' => array('tag' => 'Delete', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'delete', 'id' => $task->id)), 'mark_as_complete' => array('tag' => 'Mark as Complete', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'complete', 'id' => $task->id))));
     //		$sidebar->addList(
     //			'Calendars',
     //			array(
     //				'day_view'=>array(
     //					'link'=>array('module'=>'calendar','controller'=>'index','action'=>'dayview'),
     //					'tag'=>'day_view'
     //				),
     //				'week_view'=>array(
     //					'link'=>array('module'=>'calendar','controller'=>'index','action'=>'weekview'),
     //					'tag'=>'week_view'
     //				),
     //				'month_view'=>array(
     //					'link'=>array('module'=>'calendar','controller'=>'index','action'=>'monthview'),
     //					'tag'=>'month_view'
     //				)
     //			)
     //		);
     $this->sidebarRelatedItems($sidebar, $task);
     $sidebarlist['view_task_totals'] = array('tag' => 'view_task_totals', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'viewproject_totals', 'id' => $task->id));
     $sidebar->addList('related_items', $sidebarlist);
     // Need to add equipment hours for tasks that use equipment
     // This needs a link rule?
     //		$equipment_id = $task->equipment_id;
     //		if (isset($equipment_id)) {
     //			$related_items['equipmenthours'] = array(
     //				'tag'=>'Equipment Hours',
     //				'link'=>array('module'=>'projects','controller'=>'hours','action'=>'viewproject','project_id'=>$task->project_id),
     //				'new'=>array('module'=>'projects','controller'=>'hours','action'=>'newequipment','project_id'=>$task->project_id,'task_id'=>$task->id)
     //			);
     //		}
     $this->view->register('sidebar', $sidebar);
     $this->view->set('sidebar', $sidebar);
     if ($task instanceof Task) {
         $pl = new PreferencePageList('recently_viewed_tasks');
         $pl->addPage(new Page(array('module' => $this->_modules, 'controller' => $this->name, 'action' => 'view', 'id' => $task->id), 'task', $task->name));
         $pl->save();
     }
 }
Пример #3
0
 public function view()
 {
     if (!$this->loadData()) {
         $this->dataError();
         sendBack();
     }
     $project = $this->_uses[$this->modeltype];
     $db =& DB::Instance();
     $query = 'select id from projectsoverview where id =' . $db->qstr($project->id) . ' AND usernameaccess=' . $db->qstr(EGS_USERNAME);
     $has_permission = $db->GetCol($query);
     if ($has_permission === false && !isModuleAdmin() && $project->owner != EGS_USERNAME) {
         $flash = Flash::Instance();
         $flash->addError('You do not have permission to view that project');
         sendTo($this->name, 'index', $this->_modules);
     }
     $viewing_sidebar = array($project->name => array('tag' => $project->name, 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'view', 'id' => $project->id)), 'edit' => array('tag' => 'Edit', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'edit', 'id' => $project->id)), 'delete' => array('tag' => 'Delete', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'delete', 'id' => $project->id)), 'mark_as_complete' => array('tag' => 'Mark as Complete', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'complete', 'id' => $project->id)), 'time-shift' => array('tag' => 'time-shift', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'timeshift', 'id' => $project->id)));
     $sidebar = new SidebarController($this->view);
     $sidebar->addList('Actions', array('view' => array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'index'), 'tag' => 'view_projects'), 'new' => array('link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'new'), 'tag' => 'new_project')));
     $sidebar->addList('currently_viewing', $viewing_sidebar);
     $this->sidebarRelatedItems($sidebar, $project);
     $sidebarlist['view_project_totals'] = array('tag' => 'view_project_totals', 'link' => array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'viewproject_totals', 'id' => $project->id));
     $sidebar->addList('related_items', $sidebarlist);
     $this->view->register('sidebar', $sidebar);
     $this->view->set('sidebar', $sidebar);
     if ($project instanceof Project) {
         $pl = new PreferencePageList('recently_viewed_projects');
         $pl->addPage(new Page(array('modules' => $this->_modules, 'controller' => $this->name, 'action' => 'view', 'id' => $project->id), 'task', $project->name));
         $pl->save();
     }
 }
 function populate()
 {
     $pl = new PreferencePageList('recently_viewed_companies' . EGS_COMPANY_ID);
     $this->contents = $pl->getPages()->toArray();
 }
Пример #5
0
 public function converttoaccount()
 {
     $company = $this->_uses['Lead'];
     if (isset($this->_data['Lead']) && isset($this->_data['Lead'][$company->idField])) {
         $id = $this->_data['Lead'][$company->idField];
         $data = $this->_data['Lead'];
     } elseif (isset($this->_data[$company->idField])) {
         $id = $this->_data[$company->idField];
     } else {
         $flash = Flash::Instance();
         $flash->addError('Select a Lead to convert');
         sendTo('leads', 'index', array('contacts'));
     }
     $company->load($id);
     if (!$company->isLoaded()) {
         $flash = Flash::instance();
         $flash->addError('You do not have permission to edit this lead.');
         sendTo($this->name, 'index', $this->_modules);
         return;
     }
     $pl = new PreferencePageList('recently_viewed_leads' . EGS_COMPANY_ID);
     $pl->removePage(new Page(array('module' => 'contacts', 'controller' => 'leads', 'action' => 'view', 'id' => $company->id), 'company', $company->name));
     $pl->save();
     $pl = new PreferencePageList('recently_viewed_companies' . EGS_COMPANY_ID);
     $pl->addPage(new Page(array('module' => 'contacts', 'controller' => 'companys', 'action' => 'view', 'id' => $company->id), 'company', $company->name));
     $pl->save();
     $system_prefs = SystemPreferences::instance();
     $autoGenerate = $system_prefs->getPreferenceValue('auto-account-numbering', 'contacts');
     if (!(empty($autoGenerate) || $autoGenerate === 'off')) {
         $company->update($id, array('is_lead', 'accountnumber'), array('false', $company->createAccountNumber()));
         sendTo('companys', 'view', array('contacts'), array('id' => $company->id));
     } else {
         if (isset($data['accountnumber'])) {
             $company->update($id, array('is_lead', 'accountnumber'), array('false', $data['accountnumber']));
             sendTo('companys', 'view', array('contacts'), array('id' => $company->id));
         } else {
             parent::_new();
         }
     }
 }
Пример #6
0
 public function delete()
 {
     $flash = Flash::Instance();
     $errors = array();
     $company = $this->_templateobject;
     $company->load($this->_data['id']);
     if (!$company->isLoaded()) {
         $flash->addError('You do not have permission to delete this contact.');
         sendTo($this->name, 'view', $this->_modules, array($company->idField => $company->{$company->idField}));
         return;
     }
     $pl = new PreferencePageList('recently_viewed_companies' . EGS_COMPANY_ID);
     $pl->removePage(new Page(array('module' => 'contacts', 'controller' => $this->name, 'action' => 'view', $company->idField => $company->{$company->idField}), 'company', $company->getIdentifierValue()));
     $pl->save();
     if (!$company->delete(null, $errors)) {
         exit;
         $errors[] = 'Error deleting ' . $company->getIdentifierValue();
         $flash->addErrors($errors);
         sendTo($this->name, 'view', $this->_modules, array($company->idField => $company->{$company->idField}));
     }
     exit;
     $flash->addMessage($company->getIdentifierValue() . ' deleted successfully');
     sendTo($this->name, 'index', $this->_modules);
 }