public function savePayMethodsObject()
 {
     include_once './Services/Payment/classes/class.ilPayMethods.php';
     global $rbacsystem;
     // MINIMUM ACCESS LEVEL = 'read'
     if (!$rbacsystem->checkAccess('read', $this->object->getRefId())) {
         $this->ilErr->raiseError($this->lng->txt('msg_no_perm_read'), $this->ilErr->MESSAGE);
     }
     $count_pm = ilPayMethods::countPM();
     $askForDeletingAddresses = array();
     $pm_enabled = array();
     if (is_array($_POST['pm_enabled'])) {
         $pm_enabled = $_POST['pm_enabled'];
     } else {
         if ($_POST['pm_enabled'] == NULL) {
             ilUtil::sendInfo($this->lng->txt('shop_disabled_no_paymethods'));
             $this->genSetData->set('shop_enabled', 0, 'common');
             $_SESSION['disable_shop'] = false;
         }
     }
     for ($i = 1; $i <= $count_pm; $i++) {
         if (!array_key_exists($i, $pm_enabled) && ilPayMethods::_PmEnabled($i) == 1) {
             if (ilPaymentObject::_getCountObjectsByPayMethod($i)) {
                 ilUtil::sendInfo($this->lng->txt('pays_objects_bill_exist'));
                 $this->payMethodsObject();
                 return false;
             } else {
                 ilPayMethods::_PMdisable($i);
             }
         } else {
             if (!array_key_exists($i, $pm_enabled) && ilPayMethods::_PmEnabled($i) == 0) {
                 continue;
             } else {
                 ilPayMethods::_PMenable($i);
             }
         }
         if (!array_key_exists($i, (array) $_POST['save_usr_adr']) && ilPayMethods::_EnabledSaveUserAddress($i) == 1) {
             $askForDeletingAddresses[] = $i;
         } else {
             if (!array_key_exists($i, (array) $_POST['save_usr_adr']) && ilPayMethods::_EnabledSaveUserAddress($i) == 0) {
                 continue;
             } else {
                 ilPayMethods::_enableSaveUserAddress($i);
             }
         }
     }
     $tmp = $this->payMethodsObject($askForDeletingAddresses);
     if (!$askForDeletingAddresses) {
         ilUtil::sendSuccess($this->lng->txt('pays_updated_pay_method'));
     }
     return true;
 }