<?php

/**
 * ASN集货SZY-EUB运输方式订单向EUB创建订单并取回LABEL
 */
require_once 'config.php';
set_time_limit(0);
$flag = APPLICATION_PATH . '/../data/log/getInfo-BH-USPS.lock';

if (@file_exists($flag)) {
    echo "Another process is running.\r\n";
    echo "{$flag}\r\n";
    exit();
}

$handler = fopen($flag, 'wb');
fclose($handler);

echo '[', date('Y-m-d H:i:s'), '] Starting.', "\r\n";
error_reporting(E_ALL);
// 从订单反推ASN，更具目的性，提高性能
$condition = array(
    'sm_code_Arr' => array('BH-USPS','BH-DPD'), // 运输方式
    'order_status' => 11, // 订单状态：已提交
    //'994_ref_tracking_number' => '', // 994开头的是顺风运单号
    'add_time_start'=>date("Y-m-d H:i:s",strtotime("-20 day")),
);

$total = Service_Orders::getByCondition($condition, 'count(*)');
$size = 200;
$maxPage = ceil($total / $size);

$UspsClass = new Service_UspsInterface();
for ($page = 1; $page <= $maxPage; $page++) {
    $orderList = Service_Orders::getByCondition($condition, '*', $size, $page, 'order_id DESC');
    foreach ($orderList as $order) {
        $condition = array(
            'content_like'=>'USPS取单号:订单服务商单号',
            'order_code'=>$order['order_code']
        );
        $existLog = Service_OrderLog::getByCondition($condition,"count(*)");
        if($existLog>0) continue;
        $shipOrderRow = Service_ShipOrder::getByField($order['order_code'],"order_code","*");
        try {
            $response = $UspsClass->getOrderInfo($order['order_code']);
            if (isset($response['coservehawbcode']) && $response['coservehawbcode'] != '') {
                /*Service_Orders::update(array(
                    'ref_tracking_number' => $response['coservehawbcode']
                        ), $order['order_id']);*/
                Service_ShipOrder::update(array('tracking_number'=>$response['coservehawbcode']),$order['order_code'],"order_code");
                $errorText = 'USPS取单号:订单服务商单号'.$shipOrderRow['tracking_number']."=>".$response['coservehawbcode'] ;
                $errorLog = array(
                    'order_code' => $order['order_code'],
                    'order_id'=>$order['order_id'],
                    'ol_type'=>'1',
                    'order_status_from'=>$order['order_status'],
                    'order_status_to'=>$order['order_status'],
                    'ol_add_time'=>date("Y-m-d H:i:s"),
                    'ol_comments' => $errorText,
                );
                Service_OrderLog::add($errorLog);
                echo $order['order_code'].'USPS取单号:订单服务商单号'.$shipOrderRow['tracking_number']."=>".$response['coservehawbcode']."\n" ;
            }
        } catch (Exception $exc) {
            $errorText = '订单' . $order['order_code'] . '提交出错:' . $exc->getMessage() . "\r\n";
            $errorLog = array(
                'order_code' => $order['order_code'],
                'sm_code' => $order['sm_code'],
                'content' => $errorText,
            );
            Service_TrackingErrorLog::add($errorLog);
            echo $errorText;
        }
    }
}

echo '[', date('Y-m-d H:i:s'), '] End run', "\r\n";
@unlink($flag);
