Fix config Table and Reward errors

This commit is contained in:
FrancescoUK
2017-07-02 19:48:58 +01:00
parent 5ea0324bc0
commit a78f053c80

View File

@@ -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']);
}
}
}