public function view_dresslinkOrderImport()
 {
     include_once WEB_PATH . "lib/PHPExcel.php";
     //phpexcel
     include_once WEB_PATH . "conf/scripts/script.ebay.config.php";
     $toptitle = 'dresslink线下订单导入';
     //头部title
     $this->smarty->assign('toptitle', $toptitle);
     $this->smarty->assign('toplevel', 2);
     $this->smarty->assign('secondlevel', 210);
     $OmAccountAct = new OmAccountAct();
     $dresslinkAccountList = $OmAccountAct->act_dresslinkaccountAllList();
     //$dresslinkAccountList = array(array('id'=>8,'account'=>'dresslink.com'),array('id'=>10,'account'=>'cndirect.com'));
     $this->smarty->assign("dresslinkAccountList", $dresslinkAccountList);
     if (isset($_FILES['cndlFile']['tmp_name']) && isset($_POST['cndlAccount'])) {
         $filePath = $_FILES['cndlFile']['tmp_name'];
         $account = $_POST['cndlAccount'];
         $PHPExcel = new PHPExcel();
         $PHPReader = new PHPExcel_Reader_Excel2007();
         if (!$PHPReader->canRead($filePath)) {
             $PHPReader = new PHPExcel_Reader_Excel5();
             if (!$PHPReader->canRead($filePath)) {
                 echo 'no Excel';
                 return;
             }
         }
         $PHPExcel = $PHPReader->load($filePath);
         $currentSheet = $PHPExcel->getSheet(0);
         $allRow = $currentSheet->getHighestRow();
         /**从第二行开始输出,因为excel表中第一行为列名*/
         /**取得最大的列号*/
         $allColumn = $currentSheet->getHighestColumn();
         $orderData = array();
         $cndlAccounts = array();
         $transportation = CommonModel::getCarrierList();
         //所有的
         $transportationList = array();
         foreach ($transportation as $tranValue) {
             $transportationList[$tranValue['id']] = $tranValue['carrierNameCn'];
         }
         //账号对应
         foreach ($dresslinkAccountList as $accounts) {
             $cndlAccounts[$accounts['id']] = $accounts['account'];
         }
         $c = 2;
         $dresslinks = array();
         $ebay_fedex_remark = array();
         $ChineseDescs = array();
         for ($c = 2; $c <= $allRow; $c++) {
             $aa = 'A' . $c;
             $bb = 'B' . $c;
             $cc = 'C' . $c;
             $dd = 'D' . $c;
             $ee = 'E' . $c;
             $ff = 'F' . $c;
             $gg = 'G' . $c;
             $hh = 'H' . $c;
             $ii = 'I' . $c;
             $jj = 'J' . $c;
             $kk = 'K' . $c;
             $ll = 'L' . $c;
             $mm = 'M' . $c;
             $nn = 'N' . $c;
             $oo = 'O' . $c;
             $pp = 'P' . $c;
             $qq = 'Q' . $c;
             $rr = 'R' . $c;
             $ss = 'S' . $c;
             $tt = 'T' . $c;
             $uu = 'U' . $c;
             $vv = 'V' . $c;
             $ww = 'W' . $c;
             $xx = 'X' . $c;
             $yy = 'Y' . $c;
             $zz = 'Z' . $c;
             $aaa = 'AA' . $c;
             $abb = 'AB' . $c;
             $acc = 'AC' . $c;
             $add = 'AD' . $c;
             $aee = 'AE' . $c;
             $aff = 'AF' . $c;
             $agg = 'AG' . $c;
             $ahh = 'AH' . $c;
             $aii = 'AI' . $c;
             $ajj = 'AJ' . $c;
             $akk = 'AK' . $c;
             $all = 'AL' . $c;
             $amm = 'AM' . $c;
             $ann = 'AN' . $c;
             $aww = 'AW' . $c;
             $recordnumber = trim($currentSheet->getCell($aa)->getValue());
             //订单号
             $recordNumber = $recordnumber;
             $is_order = intval($currentSheet->getCell($bb)->getValue());
             //1代表为订单,0代表订单明细
             if (empty($recordnumber)) {
                 $message .= "<font color=red> 第{$c}行recordnumber为空!</font><br>";
                 break;
             }
             /***************判断订单是否已存在***************/
             $where = "where recordnumber='{$recordnumber}'";
             $orderinfo = cndlModel::selectOrder($where);
             if ($orderinfo) {
                 if ($is_order != 0) {
                     $message .= "<font color='blue'>订单 {$recordnumber}已存在!</font><br>";
                 }
                 continue;
             }
             /**************/
             if ($is_order != 0) {
                 if ($cndlAccounts[$account] == "dresslink.com") {
                     $str = substr($recordnumber, 0, 2);
                     if ($str !== "DL") {
                         $message .= "<font color=red> {$recordnumber}不在账号{$cndlAccounts[$account]}中!</font><br>";
                         continue;
                     }
                 } elseif ($cndlAccounts[$account] == "cndirect.com") {
                     $str = substr($recordnumber, 0, 2);
                     if ($str !== "CN") {
                         $message .= "<font color=red> {$recordnumber}不在账号{$cndlAccounts[$account]}中!</font><br>";
                         continue;
                     }
                 }
                 $platformUsername = mysql_real_escape_string(trim($currentSheet->getCell($cc)->getValue()));
                 $email = mysql_real_escape_string(trim($currentSheet->getCell($dd)->getValue()));
                 $transId = mysql_real_escape_string(trim($currentSheet->getCell($ee)->getValue()));
                 $ordersTime = (array) PHPExcel_Shared_Date::ExcelToPHPObject(trim($currentSheet->getCell($ll)->getValue()));
                 $paymentTime = (array) PHPExcel_Shared_Date::ExcelToPHPObject(trim($currentSheet->getCell($mm)->getValue()));
                 $shippingFee = round_num(trim($currentSheet->getCell($oo)->getValue()), 2);
                 $calcWeight = round_num(trim($currentSheet->getCell($ahh)->getValue()), 3);
                 $actualTotal = round_num(trim($currentSheet->getCell($pp)->getValue()), 2);
                 $onlineTotal = round_num(trim($currentSheet->getCell($aff)->getValue()), 2);
                 $currency = mysql_real_escape_string(trim($currentSheet->getCell($qq)->getValue()));
                 //$orders['ebay_orderqk'] = round_num(trim($currentSheet->getCell($rr)->getValue()), 2);
                 $note = mysql_real_escape_string(trim($currentSheet->getCell($ss)->getValue()));
                 $username = mysql_real_escape_string(trim($currentSheet->getCell($tt)->getValue()));
                 $countryName = mysql_real_escape_string(trim($currentSheet->getCell($uu)->getValue()));
                 $state = mysql_real_escape_string(trim($currentSheet->getCell($vv)->getValue()));
                 $city = mysql_real_escape_string(trim($currentSheet->getCell($ww)->getValue()));
                 $street = mysql_real_escape_string(trim($currentSheet->getCell($xx)->getValue()));
                 $address2 = mysql_real_escape_string(trim($currentSheet->getCell($yy)->getValue()));
                 $zipCode = mysql_real_escape_string(trim($currentSheet->getCell($zz)->getValue()));
                 $phone = mysql_real_escape_string(trim($currentSheet->getCell($abb)->getValue()));
                 $landline = mysql_real_escape_string(trim($currentSheet->getCell($aaa)->getValue()));
                 if ($account == "dresslink.com") {
                     $feedback = mysql_real_escape_string(trim($currentSheet->getCell($ann)->getValue()));
                 } elseif ($account == "cndirect.com") {
                     $feedback = mysql_real_escape_string(trim($currentSheet->getCell($akk)->getValue()));
                 }
                 $carrierNameCn = strtolower(mysql_real_escape_string(trim($currentSheet->getCell($kk)->getValue())));
                 $carrierNameCn = cndlModel::carrier($carrierNameCn);
                 $payment_method = mysql_real_escape_string(trim($currentSheet->getCell($ff)->getValue()));
                 $payment_module = mysql_real_escape_string(trim($currentSheet->getCell($gg)->getValue()));
                 $bank_account = mysql_real_escape_string(trim($currentSheet->getCell($hh)->getValue()));
                 $bank_country = mysql_real_escape_string(trim($currentSheet->getCell($ii)->getValue()));
                 $shipping_method = mysql_real_escape_string(trim($currentSheet->getCell($jj)->getValue()));
                 $shipping_module = mysql_real_escape_string(trim($currentSheet->getCell($kk)->getValue()));
                 $dresslinks['payment_method'] = $payment_method;
                 $dresslinks['payment_module'] = $payment_module;
                 $dresslinks['bank_account'] = $bank_account;
                 $dresslinks['bank_country'] = $bank_country;
                 $dresslinks['shipping_method'] = $shipping_method;
                 $dresslinks['shipping_module'] = $shipping_module;
                 $PayPalPaymentId = $transId;
                 /***************BEGIN 订单表数据***************/
                 $orderData[$recordNumber]['orderData']['recordNumber'] = $recordnumber;
                 if ($cndlAccounts[$account] == "dresslink.com") {
                     $orderData[$recordNumber]['orderData']['platformId'] = 10;
                     $orderData[$recordNumber]['orderData']['accountId'] = $account;
                 } elseif ($cndlAccounts[$account] == "cndirect.com") {
                     $orderData[$recordNumber]['orderData']['platformId'] = 8;
                     $orderData[$recordNumber]['orderData']['accountId'] = $account;
                 }
                 $orderData[$recordNumber]['orderData']['orderStatus'] = C('STATEPENDING');
                 $orderData[$recordNumber]['orderData']['orderType'] = C('STATEPENDING_INITIAL');
                 $orderData[$recordNumber]['orderData']['ordersTime'] = strtotime($ordersTime['date']);
                 //平台下单时间
                 $orderData[$recordNumber]['orderData']['paymentTime'] = strtotime($paymentTime['date']);
                 $orderData[$recordNumber]['orderData']['onlineTotal'] = $onlineTotal;
                 //线上总金额
                 $orderData[$recordNumber]['orderData']['actualTotal'] = $actualTotal;
                 //付款总金额
                 $orderData[$recordNumber]['orderData']['isFixed'] = 1;
                 $orderData[$recordNumber]['orderData']['calcShipping'] = $shippingFee;
                 //物流费用
                 $orderData[$recordNumber]['orderData']['orderAddTime'] = time();
                 $orderData[$recordNumber]['orderData']['isNote'] = empty($note) ? 0 : 1;
                 foreach ($transportation as $tranValue) {
                     if ($tranValue['carrierNameCn'] == $carrierNameCn) {
                         $orderData[$recordNumber]['orderData']['transportId'] = $tranValue['id'];
                         //运输方式id
                         break;
                     }
                 }
                 /***************END 订单表数据***************/
                 /***************BEGIN 订单扩展表数据***************/
                 $orderData[$recordNumber]['orderExtenData']['paymentStatus'] = "Complete";
                 $orderData[$recordNumber]['orderExtenData']['transId'] = $transId;
                 $orderData[$recordNumber]['orderExtenData']['PayPalPaymentId'] = $PayPalPaymentId;
                 $orderData[$recordNumber]['orderExtenData']['paymentMethod'] = $payment_method;
                 $orderData[$recordNumber]['orderExtenData']['paymentModule'] = $payment_module;
                 $orderData[$recordNumber]['orderExtenData']['shippingMethod'] = $shipping_method;
                 $orderData[$recordNumber]['orderExtenData']['ShippingModule'] = $shipping_module;
                 $orderData[$recordNumber]['orderExtenData']['currency'] = $currency;
                 $orderData[$recordNumber]['orderExtenData']['feedback'] = $feedback;
                 //客户留言
                 /***************END 订单扩展表数据***************/
                 /***************BEGIN 订单用户表数据***************/
                 $orderData[$recordNumber]['orderUserInfoData']['username'] = $username;
                 $orderData[$recordNumber]['orderUserInfoData']['platformUsername'] = $platformUsername;
                 $orderData[$recordNumber]['orderUserInfoData']['email'] = $email;
                 $orderData[$recordNumber]['orderUserInfoData']['countryName'] = $countryName;
                 $orderData[$recordNumber]['orderUserInfoData']['currency'] = $currency;
                 $orderData[$recordNumber]['orderUserInfoData']['state'] = $state;
                 // 省
                 $orderData[$recordNumber]['orderUserInfoData']['city'] = $city;
                 // 市
                 $orderData[$recordNumber]['orderUserInfoData']['street'] = $street;
                 $orderData[$recordNumber]['orderUserInfoData']['address2'] = $address2;
                 $orderData[$recordNumber]['orderUserInfoData']['landline'] = $landline;
                 // 座机电话
                 $orderData[$recordNumber]['orderUserInfoData']['phone'] = $phone;
                 // 手机
                 $orderData[$recordNumber]['orderUserInfoData']['zipCode'] = $zipCode;
                 // 邮编
                 /*************END 订单用户表数据***************/
                 //note信息
                 if (!empty($note)) {
                     $orderData[$recordNumber]['orderNote'][$c]['content'] = $note;
                     $orderData[$recordNumber]['orderNote'][$c]['userId'] = $_SESSION['sysUserId'];
                 }
             } else {
                 $sku = mysql_real_escape_string(trim($currentSheet->getCell($acc)->getValue()));
                 $itemTitle = mysql_real_escape_string(trim($currentSheet->getCell($add)->getValue()));
                 $itemPrice = round_num(trim($currentSheet->getCell($aff)->getValue()), 2);
                 $amount = intval(trim($currentSheet->getCell($agg)->getValue()));
                 $shipingfee = round_num(trim($currentSheet->getCell($ahh)->getValue()), 2);
                 /***************BEGIN 订单详细数据***************/
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']['recordNumber'] = $recordnumber;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']['sku'] = $sku;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']['itemPrice'] = $itemPrice;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']['amount'] = $amount;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']["shippingFee"] = $shipingfee;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailData']['createdTime'] = time();
                 /*************END 订单详细数据***************/
                 /***************BEGIN 订单详细扩展表数据***************/
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailExtenData']['itemTitle'] = $itemTitle;
                 $orderData[$recordNumber]['orderDetail'][$c]['orderDetailExtenData']['transId'] = $transId;
                 //$orderData['orderDetail']['orderDetailExtenData']['note'] = $value[10];
                 $categoryName = trim($currentSheet->getCell($ajj)->getValue());
                 $customCode = trim($currentSheet->getCell($akk)->getValue());
                 $material = trim($currentSheet->getCell($all)->getValue());
                 $ShenBaoQuantity = trim($currentSheet->getCell($amm)->getValue());
                 $ShenBaoUnitPrice = trim($currentSheet->getCell($ann)->getValue());
                 $ChineseDesc = trim($currentSheet->getCell($aww)->getValue());
                 //$salePrice						   =	round_num(mysql_real_escape_string(trim($detail['SalePrice'])), 2);	//实际SKU付款价
                 /*************END 订单详细扩展表数据***************/
                 $ebay_fedex_remark[$recordNumber][$categoryName][] = array('real_price' => $ShenBaoUnitPrice, 'qty' => $ShenBaoQuantity, 'hamcodes' => $customCode, 'detail' => $material);
                 $orderData[$recordNumber]['fedexRemark'] = $ebay_fedex_remark[$recordNumber];
                 $orderData[$recordNumber]['dresslinkInfo'] = $dresslinks;
                 $ChineseDescs[$recordNumber][$categoryName] = $ChineseDesc;
             }
         }
         if ($orderData) {
             foreach ($orderData as $id => $order) {
                 $msg = commonModel::checkOrder($id);
                 if ($msg) {
                     $message .= "<font color='red'>订单{$id}已存在!</font><br>";
                     continue;
                 }
                 //计算订单属性
                 if (count($order['orderDetail']) == 1) {
                     $detail = current($order['orderDetail']);
                     if ($detail['orderDetailData']['amount'] == 1) {
                         $orderData[$id]['orderData']['orderAttribute'] = 1;
                     } else {
                         $orderData[$id]['orderData']['orderAttribute'] = 2;
                     }
                 } else {
                     $orderData[$id]['orderData']['orderAttribute'] = 3;
                 }
                 //计算订单重量及包材
                 $obj_order_detail_data = array();
                 foreach ($order['orderDetail'] as $sku => $detail) {
                     $obj_order_detail_data[] = $detail['orderDetailData'];
                 }
                 $weightfee = commonModel::calcOrderWeight($obj_order_detail_data);
                 $orderData[$id]['orderData']['calcWeight'] = $weightfee[0];
                 $orderData[$id]['orderData']['pmId'] = $weightfee[1];
                 //计算运费
                 $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, $orderData[$id]['orderData']['isFixed']);
                 //计算运费
                 $orderData[$id]['orderData']['channelId'] = $calcShippingInfo['fee']['channelId'];
                 $orderData[$id]['orderData']['calcShipping'] = $calcShippingInfo['fee'];
                 $ChineseDescs_arr = array_filter(array_unique($ChineseDescs[$id]));
                 $orderData[$id]['orderNote'] = array('content' => join(' ', $ChineseDescs_arr), 'userId' => $_SESSION['sysUserId'], 'createdTime' => time());
                 /*//缺货拦截
                 		$orderData[$id] = AutoModel :: auto_contrast_intercept($orderData[$id]);
                 		//$orderData[$id] = cndlModel :: auto_contrast_intercept($orderData[$id]);*/
                 //插入订单OrderAddModel::insertAllOrderRow($orderData[$id],'cndl');
                 //调用旧系统接口,先插入数据到旧系统
                 //echo "<pre>"; var_dump($orderData[$id]); exit;
                 $rtn = OldsystemModel::orderErpInsertorder($orderData[$id]);
                 //echo "<pre>";print_r($rtn);exit;
                 $insertData = array();
                 if (empty($rtn)) {
                     $message .= "<font color='red'>订单{$id}同步ERP发生异常,跳过!</font><br>";
                     continue;
                 }
                 if ($rtn['errcode'] == 200) {
                     $rtn_data = $rtn['data'];
                     $orderId = $rtn_data['orderId'];
                     $message .= "<font color='green'>插入老系统成功,订单编号 [{$orderId}]</font><br>";
                     $pmId = $rtn_data['pmId'];
                     $totalweight = $rtn_data['totalweight'];
                     $shipfee = $rtn_data['shipfee'];
                     $carrier = $rtn_data['carrier'];
                     $carrierId = $rtn_data['carrierId'];
                     $status = $rtn_data['status'];
                     $orderData[$id]['orderData']['id'] = $orderId;
                     //赋予新系统订单编号,一切数据已老系统返回的为准
                     if ($orderData[$id]['orderData']['calcWeight'] != $totalweight) {
                         $insertData['old_totalweight'] = $totalweight;
                         $insertData['new_totalweight'] = $orderData[$id]['orderData']['calcWeight'];
                         $orderData[$id]['orderData']['calcWeight'] = $totalweight;
                     }
                     if ($orderData[$id]['orderData']['pmId'] != $pmId) {
                         $insertData['old_pmId'] = $pmId;
                         $insertData['new_pmId'] = $orderData[$id]['orderData']['pmId'];
                         $orderData[$id]['orderData']['pmId'] = $pmId;
                     }
                     if ($orderData[$id]['orderData']['calcShipping'] != $shipfee) {
                         $insertData['old_shippfee'] = $shipfee;
                         $insertData['new_shippfee'] = $orderData[$id]['orderData']['calcShipping'];
                         $orderData[$id]['orderData']['calcShipping'] = $shipfee;
                     }
                     if ($orderData[$id]['orderData']['transportId'] != $carrierId) {
                         $insertData['old_carrierId'] = $carrierId;
                         $insertData['new_carrierId'] = $orderData[$id]['orderData']['transportId'];
                         $orderData[$id]['orderData']['transportId'] = $carrierId;
                     }
                     if (!empty($insertData)) {
                         $insertData['ebay_id'] = $orderId;
                         $insertData['addtime'] = time();
                         OldsystemModel::insertTempSyncRecords($insertData);
                         // 插入临时对比记录表
                     }
                     //缺货拦截
                     $orderData[$id] = AutoModel::auto_contrast_intercept($orderData[$id]);
                     //插入订单
                     $info = OrderAddModel::insertAllOrderRowNoEvent($orderData[$id]);
                     if ($info) {
                         $dresslinkinfos = $orderData[$id]['dresslinkInfo'];
                         $dresslinkinfos['omOrderId'] = $orderId;
                         if (DresslinkinfoModel::insertDresslinkinfoList($dresslinkinfos)) {
                             $message .= "<font color='green'>订单{$id}上传dresslinkInfo成功!</font><br>";
                         } else {
                             $message .= "<font color='red'>订单{$id}上传dresslinkInfo失败!</font><br>";
                         }
                         $message .= "<font color='green'>新系统订单{$id}添加成功!</font><br>";
                     } else {
                         $message .= "<font color='red'>新系统订单{$id}添加失败!</font><br>";
                     }
                 } else {
                     $message .= "<font color='red'>添加失败,原因为:{$rtn['msg']}!</font><br>";
                 }
                 if ($orderId) {
                     foreach ($ebay_fedex_remark[$id] as $k => $v) {
                         $fedex_remark = array();
                         $fedex_remark['description'] = trim("[No Brand]" . $k . "{$v[0]['detail']}");
                         if (in_array($transportationList[$order['orderData']['transportId']], array('FedEx'))) {
                             //$fedex_remark['description'] = "[No Brand]". $k."({$v[0]['detail']})";
                             $fedex_remark['type'] = 1;
                         } else {
                             if (in_array($transportationList[$order['orderData']['transportId']], array('DHL', 'EMS', 'UPS美国专线'))) {
                                 //$fedex_remark['description'] = trim($k);
                                 $fedex_remark['type'] = 2;
                             } else {
                                 continue;
                             }
                         }
                         $sku_price = 0;
                         $qty = 0;
                         foreach ($v as $v0) {
                             $sku_price += $v0['real_price'];
                             $qty += $v0['qty'];
                         }
                         //$fedex_remark['ebay_ordersn'] 	= $order['ebay_ordersn'];
                         $fedex_remark['price'] = round($sku_price / $qty, 2);
                         $fedex_remark['amount'] = $qty;
                         $fedex_remark['hamcodes'] = $v[0]['hamcodes'];
                         if (in_array($transportationList[$order['orderData']['transportId']], array('DHL', 'EMS', 'UPS美国专线'))) {
                             $fedex_remark['price'] = round($sku_price, 2);
                         }
                         $fedex_remark['createdTime'] = time();
                         $fedex_remark['omOrderId'] = $orderId;
                         $fedex_remark['creatorId'] = $_SESSION['sysUserId'];
                         //$insert_fedex_sql = "INSERT INTO fedex_remark set ".array2sql($fedex_remark);
                         $info = OmAvailableModel::insertRow("om_express_remark", " set " . array2sql_bak($fedex_remark));
                         if ($info) {
                             $message .= "<font color=green> {$id} 导入海关记录成功!</font><br>";
                             //echo "----<font color=green> {$order['recordnumber']} 导入海关记录成功!</font><br>";
                         } else {
                             //echo $insert_fedex_sql; echo "<br>";
                             $message .= "<font color=green> {$id} 导入海关记录失败!</font><br>";
                             //echo "----<font color=red>{$order['recordnumber']} 导入海关记录失败!</font><br>";
                             //$fail_order[] = $order['orderData']['recordnumber'];
                         }
                     }
                 }
             }
         }
         $this->smarty->assign("showerrorinfo", $message);
     }
     $this->smarty->display('dresslinkOrderImport.htm');
 }
