diff --git a/CRM/Bij1migratie/Migratie.php b/CRM/Bij1migratie/Migratie.php index ccb364f..722efe9 100755 --- a/CRM/Bij1migratie/Migratie.php +++ b/CRM/Bij1migratie/Migratie.php @@ -142,13 +142,8 @@ class CRM_Bij1migratie_Migratie { } } else { - \Civi\Api4\MigratieLog::create() - ->addValue('mollie_customer_id', $rij['mollie_customer_id']) - ->addValue('migratiedatum', $migratieDatum->format("y-m-d")) - ->addValue('type_migratie', $migratieType) - ->addValue('type_melding', 'waarschuwing') - ->addValue('melding', 'Waarschuwing, betaling bestaat al dus niet gemigreerd, data: ' . json_encode($rij)) - ->execute(); + // als het om mislukte gaat, bijwerken + self::bijwerkenBetaling($contactId, $rij, $migratieDatum, $migratieType); } } else { @@ -172,6 +167,40 @@ class CRM_Bij1migratie_Migratie { } } } + public static function bijwerkenBetaling(int $contactId, array $rij, DateTime $migratieDatum, string $migratieType) { + $receiveDate = new DateTime($rij['aanmaakdatum']); + if ($rij['status'] == Civi::service('bij1Migratie')->getOverdueContributionStatusId() || $rij['status'] == Civi::service('bij1Migratie')->getFailedContributionStatusId()) { + try { + \Civi\Api4\Contribution::update() + ->addValue('contribution_status', $rij['status']) + ->addWhere('contact_id', '=', $contactId) + ->addWhere('receive_date', '=', $receiveDate->format("Y-md-d")) + ->addWhere('total_amount', '=', $rij['bedrag']) + ->addWhere('contribution_status_id', '=', Civi::service('bij1Migratie')->getCompletedContributionStatusId(),) + ->execute(); + } + catch (API_Exception $ex) { + } + $update = "UPDATE civicrm_contribution SET contribution_status_id = %1 WHERE contact_id = %2 AND receive_date = %3 AND total_amount = %4 AND contribution_status_id = %5"; + $updateParams = [ + 1 => [$rij['status'], "Integer"], + 2 => [$contactId, "Integer"], + 3 => [$receiveDate->format("Y-m-d"), "String"], + 4 => [$rij['bedrag'], "String"], + 5 => [Civi::service('bij1Migratie')->getCompletedContributionStatusId(), "Integer"], + ]; + CRM_Core_DAO::executeQuery($update, $updateParams); + } + else { + \Civi\Api4\MigratieLog::create() + ->addValue('mollie_customer_id', $rij['mollie_customer_id']) + ->addValue('migratiedatum', $migratieDatum->format("y-m-d")) + ->addValue('type_migratie', $migratieType) + ->addValue('type_melding', 'waarschuwing') + ->addValue('melding', 'Waarschuwing, betaling bestaat al dus niet gemigreerd, data: ' . json_encode($rij)) + ->execute(); + } + } /** * Method om contact te migreren