function make_returned_item_no($item_no, $is_register) { $length = strlen($is_register) + 1; if (substr($item_no, -$length) == '-' . $is_register) { $item_no = substr_replace($item_no, 'R', -$length, 0); } else { $item_no .= 'R'; } $CI =& get_instance(); if (!isset($CI->order_model)) { $CI->load->model('order_model'); } if ($CI->order_model->check_exists('order_list', array('item_no' => $item_no))) { return make_returned_item_no($item_no, $is_register); } return $item_no; }
public function give_order_back() { $order_id = $this->input->post('order_id'); $remark = $this->input->post('remark'); $is_customer = $this->input->post('is_customer'); $order = $this->order_model->get_order($order_id); $data = array('order_status' => $this->order_statuses['holded'], 'descript' => get_current_user_name() . ' ' . lang('give_order_back') . ': ' . $remark); if (!in_array($order->order_status, array($this->order_statuses['wait_for_purchase'], $this->order_statuses['wait_for_shipping_label'], $this->order_statuses['not_handled']))) { $order_status = lang('order_status_is') . lang(fetch_status_name('order_status', $order->order_status)); if ($is_customer) { echo $this->create_json(0, $order_status); return; } } // shipping department /*if (!$is_customer) { if ($order->order_status != $this->order_statuses['wait_for_shipping_confirmation']) { echo $this->create_json(0, $order_status); return; } $user_name = get_current_login_name(); $type_extra = $user_name . '/' . date('Y-m-d H:i:s'); $this->product_model->update_product_stock_count_by_order_id($order_id, 'label_instock', $type_extra, FALSE); }*/ try { if ($is_customer) { $this->order_model->update_order_information($order_id, $data); } else { $data['item_no'] = make_returned_item_no($order->item_no, $order->is_register); $this->order_model->renew_order($order_id, $data); /* remove dead data from epacket_confirm_list table */ $this->epacket_model->remove_order_from_epacket($order_id); } } catch (Exception $e) { echo lang('error_msg'); $this->ajax_failed(); } echo $this->create_json(1, lang('ok')); $order = $this->order_model->get_order($order_id); $this->events->trigger('give_order_back_after', array('type' => 'give_order_back', 'click_url' => site_url('order/regular_order/view_order'), 'content' => sprintf(lang('give_order_back_notice'), $order->item_no), 'owner_id' => get_current_user_id())); }