/**
     * Call the right method for creating or updating object
     *
     * @return mixed
     */
    public function processSave()
    {
        if ($this->table == 'feature') {
            $id_feature = (int) Tools::getValue('id_feature');
            // Adding last position to the feature if not exist
            if ($id_feature <= 0) {
                $sql = 'SELECT `position`+1
						FROM `' . _DB_PREFIX_ . 'feature`
						ORDER BY position DESC';
                // set the position of the new feature in $_POST for postProcess() method
                $_POST['position'] = DB::getInstance()->getValue($sql);
            }
            // clean \n\r characters
            foreach ($_POST as $key => $value) {
                if (preg_match('/^name_/Ui', $key)) {
                    $_POST[$key] = str_replace('\\n', '', str_replace('\\r', '', $value));
                }
            }
            //by webkul to save image of feature with feature name
            $obj_feature = parent::processSave();
            $feature_values = FeatureValue::getFeatureValuesWithLang(1, $obj_feature->id);
            if ($feature_values) {
                $obj_feature_value = new FeatureValue($feature_values[0]['id_feature_value']);
            } else {
                $obj_feature_value = new FeatureValue();
            }
            //validate feature image
            if (isset($_FILES['logo'])) {
                $this->validAddFeatureImage($_FILES['logo']);
            }
            $img_path = _PS_IMG_DIR_ . 'rf/' . $obj_feature->id . '.png';
            if (isset($_FILES['logo'])) {
                $current_file = _PS_TMP_IMG_DIR_ . 'feature_mini_' . $obj_feature->id . '_' . $this->context->shop->id . '.png';
                if (file_exists($current_file)) {
                    unlink($current_file);
                }
                $this->uploadFeatureImage($_FILES['logo'], $img_path);
            }
            $obj_feature_value->id_feature = $obj_feature->id;
            foreach (Language::getLanguages(true) as $lang) {
                $obj_feature_value->value[$lang['id_lang']] = $obj_feature->id . '.png';
            }
            $obj_feature_value->save();
        }
        return $obj_feature;
    }
 public function createHotelRoomDefaultFeatures()
 {
     $htl_room_ftrs = array('Wi-Fi', 'News Paper', 'Power BackUp', 'Refrigerator', 'Restaurant', 'Room Service', 'Gym');
     $pos = 0;
     foreach ($htl_room_ftrs as $room_ftr_k => $room_ftr_v) {
         $obj_feature = new Feature();
         foreach (Language::getLanguages(true) as $lang) {
             $obj_feature->name[$lang['id_lang']] = $room_ftr_v;
         }
         $obj_feature->position = $pos;
         $obj_feature->save();
         if ($obj_feature->id) {
             $obj_feature_value = new FeatureValue();
             $obj_feature_value->id_feature = $obj_feature->id;
             foreach (Language::getLanguages(true) as $lang) {
                 $obj_feature_value->value[$lang['id_lang']] = $obj_feature->id . '.png';
             }
             $obj_feature_value->save();
             if ($obj_feature_value->id) {
                 if (file_exists(_PS_IMG_DIR_ . 'rf/' . $pos . '.png')) {
                     rename(_PS_IMG_DIR_ . 'rf/' . $pos . '.png', _PS_IMG_DIR_ . 'rf/' . $obj_feature->id . '.png');
                 }
             }
         }
         $pos++;
     }
     return true;
 }