Disbursement.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Braintree;
  3. class Disbursement extends Base
  4. {
  5. const TYPE_CREDIT = "credit";
  6. const TYPE_DEBIT = "debit";
  7. private $_merchantAccount;
  8. protected function _initialize($disbursementAttribs)
  9. {
  10. $this->_attributes = $disbursementAttribs;
  11. $this->merchantAccountDetails = $disbursementAttribs['merchantAccount'];
  12. if (isset($disbursementAttribs['merchantAccount'])) {
  13. $this->_set('merchantAccount',
  14. MerchantAccount::factory($disbursementAttribs['merchantAccount'])
  15. );
  16. }
  17. }
  18. public function transactions()
  19. {
  20. $collection = Transaction::search([
  21. TransactionSearch::ids()->in($this->transactionIds),
  22. ]);
  23. return $collection;
  24. }
  25. public static function factory($attributes)
  26. {
  27. $instance = new self();
  28. $instance->_initialize($attributes);
  29. return $instance;
  30. }
  31. public function __toString()
  32. {
  33. $display = [
  34. 'id', 'merchantAccountDetails', 'exceptionMessage', 'amount',
  35. 'disbursementDate', 'followUpAction', 'retry', 'success',
  36. 'transactionIds', 'disbursementType'
  37. ];
  38. $displayAttributes = [];
  39. foreach ($display AS $attrib) {
  40. $displayAttributes[$attrib] = $this->$attrib;
  41. }
  42. return __CLASS__ . '[' .
  43. Util::attributesToString($displayAttributes) .']';
  44. }
  45. public function isDebit()
  46. {
  47. return $this->disbursementType == Disbursement::TYPE_DEBIT;
  48. }
  49. public function isCredit()
  50. {
  51. return $this->disbursementType == Disbursement::TYPE_CREDIT;
  52. }
  53. }
  54. class_alias('Braintree\Disbursement', 'Braintree_Disbursement');