Path: blob/master/src/applications/fund/xaction/FundInitiativeRefundTransaction.php
12256 views
<?php12final class FundInitiativeRefundTransaction3extends FundInitiativeTransactionType {45const TRANSACTIONTYPE = 'fund:refund';67public function generateOldValue($object) {8return null;9}1011public function applyInternalEffects($object, $value) {12$amount = $this->getMetadataValue(13FundInitiativeTransaction::PROPERTY_AMOUNT);14$amount = PhortuneCurrency::newFromString($amount);15$total = $object->getTotalAsCurrency()->subtract($amount);16$object->setTotalAsCurrency($total);17}1819public function applyExternalEffects($object, $value) {20$backer = id(new FundBackerQuery())21->setViewer($this->getActor())22->withPHIDs(array($value))23->executeOne();24if (!$backer) {25throw new Exception(pht('Unable to load %s!', 'FundBacker'));26}2728$subx = array();29$amount = $this->getMetadataValue(30FundInitiativeTransaction::PROPERTY_AMOUNT);31$subx[] = id(new FundBackerTransaction())32->setTransactionType(FundBackerStatusTransaction::TRANSACTIONTYPE)33->setNewValue($amount);3435$content_source = $this->getEditor()->getContentSource();3637$editor = id(new FundBackerEditor())38->setActor($this->getActor())39->setContentSource($content_source)40->setContinueOnMissingFields(true)41->setContinueOnNoEffect(true);4243$editor->applyTransactions($backer, $subx);44}4546public function getTitle() {47$amount = $this->getMetadataValue(48FundInitiativeTransaction::PROPERTY_AMOUNT);49$amount = PhortuneCurrency::newFromString($amount);50$backer_phid = $this->getMetadataValue(51FundInitiativeTransaction::PROPERTY_BACKER);5253return pht(54'%s refunded %s to %s.',55$this->renderAuthor(),56$amount->formatForDisplay(),57$this->renderHandle($backer_phid));58}5960public function getTitleForFeed() {61$amount = $this->getMetadataValue(62FundInitiativeTransaction::PROPERTY_AMOUNT);63$amount = PhortuneCurrency::newFromString($amount);64$backer_phid = $this->getMetadataValue(65FundInitiativeTransaction::PROPERTY_BACKER);6667return pht(68'%s refunded %s to %s for %s.',69$this->renderAuthor(),70$amount->formatForDisplay(),71$this->renderHandle($backer_phid),72$this->renderObject());73}747576}777879