/** * takes an associative array and creates a financial transaction object * * @param array $params (reference ) an assoc array of name/value pairs * * @return object CRM_Core_BAO_FinancialTrxn object * @access public * @static */ static function create(&$params) { $trxn = new CRM_Core_DAO_FinancialTrxn(); $trxn->copyValues($params); if (!CRM_Utils_Rule::currencyCode($trxn->currency)) { $config = CRM_Core_Config::singleton(); $trxn->currency = $config->defaultCurrency; } // if a transaction already exists for a contribution id, lets get the finTrxnId and entityFinTrxId $fids = self::getFinancialTrxnIds($params['contribution_id'], 'civicrm_contribution'); if ($fids['financialTrxnId']) { $trxn->id = $fids['financialTrxnId']; } $trxn->save(); $contributionAmount = CRM_Utils_Array::value('net_amount', $params); if (!$contributionAmount && isset($params['total_amount'])) { $contributionAmount = $params['total_amount']; } // save to entity_financial_trxn table $entity_financial_trxn_params = array('entity_table' => "civicrm_contribution", 'entity_id' => $params['contribution_id'], 'financial_trxn_id' => $trxn->id, 'amount' => $contributionAmount, 'currency' => $trxn->currency); $entity_trxn = new CRM_Core_DAO_EntityFinancialTrxn(); $entity_trxn->copyValues($entity_financial_trxn_params); if ($fids['entityFinancialTrxnId']) { $entity_trxn->id = $fids['entityFinancialTrxnId']; } $entity_trxn->save(); return $trxn; }
/** * returns the list of fields that can be exported * * @access public * return array * @static */ static function &export($prefix = false) { if (!self::$_export) { self::$_export = array(); $fields = self::fields(); foreach ($fields as $name => $field) { if (CRM_Utils_Array::value('export', $field)) { if ($prefix) { self::$_export['entity_financial_trxn'] =& $fields[$name]; } else { self::$_export[$name] =& $fields[$name]; } } } } return self::$_export; }