本文整理汇总了PHP中Relationship::updateFromFecFilings方法的典型用法代码示例。如果您正苦于以下问题:PHP Relationship::updateFromFecFilings方法的具体用法?PHP Relationship::updateFromFecFilings怎么用?PHP Relationship::updateFromFecFilings使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Relationship
的用法示例。
在下文中一共展示了Relationship::updateFromFecFilings方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: processEntity
//.........这里部分代码省略.........
//create relationship if there's not already one
if (!$rel) {
//but if there aren't any new donations, then we skip this recipient
//THIS SHOULD NOT TYPICALLY HAPPEN, BECAUSE NO NEW DONATIONS MEANS
//THERE ARE OLD DONATIONS TO REMOVE, WHICH MEANS THERE SHOULD BE
//EXISTING RELATIONSHIPS... they may have been deleted
if (!count($donations['new'])) {
if ($this->debugMode) {
print "* No relationships found, and no new donations to process, so skipping it...\n";
}
continue;
}
if ($this->debugMode) {
print "+ Creating new donation relationship\n";
}
$rel = new Relationship();
$rel->entity1_id = $id;
$rel->entity2_id = $recipientEntity['id'];
$rel->setCategory('Donation');
$rel->description1 = 'Campaign Contribution';
$rel->description2 = 'Campaign Contribution';
$rel->save();
}
//add new filings and references to the relationship
foreach ($donations['new'] as $donation) {
$filing = new FecFiling();
$filing->relationship_id = $rel->id;
$filing->amount = $donation['amount'];
$filing->fec_filing_id = $donation['fec_id'];
$filing->crp_cycle = $donation['cycle'];
$filing->crp_id = $donation['row_id'];
$filing->start_date = $donation['date'];
$filing->end_date = $donation['date'];
$filing->is_current = false;
$filing->save();
if ($this->debugMode) {
print "+ Added new FEC filing: " . $donation['fec_id'] . " (" . $donation['amount'] . ")\n";
}
//add reference if there's an fec_id
if ($donation['fec_id']) {
$ref = new Reference();
$ref->object_model = 'Relationship';
$ref->object_id = $rel->id;
$ref->source = $this->fecImageBaseUrl . $donation['fec_id'];
$ref->name = 'FEC Filing ' . $donation['fec_id'];
$ref->save();
}
}
//remove old filings from the relationship
foreach ($donations['old'] as $donation) {
if ($this->debugMode) {
print "- Deleting FEC filing: {$donation['fec_id']}, {$donation['cycle']}, {$donation['row_id']} ({$donation['amount']})\n";
}
$sql = 'DELETE FROM fec_filing WHERE relationship_id = ? AND crp_cycle = ? AND crp_id = ?';
$stmt = $this->db->execute($sql, array($rel->id, $donation['cycle'], $donation['row_id']));
}
//recompute fields based on filings
if (!$rel->updateFromFecFilings()) {
if ($this->debugMode) {
print "- Deleting donation relationship with no filings: " . $rel->id . "\n";
}
//no remaining filings for this relationship, so delete it!
$rel->delete();
} else {
if ($this->debugMode) {
print "Relationship " . $rel->id . " updated with " . $rel->filings . " filings totaling " . $rel->amount . "\n";
}
//add a reference to OS donation search for the relationship, if necessary
$sql = 'SELECT COUNT(*) FROM reference ' . 'WHERE object_model = ? AND object_id = ? AND name = ?';
$stmt = $this->db->execute($sql, array('Relationship', $rel->id, 'FEC contribution search'));
if (!$stmt->fetch(PDO::FETCH_COLUMN)) {
$ref = new Reference();
$ref->object_model = 'Relationship';
$ref->object_id = $rel->id;
$ref->source = sprintf($this->fecSearchUrlPattern, strtoupper($donorPerson['name_last']), strtoupper($donorPerson['name_first']));
$ref->name = 'FEC contribution search';
$ref->save();
if ($this->debugMode) {
print "+ Added reference to FEC contribution search\n";
}
}
}
//clear cache for recipient
LsCache::clearEntityCacheById($recipientEntity['id']);
}
}
//update os_entity_transaction
$sql = 'UPDATE os_entity_transaction SET is_processed = is_verified, is_synced = 1 WHERE entity_id = ?';
$stmt = $this->db->execute($sql, array($id));
//make sure that all removed matches result in deleted fec filings and updated relationships for this entity
$this->cleanupFecFilings($id, $oldDonations);
//update opensecrets categories based on matched donations
$this->printDebug("Updating industry categories based on matched donations...");
$newCategories = OsPerson::updateCategories($id);
foreach ($newCategories as $categoryId) {
$this->printDebug("+ Added industry category: " . $categoryId);
}
//clear cache for donor
LsCache::clearEntityCacheById($id);
}