Example #1
0
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()));
 }