static function getProviders()
{
static $providers = array();
if ($providers)
return $providers;
$providers = array(
'VALUE' => array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_VALUE'),
'SORT' => 100,
),
'COMPANY' => array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_COMPANY'),
'SORT' => 600,
'FIELDS' => call_user_func(function ()
{
$data = array(
'ID' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_COMPANY_ID')),
'NAME' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_NAME' )),
'LOCATION_ID' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_LOCATION' )),
'CODE' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_CODE' )),
'XML_ID' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_XML_ID' )),
'ACTIVE' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_ACTIVE' )),
'DATE_CREATE' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_DATE_CREATE')),
'DATE_MODIFY' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_DATE_MODIFY')),
'CREATED_BY' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_CREATED_BY' )),
'MODIFIED_BY' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_MODIFIED_BY')),
'ADDRESS' => array('GROUP' => 'ENTITY', 'NAME' => Loc::getMessage('BIZVAL_CODE_ADDRESS' )),
);
global $USER_FIELD_MANAGER;
$result = $USER_FIELD_MANAGER->GetUserFields(InternalsCompanyTable::getUfId(), null, LANGUAGE_ID);
foreach ($result as $name => $row)
$data[$name] = array('NAME' => $row['EDIT_FORM_LABEL'] ?: $name, 'GROUP' => 'UF');
return $data;
}),
'FIELDS_GROUPS' => array(
'ENTITY' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CODE_COMPANY_ENTITY')),
'UF' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CODE_COMPANY_UF' )),
),
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId)
{
$value = null;
if ($providerInstance === null)
return $value;
if (mb_substr($providerValue, 0, 3) == 'UF_')
{
global $USER_FIELD_MANAGER;
$value = $USER_FIELD_MANAGER->GetUserFieldValue(InternalsCompanyTable::getUfId(), $providerValue, $providerInstance) ?: null;
}
elseif ($company = InternalsCompanyTable::getById($providerInstance)->fetch())
{
$value = $company[$providerValue];
}
return $value;
},
),
'ORDER' => call_user_func(
function ()
{
$result = array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_ORDER'),
'SORT' => 200,
'FIELDS' => array(
'ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_ID')),
'LID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SITE_ID')),
'ACCOUNT_NUMBER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_ACCOUNT_NUMBER')),
'TRACKING_NUMBER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_TRACKING_NUMBER')),
'DATE_INSERT' => array('NAME' => Loc::getMessage('BIZVAL_CODE_DATE_CREATE')),
'DATE_INSERT_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_DATE_CREATE_DATE')),
'DATE_UPDATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_DATE_MODIFY')),
'PERSON_TYPE_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PERSON_TYPE_ID')),
'USER_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_USER_ID')),
'PAYED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAID')),
'DATE_PAY_BEFORE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PAY_BEFORE')),
'SHOULD_PAY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PRICE')),
'CURRENCY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_CURRENCY')),
'PRICE_DELIVERY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PRICE_DELIV')),
'DISCOUNT_VALUE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DESCOUNT')),
'PAY_SYSTEM_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PAY_SYSTEM_ID')),
'DELIVERY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DELIVERY_ID')),
'TAX_VALUE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_TAX')),
'COMMENTS' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_COMMENTS')),
'USER_DESCRIPTION' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_USER_DESCRIPTION')),
),
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId)
{
$value = null;
if ($providerInstance instanceof Order)
{
if ($providerValue == 'DATE_INSERT_DATE')
{
$value = new Date($providerInstance->getField('DATE_INSERT'));
}
else if ($providerValue == 'DATE_BILL_DATE') // for crm compatibility
{
$value = new Date($providerInstance->getField('DATE_BILL'));
}
else
{
$value = $providerInstance->getField($providerValue);
}
}
return $value;
},
);
if (IsModuleInstalled('crm'))
{
$result['FIELDS']['ORDER_TOPIC'] = ['NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_ORDER_TOPIC')];
$result['FIELDS']['PRICE'] = ['NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_PRICE')];
$result['FIELDS']['DATE_BILL'] = ['NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DATE_BILL')];
$result['FIELDS']['DATE_BILL_DATE'] = ['NAME' => Loc::getMessage('BIZVAL_CODE_ORDER_DATE_BILL_DATE')];
}
return $result;
}
),
'USER' => array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_USER'),
'SORT' => 110,
'FIELDS' => array(
'ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_USER_ID'), 'GROUP' => 'CLIENT'),
'LOGIN' => array('NAME' => Loc::getMessage('BIZVAL_CODE_LOGIN'), 'GROUP' => 'CLIENT'),
'NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_FIRST_NAME'), 'GROUP' => 'CLIENT'),
'SECOND_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SECOND_NAME'), 'GROUP' => 'CLIENT'),
'LAST_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_LAST_NAME'), 'GROUP' => 'CLIENT'),
'EMAIL' => array('NAME' => Loc::getMessage('BIZVAL_CODE_EMAIL'), 'GROUP' => 'CLIENT'),
'LID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SITE_ID'), 'GROUP' => 'CLIENT'),
'PERSONAL_PROFESSION' => array('NAME' => Loc::getMessage('BIZVAL_CODE_JOB_PROFESSION'), 'GROUP' => 'CLIENT'),
'PERSONAL_WWW' => array('NAME' => Loc::getMessage('BIZVAL_CODE_WEBSITE'), 'GROUP' => 'CLIENT'),
'PERSONAL_ICQ' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ICQ'), 'GROUP' => 'CLIENT'),
'PERSONAL_GENDER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_GENDER'), 'GROUP' => 'CLIENT'),
'PERSONAL_FAX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_FAX'), 'GROUP' => 'CLIENT'),
'PERSONAL_MOBILE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PHONE'), 'GROUP' => 'CLIENT'),
'PERSONAL_STREET' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ADDRESS'), 'GROUP' => 'CLIENT'),
'PERSONAL_MAILBOX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_POSTAL_ADDRESS'), 'GROUP' => 'CLIENT'),
'PERSONAL_CITY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CITY'), 'GROUP' => 'CLIENT'),
'PERSONAL_STATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_REGION'), 'GROUP' => 'CLIENT'),
'PERSONAL_ZIP' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ZIP'), 'GROUP' => 'CLIENT'),
'PERSONAL_COUNTRY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_COUNTRY'), 'GROUP' => 'CLIENT'),
'PERSONAL_NOTES' => array('NAME' => Loc::getMessage('BIZVAL_CODE_NOTES'), 'GROUP' => 'CLIENT'),
'WORK_COMPANY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_NAME'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_DEPARTMENT' => array('NAME' => Loc::getMessage('BIZVAL_CODE_JOB_DEPARTMENT'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_POSITION' => array('NAME' => Loc::getMessage('BIZVAL_CODE_JOB_POSITION' ), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_WWW' => array('NAME' => Loc::getMessage('BIZVAL_CODE_WEBSITE'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_PHONE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PHONE'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_FAX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_FAX'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_STREET' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ADDRESS'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_MAILBOX' => array('NAME' => Loc::getMessage('BIZVAL_CODE_POSTAL_ADDRESS'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_CITY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_CITY'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_STATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_REGION'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_ZIP' => array('NAME' => Loc::getMessage('BIZVAL_CODE_ZIP'), 'GROUP' => 'CLIENT_COMPANY'),
'WORK_COUNTRY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_COUNTRY'), 'GROUP' => 'CLIENT_COMPANY'),
),
'FIELDS_GROUPS' => array(
'CLIENT' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CODE_CLIENT' )),
'CLIENT_COMPANY' => array('NAME' => Loc::getMessage('BIZVAL_GROUP_CODE_CLIENT_COMPANY')),
),
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId)
{
$value = null;
global $USER;
if ($user = $USER->GetByID($providerInstance)->Fetch())
{
$value = $user[$providerValue];
}
return $value;
},
),
'PAYMENT' => array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_PAYMENT'),
'SORT' => 400,
'FIELDS' => array(
'ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_ID')),
'ACCOUNT_NUMBER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_ACCOUNT_NUMBER')),
'PAID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAID')),
'DATE_PAID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_DATE_PAID')),
'PAY_SYSTEM_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_SYSTEM_ID')),
'PAY_VOUCHER_NUM' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_VOUCHER_NUM')),
'PAY_VOUCHER_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_VOUCHER_DATE')),
'DATE_PAY_BEFORE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_DATE_PAY_BEFORE')),
'DATE_BILL' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_DATE_BILL')),
'DATE_BILL_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_DATE_BILL_DATE')),
'XML_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_XML_ID')),
'SUM' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_SUM')),
'CURRENCY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_CURRENCY')),
'PAY_SYSTEM_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_SYSTEM_NAME')),
'COMPANY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_COMPANY_ID')),
'PAY_RETURN_NUM' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_RETURN_NUM')),
'PAY_RETURN_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_RETURN_DATE')),
'PAY_RETURN_COMMENT' => array('NAME' => Loc::getMessage('BIZVAL_CODE_PAYMENT_PAY_RETURN_COMMENT')),
),
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId)
{
$value = null;
if ($providerInstance instanceof Payment)
{
if ($providerValue == 'DATE_BILL_DATE')
$value = new Date($providerInstance->getField('DATE_BILL'));
else
$value = $providerInstance->getField($providerValue);
}
return $value;
},
),
'SHIPMENT' => array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_SHIPMENT'),
'SORT' => 500,
'FIELDS' => array(
'STATUS_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_STATUS_ID')),
'PRICE_DELIVERY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_PRICE_DELIVERY')),
'ALLOW_DELIVERY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_ALLOW_DELIVERY')),
'DATE_ALLOW_DELIVERY' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DATE_ALLOW_DELIVERY')),
'EMP_ALLOW_DELIVERY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_EMP_ALLOW_DELIVERY_ID')),
'DEDUCTED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DEDUCTED')),
'DATE_DEDUCTED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DATE_DEDUCTED')),
'EMP_DEDUCTED_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_EMP_DEDUCTED_ID')),
'REASON_UNDO_DEDUCTED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_REASON_UNDO_DEDUCTED')),
'DELIVERY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DELIVERY_ID')),
'DELIVERY_DOC_NUM' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DELIVERY_DOC_NUM')),
'DELIVERY_DOC_DATE' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DELIVERY_DOC_DATE')),
'TRACKING_NUMBER' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_TRACKING_NUMBER')),
'XML_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_XML_ID')),
'PARAMETERS' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_PARAMETERS')),
'DELIVERY_NAME' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DELIVERY_NAME')),
'COMPANY_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_COMPANY_ID')),
'MARKED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_MARKED')),
'DATE_MARKED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DATE_MARKED')),
'EMP_MARKED_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_EMP_MARKED_ID')),
'REASON_MARKED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_REASON_MARKED')),
'CANCELED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_CANCELED')),
'DATE_CANCELED' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_DATE_CANCELED')),
'EMP_CANCELED_ID' => array('NAME' => Loc::getMessage('BIZVAL_CODE_SHIPMENT_EMP_CANCELED_ID')),
),
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId)
{
$value = null;
if ($providerInstance instanceof Shipment)
$value = $providerInstance->getField($providerValue);
return $value;
},
),
'PROPERTY' => call_user_func(
function ()
{
$getFields = function ($registryType)
{
static $fields = array();
if (isset($fields[$registryType]))
{
return $fields[$registryType];
}
$fields[$registryType] = [];
$result = InternalsOrderPropsTable::getList(array(
'select' => array('ID', 'NAME', 'PERSON_TYPE_ID', 'TYPE', 'CODE'),
'filter' => array(
'=PERSON_TYPE_ID' => array_keys(BusinessValue::getPersonTypes()),
'=ENTITY_REGISTRY_TYPE' => $registryType
),
'order' => array('PERSON_TYPE_ID', 'SORT'),
));
while ($row = $result->fetch())
{
$id = $row['ID'];
$name = $row['NAME'];
$field = array(
'NAME' => $name,
'CODE' => $row['CODE'],
'GROUP' => $row['PERSON_TYPE_ID'],
'PERSON_TYPE_ID' => $row['PERSON_TYPE_ID']
);
$fields[$registryType][$id] = $field;
if ($row['TYPE'] == 'LOCATION')
{
$field['NAME'] = $name.' ('.Loc::getMessage('BIZVAL_CODE_COUNTRY').')';
$fields[$registryType][$id.'_COUNTRY'] = $field;
$field['NAME'] = $name.' ('.Loc::getMessage('BIZVAL_CODE_REGION').')';
$fields[$registryType][$id.'_REGION'] = $field;
$field['NAME'] = $name.' ('.Loc::getMessage('BIZVAL_CODE_CITY').')';
$fields[$registryType][$id.'_CITY'] = $field;
}
}
return $fields[$registryType];
};
$parseId = function ($propertyId)
{
$propertyCode = null;
$locationField = null;
if (! is_numeric($propertyId)) // TODO is_int
{
if (($a = explode('_', $propertyId, 2))
&& is_numeric($a[0])
&& in_array($a[1], array('CITY', 'COUNTRY', 'REGION'), true))
{
$propertyId = $a[0];
$locationField = $a[1];
}
else
{
$propertyCode = $propertyId;
$propertyId = null;
}
}
return array($propertyCode, $propertyId, $locationField);
};
return array(
'NAME' => Loc::getMessage('BIZVAL_PROVIDER_PROPERTY'),
'SORT' => 300,
'FIELDS' => call_user_func($getFields, Registry::REGISTRY_TYPE_ORDER),
'FIELDS_GROUPS' => array_map(
function ($i)
{
return array('NAME' => $i['TITLE']);
},
BusinessValue::getPersonTypes()
),
'GET_VALUE' => function ($providerValue, $personTypeId, $options, $provider) use ($parseId, $getFields)
{
list ($propertyCode, $propertyId, $locationField) = call_user_func($parseId, $providerValue);
// for crm invoice compatibility
if ($provider && method_exists($provider, 'getRegistryType'))
{
$registry = $provider::getRegistryType();
}
else
{
$registry = Registry::REGISTRY_TYPE_ORDER;
}
$fields = $getFields($registry);
if ($propertyCode)
{
if ($options == 'BY_ID')
{
foreach ($fields as $propertyId => $property)
{
if ($property['PERSON_TYPE_ID'] == $personTypeId && $property['CODE'] == $propertyCode)
{
$providerValue = $propertyId;
break;
}
}
}
}
else
{
if ($options != 'BY_ID' && ($property = $fields[$propertyId]))
{
$providerValue = $property['CODE'];
}
}
return $providerValue;
},
'GET_INSTANCE_VALUE' => function ($providerInstance, $providerValue, $personTypeId) use ($parseId)
{
$value = null;
if ($providerInstance instanceof Order)
{
list ($propertyCode, $propertyId, $locationField) = call_user_func($parseId, $providerValue);
/** @var PropertyValue $property */
foreach ($providerInstance->getPropertyCollection() as $property)
{
if ($property->getPersonTypeId() == $personTypeId)
{
if ($propertyCode)
{
if ($property->getField('CODE') == $propertyCode)
{
$value = $property->getValue();
break;
}
}
elseif ($property->getPropertyId() == $propertyId)
{
if (($value = $property->getValue())
&& ($propertyField = $property->getProperty())
)
{
if($propertyField['TYPE'] == "LOCATION")
{
$limit = -1;
$filter['=CODE'] = $value;
$filter['=PARENTS.NAME.LANGUAGE_ID'] = LANGUAGE_ID;
if(is_set($locationField))
{
$filter['=PARENTS.TYPE.CODE'] = $locationField;
$limit = 1;
}
$row = BitrixSaleLocationLocationTable::getList(array(
'select' => array('LOCATION_NAME' => 'PARENTS.NAME.NAME'),
'filter' => $filter,
'limit' => $limit,
));
$locations = array();
while($location = $row->fetch())
$locations[] = $location['LOCATION_NAME'];
$value = (count($locations) > 0) ? implode('-', $locations) : null;
}
elseif($propertyField['TYPE'] == "ENUM")
{
$multipleValues = $property->getValue();
if(is_array($multipleValues) && count($multipleValues)>0)
{
$value = [];
foreach($multipleValues as $v)
{
if(isset($propertyField['OPTIONS'][$v]))
$value[] = $propertyField['OPTIONS'][$v];
}
}
else
$value = $propertyField['OPTIONS'][$property->getValue()];
}
}
break;
}
}
}
}
return $value;
},
);
}
),
);
return $providers;
}