Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
Agreement Class Reference
Inheritance diagram for Agreement:
AbstractAgreement AbstractModel DataObject

Public Member Functions

 __construct (\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Payment\Helper\Data $paymentData, \Magento\Paypal\Model\ResourceModel\Billing\Agreement\CollectionFactory $billingAgreementFactory, \Magento\Framework\Stdlib\DateTime\DateTimeFactory $dateFactory, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
 
 beforeSave ()
 
 afterSave ()
 
 getStatusLabel ()
 
 initToken ()
 
 verifyToken ()
 
 place ()
 
 cancel ()
 
 canCancel ()
 
 getStatusesArray ()
 
 isValid ()
 
 importOrderPayment (Payment $payment)
 
 getAvailableCustomerBillingAgreements ($customerId)
 
 needToCreateForCustomer ($customerId)
 
 addOrderRelation ($orderId)
 
- Public Member Functions inherited from AbstractAgreement
 initToken ()
 
 verifyToken ()
 
 place ()
 
 cancel ()
 
 __construct (\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Payment\Helper\Data $paymentData, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
 
 getPaymentMethodInstance ()
 
 isValid ()
 
 beforeSave ()
 
- Public Member Functions inherited from AbstractModel
 __construct (\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
 
 __sleep ()
 
 __wakeup ()
 
 setIdFieldName ($name)
 
 getIdFieldName ()
 
 getId ()
 
 setId ($value)
 
 isDeleted ($isDeleted=null)
 
 hasDataChanges ()
 
 setData ($key, $value=null)
 
 unsetData ($key=null)
 
 setDataChanges ($value)
 
 getOrigData ($key=null)
 
 setOrigData ($key=null, $data=null)
 
 dataHasChangedFor ($field)
 
 getResourceName ()
 
 getResourceCollection ()
 
 getCollection ()
 
 load ($modelId, $field=null)
 
 beforeLoad ($identifier, $field=null)
 
 afterLoad ()
 
 isSaveAllowed ()
 
 setHasDataChanges ($flag)
 
 save ()
 
 afterCommitCallback ()
 
 isObjectNew ($flag=null)
 
 beforeSave ()
 
 validateBeforeSave ()
 
 getCacheTags ()
 
 cleanModelCache ()
 
 afterSave ()
 
 delete ()
 
 beforeDelete ()
 
 afterDelete ()
 
 afterDeleteCommit ()
 
 getResource ()
 
 getEntityId ()
 
 setEntityId ($entityId)
 
 clearInstance ()
 
 getStoredData ()
 
 getEventPrefix ()
 
- Public Member Functions inherited from DataObject
 __construct (array $data=[])
 
 addData (array $arr)
 
 setData ($key, $value=null)
 
 unsetData ($key=null)
 
 getData ($key='', $index=null)
 
 getDataByPath ($path)
 
 getDataByKey ($key)
 
 setDataUsingMethod ($key, $args=[])
 
 getDataUsingMethod ($key, $args=null)
 
 hasData ($key='')
 
 toArray (array $keys=[])
 
 convertToArray (array $keys=[])
 
 toXml (array $keys=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 convertToXml (array $arrAttributes=[], $rootName='item', $addOpenTag=false, $addCdata=true)
 
 toJson (array $keys=[])
 
 convertToJson (array $keys=[])
 
 toString ($format='')
 
 __call ($method, $args)
 
 isEmpty ()
 
 serialize ($keys=[], $valueSeparator='=', $fieldSeparator=' ', $quote='"')
 
 debug ($data=null, &$objects=[])
 
 offsetSet ($offset, $value)
 
 offsetExists ($offset)
 
 offsetUnset ($offset)
 
 offsetGet ($offset)
 

Data Fields

const STATUS_ACTIVE = 'active'
 
const STATUS_CANCELED = 'canceled'
 

Protected Member Functions

 _construct ()
 
 _saveOrderRelations ()
 
- Protected Member Functions inherited from AbstractModel
 _construct ()
 
 _init ($resourceModel)
 
 _setResourceModel ($resourceName, $collectionName=null)
 
 _getResource ()
 
 _getEventData ()
 
 _beforeLoad ($modelId, $field=null)
 
 _afterLoad ()
 
 _hasModelChanged ()
 
 _getValidatorBeforeSave ()
 
 _createValidatorBeforeSave ()
 
 _getValidationRulesBeforeSave ()
 
 _clearReferences ()
 
 _clearData ()
 
- Protected Member Functions inherited from DataObject
 _getData ($key)
 
 _underscore ($name)
 

Protected Attributes

 $_relatedOrders = []
 
 $_billingAgreementFactory
 
 $_dateFactory
 
- Protected Attributes inherited from AbstractAgreement
 $_paymentMethodInstance = null
 
 $_errors = []
 
 $_paymentData = null
 
- Protected Attributes inherited from AbstractModel
 $_eventPrefix = 'core_abstract'
 
 $_eventObject = 'object'
 
 $_idFieldName = 'id'
 
 $_hasDataChanges = false
 
 $_origData
 
 $_isDeleted = false
 
 $_resource
 
 $_resourceCollection
 
 $_resourceName
 
 $_collectionName
 
 $_cacheTag = false
 
 $_dataSaveAllowed = true
 
 $_isObjectNew = null
 
 $_validatorBeforeSave = null
 
 $_eventManager
 
 $_cacheManager
 
 $_registry
 
 $_logger
 
 $_appState
 
 $_actionValidator
 
 $storedData = []
 
- Protected Attributes inherited from DataObject
 $_data = []
 

Additional Inherited Members

- Static Protected Attributes inherited from DataObject
static $_underscoreCache = []
 

Detailed Description

Billing Agreement abstract model

@api @method int getCustomerId() @method \Magento\Paypal\Model\Billing\Agreement setCustomerId(int $value) @method string getMethodCode() @method \Magento\Paypal\Model\Billing\Agreement setMethodCode(string $value) @method string getReferenceId() @method \Magento\Paypal\Model\Billing\Agreement setReferenceId(string $value) @method string getStatus() @method \Magento\Paypal\Model\Billing\Agreement setStatus(string $value) @method string getCreatedAt() @method \Magento\Paypal\Model\Billing\Agreement setCreatedAt(string $value) @method string getUpdatedAt() @method \Magento\Paypal\Model\Billing\Agreement setUpdatedAt(string $value) @method int getStoreId() @method \Magento\Paypal\Model\Billing\Agreement setStoreId(int $value) @method string getAgreementLabel() @method \Magento\Paypal\Model\Billing\Agreement setAgreementLabel(string $value)

@SuppressWarnings(PHPMD.CouplingBetweenObjects)

Since
100.0.2

Definition at line 34 of file Agreement.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Model\Context  $context,
\Magento\Framework\Registry  $registry,
\Magento\Payment\Helper\Data  $paymentData,
\Magento\Paypal\Model\ResourceModel\Billing\Agreement\CollectionFactory  $billingAgreementFactory,
\Magento\Framework\Stdlib\DateTime\DateTimeFactory  $dateFactory,
\Magento\Framework\Model\ResourceModel\AbstractResource  $resource = null,
\Magento\Framework\Data\Collection\AbstractDb  $resourceCollection = null,
array  $data = [] 
)
Parameters
\Magento\Framework\Model\Context$context
\Magento\Framework\Registry$registry
\Magento\Payment\Helper\Data$paymentData
\Magento\Paypal\Model\ResourceModel\Billing\Agreement\CollectionFactory$billingAgreementFactory
\Magento\Framework\Stdlib\DateTime\DateTimeFactory$dateFactory
\Magento\Framework\Model\ResourceModel\AbstractResource$resource
\Magento\Framework\Data\Collection\AbstractDb$resourceCollection
array$data

Definition at line 67 of file Agreement.php.

76  {
77  parent::__construct($context, $registry, $paymentData, $resource, $resourceCollection, $data);
78  $this->_billingAgreementFactory = $billingAgreementFactory;
79  $this->_dateFactory = $dateFactory;
80  }
$resource
Definition: bulk.php:12

Member Function Documentation

◆ _construct()

_construct ( )
protected

Init model

Returns
void

Definition at line 87 of file Agreement.php.

88  {
89  $this->_init(\Magento\Paypal\Model\ResourceModel\Billing\Agreement::class);
90  }

◆ _saveOrderRelations()

_saveOrderRelations ( )
protected

Save related orders

Returns
void

Definition at line 310 of file Agreement.php.

311  {
312  foreach ($this->_relatedOrders as $order) {
313  $orderId = $order instanceof \Magento\Sales\Model\Order ? $order->getId() : (int)$order;
314  $this->getResource()->addOrderRelation($this->getId(), $orderId);
315  }
316  }
$order
Definition: order.php:55

◆ addOrderRelation()

addOrderRelation (   $orderId)

Add order relation to current billing agreement

Parameters
int | \Magento\Sales\Model\Order$orderId
Returns
$this

Definition at line 299 of file Agreement.php.

300  {
301  $this->_relatedOrders[] = $orderId;
302  return $this;
303  }

◆ afterSave()

afterSave ( )

Save agreement order relations

Returns
\Magento\Framework\Model\AbstractModel

Definition at line 113 of file Agreement.php.

114  {
115  if (!empty($this->_relatedOrders)) {
116  $this->_saveOrderRelations();
117  }
118  return parent::afterSave();
119  }

◆ beforeSave()

beforeSave ( )

Set created_at parameter

Returns
\Magento\Framework\Model\AbstractModel

Definition at line 97 of file Agreement.php.

98  {
99  $date = $this->_dateFactory->create()->gmtDate();
100  if ($this->isObjectNew() && !$this->getCreatedAt()) {
101  $this->setCreatedAt($date);
102  } else {
103  $this->setUpdatedAt($date);
104  }
105  return parent::beforeSave();
106  }

◆ canCancel()

canCancel ( )

Check whether can cancel billing agreement

Returns
bool

Definition at line 204 of file Agreement.php.

205  {
206  return $this->getStatus() != self::STATUS_CANCELED;
207  }

◆ cancel()

cancel ( )

Cancel billing agreement

Returns
$this

Definition at line 192 of file Agreement.php.

193  {
194  $this->setStatus(self::STATUS_CANCELED);
195  $this->getPaymentMethodInstance()->updateBillingAgreementStatus($this);
196  return $this->save();
197  }

◆ getAvailableCustomerBillingAgreements()

getAvailableCustomerBillingAgreements (   $customerId)

Retrieve available customer Billing Agreements

Parameters
int$customerId
Returns
\Magento\Paypal\Model\ResourceModel\Billing\Agreement\Collection

Definition at line 273 of file Agreement.php.

274  {
275  $collection = $this->_billingAgreementFactory->create();
276  $collection->addFieldToFilter('customer_id', $customerId)
277  ->addFieldToFilter('status', self::STATUS_ACTIVE)
278  ->setOrder('agreement_id');
279  return $collection;
280  }

◆ getStatusesArray()

getStatusesArray ( )

Retrieve billing agreement statuses array

Returns
array

Definition at line 214 of file Agreement.php.

215  {
216  return [
217  self::STATUS_ACTIVE => __('Active'),
218  self::STATUS_CANCELED => __('Canceled')
219  ];
220  }
__()
Definition: __.php:13

◆ getStatusLabel()

getStatusLabel ( )

Retrieve billing agreement status label

Returns
\Magento\Framework\Phrase|string

Definition at line 126 of file Agreement.php.

127  {
128  switch ($this->getStatus()) {
129  case self::STATUS_ACTIVE:
130  return __('Active');
132  return __('Canceled');
133  default:
134  return '';
135  }
136  }
__()
Definition: __.php:13

◆ importOrderPayment()

importOrderPayment ( Payment  $payment)

Import payment data to billing agreement

$payment->getBillingAgreementData() contains array with following structure : [billing_agreement_id] => string [method_code] => string

Parameters
Payment$payment
Returns
$this

Definition at line 249 of file Agreement.php.

250  {
251  $baData = $payment->getBillingAgreementData();
252 
253  $this->_paymentMethodInstance = (isset($baData['method_code']))
254  ? $this->_paymentData->getMethodInstance($baData['method_code'])
255  : $payment->getMethodInstance();
256 
257  $this->_paymentMethodInstance->setStore($payment->getMethodInstance()->getStore());
258  $this->setCustomerId($payment->getOrder()->getCustomerId())
259  ->setMethodCode($this->_paymentMethodInstance->getCode())
260  ->setReferenceId($baData['billing_agreement_id'])
261  ->setStatus(self::STATUS_ACTIVE)
262  ->setAgreementLabel($this->_paymentMethodInstance->getTitle());
263 
264  return $this;
265  }
$payment
Definition: order.php:17

◆ initToken()

initToken ( )

Initialize token

Returns
string

Definition at line 143 of file Agreement.php.

144  {
145  $this->getPaymentMethodInstance()
146  ->initBillingAgreementToken($this);
147 
148  return $this->getRedirectUrl();
149  }

◆ isValid()

isValid ( )

Validate data

Returns
bool

Definition at line 227 of file Agreement.php.

228  {
229  $result = parent::isValid();
230  if (!$this->getCustomerId()) {
231  $this->_errors[] = __('The customer ID is not set.');
232  }
233  if (!$this->getStatus()) {
234  $this->_errors[] = __('The Billing Agreement status is not set.');
235  }
236  return $result && empty($this->_errors);
237  }
__()
Definition: __.php:13

◆ needToCreateForCustomer()

needToCreateForCustomer (   $customerId)

Check whether need to create billing agreement for customer

Parameters
int$customerId
Returns
bool

Definition at line 288 of file Agreement.php.

289  {
290  return $customerId ? count($this->getAvailableCustomerBillingAgreements($customerId)) == 0 : false;
291  }
getAvailableCustomerBillingAgreements($customerId)
Definition: Agreement.php:273

◆ place()

place ( )

Create billing agreement

Returns
$this

Definition at line 170 of file Agreement.php.

171  {
172  $this->verifyToken();
173 
174  $paymentMethodInstance = $this->getPaymentMethodInstance();
175  $paymentMethodInstance->placeBillingAgreement($this);
176 
177  $this->setCustomerId($this->getCustomerId())
178  ->setMethodCode($this->getMethodCode())
179  ->setReferenceId($this->getBillingAgreementId())
180  ->setStatus(self::STATUS_ACTIVE)
181  ->setAgreementLabel($paymentMethodInstance->getTitle())
182  ->save();
183 
184  return $this;
185  }

◆ verifyToken()

verifyToken ( )

Get billing agreement details Data from response is inside this object

Returns
$this

Definition at line 157 of file Agreement.php.

158  {
159  $this->getPaymentMethodInstance()
160  ->getBillingAgreementTokenInfo($this);
161 
162  return $this;
163  }

Field Documentation

◆ $_billingAgreementFactory

$_billingAgreementFactory
protected

Definition at line 50 of file Agreement.php.

◆ $_dateFactory

$_dateFactory
protected

Definition at line 55 of file Agreement.php.

◆ $_relatedOrders

$_relatedOrders = []
protected

Definition at line 45 of file Agreement.php.

◆ STATUS_ACTIVE

const STATUS_ACTIVE = 'active'

Definition at line 36 of file Agreement.php.

◆ STATUS_CANCELED

const STATUS_CANCELED = 'canceled'

Definition at line 38 of file Agreement.php.


The documentation for this class was generated from the following file: