Html
<input class="input" type="input" value="" name="receiving_code" onkeyup="if(event.keyCode==13){postData();}">
<input class="button purchaseOrder" style="cursor:pointer; display:none" onclick="purchaseOrder()" type="button" value=" 采购单发货" >
js
function postData() {
var receiving_code = $.trim($("[name=receiving_code]").val());
var trackingNum = $.trim($("[name=tracking_number]").val());
var receiving_type = $("[name='receiving_type']").val();
if (receiving_code == '') {
alertTip('单号不能为空');
return false;
}
$.ajax({
url: "/product/receiving/goods-receiving",
async: false,
dataType: "json",
type: "post",
data: {"receivingCode": receiving_code, receivingType: receiving_type, 'trackingNum': trackingNum},
success: function (json) {
if (json.ask == 0) {
$('#loadData').html('<tr style="text-align:center;color:red;"><td colspan=11>' + json.msg + '</td></tr>');
$(".purchaseOrder").css("display", "");
return false;
}
if (json.sender != '') {
$('[name=tracking_number]').val(json.sender.rp_tracking_number);
$("#shipping_method").html(json.sender.shippingMethod);
$("[name='shipping_method']").val(json.sender.rp_shipping_method);
$("#rp_box").html("箱数:" + json.sender.rp_box_qty);
}
if (json.order != '' && json.order.items.length > 0) {
if (json.order.package_type == 2) {
allIsPackaged = false;
}
$('[name=receiving_type] option:first').attr('selected', true);
$('[name=receiving_code]').val(json.order.receiving_code);
listProduct(json.order.items, json.order.notConfirmBatch, json.customer_id);
} else {
$('#sb-span').html('');
$('#bs-span').html('');
$('#loadData').html('<tr style="text-align:center;color:red;"><td colspan=11>' + json.msg + '</td></tr>');
}
}
});
}
Controller
class Product_ReceivingController extends Zend_Controller_Action {
public function goodsReceivingAction(){
if($this->_request->isPost()){
$trackingNumber = $this->_request->getParam('trackingNum','');
$codeType = $this->_request->getParam('receivingType','');
$code = $this->_request->getParam('receivingCode','');
$type = $this->_request->getParam("type", "");
if(empty($trackingNumber) && empty($code)){
die(json_encode(array('ask'=>0,'msg'=>'请输入单号查询')));
}
$obj = new Product_Service_ReceivingPre();
$data = $obj->getBindData($trackingNumber,$code,$codeType);
if ($type == 1) {
$data = $obj->purchaseOrderDelivery($trackingNumber, $code);
die(json_encode($data));
}
die(json_encode($data));
}
$receivingWay = array(
'1'=>'收货单号',
'2'=>'客户参考号',
);
$this->view->status = $receivingWay;
$this->view->shippingMethod =Product_Service_ReceivingPre::$shippingMethod;
echo Cff::renderTpl('product/receiving/goods-receive.tpl',"layout");
}
}
Service
class Product_Service_ReceivingPre {
//istore 接口:Purchase_order_delivery ;质检拿到货时,PO 还没点发货,导致无法收货质检,通过接口把相关信息传入 istore 进行对应处理
public function purchaseOrderDelivery($trackingNumber, $code) {
$return = array("ask" => 0, "msg" => "");
$data['so_code'] = $code;
$data['tracking_number'] = $trackingNumber;
$result = Order_Service_OrderIstoreApiService::postParameter("Purchase_order_delivery", $data);
if($result['ack' ] == "failure"){
$return['msg'] = $result['error'];
return $return;
}
$return['ask'] = 1;
return $return;
}
}
class Order_Service_OrderIstoreApiService {
/* 服务器设置 */
private static $url = '测试地址';
private static $url = '测试地址';
private static $userID = '测试用户名';
private static $token = '测试 token';
public static function postParameter($action, $parameter = array()) {
$params = array();
$params['action'] = $action;
$params['parameter'] = json_encode($parameter);
$url = self::$url . self::$uri;
$tokenarr = array();
$tokenarr['userID'] = self::$userID;
$tokenarr['token'] = self::$token;
$params['valitoken'] = json_encode($tokenarr);
$res = self::vita_post_url_content($url, $params);
$str = var_export($params, true);
Common_Service_Common::logErrorByFile($str, 'send_stocktake_data_to_istore.log');
$response = var_export($res, true);
Common_Service_Common::logErrorByFile($response, 'send_stocktake_data_to_istore.log');
if (!is_array(json_decode($res, true))) {
$resOut = array(
'ack' => 'fail',
'data' => array(),
'error' => $res ? 'API 接口连接失败' . strip_tags($res) : '调用 istore 系统的 API 接口连接失败',
'code' => ''
);
} else {
$resOut = json_decode($res, true);
}
unset($str);
unset($response);
return $resOut;
}
public static function vita_post_url_content($url, $params = array()) {
$params = http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
}
class Common_Service_Common {
public static function logErrorByFile($error,$file){
//$str = var_export($return,true);
//self::logError($str);
$logger = new Zend_Log();
$uploadDir = APPLICATION_PATH."/../data/log/";
$writer = new Zend_Log_Writer_Stream($uploadDir.$file);
$logger->addWriter($writer);
$logger->info(': '.$error." \n");
}
}
采购单发货 与 istore 对接
最新推荐文章于 2024-09-13 22:52:50 发布