Example #1
0
 private function process_download_pdf($date = NULL, $part = FALSE)
 {
     require_once APPPATH . 'libraries/pdf/PDFMerger.php';
     $pdf = new PDFMerger();
     if (!$date) {
         $date = date('Y-m-d');
     }
     $pdf_folder = "/var/www/html/mallerp/static/ems/{$date}/";
     $input_user = get_current_user_id();
     $priority = fetch_user_priority_by_system_code('shipping');
     // director? then set input_user as FALSE, no need to filter it
     if ($priority > 1) {
         $input_user = FALSE;
     }
     $confirmed_list = $this->epacket_model->fetch_ems_confirmed_list($date, $input_user, $part);
     if (empty($confirmed_list) or !file_exists($pdf_folder)) {
         echo 'No pdf for ' . $date;
         return;
     }
     foreach ($confirmed_list as $order) {
         $track_number = $order->track_number;
         $pdf_url = $pdf_folder . $track_number . '.pdf';
         $sku_pdf_url = $pdf_folder . 'sku_list_' . $track_number . '.pdf';
         if (!file_exists($pdf_url)) {
             continue;
         }
         $pdf->addPDF($pdf_url, 'all');
         $data = array('downloaded' => 1);
         $this->epacket_model->update_ems_confirmed_list($order->id, $data);
         if (!file_exists($sku_pdf_url)) {
             continue;
         }
         $pdf->addPDF($sku_pdf_url, 'all');
     }
     $pdf->merge('download', "ems_eub_{$date}.pdf");
 }
 public function change_order_shiped()
 {
     if (!$this->input->is_post()) {
         return;
     }
     $data = array();
     $post_keys = array_keys($_POST);
     $order_ids = array();
     foreach ($post_keys as $key) {
         if (strpos($key, 'checkbox_select_') === 0) {
             $order_ids[] = $_POST[$key];
         }
     }
     $orders = array();
     $user_name = $this->get_current_user_name();
     /* save sku => qty */
     $products = array();
     foreach ($order_ids as $order_id) {
         $order = $this->order_model->get_order($order_id);
         /* double check the order status
          * if the order status is not wait for shipping confirmation,
          * ignore it!
          */
         if ($order->order_status != $this->order_statuses['wait_for_shipping_confirmation']) {
             continue;
         }
         $skus = explode(',', $order->sku_str);
         $qties = explode(',', $order->qty_str);
         $j = 0;
         $error = FALSE;
         foreach ($skus as $sku) {
             if (isset($products[$sku])) {
                 $products[$sku] += $qties[$j];
             } else {
                 $products[$sku] = $qties[$j];
             }
             $j++;
         }
         $weight = $this->order_model->get_order_whole_weight($order->id);
         $remark = $order->sys_remark;
         $remark .= sprintf(lang('confirm_shipped_remark'), date('Y-m-d H:i:s'), $user_name);
         $is_register = $order->is_register;
         /*
          * Epacket:
          */
         if (strtoupper($is_register) == 'H') {
             /* check if there is any available ebay transaction id, or return false */
             $paypal_transaction_id = $order->transaction_id;
             $item_ids = explode(',', trim($order->item_id_str, ','));
             $item_ids = array_unique($item_ids);
             foreach ($item_ids as $item_id) {
                 if (!$this->epacket_model->ebay_transaction_id_exists($item_id, $paypal_transaction_id)) {
                     echo "***1****";
                     echo $this->create_json(0, lang('no_ebay_transaction_id_info'));
                     return;
                 }
             }
             if ($order->ship_weight && $order->ship_confirm_user) {
                 echo "***2****";
                 echo $this->create_json(0, lang('shipping_weight_exists_no_need_try_again'));
                 return;
             }
             $data = array('ship_weight' => $weight, 'order_status' => $this->order_statuses['wait_for_feedback'], 'ship_confirm_date' => date('Y-m-d H:i:s'), 'ship_confirm_user' => $user_name, 'sys_remark' => $remark);
             $this->order_model->update_order_information($order_id, $data);
             $this->product_model->update_product_stock_count_by_order_id($order_id);
             $data = array('order_id' => $order_id, 'transaction_id' => $paypal_transaction_id, 'input_user' => get_current_user_id());
             $this->epacket_model->save_epacket_confirm_list($data);
             $this->script->fetch_epacket_track_number(array('order_id' => $order_id));
             //return;
         } elseif (strtoupper($is_register) == 'EUB') {
             /*线下eub*/
             $data = array('ship_weight' => $weight, 'order_status' => $this->order_statuses['wait_for_feedback'], 'ship_confirm_date' => date('Y-m-d H:i:s'), 'ship_confirm_user' => $user_name, 'sys_remark' => $remark);
             $this->order_model->update_order_information($order_id, $data);
             $this->product_model->update_product_stock_count_by_order_id($order_id);
             $data = array('order_id' => $order_id, 'input_user' => get_current_user_id());
             $this->epacket_model->save_specification_epacket_confirm_list($data);
             $this->ebay_order_model->save_wait_complete_sale($order_id);
             $this->script->fetch_specification_epacket_track_number(array('order_id' => $order_id));
         } else {
             $data = array('ship_weight' => $weight, 'ship_confirm_user' => $user_name, 'ship_confirm_date' => date('Y-m-d H:i:s'), 'order_status' => $this->order_statuses['wait_for_feedback'], 'sys_remark' => $remark);
             // use the first time shipping confirmation date
             if (!empty($order->ship_confirm_date)) {
                 //unset($data['ship_confirm_date']);
             }
             //if ($track_number) {
             //$data['track_number'] = $track_number;
             //}
             $this->order_model->update_order_information($order_id, $data);
             $this->ebay_order_model->save_wait_complete_sale($order_id);
             //根据订单id扣取库存
             $this->product_model->update_product_stock_count_by_order_id($order_id);
         }
         // notify customer with email in another process
         /*
         			$this->events->trigger(
                         'shipping_confirmation_after',
                         array(
                             'order_id' => $order_id,
                         )
         			);*/
         /*
         $this->events->trigger(
                     'complete_ebay_sale',
         	array(
                         'order_id' => $order_id,
         	)
         );
         */
         $orders[] = $this->order_model->get_order($order_id);
     }
     $type_extra = $user_name . '/' . date('Y-m-d H:i:s');
     /*订单清单扣库存
       foreach ($products as $sku => $qty) {
           $this->product_model->update_product_stock_count_by_sku($sku, $qty, TRUE, 'order_outstock', $type_extra,$stock_code);
       }*/
     $code = 'stock';
     $priority = fetch_user_priority_by_system_code($code);
     $all_stock_users = $this->user_model->fetch_users_by_system_code('stock');
     foreach ($all_stock_users as $user) {
         $all_stock_user_ids[$user->u_id] = $user->login_name;
     }
     $data = array('orders' => $orders, 'priority' => $priority, 'all_stock_users' => $all_stock_user_ids, 'current_user_id' => get_current_user_id());
     $this->template->write_view('content', 'shipping/deliver_management/change_order_shiped', $data);
     $this->template->render();
 }
 public function show_purchaser_filter()
 {
     if ($this->CI->is_super_user()) {
         return TRUE;
     }
     if (!isset($this->priority)) {
         $this->priority = fetch_user_priority_by_system_code('purchase');
     }
     return $this->priority > 1;
 }