Example #2
0
function function_split_partinterpet($ebay_orders)
{
    //自动部分包货拦截,超过半天的库存有的拆分出来
    //add Herman.Xi 2013-03-15
    /* 海外销售
    	我这边两个或者两个以上SKU有货的,请拆分有货的发货(雷贤容)
    	*/
    /* B2B
    	1、两个SKU以上有货就拆分出来发货
    	2、拆分订单,导出销售数据时需标记拆分订单(ebay的数据导出有这个,麻烦确认此规则B2B这边是否有实现?之前我们都没有用自动拆分订单的)
    	3、拆分订单的订单金额B2B这边不根据货本分摊,请只把订单金额保留在主订单/被拆分订单上,拆分订单的金额显示为0,此规则参照B2B复制订单规则(ebay那边维持现有的拆分规则不做改动)。
    	*/
    /*
    ebay
    chenxiaoxia(陈小霞) 2013-03-11 23:29:31
    有货就发
    */
    global $dbcon, $user, $defaultstoreid, $order_statistics, $SYSTEM_ACCOUNTS;
    /*include_once '/data/scripts/ebay_order_cron_job/config_row/config_database_row_master.php';
    	unset($dbcon);
    	$dbcon	= new DBClass();*/
    //$express_delivery = array('UPS','DHL','TNT','EMS','FedEx');
    $no_express_delivery = array('中国邮政平邮', '中国邮政挂号', '香港小包平邮', '香港小包挂号', '德国邮政挂号', '新加坡小包挂号', 'EUB', 'Global Mail', '俄速通平邮', '俄速通挂号');
    //echo count($ebay_orders); echo "\n";
    foreach ($ebay_orders as $ebay_order) {
        $log_data = "";
        //日志记录
        $ebay_id = $ebay_order['ebay_id'];
        $order_sn = $ebay_order['ebay_ordersn'];
        $ebay_status = $ebay_order['ebay_status'];
        //$ebay_status = $ebay_order['ebay_status'];
        $ebay_note = $ebay_order['ebay_note'];
        $ebay_carrier0 = $ebay_order['ebay_carrier'];
        //原订单运输方式
        $ebay_tracknumber = $ebay_order['ebay_tracknumber'];
        if ($ebay_carrier0 == 'EUB' && empty($ebay_tracknumber) && (in_array($ebay_account, $SYSTEM_ACCOUNTS['ebay平台']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['海外销售平台']))) {
            $log_data .= " 自动部分发货订单 {$ebay_id} 运输方式为 EUB 需要先申请跟踪号才能进行 不能进行拆分操作,直接过滤!\n";
            continue;
        }
        $ebay_countryname = $ebay_order['ebay_countryname'];
        $ebay_account = $ebay_order['ebay_account'];
        $recordorder = 'order' . $ebay_id;
        if (isset(${$recordorder})) {
            $log_data .= " 自动部分发货订单 {$ebay_id} 已经有拆分操作,PHP直接过滤!\n";
            continue;
        }
        $sql = "SELECT * FROM ebay_splitorder WHERE main_order_id = '{$ebay_id}' and mode = 5 ";
        $sql = $dbcon->execute($sql);
        //var_dump($dbcon->error);
        $epNums = $dbcon->num_rows($sql);
        if ($epNums > 0) {
            continue;
        }
        $dbcon->error = '';
        $sql = "SELECT sku,ebay_amount FROM ebay_orderdetail WHERE ebay_ordersn='{$order_sn}'";
        $result = $dbcon->execute($sql);
        $orderdetaillist = $dbcon->getResultArray($result);
        $part_intercept = array();
        foreach ($orderdetaillist as $orderdetail) {
            $sku_arr = get_realskuinfo($orderdetail['sku']);
            $hava_goodscount = true;
            foreach ($sku_arr as $or_sku => $or_nums) {
                $allnums = $or_nums * $orderdetail['ebay_amount'];
                $skuinfo = get_sku_info($or_sku);
                $salensend = getpartsaleandnosendall($or_sku, $defaultstoreid);
                if (!isset($skuinfo['realnums']) && !isset($skuinfo['secondCount']) || $skuinfo['realnums'] + $skuinfo['secondCount'] - $salensend - $allnums < 0) {
                    //if(!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || (($skuinfo['realnums'] - $salensend - $allnums) < 0)){
                    $hava_goodscount = false;
                    break;
                }
            }
            if ($hava_goodscount) {
                $part_intercept['yes'][] = $orderdetail['sku'];
                //部分有货
            } else {
                $part_intercept['no'][] = $orderdetail['sku'];
                //部分没货
            }
        }
        if (in_array($ebay_status, array('660'))) {
            //自动部分包货非快递拆分处理
            if (!in_array($ebay_carrier0, $no_express_delivery)) {
                continue;
            }
            if (isset($part_intercept['yes']) && isset($part_intercept['no']) && count($part_intercept['yes']) < count($orderdetaillist) && count($part_intercept['no']) < count($orderdetaillist)) {
                if (in_array($ebay_account, $SYSTEM_ACCOUNTS['ebay平台'])) {
                    echo "\n===========" . $ebay_id . "============\n";
                    echo "\n-------ebay--------\n";
                    //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                    //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                    if (count($part_intercept['yes']) > 0) {
                        //有货的等于或者超过1个
                        $all_weight = array();
                        $all_ebay_id = array();
                        $all_ebay_total = array();
                        $insertarr = $ebay_order;
                        unset($insertarr['ebay_id']);
                        if ($ebay_carrier0 != 'EUB') {
                            unset($insertarr['ebay_tracknumber']);
                        }
                        $new_ordersn = generateOrdersn();
                        $insertarr['ebay_ordersn'] = $new_ordersn;
                        $insertarr['ebay_status'] = 618;
                        $insertarr['ebay_addtime'] = time();
                        $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                        $dbcon->execute($sql);
                        $insert_ebay_id = $dbcon->insert_id();
                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                        $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                        $result = $dbcon->execute($sql);
                        $orderdetails = $dbcon->getResultArray($result);
                        $total_moneny = '';
                        $ebay_total = 0;
                        foreach ($orderdetails as $orderdetail) {
                            if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                $insertarr = $orderdetail;
                                unset($orderdetail['ebay_id']);
                                $orderdetail['ebay_ordersn'] = $new_ordersn;
                                $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                if ($dbcon->execute($sql)) {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                } else {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                }
                            }
                        }
                        //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                        $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                        $all_weight[] = $totalweight;
                        $all_ebay_id[] = $insert_ebay_id;
                        $all_ebay_total[] = $ebay_total;
                        if (count($part_intercept['no']) > 0) {
                            //没货的
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 661;
                            //自动拦截非快递
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                        }
                        echo "重量\n";
                        print_r($all_weight);
                        echo "\n";
                        echo "价格\n";
                        print_r($all_ebay_total);
                        echo "\n";
                        echo "ids\n";
                        print_r($all_ebay_id);
                        echo "\n";
                        foreach ($all_ebay_id as $i => $v) {
                            //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                            //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                            $fees = calcshippingfee($all_weight[$i], $ebay_countryname, $all_ebay_id[$i], $ebay_account, $all_ebay_total[$i]);
                            $ebay_carrier = $fees[0];
                            $shipfee = $fees[1];
                            //$totalweight	= $fees[2];
                            echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                            $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}' ,ebay_carrier = '{$ebay_carrier}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                            $dbcon->execute($bb);
                            $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                            $dbcon->execute($sql);
                        }
                        /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                        			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                        			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                        			$dbcon->execute($sql);
                        		}*/
                        ${$recordorder} = true;
                        if (count($all_ebay_id) == 2) {
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 是原订单 移动到回收站中!\n";
                            if ($ebay_carrier0 != 'EUB') {
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                            } else {
                                //modified by Herman.Xi @20140517 EUB原订单拆分需要取消跟踪号
                                $sql = "update ebay_order set ebay_status = '615',ebay_tracknumber='' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                            }
                            $dbcon->execute($sql);
                        }
                    }
                } else {
                    if (in_array($ebay_account, $SYSTEM_ACCOUNTS['海外销售平台'])) {
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------海外销售--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 1) {
                            //有货的等于或者超过2个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            if ($ebay_carrier0 != 'EUB') {
                                unset($insertarr['ebay_tracknumber']);
                            }
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 618;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 661;
                                //自动拦截非快递
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $v);
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}' ,packingtype ='{$ebay_packingmaterial}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values ('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            if ($all_weight[0] > 2) {
                                //拆分之后的有货订单自动跳转到超重订单中
                                $sql = "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递有货订单 {$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                                $dbcon->execute($sql);
                            }
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                //拆分订单完全
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递订单 {$ebay_id} 是原订单 移动到回收站中!\n";
                                if ($ebay_carrier0 != 'EUB') {
                                    $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                    // 原来的订单隐藏
                                } else {
                                    //modified by Herman.Xi @20140517 EUB原订单拆分需要取消跟踪号
                                    $sql = "update ebay_order set ebay_status = '615',ebay_tracknumber='' where ebay_id ='{$ebay_id}' ";
                                    // 原来的订单隐藏
                                }
                                $dbcon->execute($sql);
                            }
                        }
                    } elseif (in_array($ebay_account, $SYSTEM_ACCOUNTS['dresslink']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['cndirect'])) {
                        $now = time();
                        $ebay_addtime = $ebay_order['ebay_addtime'];
                        if ($now - $ebay_addtime < 2 * 24 * 3600) {
                            continue;
                            //小于2天跳过
                        }
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------独立商城--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 0) {
                            //有货的等于或者超过1个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 660;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $total_moneny = '';
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 614;
                                //
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $all_ebay_id[$i]);
                                //$ebay_carrier	= $fees[0];
                                //$shipfee		= $fees[1];
                                //$totalweight	= $fees[2];
                                echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                            			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                            			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                            			$dbcon->execute($sql);
                            		}*/
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 是原订单 移动到回收站中!\n";
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                                $dbcon->execute($sql);
                            }
                        }
                    }
                }
            } else {
                $log_data .= "{$ebay_id} 部分缺货非快递 拆分统计有误,请核实!\n";
            }
        } else {
            if (in_array($ebay_status, array('659'))) {
                //自动部分包货快递拆分处理
                if (in_array($ebay_carrier0, $no_express_delivery)) {
                    continue;
                }
                if (isset($part_intercept['yes']) && isset($part_intercept['no']) && count($part_intercept['yes']) < count($orderdetaillist) && count($part_intercept['no']) < count($orderdetaillist)) {
                    if (in_array($ebay_account, $SYSTEM_ACCOUNTS['dresslink']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['cndirect'])) {
                        $now = time();
                        $ebay_addtime = $ebay_order['ebay_addtime'];
                        if ($now - $ebay_addtime < 2 * 24 * 3600) {
                            continue;
                            //小于2天跳过
                        }
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------独立商城--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 0) {
                            //有货的等于或者超过1个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 641;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $total_moneny = '';
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            $sql = "select * from fedex_remark where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $fedexremarks = $dbcon->getResultArray($result);
                            //$total_moneny = '';
                            //$ebay_total = 0;
                            foreach ($fedexremarks as $fedexremark) {
                                //if(in_array($orderdetail['sku'], $part_intercept['yes'])){
                                //$ebay_total += $orderdetail['ebay_itemprice']*$orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                $insertarr = $fedexremark;
                                unset($insertarr['id']);
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['datetime'] = date('Y-m-d H:i:s', time());
                                //$total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                $sql = "INSERT INTO fedex_remark SET " . array2sql_bak($insertarr);
                                if ($dbcon->execute($sql)) {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述成功!\n";
                                } else {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述失败--{$sql}\n";
                                }
                                //}
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 682;
                                //
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                $sql = "select * from fedex_remark where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $fedexremarks = $dbcon->getResultArray($result);
                                //$total_moneny = '';
                                //$ebay_total = 0;
                                foreach ($fedexremarks as $fedexremark) {
                                    //if(in_array($orderdetail['sku'], $part_intercept['yes'])){
                                    //$ebay_total += $orderdetail['ebay_itemprice']*$orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $fedexremark;
                                    unset($insertarr['id']);
                                    $insertarr['ebay_ordersn'] = $new_ordersn;
                                    $insertarr['datetime'] = date('Y-m-d H:i:s', time());
                                    //$total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO fedex_remark SET " . array2sql_bak($insertarr);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述失败--{$sql}\n";
                                    }
                                    //}
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $all_ebay_id[$i]);
                                //$ebay_carrier	= $fees[0];
                                //$shipfee		= $fees[1];
                                //$totalweight	= $fees[2];
                                echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                            			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                            			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                            			$dbcon->execute($sql);
                            		}*/
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 是原订单 移动到回收站中!\n";
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                                $dbcon->execute($sql);
                            }
                        }
                    }
                } else {
                    $log_data .= "{$ebay_id} 部分缺货非快递 拆分统计有误,请核实!\n";
                }
            }
        }
        if (!empty($log_data)) {
            write_scripts_log('auto_contrast_intercept', $ebay_account, $log_data);
        }
        //$dbcon->close();
    }
}