Ejemplo n.º 1
0
 /**
  * Main function.
  *
  * @return bool
  */
 public function main()
 {
     $objects = $ids = $input = array();
     $component = $this->retrieve('module', 'String');
     $input['component'] = $component;
     $ids['contact'] = $this->retrieve('contactID', 'Integer', TRUE);
     $ids['contribution'] = $this->retrieve('contributionID', 'Integer', TRUE);
     $this->getInput($input, $ids);
     if ($component == 'event') {
         $ids['event'] = $this->retrieve('eventID', 'Integer', TRUE);
         $ids['participant'] = $this->retrieve('participantID', 'Integer', TRUE);
     } else {
         // get the optional ids
         $ids['membership'] = $this->retrieve('membershipID', 'Integer', FALSE);
         $ids['contributionRecur'] = $this->retrieve('contributionRecurID', 'Integer', FALSE);
         $ids['contributionPage'] = $this->retrieve('contributionPageID', 'Integer', FALSE);
         $ids['related_contact'] = $this->retrieve('relatedContactID', 'Integer', FALSE);
         $ids['onbehalf_dupe_alert'] = $this->retrieve('onBehalfDupeAlert', 'Integer', FALSE);
     }
     $paymentProcessorID = $this->retrieve('processor_id', 'Integer', FALSE);
     if (empty($paymentProcessorID)) {
         $processorParams = array('user_name' => $this->retrieve('receiver_email', 'String', FALSE), 'payment_processor_type_id' => CRM_Core_DAO::getFieldValue('CRM_Financial_DAO_PaymentProcessorType', 'PayPal_Standard', 'id', 'name'), 'is_test' => empty($input['is_test']) ? 0 : 1);
         $processorInfo = array();
         if (!CRM_Financial_BAO_PaymentProcessor::retrieve($processorParams, $processorInfo)) {
             return FALSE;
         }
         $paymentProcessorID = $processorInfo['id'];
     }
     if (!$this->validateData($input, $ids, $objects, TRUE, $paymentProcessorID)) {
         return FALSE;
     }
     self::$_paymentProcessor =& $objects['paymentProcessor'];
     if ($component == 'contribute') {
         if ($ids['contributionRecur']) {
             // check if first contribution is completed, else complete first contribution
             $first = TRUE;
             if ($objects['contribution']->contribution_status_id == 1) {
                 $first = FALSE;
             }
             return $this->recur($input, $ids, $objects, $first);
         } else {
             return $this->single($input, $ids, $objects, FALSE, FALSE);
         }
     } else {
         return $this->single($input, $ids, $objects, FALSE, FALSE);
     }
 }