<?php

/**
 * @author william-fan
 * @todo 向招宝提交入区单数据(调用招宝webservice)
 */
set_time_limit(7200);
require_once ('config.php');
$flagFile = APPLICATION_PATH . '/../data/log/receivingSubmit.lock';
if (@file_exists($flagFile)) {
    $lockTime = filectime($flagFile);
    $nowTime = date("Y-m-d H:i:s");
    $minutes = (strtotime($nowTime) - strtotime($lockTime))/60;
    if($minutes>5){
        @unlink($flagFile);
        $link = fopen($flagFile, 'wb');
        fclose($link);
    }else{
        echo 'Anather process is running.' . "\r\n\r\n";
        echo $flagFile . "\r\n";
        exit();
    }
}else{
    $link = fopen($flagFile, 'wb');
    fclose($link);
}
define('RUNTIME', '[' . date('Y-m-d H:i:s') . '] ');
echo RUNTIME . "Starting.\r\n";
//E0659 分销平台测试帐号 E0721只走区外仓
$aTestAccount = array('E0659','E0110', 'E0207','E0346','E0412','E0431','E0441','E0444','E0483','E0497','E0493','E0519','E0537','E0581','E0585','E0637','E641','E0659','E660','E0533','E0653','E654','E0692','E0693','E0697','E0721','E0751','E0750','E0756','E0757','E0760','E0763','E0610','E0786','E0796','E0800','E0806','E0436','E0822','E0833','E0837','E0846','E0898','E0896','E0842','E0897','E0900','E0903','E0909','E0916','E0943');
try {
    $ftProcess = new Service_FtpReceiveProcess();
    //$receivingList = Service_Receiving::getByCondition(array('receiving_status'=>3));
    $receivingCondition = array('fmt_code' => 'MRK', 'fml_status' => 1);
    $counts = Service_FtpMessageSendlist::getByCondition($receivingCondition, "count(*)");
    $pageSize = 20;
    if ($counts > 0) {
        $ftProcess = new Service_FtpReceiveProcess();

        $cmblApi = new Service_CMBLApiProcess();

        $pages = ceil($counts / $pageSize);
        for ($page = 1; $page <= $pages; $page++) {
            $sendList = Service_FtpMessageSendlist::getByCondition($receivingCondition, '*', $pageSize, $page, 'fml_id desc');
            //print_r($sendList);
            foreach ($sendList as $sendRow) {
                //print_r($sendList);
                //uploadRCustomerOrder($sendRow);
                //$aReceiving = Service_Receiving::getByField($sendRow['refercence_no'], 'receiving_code');
                $receivingXmlRow = Service_ReceivingXml::getByField($sendRow['refercence_no'], 'sub_receiving_code');
                $aReceiving = Service_Receiving::getByField($receivingXmlRow['receiving_code'], 'receiving_code');
                if (empty($aReceiving) || in_array($aReceiving['customer_code'], $aTestAccount)) {
                    //echo "测试账号的单[" . $sendRow['refercence_no'] . "]，不能发送\r\n";
                    continue;
                } else {
                    $cmblApi->uploadRCustomerOrder($sendRow);
                }
            }
        }
    }
    echo "[发送入区报文]全部处理完成\r\n";
} catch (Exception $e) {
    @unlink($flagFile);
    echo '[' . date('Y-m-d H:i:s') . '] Fail Exception:' . $e->getTraceAsString() . "\r\n";
}

echo "[" . date('Y-m-d H:i:s') . "] End run\r\n\r\n";
@unlink($flagFile);
