Пример #1
0
 protected function applyCustomInternalTransaction(PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction)
 {
     $type = $xaction->getTransactionType();
     switch ($type) {
         case FundInitiativeTransaction::TYPE_NAME:
             $object->setName($xaction->getNewValue());
             return;
         case FundInitiativeTransaction::TYPE_DESCRIPTION:
             $object->setDescription($xaction->getNewValue());
             return;
         case FundInitiativeTransaction::TYPE_RISKS:
             $object->setRisks($xaction->getNewValue());
             return;
         case FundInitiativeTransaction::TYPE_MERCHANT:
             $object->setMerchantPHID($xaction->getNewValue());
             return;
         case FundInitiativeTransaction::TYPE_STATUS:
             $object->setStatus($xaction->getNewValue());
             return;
         case FundInitiativeTransaction::TYPE_BACKER:
         case FundInitiativeTransaction::TYPE_REFUND:
             $amount = $xaction->getMetadataValue(FundInitiativeTransaction::PROPERTY_AMOUNT);
             $amount = PhortuneCurrency::newFromString($amount);
             if ($type == FundInitiativeTransaction::TYPE_REFUND) {
                 $total = $object->getTotalAsCurrency()->subtract($amount);
             } else {
                 $total = $object->getTotalAsCurrency()->add($amount);
             }
             $object->setTotalAsCurrency($total);
             return;
     }
     return parent::applyCustomInternalTransaction($object, $xaction);
 }
 public function willReadValue($value)
 {
     return PhortuneCurrency::newFromString($value);
 }
 public function getTitleForFeed()
 {
     $author_phid = $this->getAuthorPHID();
     $object_phid = $this->getObjectPHID();
     $old = $this->getOldValue();
     $new = $this->getNewValue();
     $type = $this->getTransactionType();
     switch ($type) {
         case self::TYPE_NAME:
             if ($old === null) {
                 return pht('%s created %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid));
             } else {
                 return pht('%s renamed %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid));
             }
             break;
         case self::TYPE_DESCRIPTION:
             return pht('%s updated the description for %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid));
         case self::TYPE_STATUS:
             switch ($new) {
                 case FundInitiative::STATUS_OPEN:
                     return pht('%s reopened %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid));
                 case FundInitiative::STATUS_CLOSED:
                     return pht('%s closed %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid));
             }
             break;
         case self::TYPE_BACKER:
             $amount = $this->getMetadataValue(self::PROPERTY_AMOUNT);
             $amount = PhortuneCurrency::newFromString($amount);
             return pht('%s backed %s with %s.', $this->renderHandleLink($author_phid), $this->renderHandleLink($object_phid), $amount->formatForDisplay());
         case self::TYPE_REFUND:
             $amount = $this->getMetadataValue(self::PROPERTY_AMOUNT);
             $amount = PhortuneCurrency::newFromString($amount);
             $backer_phid = $this->getMetadataValue(self::PROPERTY_BACKER);
             return pht('%s refunded %s to %s for %s.', $this->renderHandleLink($author_phid), $amount->formatForDisplay(), $this->renderHandleLink($backer_phid), $this->renderHandleLink($object_phid));
     }
     return parent::getTitleForFeed();
 }
 public function testAddCurrency()
 {
     $cases = array(array('0.00 USD', '0.00 USD', '$0.00 USD'), array('1.00 USD', '1.00 USD', '$2.00 USD'), array('1.23 USD', '9.77 USD', '$11.00 USD'));
     foreach ($cases as $case) {
         list($l, $r, $expect) = $case;
         $l = PhortuneCurrency::newFromString($l);
         $r = PhortuneCurrency::newFromString($r);
         $sum = $l->add($r);
         $this->assertEqual($expect, $sum->formatForDisplay());
     }
 }