Skip to content

Commit

Permalink
[REF] initial extraction of loading saved mapping to qf format
Browse files Browse the repository at this point in the history
Janky but in the right direction. The phoneType & imProvider stuff looks nasty but not more nasty
  • Loading branch information
eileenmcnaughton committed Jul 9, 2019
1 parent 80db43b commit 5c322e1
Showing 1 changed file with 105 additions and 78 deletions.
183 changes: 105 additions & 78 deletions CRM/Core/BAO/Mapping.php
Original file line number Diff line number Diff line change
Expand Up @@ -611,84 +611,7 @@ public static function buildMappingForm(&$form, $mappingType, $mappingId, $colum
$jsSet = FALSE;

if (isset($mappingId)) {
$locationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
if (isset($mappingName[$x][$i])) {
if (is_array($mapperFields[$mappingContactType[$x][$i]])) {

if (isset($mappingRelation[$x][$i])) {
$relLocationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
if (!$relLocationId && in_array($mappingName[$x][$i], $specialFields)) {
$relLocationId = " ";
}

$relPhoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;

$defaults["mapper[$x][$i]"] = [
$mappingContactType[$x][$i],
$mappingRelation[$x][$i],
$locationId,
$phoneType,
$mappingName[$x][$i],
$relLocationId,
$relPhoneType,
];

if (!$locationId) {
$noneArray[] = [$x, $i, 2];
}
if (!$phoneType && !$imProvider) {
$noneArray[] = [$x, $i, 3];
}
if (!$mappingName[$x][$i]) {
$noneArray[] = [$x, $i, 4];
}
if (!$relLocationId) {
$noneArray[] = [$x, $i, 5];
}
if (!$relPhoneType) {
$noneArray[] = [$x, $i, 6];
}
$noneArray[] = [$x, $i, 2];
}
else {
$phoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;
$imProvider = isset($mappingImProvider[$x][$i]) ? $mappingImProvider[$x][$i] : NULL;
if (!$locationId && in_array($mappingName[$x][$i], $specialFields)) {
$locationId = " ";
}

$defaults["mapper[$x][$i]"] = [
$mappingContactType[$x][$i],
$mappingName[$x][$i],
$locationId,
$phoneType,
];
if (!$mappingName[$x][$i]) {
$noneArray[] = [$x, $i, 1];
}
if (!$locationId) {
$noneArray[] = [$x, $i, 2];
}
if (!$phoneType && !$imProvider) {
$noneArray[] = [$x, $i, 3];
}

$noneArray[] = [$x, $i, 4];
$noneArray[] = [$x, $i, 5];
$noneArray[] = [$x, $i, 6];
}

$jsSet = TRUE;

if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) {
$defaults["operator[$x][$i]"] = CRM_Utils_Array::value($i, $mappingOperator[$x]);
}

if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingValue))) {
$defaults["value[$x][$i]"] = CRM_Utils_Array::value($i, $mappingValue[$x]);
}
}
}
list($mappingName, $defaults, $noneArray, $jsSet) = self::loadSavedMapping($mappingLocation, $x, $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, $specialFields, $mappingPhoneType, $defaults, $noneArray, $mappingImProvider, $mappingOperator, $mappingValue);
}
//Fix for Search Builder
if ($mappingType == 'Export') {
Expand Down Expand Up @@ -1064,6 +987,110 @@ protected static function getMappingParams($params, $mappingId, $v, $k, $key, $c
return (array) $saveMappingFields;
}

/**
* Load saved mapping.
*
* @param $mappingLocation
* @param int $x
* @param int $i
* @param $mappingName
* @param $mapperFields
* @param $mappingContactType
* @param $mappingRelation
* @param array $specialFields
* @param $mappingPhoneType
* @param $phoneType
* @param array $defaults
* @param array $noneArray
* @param $imProvider
* @param $mappingImProvider
* @param $mappingOperator
* @param $mappingValue
*
* @return array
*/
protected static function loadSavedMapping($mappingLocation, int $x, int $i, $mappingName, $mapperFields, $mappingContactType, $mappingRelation, array $specialFields, $mappingPhoneType, array $defaults, array $noneArray, $mappingImProvider, $mappingOperator, $mappingValue) {
$locationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
if (isset($mappingName[$x][$i])) {
if (is_array($mapperFields[$mappingContactType[$x][$i]])) {

if (isset($mappingRelation[$x][$i])) {
$relLocationId = isset($mappingLocation[$x][$i]) ? $mappingLocation[$x][$i] : 0;
if (!$relLocationId && in_array($mappingName[$x][$i], $specialFields)) {
$relLocationId = " ";
}

$relPhoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;

$defaults["mapper[$x][$i]"] = [
$mappingContactType[$x][$i],
$mappingRelation[$x][$i],
$locationId,
$phoneType,
$mappingName[$x][$i],
$relLocationId,
$relPhoneType,
];

if (!$locationId) {
$noneArray[] = [$x, $i, 2];
}
if (!$phoneType && !$imProvider) {
$noneArray[] = [$x, $i, 3];
}
if (!$mappingName[$x][$i]) {
$noneArray[] = [$x, $i, 4];
}
if (!$relLocationId) {
$noneArray[] = [$x, $i, 5];
}
if (!$relPhoneType) {
$noneArray[] = [$x, $i, 6];
}
$noneArray[] = [$x, $i, 2];
}
else {
$phoneType = isset($mappingPhoneType[$x][$i]) ? $mappingPhoneType[$x][$i] : NULL;
$imProvider = isset($mappingImProvider[$x][$i]) ? $mappingImProvider[$x][$i] : NULL;
if (!$locationId && in_array($mappingName[$x][$i], $specialFields)) {
$locationId = " ";
}

$defaults["mapper[$x][$i]"] = [
$mappingContactType[$x][$i],
$mappingName[$x][$i],
$locationId,
$phoneType,
];
if (!$mappingName[$x][$i]) {
$noneArray[] = [$x, $i, 1];
}
if (!$locationId) {
$noneArray[] = [$x, $i, 2];
}
if (!$phoneType && !$imProvider) {
$noneArray[] = [$x, $i, 3];
}

$noneArray[] = [$x, $i, 4];
$noneArray[] = [$x, $i, 5];
$noneArray[] = [$x, $i, 6];
}

$jsSet = TRUE;

if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) {
$defaults["operator[$x][$i]"] = CRM_Utils_Array::value($i, $mappingOperator[$x]);
}

if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingValue))) {
$defaults["value[$x][$i]"] = CRM_Utils_Array::value($i, $mappingValue[$x]);
}
}
}
return [$mappingName, $defaults, $noneArray, $jsSet];
}

/**
* Function returns all custom fields with group title and
* field label
Expand Down

0 comments on commit 5c322e1

Please sign in to comment.