public function saveCandidateDistrictList($con = null) { if (!$this->isValid()) { throw $this->getErrorSchema(); } if (!isset($this->widgetSchema['candidate_district_list'])) { // somebody has unset this widget return; } if (is_null($con)) { $con = $this->getConnection(); } $q = Doctrine_Query::create()->delete()->from('CandidateDistrict r')->where('r.candidate_id = ?', current($this->object->identifier()))->execute(); $values = $this->getValue('candidate_district_list'); if (is_array($values)) { foreach ($values as $value) { $obj = new CandidateDistrict(); $obj->candidate_id = current($this->object->identifier()); $obj->district_id = $value; $obj->save(); } } }
public function getCandidateEntityByCrpId($id) { if (!count($candidates = $this->getOsCandidatesById($id))) { return null; } //try to find entity by fec_id $fecIds = array(); foreach ($candidates as $candidate) { if (!$candidate['fec_id'] || !$candidate['name_last']) { continue; } if ($entity = $this->getCandidateEntityByFecId($candidate['fec_id'], $candidate['name_last'])) { return $entity; } $fecIds[] = $candidate['fec_id']; } $candidate = $candidates[0]; if ($this->debugMode) { print "+ Creating new entity for person " . $id . " (" . $candidate['name'] . ")\n"; } $entity = new Entity(); $entity->addExtension('Person'); $entity->addExtension('PoliticalCandidate'); $entity->name_last = $candidate['name_last']; $entity->name_first = $candidate['name_first']; $entity->name_middle = $candidate['name_middle']; $entity->name_suffix = $candidate['name_suffix']; $entity->crp_id = $id; foreach ($fecIds as $fecId) { $map = array('P' => 'pres_fec_id', 'S' => 'senate_fec_id', 'H' => 'house_fec_id'); $code = substr($fecId, 0, 1); if (@($field = $map[$code])) { $entity->{$field} = $fecId; } } $entity->save(); if (!($district = PoliticalDistrictTable::getFederalDistrict($state, $district))) { if ($state = AddressStateTable::retrieveByText($state)) { $district = new PoliticalDistrict(); $district->state_id = $state['id']; $district->federal_district = $district; $district->save(); } } if ($district) { $pc = $entity->getExtensionObject('PoliticalCandidate'); $cd = new CandidateDistrict(); $cd->candidate_id = $pc->id; $cd->district_id = $district->id; $cd->save(); } return $entity; }