銀行の声明から定期的な寄付を自動的に作成する

私は銀行口座に直接金銭を送金する寄付者から寄付を作成することを含む、銀行の書類をインポートするための素晴らしいcivibanking拡張を使用しています

「通常の」銀行振込(1回限り)のためにはうまくいきます。ドナーを検索し、新しい寄付を作成し、すべてがうまくいきます

しかし、私たちは毎月同じ金額を送っているドナーをいくつか持っています。それらは異なる転送タイプ(銀行口座の列の1つ)を持っているので、それらを識別することができます。

単に「貢献する」のではなく、 1)「銀行振込」タイプのアクティブな定期振替があるかどうかチェックし、そうでない場合は作成する
2)その貢献を、その反復寄与にリンクされたものとして追加する

これは箱から出ることが可能ですか?それをコード化する方法に関するガイダンスは?

ベストアンサー

私はCivirulesがそれをしているかどうか分からない。私は拡張を介して、寄付が作成されたときに寄付の再発を確認して作成するために、プレフックを使用します。ここに小さなスニペットがあります

function extension_civicrm_pre($op, $objectName, $id, &$params) {
  if ($objectName == 'Contribution' && $op == 'create') {
    $bankTransferFinancialTypeId = civicrm_api3('FinancialType', 'getvalue', [
      'return' => "id",
      'name' => "Bank Transfer",
    ]);
    if ($bankTransferFinancialTypeId == $params['financial_type_id']) {
     //perform checks if contribution recur exists
      try {
        $recurringcontributionId = civicrm_api3('ContributionRecur', 'getvalue', [
          'return' => "id",
          'contact_id' => $params['contact_id'],
          'amount' => $params['total_amount'],
          'contribution_status_id' => ['IN' => ["Pending", "In Progress"]],
          'options' => ['limit' => 1],
        ]);
      }
      catch (CiviCRM_API3_Exception $e) {
        $recurringcontribution = civicrm_api3('ContributionRecur', 'create', [
          'contact_id' => $params['contact_id'],
          'installments' => '12',
          'frequency_interval' => '1',
          'amount' => $params['total_amount'],
          'contribution_status_id' => 'In Progress',
          'start_date' => date('YmdHis'),
          'currency' => 'USD',
          'frequency_unit' => 'month',
        ]);
        $recurringcontributionId = $recurringcontribution['id'];
      }
      $params['contribution_recur_id'] = $recurringcontributionId;
    }
  }
}

注意:このスニペットは作成したばかりなのでテストされていません。   純粋な盲目のコーディング。

HTH

Pradeep

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です