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'); }
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(); } }