Beispiel #1
0
 /**
  * Check whether customer should be asked confirmation whether to sign a billing agreement
  *
  * @param Mage_Paypal_Model_Config $config
  * @param int $customerId
  * @return bool
  */
 public function shouldAskToCreateBillingAgreement(Mage_Paypal_Model_Config $config, $customerId)
 {
     if (null === self::$_shouldAskToCreateBillingAgreement) {
         self::$_shouldAskToCreateBillingAgreement = false;
         if ($customerId && $config->shouldAskToCreateBillingAgreement()) {
             if (Mage::getModel('sales/billing_agreement')->needToCreateForCustomer($customerId)) {
                 self::$_shouldAskToCreateBillingAgreement = true;
             }
         } elseif (!$customerId && $config->shouldAskToCreateBillingAgreement()) {
             self::$_shouldAskToCreateBillingAgreement = true;
         }
     }
     return self::$_shouldAskToCreateBillingAgreement;
 }
Beispiel #2
0
 /**
  * Whether to ask customer to create billing agreements
  * Unilateral payments are incompatible with the billing agreements
  *
  * @return bool
  */
 public function shouldAskToCreateBillingAgreement()
 {
     if ($this->getMethodCode() == Mage_Paypal_Model_Config::METHOD_WPP_PE_EXPRESS) {
         return $this->allow_ba_signup === Mage_Paypal_Model_Config::EC_BA_SIGNUP_ASK && $this->business_account;
     }
     return parent::shouldAskToCreateBillingAgreement();
 }
Beispiel #3
0
 /**
  * Set create billing agreement flag to api call
  *
  * @return Mage_Paypal_Model_Express_Checkout
  */
 protected function _setBillingAgreementRequest()
 {
     if (!$this->_customerId || $this->_quote->hasNominalItems()) {
         return $this;
     }
     $isRequested = $this->_isBARequested || $this->_quote->getPayment()->getAdditionalInformation(self::PAYMENT_INFO_TRANSPORT_BILLING_AGREEMENT);
     if (!($this->_config->allow_ba_signup == Mage_Paypal_Model_Config::EC_BA_SIGNUP_AUTO || $isRequested && $this->_config->shouldAskToCreateBillingAgreement())) {
         return $this;
     }
     if (!Mage::getModel('sales/billing_agreement')->needToCreateForCustomer($this->_customerId)) {
         return $this;
     }
     $this->_api->setBillingType($this->_api->getBillingAgreementType());
     return $this;
 }