function saveOrgPeekAction() { $active_worker = CerberusApplication::getActiveWorker(); @($id = DevblocksPlatform::importGPC($_REQUEST['id'], 'integer', 0)); @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string', '')); @($org_name = DevblocksPlatform::importGPC($_REQUEST['org_name'], 'string', '')); @($street = DevblocksPlatform::importGPC($_REQUEST['street'], 'string', '')); @($city = DevblocksPlatform::importGPC($_REQUEST['city'], 'string', '')); @($province = DevblocksPlatform::importGPC($_REQUEST['province'], 'string', '')); @($postal = DevblocksPlatform::importGPC($_REQUEST['postal'], 'string', '')); @($country = DevblocksPlatform::importGPC($_REQUEST['country'], 'string', '')); @($phone = DevblocksPlatform::importGPC($_REQUEST['phone'], 'string', '')); @($website = DevblocksPlatform::importGPC($_REQUEST['website'], 'string', '')); @($delete = DevblocksPlatform::importGPC($_REQUEST['do_delete'], 'integer', 0)); if (!empty($id) && !empty($delete)) { // delete if ($active_worker->hasPriv('core.addybook.org.actions.delete')) { DAO_ContactOrg::delete($id); } } else { // create/edit if ($active_worker->hasPriv('core.addybook.org.actions.update')) { $fields = array(DAO_ContactOrg::NAME => $org_name, DAO_ContactOrg::STREET => $street, DAO_ContactOrg::CITY => $city, DAO_ContactOrg::PROVINCE => $province, DAO_ContactOrg::POSTAL => $postal, DAO_ContactOrg::COUNTRY => $country, DAO_ContactOrg::PHONE => $phone, DAO_ContactOrg::WEBSITE => $website); if ($id == 0) { $id = DAO_ContactOrg::create($fields); } else { DAO_ContactOrg::update($id, $fields); } // Custom field saves @($field_ids = DevblocksPlatform::importGPC($_POST['field_ids'], 'array', array())); DAO_CustomFieldValue::handleFormPost(ChCustomFieldSource_Org::ID, $id, $field_ids); } } $view = C4_AbstractViewLoader::getView($view_id); $view->render(); }
function doBulkUpdate($filter, $do, $ids = array()) { @set_time_limit(0); $change_fields = array(); $custom_fields = array(); // Make sure we have actions if (empty($do)) { return; } // Make sure we have checked items if we want a checked list if (0 == strcasecmp($filter, "checks") && empty($ids)) { return; } if (is_array($do)) { foreach ($do as $k => $v) { switch ($k) { case 'country': $change_fields[DAO_ContactOrg::COUNTRY] = $v; break; default: // Custom fields if (substr($k, 0, 3) == "cf_") { $custom_fields[substr($k, 3)] = $v; } break; } } } $pg = 0; if (empty($ids)) { do { list($objects, $null) = DAO_ContactOrg::search(array(), $this->params, 100, $pg++, SearchFields_ContactOrg::ID, true, false); $ids = array_merge($ids, array_keys($objects)); } while (!empty($objects)); } $batch_total = count($ids); for ($x = 0; $x <= $batch_total; $x += 100) { $batch_ids = array_slice($ids, $x, 100); DAO_ContactOrg::update($batch_ids, $change_fields); // Custom Fields self::_doBulkSetCustomFields(ChCustomFieldSource_Org::ID, $custom_fields, $batch_ids); unset($batch_ids); } unset($ids); }
private function _putIdAction($path) { $xmlstr = $this->getPayload(); $xml_in = new SimpleXMLElement($xmlstr); $in_id = array_shift($path); if (empty($in_id)) { $this->_error("ID was not provided."); } if (null == ($contact_org = DAO_ContactOrg::get($in_id))) { $this->_error("ID not valid."); } $fields = array(); $flds = DAO_ContactOrg::getFields(); unset($flds[DAO_ContactOrg::ID]); foreach ($flds as $idx => $f) { $idx_name = $this->translate($idx, true); if ($idx_name == null) { continue; } @($value = DevblocksPlatform::importGPC($xml_in->{$idx_name}, 'string')); if ($this->isValid($idx_name, $value)) { $fields[$idx] = $value; } } if (!empty($fields)) { DAO_ContactOrg::update($contact_org->id, $fields); } $this->_getIdAction(array($contact_org->id)); }
function runMacroAction() { @($macro_id = DevblocksPlatform::importGPC($_REQUEST['macro_id'], 'integer')); @($ids = DevblocksPlatform::importGPC($_REQUEST['ids'])); @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string')); $view = C4_AbstractViewLoader::getView($view_id); $ids = explode(',', $ids); if (null !== ($macro = DAO_Macro::get($macro_id))) { switch ($macro->source_extension_id) { case 'cerberusweb.macros.ticket': $fields = array(); // loop over the actions, saving the $params as $fields foreach ($macro->actions as $action => $params) { switch ($action) { case 'cerberusweb.macros.action.assign': $fields['next_worker_id'] = $params['worker_id']; break; case 'cerberusweb.macros.action.move': $fields['team_id'] = $params['group_id']; $fields['category_id'] = $params['bucket_id']; break; case 'cerberusweb.macros.action.status': $fields['is_waiting'] = $params['is_waiting']; $fields['is_closed'] = $params['is_closed']; $fields['is_deleted'] = $params['is_deleted']; break; default: // $fields[] = $params; break; } } // update the ticket DAO_Ticket::updateTicket($ids, $fields); break; case 'cerberusweb.macros.address': foreach ($macro->actions as $action => $params) { switch ($action) { default: DAO_Address::update($ids, $params); } } break; case 'cerberusweb.macros.opportunity': foreach ($macro->actions as $action => $params) { switch ($action) { default: DAO_CrmOpportunity::update($ids, $params); } } case 'cerberusweb.macros.task': foreach ($macro->actions as $action => $params) { switch ($action) { default: DAO_Task::update($ids, $params); } } case 'cerberusweb.macros.organization': foreach ($macro->actions as $action => $params) { switch ($action) { default: DAO_ContactOrg::update($ids, $params); } } default: break; } } $view = C4_AbstractViewLoader::getView($view_id); $view->render(); }