From a78f053c804d196ffb4f92ecf98320fd276aa223 Mon Sep 17 00:00:00 2001 From: FrancescoUK Date: Sun, 2 Jul 2017 19:48:58 +0100 Subject: [PATCH] Fix config Table and Reward errors --- application/controllers/Config.php | 118 ++++++++++++++++------------- 1 file changed, 66 insertions(+), 52 deletions(-) diff --git a/application/controllers/Config.php b/application/controllers/Config.php index 6d0d1a994..df299b551 100644 --- a/application/controllers/Config.php +++ b/application/controllers/Config.php @@ -552,33 +552,38 @@ class Config extends Secure_Controller { $this->db->trans_start(); - $this->Appconfig->save('dinner_table_enable',$this->input->post('dinner_table_enable')); + $dinner_table_enable = $this->input->post('dinner_table_enable') != NULL; - $deleted_tables = $this->Dinner_table->get_all()->result_array(); - $not_to_delete = array(); - foreach($this->input->post() as $key => $value) + $this->Appconfig->save('dinner_table_enable', $dinner_table_enable); + + if($dinner_table_enable) { - if(strstr($key, 'dinner_table') && $key != 'dinner_table_enable') + $not_to_delete = array(); + foreach($this->input->post() as $key => $value) { - - $dinner_table_id = preg_replace("/.*?_(\d+)$/", "$1", $key); - $not_to_delete[] = $dinner_table_id; - - // save or update - $table_data = array('name' => $value); - if($this->Dinner_table->save($table_data, $dinner_table_id)) + if(strstr($key, 'dinner_table') && $key != 'dinner_table_enable') { - $this->_clear_session_state(); + $dinner_table_id = preg_replace("/.*?_(\d+)$/", "$1", $key); + $not_to_delete[] = $dinner_table_id; + + // save or update + $table_data = array('name' => $value); + if($this->Dinner_table->save($table_data, $dinner_table_id)) + { + $this->_clear_session_state(); + } } } - } - // all locations not available in post will be deleted now - foreach($deleted_tables as $dinner_table) - { - if(!in_array($dinner_table['dinner_table_id'],$not_to_delete)) + // all locations not available in post will be deleted now + $deleted_tables = $this->Dinner_table->get_all()->result_array(); + + foreach($deleted_tables as $dinner_table) { - $this->Dinner_table->delete($dinner_table['dinner_table_id']); + if(!empty($customer_reward['dinner_table_id']) && !in_array($dinner_table['dinner_table_id'], $not_to_delete)) + { + $this->Dinner_table->delete($dinner_table['dinner_table_id']); + } } } @@ -596,47 +601,56 @@ class Config extends Secure_Controller { $this->db->trans_start(); - $this->Appconfig->save('customer_reward_enable', $this->input->post('customer_reward_enable')); + $customer_reward_enable = $this->input->post('customer_reward_enable') != NULL; - $deleted_packages = $this->Customer_rewards->get_all()->result_array(); - $not_to_delete = array(); - $array_save = array(); - foreach($this->input->post() as $key => $value) + $this->Appconfig->save('customer_reward_enable', $customer_reward_enable); + + if($customer_reward_enable) { - if(strstr($key, 'reward_points') && $key != 'customer_reward_enable') + $not_to_delete = array(); + $array_save = array(); + foreach($this->input->post() as $key => $value) { - $customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key); - $not_to_delete[] = $customer_reward_id; - $array_save[$customer_reward_id]['points_percent'] = $value; - } - - if(strstr($key, 'customer_reward') && $key != 'customer_reward_enable') - { - $customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key); - $not_to_delete[] = $customer_reward_id; - $array_save[$customer_reward_id]['package_name'] = $value; - } - } - - if(!empty($array_save)) - { - foreach($array_save as $key => $value) - { - // save or update - $table_data = array('package_name' => $value['package_name'], 'points_percent' => $value['points_percent']); - if($this->Customer_rewards->save($table_data, $key)) + if(strstr($key, 'customer_reward_enable')) { - $this->_clear_session_state(); + // skip the check box + } + elseif(strstr($key, 'customer_reward')) + { + $customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key); + $not_to_delete[] = $customer_reward_id; + $array_save[$customer_reward_id]['package_name'] = $value; + } + elseif(strstr($key, 'reward_points')) + { + $customer_reward_id = preg_replace("/.*?_(\d+)$/", "$1", $key); + $not_to_delete[] = $customer_reward_id; + $array_save[$customer_reward_id]['points_percent'] = $value; } } - } - // all locations not available in post will be deleted now - foreach($deleted_packages as $customer_reward) - { - if(!in_array($customer_reward['customer_reward_id'], $not_to_delete)) + if(!empty($array_save)) { - $this->Customer_rewards->delete($customer_reward['customer_reward_id']); + foreach($array_save as $key => $value) + { + // save or update + $table_data = array('package_name' => $value['package_name'], 'points_percent' => $value['points_percent']); + if($this->Customer_rewards->save($table_data, $key)) + { + $this->_clear_session_state(); + } + } + } + + // all locations not available in post will be deleted now + $deleted_packages = $this->Customer_rewards->get_all()->result_array(); + + foreach($deleted_packages as $customer_reward) + { + if(!empty($customer_reward['customer_reward_id']) && !in_array($customer_reward['customer_reward_id'], $not_to_delete)) + { + $this->Customer_rewards->delete($customer_reward['customer_reward_id']); + } } }