Refactor Personen column mapping

This commit is contained in:
Geert Lamers 2022-04-29 16:55:48 +02:00
parent c6b1079418
commit 6bb88ea887
2 changed files with 36 additions and 13 deletions

View File

@ -3,6 +3,7 @@
use CRM\Bij1migratie\Mapping\AirtableMapping;
use CRM\Bij1migratie\Mapping\BetalingenMapping;
use CRM\Bij1migratie\Mapping\ChargebacksMapping;
use CRM\Bij1migratie\Mapping\PersonenMapping;
use CRM_Bij1migratie_ExtensionUtil as E;
/**
@ -294,30 +295,30 @@ class CRM_Bij1migratie_CsvFile {
* @throws Exception
*/
private function sanitizePersonen(string $name, array &$data) {
$mapping = new PersonenMapping($data);
$value = $mapping->get($name);
switch ($name) {
case "mollie_customer_id":
$data[$name] = $data[0];
case PersonenMapping::FIELD_MOLLIE_CUSTOMER_ID:
case PersonenMapping::FIELD_EMAIL:
$data[$name] = $value;
break;
case "achternaam":
$naamDelen = explode(" ", $data[1]);
case PersonenMapping::FIELD_ACHTERNAAM:
$naamDelen = explode(" ", $data[1], 2);
if (count($naamDelen) > 1) {
$data['voornaam'] = trim($naamDelen[0]);
unset($naamDelen[0]);
$data['achternaam'] = trim(implode(" ", $naamDelen));
$data[PersonenMapping::FIELD_VOORNAAM] = trim($naamDelen[0]);
$data[PersonenMapping::FIELD_ACHTERNAAM] = trim($naamDelen[1]);
}
else {
if (!empty($naamDelen[0])) {
$data['achternaam'] = trim($naamDelen[0]);
$data[PersonenMapping::FIELD_ACHTERNAAM] = trim($naamDelen[0]);
}
else {
$data['achternaam'] = "Onbekend " . rand(0,9999);
$data[PersonenMapping::FIELD_ACHTERNAAM] = "Onbekend " . rand(0,9999);
}
$data['voornaam'] = "Onbekend " . rand(0,9999);
$data[PersonenMapping::FIELD_VOORNAAM] = "Onbekend " . rand(0,9999);
}
break;
case "email":
$data[$name] = $data[2];
break;
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace CRM\Bij1migratie\Mapping;
class PersonenMapping extends AbstractMapping
{
public const FIELD_MOLLIE_CUSTOMER_ID = 'mollie_customer_id';
public const FIELD_ACHTERNAAM = 'achternaam';
public const FIELD_EMAIL = 'email';
public const FIELD_VOORNAAM = 'voornaam';
private const MAPPING = [
self::FIELD_MOLLIE_CUSTOMER_ID => 0,
self::FIELD_ACHTERNAAM => 1,
self::FIELD_EMAIL => 2,
];
public function getColumns(): array
{
return self::MAPPING;
}
}