$notecontent = isset($_POST['pcontent']) ? $_POST['pcontent'] : ''; //强制拦截时输入拦截理由 add by guanyongjun 2013-09-17 if ($check_status == '2') { $notecontent = ",notecontent='{$notecontent}'"; } //审核检查 add by rdh 2013-11-04 if ($check_status == '1') { $realStore = 0; $needSend = 0; $orderSkuNum = 0; $sql = "select goods_count from ebay_onhandle where goods_sn='{$sku}' and store_id='76' "; $sql = $dbcon->execute($sql); $sql = $dbcon->getResultArray($sql); $realStore = $sql[0]['goods_count']; //实际库存 $needSend = getpartsaleandnosendall($sku, '76'); //待发货 $sql2 = "select ebay_amount from ebay_orderdetail where ebay_id='{$detail_id}' "; $sql2 = $dbcon->execute($sql2); $sql2 = $dbcon->getResultArray($sql2); $orderSkuNum = $sql2[0]['ebay_amount']; //订单数量 $diffNum = $realStore - $needSend - $orderSkuNum; if ($diffNum < 0) { $res['code'] = '002'; $res['data']['msg'] = "该料号的实际库存{$realStore} - 待发货{$needSend} 小于 订购数量{$orderSkuNum} 审核不通过!"; echo json_encode($res); return $res; exit; } }
/** * 缺货拦截,只拦截订单是否有货 * @eturn array 返回ordertype * @author lzx */ public function interceptOutOfStockOrder() { $record_details = array(); $orderStatus = $this->orderData['order']['orderStatus']; $orderType = $this->orderData['order']['orderType']; $accountId = $this->orderData['order']['accountId']; $transportId = $this->orderData['order']['transportId']; $countryName = $this->orderData['orderUserInfo']['countryName']; $username = $this->orderData['orderUserInfo']['username']; $orderDetail = $this->orderData['orderDetail']; foreach ($orderDetail as $detail) { $hava_goodscount = true; $sku = $detail['orderDetail']['sku']; $skuinfo = M("InterfacePc")->getSkuinfo($sku); /***筛选订单中的超大订单料号 Start ***/ foreach ($skuinfo['skuInfo'] as $or_sku => $skuinfoDetailValue) { $allnums = $skuinfoDetailValue['amount']; $salensend = getpartsaleandnosendall($or_sku, $defaultstoreid); //预留接口 //$sql = "UPDATE ebay_sku_statistics SET salensend = $salensend WHERE sku = '$or_sku' "; //$dbcon->execute($sql); //$log_data .= "[".date("Y-m-d H:i:s")."]\t---{$sql}\n\n"; //$log_data .= "订单===$ebay_id===料号==$or_sku===实际库存为{$skuinfo['realnums']}===B仓库库存为{$skuinfo['secondCount']}===需求量为{$allnums}===待发货数量为{$salensend}===\n"; $realnums = isset($skuinfo['realnums']) ? $skuinfo['realnums'] : 0; $secondCount = isset($skuinfo['secondCount']) ? $skuinfo['secondCount'] : 0; if (in_array($orderType, array(C('STATEOUTOFSTOCK_KD'), C('STATEOUTOFSTOCK_AO'), C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_BKD')))) { $remainNum = $realnums + $secondCount - $allnums - $salensend; } else { $remainNum = $realnums + $secondCount - $salensend; } if ($remainNum < 0) { $hava_goodscount = false; break; } } if ($hava_goodscount) { $record_details[] = $detail; } } $count_record_details = count($record_details); $count_orderdetaillist = count($orderDetail); //$orderType = $orderStatus; //原始状态 if ($count_record_details == 0) { //更新至自动拦截发货状态 if (!in_array($transportId, M("InterfaceTran")->getCarrierNameList(0, true))) { //非快递 $orderType = C('STATEOUTOFSTOCK_KD'); } else { $orderType = C('STATEOUTOFSTOCK_AO'); } return $orderType; } else { if ($count_record_details < $count_orderdetaillist) { //更新至自动部分发货状态 if (!in_array($transportId, M("InterfaceTran")->getCarrierNameList(0, true))) { $orderType = C('STATEOVERSIZEDORDERS_PEND'); if (in_array($accountId, $SYSTEM_ACCOUNTS['cndirect']) || in_array($accountId, $SYSTEM_ACCOUNTS['dresslink'])) { $orderType = C('STATEOUTOFSTOCK_BKD'); //add by Herman.Xi@20131202 部分包货料号订单进入 } } else { $orderType = C('STATEOUTOFSTOCK_PO'); } return $orderType; } else { if ($count_record_details == $count_orderdetaillist) { //正常发货状态 if (in_array($accountId, M('Account')->getAccountNameByPlatformId(1)) || in_array($accountId, M('Account')->getAccountNameByPlatformId(14))) { $status683 = false; if (in_array($countryName, array('Belarus', 'Brazil', 'Brasil', 'Argentina', 'Ukraine')) && str_word_count($username) < 2) { $status683 = true; } if ($status683) { $orderType = C('STATESYNCINTERCEPT_AD'); } if (in_array($orderType, array(C('STATEOUTOFSTOCK_KD'), C('STATEOUTOFSTOCK_AO'), C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_BKD'), C('STATESYNCINTERCEPT_NL')))) { //$orderType = 618;//ebay订单自动拦截有货不能移动到待处理和有留言 modified by Herman.Xi @ 20130325(移动到缺货需打印中) /*if($ebay_note != ''){ echo "有留言\t"; $orderType = 593; }else{*/ $orderType = C('STATESYNCINTERCEPT_QXP'); //} } else { /*if($ebay_note != ''){ echo "有留言\t"; $orderType = 593; }else{*/ $orderType = C('STATEPENDING_CONV'); //} } } else { if (in_array($accountId, M('Account')->getAccountNameByPlatformId(2))) { $orderType = C('STATEPENDING_ALIEXPRESS'); $status683 = false; if (in_array($countryName, array('Russian Federation', 'Russia')) && strpos($CarrierName, '中国邮政') !== false && str_word_count($username) < 2) { $status683 = true; } if (in_array($countryName, array('Belarus', 'Brazil', 'Brasil', 'Argentina', 'Ukraine')) && str_word_count($ebay_username) < 2) { $status683 = true; } if ($status683) { $orderType = C('STATESYNCINTERCEPT_AD'); } } else { if (in_array($accountId, M('Account')->getAccountNameByPlatformId(4))) { //aliexpress $orderType = C('STATEPENDING_DHGATE'); } else { if (in_array($accountId, M('Account')->getAccountNameByPlatformId(10))) { //dresslink.com $orderType = C('STATEPENDING_CONV'); } else { if (in_array($accountId, M('Account')->getAccountNameByPlatformId(8))) { //cndirect.com $orderType = C('STATEPENDING_CONV'); } else { if (in_array($accountId, M('Account')->getAccountNameByPlatformId(11))) { //Amazon if (in_array($orderType, array(C('STATEOUTOFSTOCK_KD'), C('STATEOUTOFSTOCK_AO'), C('STATEOUTOFSTOCK_PO'), C('STATEOUTOFSTOCK_BKD'), C('STATESYNCINTERCEPT_NL')))) { if (in_array($transportId, M("InterfaceTran")->getCarrierNameList(0, true))) { $orderType = C('STATESYNCINTERCEPT_QXP'); //modified by Herman.Xi @20131106 刘丽需要修改成缺货需打印中 } else { if ($CarrierName == 'FedEx') { $orderType = C('STATEPENDING_OFFLINE'); //modified by Herman.Xi @20131213 刘丽需要修改线下订单导入 } else { $orderType = C('STATEOVERSIZEDORDERS_TA'); //modified by Herman.Xi @20131119 刘丽需要修改成待打印线下和异常订单 } } } else { $orderType = C('STATEPENDING_CONV'); } } else { $orderType = C('STATEPENDING_CONV'); } } } } } } return $orderType; } } } return false; }
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(); } }