Refactor Chargebacks column mapping

This commit is contained in:
Geert Lamers 2022-04-29 16:49:46 +02:00
parent 7d2cc00bb5
commit c6b1079418
2 changed files with 59 additions and 34 deletions

View File

@ -2,6 +2,7 @@
use CRM\Bij1migratie\Mapping\AirtableMapping;
use CRM\Bij1migratie\Mapping\BetalingenMapping;
use CRM\Bij1migratie\Mapping\ChargebacksMapping;
use CRM_Bij1migratie_ExtensionUtil as E;
/**
@ -205,7 +206,7 @@ class CRM_Bij1migratie_CsvFile {
* @throws
*/
private function sanitizeBetalingen(string $name, array &$data) {
$mapping = new BetalingenMapping($data):
$mapping = new BetalingenMapping($data);
$value = $mapping->get($name);
switch ($name) {
@ -217,36 +218,36 @@ class CRM_Bij1migratie_CsvFile {
case BetalingenMapping::FIELD_MUNTEENHEID:
case BetalingenMapping::FIELD_KLANT:
case BetalingenMapping::FIELD_EMAIL:
$data[$name] = $data[0];
$data[$name] = $value;
break;
case BetalingenMapping::FIELD_AANMAAKDATUM:
if (!empty($data[1])) {
$donatieDatum = new DateTime($data[1]);
if (!empty($value)) {
$donatieDatum = new DateTime($value);
$data[$name] = $donatieDatum->format('d-m-Y');
}
break;
case BetalingenMapping::FIELD_BETALINGSDATUM:
if (!empty($data[2])) {
$betalingsDatum = new DateTime($data[2]);
if (!empty($value)) {
$betalingsDatum = new DateTime($value);
$data[$name] = $betalingsDatum->format('d-m-Y');
}
break;
case BetalingenMapping::FIELD_OMSCRHIJVING:
if (!empty($data[3])) {
$data[$name] = $data[3];
if (!empty($value)) {
$data[$name] = $value;
}
else {
$data[$name] = "Migratie CiviCRM";
}
break;
case BetalingenMapping::FIELD_BETALINGSMETHODE:
if (!empty($data[4])) {
$data[$name] = $data[4];
if (!empty($value)) {
$data[$name] = $value;
}
break;
case BetalingenMapping::FIELD_BETALINGSINSTRUMENT:
if (!empty($data[6])) {
$data[$name] = Civi::service('bij1Migratie')->haalBetalingsinstrument($data[6]);
if (!empty($value)) {
$data[$name] = Civi::service('bij1Migratie')->haalBetalingsinstrument($value);
}
break;
}
@ -261,33 +262,26 @@ class CRM_Bij1migratie_CsvFile {
* @throws
*/
private function sanitizeChargebacks(string $name, array &$data) {
$mapping = new ChargebacksMapping($data);
$value = $mapping->get($name);
switch ($name) {
case "chargeback_id":
$data[$name] = $data[0];
case ChargebacksMapping::FIELD_CHARGEBACK_ID:
case ChargebacksMapping::FIELD_TRANSACTIE_ID:
case ChargebacksMapping::FIELD_REDEN_CODE:
case ChargebacksMapping::FIELD_REDEN_OMSCHRIJVING:
case ChargebacksMapping::FIELD_BEDRAG:
case ChargebacksMapping::FIELD_MOLLIE_CUSTOMER_ID:
$data[$name] = $value;
break;
case "chargeback_datum":
if (!empty($data[1])) {
$donatieDatum = new DateTime($data[1]);
case ChargebacksMapping::FIELD_CHARGEBACK_DATUM:
if (!empty($value)) {
$donatieDatum = new DateTime($value);
$data[$name] = $donatieDatum->format('d-m-Y');
}
break;
case "transactie_id":
$data[$name] = $data[2];
break;
case "reden_code":
$data[$name] = $data[3];
break;
case "reden_omschrijving":
$data[$name] = $data[4];
break;
case "bedrag":
$data[$name] = $data[5];
break;
case "mollie_customer_id":
$data[$name] = $data[7];
break;
case "chargeback_bedrag":
$data[$name] = abs($data[6]);
case ChargebacksMapping::FIELD_CHARGEBACK_BEDRAG:
$data[$name] = abs($value);
break;
}
}

View File

@ -0,0 +1,31 @@
<?php
namespace CRM\Bij1migratie\Mapping;
class ChargebacksMapping extends AbstractMapping
{
public const FIELD_CHARGEBACK_ID = 'chargeback_id';
public const FIELD_CHARGEBACK_DATUM = 'chargeback_datum';
public const FIELD_TRANSACTIE_ID = 'transactie_id';
public const FIELD_REDEN_CODE = 'reden_code';
public const FIELD_REDEN_OMSCHRIJVING = 'reden_omschrijving';
public const FIELD_BEDRAG = 'bedrag';
public const FIELD_CHARGEBACK_BEDRAG = 'chargeback_bedrag';
public const FIELD_MOLLIE_CUSTOMER_ID = 'mollie_customer_id';
private const MAPPING = [
self::FIELD_CHARGEBACK_ID => 0,
self::FIELD_CHARGEBACK_DATUM => 1,
self::FIELD_TRANSACTIE_ID => 2,
self::FIELD_REDEN_CODE => 3,
self::FIELD_REDEN_OMSCHRIJVING => 4,
self::FIELD_BEDRAG => 5,
self::FIELD_CHARGEBACK_BEDRAG => 6,
self::FIELD_MOLLIE_CUSTOMER_ID => 7,
];
public function getColumns(): array
{
return self::MAPPING;
}
}