[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhortuneCartEditor 4 extends PhabricatorApplicationTransactionEditor { 5 6 public function getEditorApplicationClass() { 7 return 'PhabricatorPhortuneApplication'; 8 } 9 10 public function getEditorObjectsDescription() { 11 return pht('Phortune Carts'); 12 } 13 14 public function getTransactionTypes() { 15 $types = parent::getTransactionTypes(); 16 17 $types[] = PhortuneCartTransaction::TYPE_CREATED; 18 $types[] = PhortuneCartTransaction::TYPE_PURCHASED; 19 $types[] = PhortuneCartTransaction::TYPE_HOLD; 20 $types[] = PhortuneCartTransaction::TYPE_REVIEW; 21 $types[] = PhortuneCartTransaction::TYPE_CANCEL; 22 $types[] = PhortuneCartTransaction::TYPE_REFUND; 23 24 return $types; 25 } 26 27 protected function getCustomTransactionOldValue( 28 PhabricatorLiskDAO $object, 29 PhabricatorApplicationTransaction $xaction) { 30 31 switch ($xaction->getTransactionType()) { 32 case PhortuneCartTransaction::TYPE_CREATED: 33 case PhortuneCartTransaction::TYPE_PURCHASED: 34 case PhortuneCartTransaction::TYPE_HOLD: 35 case PhortuneCartTransaction::TYPE_REVIEW: 36 case PhortuneCartTransaction::TYPE_CANCEL: 37 case PhortuneCartTransaction::TYPE_REFUND: 38 return null; 39 } 40 41 return parent::getCustomTransactionOldValue($object, $xaction); 42 } 43 44 protected function getCustomTransactionNewValue( 45 PhabricatorLiskDAO $object, 46 PhabricatorApplicationTransaction $xaction) { 47 48 switch ($xaction->getTransactionType()) { 49 case PhortuneCartTransaction::TYPE_CREATED: 50 case PhortuneCartTransaction::TYPE_PURCHASED: 51 case PhortuneCartTransaction::TYPE_HOLD: 52 case PhortuneCartTransaction::TYPE_REVIEW: 53 case PhortuneCartTransaction::TYPE_CANCEL: 54 case PhortuneCartTransaction::TYPE_REFUND: 55 return $xaction->getNewValue(); 56 } 57 58 return parent::getCustomTransactionNewValue($object, $xaction); 59 } 60 61 protected function applyCustomInternalTransaction( 62 PhabricatorLiskDAO $object, 63 PhabricatorApplicationTransaction $xaction) { 64 65 switch ($xaction->getTransactionType()) { 66 case PhortuneCartTransaction::TYPE_CREATED: 67 case PhortuneCartTransaction::TYPE_PURCHASED: 68 case PhortuneCartTransaction::TYPE_HOLD: 69 case PhortuneCartTransaction::TYPE_REVIEW: 70 case PhortuneCartTransaction::TYPE_CANCEL: 71 case PhortuneCartTransaction::TYPE_REFUND: 72 return; 73 } 74 75 return parent::applyCustomInternalTransaction($object, $xaction); 76 } 77 78 protected function applyCustomExternalTransaction( 79 PhabricatorLiskDAO $object, 80 PhabricatorApplicationTransaction $xaction) { 81 82 switch ($xaction->getTransactionType()) { 83 case PhortuneCartTransaction::TYPE_CREATED: 84 case PhortuneCartTransaction::TYPE_PURCHASED: 85 case PhortuneCartTransaction::TYPE_HOLD: 86 case PhortuneCartTransaction::TYPE_REVIEW: 87 case PhortuneCartTransaction::TYPE_CANCEL: 88 case PhortuneCartTransaction::TYPE_REFUND: 89 return; 90 } 91 92 return parent::applyCustomExternalTransaction($object, $xaction); 93 } 94 95 protected function shouldSendMail( 96 PhabricatorLiskDAO $object, 97 array $xactions) { 98 return true; 99 } 100 101 protected function buildMailTemplate(PhabricatorLiskDAO $object) { 102 $id = $object->getID(); 103 $name = $object->getName(); 104 105 return id(new PhabricatorMetaMTAMail()) 106 ->setSubject(pht('Order %d: %s', $id, $name)) 107 ->addHeader('Thread-Topic', pht('Order %s', $id)); 108 } 109 110 protected function buildMailBody( 111 PhabricatorLiskDAO $object, 112 array $xactions) { 113 114 $body = parent::buildMailBody($object, $xactions); 115 116 $items = array(); 117 foreach ($object->getPurchases() as $purchase) { 118 $name = $purchase->getFullDisplayName(); 119 $price = $purchase->getTotalPriceAsCurrency()->formatForDisplay(); 120 121 $items[] = "{$name} {$price}"; 122 } 123 124 $body->addTextSection(pht('ORDER CONTENTS'), implode("\n", $items)); 125 126 $body->addLinkSection( 127 pht('ORDER DETAIL'), 128 PhabricatorEnv::getProductionURI('/phortune/cart/'.$object->getID().'/')); 129 130 return $body; 131 } 132 133 protected function getMailTo(PhabricatorLiskDAO $object) { 134 $phids = array(); 135 136 // Relaod the cart to pull merchant and account information, in case we 137 // just created the object. 138 $cart = id(new PhortuneCartQuery()) 139 ->setViewer($this->requireActor()) 140 ->withPHIDs(array($object->getPHID())) 141 ->executeOne(); 142 143 foreach ($cart->getAccount()->getMemberPHIDs() as $account_member) { 144 $phids[] = $account_member; 145 } 146 147 foreach ($cart->getMerchant()->getMemberPHIDs() as $merchant_member) { 148 $phids[] = $merchant_member; 149 } 150 151 return $phids; 152 } 153 154 protected function getMailCC(PhabricatorLiskDAO $object) { 155 return array(); 156 } 157 158 protected function getMailSubjectPrefix() { 159 return 'Order'; 160 } 161 162 protected function buildReplyHandler(PhabricatorLiskDAO $object) { 163 return id(new PhortuneCartReplyHandler()) 164 ->setMailReceiver($object); 165 } 166 167 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |