From c8ac8c5b2bd2d066fbdd5a6cdf5dd75c0c63df43 Mon Sep 17 00:00:00 2001 From: Alok Patel Date: Thu, 4 Apr 2019 14:59:56 +0530 Subject: [PATCH] CIVICRM-1168: Fixed visibility logic on Pricefield options. --- CRM/Price/Form/Option.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CRM/Price/Form/Option.php b/CRM/Price/Form/Option.php index d83eb9d2f3db..1a991849a3f5 100644 --- a/CRM/Price/Form/Option.php +++ b/CRM/Price/Form/Option.php @@ -314,10 +314,10 @@ public static function formRule($fields, $files, $form) { $publicCount++; } } - if ($visibilityOptions[$priceField->visibility_id] == 'public' && $publicCount == 0) { + if ($visibilityOptions[$priceField->visibility_id] == 'public' && $publicCount == 0 && $visibilityOptions[$fields['visibility_id']] == 'admin') { $errors['visibility_id'] = ts('All other options for this \'Public\' field have \'Admin\' visibility. There should at least be one \'Public\' option, or make the field \'Admin\' only.'); } - elseif ($visibilityOptions[$priceField->visibility_id] == 'admin' && $publicCount > 0) { + elseif ($visibilityOptions[$priceField->visibility_id] == 'admin' && $visibilityOptions[$fields['visibility_id']] == 'public') { $errors['visibility_id'] = ts('You must choose \'Admin\' visibility for this price option, as it belongs to a field with \'Admin\' visibility.'); }