Merge pull request #16956 from jitendrapurohit/core-890
[civicrm-core.git] / Civi / Core / SettingsBag.php
index 3435fd3114f785ab6975b7bab736457967a90883..be51cc6ae41543310fe843c4e62f3691f7a74e9a 100644 (file)
@@ -287,6 +287,9 @@ class SettingsBag {
     if ($key === 'contribution_invoice_settings') {
       foreach (SettingsBag::getContributionInvoiceSettingKeys() as $possibleKeyName => $settingName) {
         $keyValue = $value[$possibleKeyName] ?? '';
+        if ($possibleKeyName === 'invoicing' && is_array($keyValue)) {
+          $keyValue = $keyValue['invoicing'];
+        }
         $this->set($settingName, $keyValue);
       }
       return TRUE;
@@ -302,7 +305,15 @@ class SettingsBag {
   public function computeVirtual() {
     $contributionSettings = [];
     foreach (SettingsBag::getContributionInvoiceSettingKeys() as $keyName => $settingName) {
-      $contributionSettings[$keyName] = $this->get($settingName);
+      switch ($keyName) {
+        case 'invoicing':
+          $contributionSettings[$keyName] = $this->get($settingName) ? [$keyName => 1] : 0;
+          break;
+
+        default:
+          $contributionSettings[$keyName] = $this->get($settingName);
+          break;
+      }
     }
     return ['contribution_invoice_settings' => $contributionSettings];
   }