采购单发货 与 istore 对接

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");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值