Example #1
0
 private function _call_print_label($print_label, $transaction_id, $order_id, $track_code)
 {
     try {
         $wsdl_url = $this->config->item('wsdl_url');
         $client = new SoapClient($wsdl_url);
         echo "GetAPACShippingLabelRequest:";
         var_dump($print_label);
         $response = $client->GetAPACShippingLabel(array('GetAPACShippingLabelRequest' => $print_label));
         $result = $response->GetAPACShippingLabelResult;
         if ($result->Ack == 'Success') {
             $label = $result->Label;
             $pdf_path = $this->_pdf_path();
             file_put_contents($pdf_path . '/' . $transaction_id . '.pdf', $label);
             $this->epacket_model->update_print_label($transaction_id);
             // everything is ok now! update the order status
             $order = $this->order_model->get_order($order_id);
             if (isset($order->ship_confirm_user)) {
                 $user_name = $order->ship_confirm_user;
             } else {
                 $user_name = 'script';
             }
             $this->print_sku_list($track_code, $order_id);
             //生成发货清单pdf
             unset($order);
             $wait_for_feedback_status = fetch_status_id('order_status', 'wait_for_feedback');
             $remark = $this->order_model->get_sys_remark($order_id);
             $remark .= sprintf(lang('confirm_shipped_remark'), date('Y-m-d H:i:s'), $user_name);
             $data = array('track_number' => $track_code, 'ship_confirm_date' => date('Y-m-d H:i:s'), 'order_status' => $wait_for_feedback_status, 'sys_remark' => $remark . ' epacket: order status id is ' . $wait_for_feedback_status);
             $this->order_model->update_order_information($order_id, $data);
             echo "starting confirm packet\n";
             $this->_process_confirm_package($track_code);
             /*
              $type_extra = $user_name . '/' . date('Y-m-d H:i:s');
              $this->product_model->update_product_stock_count_by_order_id($order_id, 'order_outstock', $type_extra);
             */
             // notify customer with email in another process
             $this->events->trigger('shipping_confirmation_after', array('order_id' => $order_id));
         } else {
             var_dump($result);
             $this->epacket_model->save_failure_message($transaction_id, $result->Message);
             return false;
         }
     } catch (SOAPFault $exception) {
         print $exception;
     }
 }