),
);
+ // CRM-17787
+ $campaignTitle = array(
+ 'contribution_campaign_title' => array(
+ 'title' => ts('Campaign Title'),
+ 'name' => 'campaign_title',
+ 'where' => 'civicrm_campaign.title',
+ 'data_type' => CRM_Utils_Type::T_STRING,
+ ),
+ );
$softCreditFields = array(
'contribution_soft_credit_name' => array(
'name' => 'contribution_soft_credit_name',
);
$fields = array_merge($impFields, $typeField, $contributionStatus, $contributionPage, $optionField, $expFieldProduct,
- $expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $softCreditFields, $financialAccount, $premiums,
+ $expFieldsContrib, $contributionNote, $contributionRecurId, $extraFields, $softCreditFields, $financialAccount, $premiums, $campaignTitle,
CRM_Core_BAO_CustomField::getFieldsForImport('Contribution', FALSE, FALSE, FALSE, $checkPermission)
);
return 'recurring contribution';
}
+ /**
+ * Function to add payments for contribution
+ * for Partially Paid status
+ *
+ * @param array $lineItems
+ * @param array $contributions
+ *
+ */
+ public static function addPayments($lineItems, $contributions) {
+ // get financial trxn which is a payment
+ $ftSql = "SELECT ft.id
+ FROM civicrm_financial_trxn ft
+ INNER JOIN civicrm_entity_financial_trxn eft ON eft.financial_trxn_id = ft.id AND eft.entity_table = 'civicrm_contribution'
+ WHERE eft.entity_id = %1 AND ft.is_payment = 1";
+ $sql = "SELECT fi.id, li.price_field_value_id
+ FROM civicrm_financial_item fi
+ INNER JOIN civicrm_line_item li ON li.id = fi.entity_id
+ WHERE li.contribution_id = %1";
+
+ foreach ($contributions as $k => $contribution) {
+ if ($contribution->contribution_status_id != CRM_Core_OptionGroup::getValue('contribution_status', 'Partially paid', 'name')) {
+ continue;
+ }
+ $ftId = CRM_Core_DAO::singleValueQuery($ftSql, array(1 => array($contribution->id, 'Integer')));
+ // get financial item
+ $dao = CRM_Core_DAO::executeQuery($sql, array(1 => array($contribution->id, 'Integer')));
+ while ($dao->fetch()) {
+ $ftIds[$dao->price_field_value_id] = $dao->id;
+ }
+
+ $params = array(
+ 'entity_table' => 'civicrm_financial_item',
+ 'financial_trxn_id' => $ftId,
+ );
+ foreach ($lineItems as $key => $value) {
+ $paid = $value['line_total'] * ($contribution->net_amount / $contribution->total_amount);
+ // Record Entity Financial Trxn
+ $params['amount'] = $paid;
+ $params['entity_id'] = $ftIds[$value['price_field_value_id']];
+
+ civicrm_api3('EntityFinancialTrxn', 'create', $params);
+ }
+ }
+ }
+
}