static function repair_missing_from_civicrm_record($params)
 {
     foreach (array('contact_id', 'payer_reference') as $required) {
         if (!isset($params[$required]) || empty($params[$required])) {
             throw new InvalidArgumentException("Missing params[{$required}]");
         }
     }
     require_once 'UK_Direct_Debit/Form/Main.php';
     // Get the Smart Debit details for the payer
     $smartDebitResponse = self::getSmartDebitPayments($params['payer_reference']);
     foreach ($smartDebitResponse as $key => $smartDebitRecord) {
         // Setup params for the relevant rec
         $params['recur_frequency_interval'] = self::translateSmartDebitFrequency($smartDebitRecord['frequency_type']);
         $params['amount'] = self::getCleanSmartDebitAmount($smartDebitRecord['regular_amount']);
         $params['recur_start_date'] = $smartDebitRecord['start_date'] . ' 00:00:00';
         $params['recur_next_payment_date'] = $smartDebitRecord['start_date'] . ' 00:00:00';
         $params['recur_frequency_unit'] = self::translateSmartDebitFrequencyUnit($smartDebitRecord['frequency_type']);
         $params['payment_processor_id'] = self::getSmartDebitPaymentProcessorID();
         $params['payment_instrument_id'] = UK_Direct_Debit_Form_Main::getDDPaymentInstrumentID();
         $params['trxn_id'] = $params['payer_reference'];
         $params['current_state'] = $smartDebitRecord['current_state'];
         list($y, $m, $d) = explode('-', $smartDebitRecord['start_date']);
         $params['cycle_day'] = $d;
         // First Check if a recurring record has beeen selected
         if (!isset($params['contribution_recur_id']) || empty($params['contribution_recur_id'])) {
             // Create the Recurring
             self::create_recur($params);
         } else {
             // Repair the Recurring
             self::repair_recur($params);
         }
         /* First Check if the membership has beeen selected */
         if (isset($params['membership_id']) && !empty($params['membership_id'])) {
             // Link it to the Recurring Record
             self::link_membership_to_recur($params);
         }
     }
 }