Menus_model::saveMenu PHP Method

saveMenu() public method

public saveMenu ( $menu_id, $save = [] )
    public function saveMenu($menu_id, $save = array())
    {
        if (empty($save) and !is_array($save)) {
            return FALSE;
        }
        if (isset($save['menu_name'])) {
            $this->db->set('menu_name', $save['menu_name']);
        }
        if (isset($save['menu_description'])) {
            $this->db->set('menu_description', $save['menu_description']);
        }
        if (isset($save['menu_price'])) {
            $this->db->set('menu_price', $save['menu_price']);
        }
        if (isset($save['special_status']) and $save['special_status'] === '1') {
            $this->db->set('menu_category_id', (int) $this->config->item('special_category_id'));
        } else {
            if (isset($save['menu_category'])) {
                $this->db->set('menu_category_id', $save['menu_category']);
            }
        }
        if (isset($save['menu_photo'])) {
            $this->db->set('menu_photo', $save['menu_photo']);
        }
        if (isset($save['stock_qty']) and $save['stock_qty'] > 0) {
            $this->db->set('stock_qty', $save['stock_qty']);
        } else {
            $this->db->set('stock_qty', '0');
        }
        if (isset($save['minimum_qty']) and $save['minimum_qty'] > 0) {
            $this->db->set('minimum_qty', $save['minimum_qty']);
        } else {
            $this->db->set('minimum_qty', '1');
        }
        if (isset($save['subtract_stock']) and $save['subtract_stock'] === '1') {
            $this->db->set('subtract_stock', $save['subtract_stock']);
        } else {
            $this->db->set('subtract_stock', '0');
        }
        if (isset($save['menu_status']) and $save['menu_status'] === '1') {
            $this->db->set('menu_status', $save['menu_status']);
        } else {
            $this->db->set('menu_status', '0');
        }
        if (isset($save['mealtime_id'])) {
            $this->db->set('mealtime_id', $save['mealtime_id']);
        } else {
            $this->db->set('mealtime_id', '0');
        }
        if (isset($save['menu_priority'])) {
            $this->db->set('menu_priority', $save['menu_priority']);
        } else {
            $this->db->set('menu_priority', '0');
        }
        if (is_numeric($menu_id)) {
            $this->db->where('menu_id', (int) $menu_id);
            $query = $this->db->update('menus');
        } else {
            $query = $this->db->insert('menus');
            $menu_id = $this->db->insert_id();
        }
        if ($query === TRUE and is_numeric($menu_id)) {
            if (!empty($save['menu_options'])) {
                $this->load->model('Menu_options_model');
                $this->Menu_options_model->addMenuOption($menu_id, $save['menu_options']);
            }
            if (!empty($save['start_date']) and !empty($save['end_date']) and isset($save['special_price'])) {
                $this->db->set('start_date', mdate('%Y-%m-%d', strtotime($save['start_date'])));
                $this->db->set('end_date', mdate('%Y-%m-%d', strtotime($save['end_date'])));
                $this->db->set('special_price', $save['special_price']);
                if (isset($save['special_status']) and $save['special_status'] === '1') {
                    $this->db->set('special_status', '1');
                } else {
                    $this->db->set('special_status', '0');
                }
                if (isset($save['special_id'])) {
                    $this->db->where('special_id', $save['special_id']);
                    $this->db->where('menu_id', $menu_id);
                    $this->db->update('menus_specials');
                } else {
                    $this->db->set('menu_id', $menu_id);
                    $this->db->insert('menus_specials');
                }
            }
            return $menu_id;
        }
    }