/** * Render select company box * * @param integer $selected ID of selected company * @param array $attributes Additional attributes * @return string */ function select_company($name, $selected = null, $attributes = null, $allow_none = true, $check_permissions = false) { if (!$check_permissions) { $companies = Contacts::findAll(array('conditions' => 'is_company = 1 AND trashed_by_id = 0 AND archived_by_id = 0 ', 'order' => 'first_name ASC')); } else { $companies = Contacts::getVisibleCompanies(logged_user(), "`id` <> " . owner_company()->getId()); if (logged_user()->isMemberOfOwnerCompany() || owner_company()->canAddUser(logged_user())) { // add the owner company $companies = array_merge(array(owner_company()), $companies); } } if ($allow_none) { $options = array(option_tag(lang('none'), 0)); } else { $options = array(); } if (is_array($companies)) { foreach ($companies as $company) { $option_attributes = $company->getId() == $selected ? array('selected' => 'selected') : null; $company_name = $company->getObjectName(); $options[] = option_tag($company_name, $company->getId(), $option_attributes); } // foreach } // if return select_box($name, $options, $attributes); }
function get_companies_json() { $data = array(); $check_permissions = array_var($_REQUEST, 'check_p'); $allow_none = array_var($_REQUEST, 'allow_none', true); if (!$check_permissions) { $comp_rows = DB::executeAll("SELECT c.object_id, c.first_name FROM ".TABLE_PREFIX."contacts c INNER JOIN ".TABLE_PREFIX."objects o ON o.id=c.object_id WHERE c.is_company = 1 AND o.trashed_by_id = 0 AND o.archived_by_id = 0 ORDER BY c.first_name ASC"); } else { $companies = Contacts::getVisibleCompanies(logged_user(), "`id` <> " . owner_company()->getId()); if (logged_user()->isMemberOfOwnerCompany() || owner_company()->canAddUser(logged_user())) { // add the owner company $companies = array_merge(array(owner_company()), $companies); } } if ($allow_none) { $data[] = array('id' => 0, 'name' => lang('none')); } if (isset($comp_rows)) { foreach ($comp_rows as $row) { $data[] = array('id' => $row['object_id'], 'name' => $row['first_name']); } } else if (isset($companies)) { foreach ($companies as $company) { $data[] = array('id' => $company->getId(), 'name' => $company->getObjectName()); } } $this->setAutoRender(false); echo json_encode($data); ajx_current("empty"); }
function export_to_csv_file() { $this->setTemplate('csv_export'); $ids = array_var($_GET, 'ids'); $type = array_var($_GET, 'type', array_var($_SESSION, 'import_type', 'contact')); //type of import (contact - company) tpl_assign('import_type', $type); if (!isset($_SESSION['import_type']) || $type != $_SESSION['import_type'] && $type != '') { $_SESSION['import_type'] = $type; } $checked_fields = $type == 'contact' ? array_var($_POST, 'check_contact') : array_var($_POST, 'check_company'); if (is_array($checked_fields)) { $titles = ''; $imp_type = array_var($_SESSION, 'import_type', 'contact'); if ($imp_type == 'contact') { $field_names = Contacts::getContactFieldNames(); foreach ($checked_fields as $k => $v) { if (isset($field_names["contact[{$k}]"]) && $v == 'checked') { $titles .= $field_names["contact[{$k}]"] . ','; } } $titles = substr_utf($titles, 0, strlen_utf($titles) - 1) . "\n"; } else { $field_names = Contacts::getCompanyFieldNames(); foreach ($checked_fields as $k => $v) { if (isset($field_names["company[{$k}]"]) && $v == 'checked') { $titles .= $field_names["company[{$k}]"] . ','; } } $titles = substr_utf($titles, 0, strlen_utf($titles) - 1) . "\n"; } $filename = rand() . '.tmp'; $handle = fopen(ROOT . '/tmp/' . $filename, 'wb'); fwrite($handle, $titles); $ids_sql = $ids ? " AND id IN (" . $ids . ") " : ""; if (array_var($_SESSION, 'import_type', 'contact') == 'contact') { $conditions .= ($conditions == "" ? "" : " AND ") . "`archived_by_id` = 0" . ($conditions ? " AND {$conditions}" : ""); $conditions .= $ids_sql; $contacts = Contacts::instance()->getAllowedContacts($conditions); foreach ($contacts as $contact) { fwrite($handle, $this->build_csv_from_contact($contact, $checked_fields) . "\n"); } } else { $conditions .= ($conditions == "" ? "" : " AND ") . "`archived_by_id` = 0" . ($conditions ? " AND {$conditions}" : ""); $conditions .= $ids_sql; $companies = Contacts::getVisibleCompanies(logged_user(), $conditions); foreach ($companies as $company) { fwrite($handle, $this->build_csv_from_company($company, $checked_fields) . "\n"); } } fclose($handle); $_SESSION['contact_export_filename'] = $filename; flash_success($imp_type == 'contact' ? lang('success export contacts') : lang('success export companies')); } else { unset($_SESSION['contact_export_filename']); return; } }