function special_calcfee($orderid, $ebay_total) { global $dbcon, $__liquid_items_postbyhkpost, $__liquid_items_postbyfedex, $__liquid_items_cptohkpost, $__elecsku_countrycn_array, $__liquid_items_elecsku, $global_countrycn_coutryen, $SYSTEM_ACCOUNTS, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste; $shippment_hkpost_directly = false; $shippment_fedex_directly = false; $shippment_cptohkpost = false; $shippment_elec_directly = false; $shipping = array(); $sql = "select ebay_ordersn,ebay_account,ebay_countryname,ebay_postcode from ebay_order where ebay_id ={$orderid}"; $sql = $dbcon->execute($sql); $orderinfo = $dbcon->getResultArray($sql); $ebay_account = $orderinfo[0]['ebay_account']; $ebay_countryname = $orderinfo[0]['ebay_countryname']; $sql = "select sku from ebay_orderdetail where ebay_ordersn ='{$orderinfo[0]['ebay_ordersn']}'"; $sql = $dbcon->execute($sql); $orderdetail = $dbcon->getResultArray($sql); $skuinfo = array(); foreach ($orderdetail as $row) { if (function_exists("get_realskuinfo")) { foreach (get_realskuinfo($row['sku']) as $k => $n) { $skuinfo[] = trim($k); } } else { $skuinfo[] = trim($row['sku']); } } //var_dump($skuinfo); if ($ebay_total >= 40) { $shipping = array('中国邮政挂号'); } /*if(count($skuinfo)==1){ if(in_array($skuinfo[0]['sku'],$__liquid_items_postbyhkpost)){ if ($ebay_total<40){ $shipping = array('中国邮政平邮'); }else{ $shipping = array('中国邮政挂号'); } } if(in_array($skuinfo[0]['sku'],$__liquid_items_postbyfedex)) { $shipping = array('FedEx'); } }else{ foreach ($skuinfo AS $sku){ if(in_array($skuinfo[0]['sku'],$__liquid_items_postbyhkpost)){ if ($ebay_total<40){ $shipping = array('中国邮政平邮'); }else{ $shipping = array('中国邮政挂号'); } } if(in_array($sku['sku'],$__liquid_items_postbyfedex)) { $shipping = array('FedEx'); } } }*/ $array_intersect_elec = array_intersect($skuinfo, $__liquid_items_elecsku); $array_intersect_gaoji = array_intersect($skuinfo, $__liquid_items_postbyfedex); $array_intersect_zhijiayou = array_intersect($skuinfo, $__liquid_items_cptohkpost); $array_intersect_yieti = array_intersect($skuinfo, $__liquid_items_postbyhkpost); $array_intersect_fenmocsku = array_intersect($skuinfo, $__liquid_items_fenmocsku); $array_intersect_BuiltinBattery = array_intersect($skuinfo, $__liquid_items_BuiltinBattery); $array_intersect_SuperSpecific = array_intersect($skuinfo, $__liquid_items_SuperSpecific); $array_intersect_Paste = array_intersect($skuinfo, $__liquid_items_Paste); /*if(count($array_intersect_elec) > 0 && in_array($global_countrycn_coutryen[$ebay_countryname],$__elecsku_countrycn_array)){ $shippment_elec_directly = true; }else*/ if (count($array_intersect_gaoji) > 0) { $shippment_fedex_directly = true; } else { if (count($array_intersect_zhijiayou) > 0) { $shippment_cptohkpost = true; } else { if (count($array_intersect_yieti) > 0) { $shippment_hkpost_directly = true; } } } ############single line item order中如果有液体的产品直接设为香港小包###########2/2 /*if($shippment_hkpost_directly ===true){ if ($ebay_total<40){ $shipping = array('中国邮政平邮'); }else{ $shipping = array('中国邮政挂号'); } }*/ if ($shippment_fedex_directly === true) { $shipping = array('FedEx'); } ##############液体(不含指甲油)SKU(中国邮政转香港小包)#############START ##############指甲油SKU(中国邮政转香港小包)#############START ##############电子类产品SKU(指定国家的订单 走香港小包)#############START ##############内置电池SKU(中国邮政转香港小包)#############START ##############膏状SKU(中国邮政转香港小包)#############START //add by Herman.Xi 2013-03-14 //if($shippment_cptohkpost || $shippment_hkpost_directly || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){20130905内置电池不走香港小包 if ($shippment_cptohkpost || $shippment_hkpost_directly || count($array_intersect_Paste) > 0) { if (in_array($ebay_account, $SYSTEM_ACCOUNTS['ebay平台'])) { if ($ebay_total < 70) { $shipping = array('香港小包平邮'); } else { $shipping = array('香港小包挂号'); } } else { //B2B $shipping = array('香港小包挂号'); } } ##############指甲油SKU(中国邮政转香港小包)#############END ##############电子类产品SKU(指定国家的订单 走香港小包)#############START //add by Herman.Xi 2012-10-26 /*if($shippment_elec_directly ===true){ if(in_array($ebay_account,$SYSTEM_ACCOUNTS['ebay平台'])){ if ($ebay_total<70){ $shipping = array('香港小包平邮'); }else{ $shipping = array('香港小包挂号'); } }else{ //B2B $shipping = array('香港小包挂号'); } }*/ ##############电子类产品SKU(指定国家的订单 走香港小包)#############END $ss = "select * from ebay_carrier where ebay_account like '%{$ebay_account},%'"; $ss = $dbcon->execute($ss); $ss = $dbcon->getResultArray($ss); if (count($ss) > 0 && in_array($orderinfo[0]['ebay_countryname'], array('United States', 'US'))) { $sql = "select * from ebay_carrier where name='EUB' AND ebay_account like '%{$orderinfo[0]['ebay_account']}%'"; $sql = $dbcon->execute($sql); $eubcount = $dbcon->num_rows($sql); if ($eubcount > 0) { $shipping = array('EUB'); return $shipping; } } if (in_array(strtolower($orderinfo[0]['ebay_account']), array('ishop2099', 'cndirect998', 'cndirect55', 'easydeal365', 'tradekoo', 'futurestar99'))) { $shipping = array('Global Mail'); } return !empty($shipping) ? $shipping : array('香港小包平邮', '中国邮政平邮'); }
function calcshippingfee($totalweight, $ebay_countryname, $ebayid, $ebay_account, $ebay_total) { global $dbConn, $user, $__liquid_items_postbyhkpost, $__liquid_items_postbyfedex, $__liquid_items_cptohkpost, $__liquid_items_elecsku, $global_countrycn_coutryen, $__elecsku_countrycn_array, $GLOBAL_EBAY_ACCOUNT, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste, $SYSTEM_ACCOUNTS; $g_account = str_replace(',', '', $ebay_account); $ss = "delete from ebay_lishicalcfee where orderid ='{$ebayid}' "; $dbConn->query($ss); $shippment_hkpost_directly = false; $shippment_fedex_directly = false; $shippment_cptohkpost = false; //$shippment_elec_directly = false; ############single line item order中如果有液体的产品直接设为香港小包###########1/2 ####added by john 2012-05-16 $ss = "select ebay_ordersn,ebay_orderid,ebay_couny,ebay_currency from ebay_order where ebay_id ={$ebayid} "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); $ebay_ordersn = $ss[0]['ebay_ordersn']; $ebay_orderid = $ss[0]['ebay_orderid']; $ebay_couny = $ss[0]['ebay_couny']; $ebay_currency = $ss[0]['ebay_currency']; $ss = "select sku,ebay_itemprice from ebay_orderdetail where ebay_ordersn ='{$ebay_ordersn}'"; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); $sku_arr = array(); $eub_to_py = false; //包含单价小于等于五的料号 foreach ($ss as $_ss) { if (function_exists("get_realskuinfo")) { $skus = get_realskuinfo($_ss['sku']); foreach ($skus as $k => $n) { //支持组合料号 $sku_arr[] = trim($k); } } else { $sku_arr[] = trim($_ss['sku']); } /* add by Herman.Xi @2013-07-16 */ if ($_ss['ebay_itemprice'] <= 5) { $eub_to_py = true; } } $array_intersect_elec = array_intersect($sku_arr, $__liquid_items_elecsku); $array_intersect_gaoji = array_intersect($sku_arr, $__liquid_items_postbyfedex); $array_intersect_zhijiayou = array_intersect($sku_arr, $__liquid_items_cptohkpost); $array_intersect_yieti = array_intersect($sku_arr, $__liquid_items_postbyhkpost); $array_intersect_fenmocsku = array_intersect($sku_arr, $__liquid_items_fenmocsku); $array_intersect_BuiltinBattery = array_intersect($sku_arr, $__liquid_items_BuiltinBattery); $array_intersect_SuperSpecific = array_intersect($sku_arr, $__liquid_items_SuperSpecific); $array_intersect_Paste = array_intersect($sku_arr, $__liquid_items_Paste); /*if(count($array_intersect_elec) > 0 && in_array($global_countrycn_coutryen[$ebay_countryname],$__elecsku_countrycn_array)){ $shippment_elec_directly = true; echo "料号[ ".join(', ', $array_intersect_elec)." ]为电子类产品,运到[ ".$global_countrycn_coutryen[$ebay_countryname]." ]需要直接走香港小包\n"; }else */ if (count($array_intersect_gaoji) > 0) { $shippment_fedex_directly = true; echo "料号[ " . join(', ', $array_intersect_gaoji) . " ]为高级产品,需要直接走FedEx\n"; } else { if (count($array_intersect_zhijiayou) > 0) { $shippment_cptohkpost = true; echo "料号[ " . join(', ', $array_intersect_zhijiayou) . " ]为指甲油产品,需要直接走香港小包\n"; } else { if (count($array_intersect_yieti) > 0) { $shippment_hkpost_directly = true; echo "料号[ " . join(', ', $array_intersect_yieti) . " ]为液体产品,需要直接走中国邮政\n"; } } } ############single line item order中如果有液体的产品直接设为香港小包###########1/2 ############ebay设置特定国家走挂号,包含特殊料号走平邮,超过70走挂号,币种为美元和英镑###########START //ADD BY Herman.Xi @ 2013-07-02 $ecsql = "select countrys from ebay_cpghcalcfee where ebay_user='******' and name in ('第六组','第七组','第八组','第九组','第十组') "; $ecresult = $dbConn->query($ecsql); $ecarr = $dbConn->fetch_array_all($ecresult); $spec_countries = array('Turkey', 'Korea', 'North', 'Russian Federation', 'Spain', 'Armenia', 'Bosnia and Herzegovina', 'Vietnam', 'Palestine'); $ec_countries = array(); foreach ($ecarr as $ecline) { $strarr = array_filter(explode(',', $ecline['countrys'])); foreach ($strarr as $line) { if (trim($line) != 'Puerto Rico') { //波多黎各不挂号,add by herman.Xi @ 20130801 $ec_countries[] = trim($line); } } } $union_countries = array_merge($spec_countries, $ec_countries); ############ebay设置特定国家走挂号,包含特殊料号走平邮,超过70走挂号,币种为美元和英镑###########END $ss = "select * from ebay_carrier where ebay_user ='******' and country not like '%{$ebay_countryname}%'"; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); $data = array(); for ($i = 0; $i < count($ss); $i++) { $shipfee = 0; $name = $ss[$i]['name']; $kg = $ss[$i]['kg']; $handlefee = $ss[$i]['handlefee']; $id = $ss[$i]['id']; $rate = $ss[$i]['rate']; $min = $ss[$i]['min']; // 是否满足挂号条件 if ($name == '香港小包挂号') { $shipfee = calchkghpost($totalweight, $ebay_countryname); /*if(($ebay_total >= $min) || (in_array($ebay_couny, array('AR','BR','PE','CL','PY','BO','EC','GF','CO','GY','SR','UY','VE','RU')) && ($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0))){ $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) values('$name','$shipfee','$id','$ebayid','$totalweight')"; echo "$name:$shipfee\n"; $dbConn->query($gg); }*/ if ($ebay_total >= $min) { $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight)\n\t\t\t\t\t\t\t values('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; echo "{$name}:{$shipfee}\n"; $dbConn->query($gg); } } /****************************************************/ if ($name == '香港小包平邮') { $shipfee = calchkpost($totalweight, $ebay_countryname); echo "{$name}:{$shipfee}\n"; $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); } if ($name == 'EUB' && ($ebay_countryname == 'United States' || $ebay_countryname == 'US')) { $discount = $ss[$i]['discount'] ? $ss[$i]['discount'] : 1; if ($totalweight <= 0.06) { $shipfee = 80 * 0.06 + 7; } else { $shipfee = 80 * $totalweight + 7; } $shipfee = $shipfee * $discount; $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); echo "{$name}:{$shipfee}\n"; } if ($name == '中国邮政平邮') { $shipfee = calcchinapostpy($totalweight, $ebay_countryname); if ($shipfee !== false) { $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; if ($dbConn->query($gg)) { } else { echo "Fail : {$gg}\n"; } echo "{$name} : {$shipfee} 满足重量区间: {$totalweight} 如果有重量区间,则以后面重量计算\n"; } else { echo "{$ebay_countryname} 未开通中国邮政平邮\n"; } } if ($name == '中国邮政挂号') { $shipfee = calcchinapostgh($totalweight, $ebay_countryname); if ($shipfee !== false) { $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; if ($dbConn->query($gg)) { } else { echo "Fail : {$gg}\n"; } echo "{$name} : {$shipfee} 满足重量区间: {$totalweight} 如果有重量区间,则以后面重量计算\n"; } else { echo "{$ebay_countryname} 未开通中国邮政挂号\n"; } } if ($name == 'EMS') { $dd = "SELECT * FROM `ebay_emscalcfee` where countrys like '%{$ebay_countryname}%' "; $dd = $dbConn->query($dd); $dd = $dbConn->fetch_array_all($dd); $firstweight = $dd[0]['firstweight']; $nextweight = $dd[0]['nextweight']; $discount = $dd[0]['discount']; $firstweight0 = $dd[0]['firstweight0']; $files = $dd[0]['files']; $declared_value = $dd[0]['declared_value']; if ($files == '1' && $totalweight <= 0.5) { $firstweight = $firstweight0; } if ($totalweight <= 0.5) { $shipfee = $firstweight; } else { $shipfee = ceil(($totalweight * 1000 - 500) / 500) * $nextweight + $firstweight; } $shipfee = $shipfee * $discount + $declared_value; if ($totalweight > 0) { $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); } echo "{$name} : {$shipfee} 满足重量区间:{$totalweight} 如果有重量区间,则以后面重量计算\n"; } if ($name == 'FedEx') { if ($shippment_cptohkpost === true || count($array_intersect_fenmocsku) > 0 || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0) { echo "包含特殊料号不走联邦!\n"; //add by Herman.Xi } else { $shipfee = calcfedex($totalweight, $ebay_countryname, $ebayid); $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); echo "{$name} : {$shipfee} 满足重量区间:{$totalweight} 如果有重量区间,则以后面重量计算\n"; } } if ($name == 'Global Mail' && in_array($g_account, $SYSTEM_ACCOUNTS['海外销售平台'])) { $shipfee = calcglobalmail($totalweight, $ebay_countryname); $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); echo "{$name} : {$shipfee} 满足重量区间:{$totalweight} 如果有重量区间,则以后面重量计算\n"; } if ($name == 'DHL') { $shipfee = calcdhlshippingfee($totalweight, $ebay_countryname); $gg = "insert into ebay_lishicalcfee(name,value,shippingid,orderid,totalweight) \n\t\t\t\t\t\t\t\t\tvalues('{$name}','{$shipfee}','{$id}','{$ebayid}','{$totalweight}')"; $dbConn->query($gg); echo "{$name} : {$shipfee} 满足重量区间:{$totalweight} 如果有重量区间,则以后面重量计算\n"; } } //sleep(10);//主从同步延时 $ss = "select * from ebay_carrier where ebay_account like '%{$ebay_account}%'"; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); $ff = 0; if (count($ss) > 0) { $ff = 1; } $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name !='EUB' order by value asc "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); /*##############中国邮政挂号(总价大于40走挂号)#############START if ($ebay_total > 40){ $ss = "select * from ebay_lishicalcfee where name = '中国邮政挂号' and orderid ='$ebayid' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } ##############Global Mail(海外销售专走)#############START if (in_array($g_account, $SYSTEM_ACCOUNTS['海外销售平台'])){ $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='$ebayid' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else ##############(sunwebzone,enjoy24hours,charmday88,betterdeals255,360beauty这5个账号除了以上的设置,还需要额外对US站点进行以下修改:针对第6点,ERP在同步订单的时候,订单金额(不包含运费)小于等于5.00(不限币种),发货国家为美国或者波多黎各时,自动选择一个最便宜的运输方式,不受EUB影响#############START if (in_array($g_account, array('sunwebzone','enjoy24hours','charmday88','betterdeals255','360beauty')) && ($ebay_countryname == 'United States' || $ebay_countryname == 'US' || $ebay_countryname == 'Puerto Rico') && $eub_to_py){ if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ if($ebay_total >= 70 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='香港小包挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = '香港小包平邮' order by value asc "; } }else{ if($ebay_total > 40 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政平邮' order by value asc "; } } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else ##############EUB(EBAY US 站点)#############START if($ff == 1 && ($ebay_countryname == 'United States' || $ebay_countryname == 'US' || $ebay_countryname == 'Puerto Rico')){ $ss = "select * from ebay_lishicalcfee where name = 'EUB' and orderid ='$ebayid' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else ##############FedEx(包含单个超重料号或者贵重SKU)#############START if ($shippment_fedex_directly===true){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = 'FedEx' order by value asc "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else //modified by Herman.Xi @ 2013-07-08 if(in_array($g_account,array('betterdeals255','dealinthebox','easytrade2099','bestinthebox','fiveseason88','befdi','enicer','mysoulfor','newcandy789','estore456','eseasky68','swzeagoo','happyzone80','infourseas','emallzone','unicecho','vobeau','blessedness365'))){ if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ if($ebay_total >= 70 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='香港小包挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = '香港小包平邮' order by value asc "; } }else{ if($ebay_total > 40 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政平邮' order by value asc "; } } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else //以下这些国家在同步订单的时候,金额大于10才挂号寄出,不管什么币种都行 //Japan,Korea, South,Malaysia,Singapore,Portugal,Czech Republic,Italy,Israel,Ireland if(in_array($ebay_countryname, array('Japan','Korea, South','Malaysia','Singapore','Portugal','Czech Republic','Italy','Israel','Ireland')) && $ebay_total > 10){ if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ if($ebay_total >= 70 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='香港小包挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = '香港小包平邮' order by value asc "; } }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政挂号' order by value asc "; } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else //南美洲国家开放走挂号,特殊料号走香港小包挂号 //modified by Herman.Xi @ 2013.05.28 //if(in_array($ebay_couny, array('AR','BR','PE','CL','PY','BO','EC','GF','CO','GY','SR','UY','VE','RU'))){ if(in_array($ebay_countryname, $union_countries) && in_array($ebay_currency, array('GBP','USD'))){//指定的这些国家,并且订单币种为美元和英镑 Modified by Herman.Xi @ 2013-07-02 if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ if($ebay_total >= 70 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='香港小包挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = '香港小包平邮' order by value asc "; } }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政挂号' order by value asc "; } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }else ##############液体(不含指甲油)SKU(中国邮政转香港小包)#############START ##############指甲油SKU(中国邮政转香港小包)#############START ##############电子类产品SKU(指定国家的订单 走香港小包)#############START ##############内置电池SKU(中国邮政转香港小包)#############START ##############膏状SKU(中国邮政转香港小包)#############START //add by Herman.Xi 2013-03-14 if($shippment_cptohkpost === true || $shippment_hkpost_directly ===true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ if($ebay_total >= 70 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='香港小包挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = '香港小包平邮' order by value asc "; } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }*/ //implode("\n", $dbConn->error)."\n\n"; //modified by Herman.Xi @ 2013-07-18 23:45 所有订单按照原始逻辑判断最优运输方式计算 ##############Global Mail(海外销售专走)#############START //modified by Herman.Xi @ 2013-07-20 9:44 走意大利和包含特殊料号的订单保留原GM运输方式,非意大利国家订单不包含特殊料号走中国邮政平邮(只限于cndirect55,futurestar99) /*if (in_array($g_account, $SYSTEM_ACCOUNTS['海外销售平台'])){ //add by Herman.Xi @ 20130725 小语种账号 1 欧元 冲销量 走中国邮政平邮 if(in_array($g_account, array('cndirect998','easydealhere','tradekoo','allbestforu','easydeal365','enjoytrade99','freemart21cn','ishop2099')) && $ebay_total == 1 && $ebay_currency == 'EUR'){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政平邮' order by value asc "; }else //add by Herman.Xi @ 2013-07-24 eshoppingstar75,ishoppingclub68 两个账号,已经账号easyshopping095 当国家为美国是走联邦 if((in_array($g_account, array('eshoppingstar75','ishoppingclub68'))) || (in_array($g_account, array('easyshopping095')) && ($ebay_countryname == 'United States' || $ebay_countryname == 'US'))){ if($shippment_cptohkpost === true || count($array_intersect_fenmocsku) > 0 || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0 ){ $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='$ebayid' "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = 'FedEx' order by value asc "; } }else if ($ebay_countryname!='Italia'){ if ($shippment_fedex_directly===true){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name = 'FedEx' order by value asc "; }else if(in_array($g_account, array('cndirect55','futurestar99','easydeal365','cndirect998'))){ if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='$ebayid' "; }else{ if($ebay_total > 40 ){ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政挂号' order by value asc "; }else{ $ss = "select * from ebay_lishicalcfee where orderid ='$ebayid' and value != '0' and name ='中国邮政平邮' order by value asc "; } } }else{ $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='$ebayid' "; } }else{ $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='$ebayid' "; } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); }*/ if (in_array($g_account, array('enjoytrade99', 'allbestforu', 'freemart21cn', 'easydealhere')) && in_array($ebay_countryname, array('Deutschland', 'Frankreich', 'Spanien', 'Italien', 'Allemagne', 'France', 'Espagne', 'Italie', 'Alemania', 'Francia', 'España', 'Italia', 'Germania', 'Francia', 'Spagna', 'Italia'))) { $ss = "select * from ebay_lishicalcfee where name = 'Global Mail' and orderid ='{$ebayid}' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else { ##############FedEx(包含单个超重料号或者贵重SKU)#############START if ($shippment_fedex_directly === true) { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name = 'FedEx' order by value asc "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else { /* *(陈小霞)2013-08-31 09:44:11 *帮忙设置下这两个账号总金额(价格+运费)超过5的,发往美国和波多黎各的,改为EUB发货:mysoulfor,newcandy789 *雷贤容 加上 estore456 */ if (in_array($ebay_countryname, array('United States', 'US', 'Puerto Rico')) && $ebay_total >= 5 && in_array($g_account, array('mysoulfor', 'newcandy789', 'estore456'))) { $ss = "select * from ebay_lishicalcfee where name = 'EUB' and orderid ='{$ebayid}' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else { ##############EUB(EBAY US 站点)#############START if ($ff == 1 && ($ebay_countryname == 'United States' || $ebay_countryname == 'US')) { $ss = "select * from ebay_lishicalcfee where name = 'EUB' and orderid ='{$ebayid}' "; $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else { /* *(陈小霞)2013-09-06 09:44:11 *帮忙设置下这些账号的Russian Federation,Russia,Brazil,Brasil,Argentina三个国家总金额超过8的,设置挂号发货,其他账号或者其他国家仍然跟以前一样,中国邮政超过40挂号,香港小包超过70挂号 */ if (in_array($ebay_countryname, array('Russian Federation', 'Russia', 'Brazil', 'Brasil', 'Argentina')) && $ebay_total >= 8 && in_array($g_account, array('365digital', 'digitalzone88', 'itshotsale77', 'cndirect998', 'cndirect55', 'befdi', 'easydeal365', 'enicer', 'doeon', 'starangle88', 'zealdora', '360beauty', 'befashion', 'charmday88', 'dresslink', 'easebon', 'work4best', 'eshop2098', 'happydeal88', 'easytrade2099', 'easyshopping678', 'futurestar99', 'wellchange', 'voguebase55')) && in_array($ebay_currency, array('GBP', 'USD', 'EUR'))) { if ($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_Paste) > 0) { //if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ //20130905内置电池不走香港小包 if ($ebay_total >= 70) { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name ='香港小包挂号' order by value asc "; } else { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name = '香港小包平邮' order by value asc "; } } else { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name ='中国邮政挂号' order by value asc "; } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } else { if ($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_Paste) > 0) { //if($shippment_cptohkpost === true || $shippment_hkpost_directly === true || count($array_intersect_BuiltinBattery) > 0 || count($array_intersect_Paste) > 0){ //20130905内置电池不走香港小包 if ($ebay_total >= 70) { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name ='香港小包挂号' order by value asc "; } else { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name = '香港小包平邮' order by value asc "; } } else { if ($ebay_total > 40) { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name ='中国邮政挂号' order by value asc "; } else { $ss = "select * from ebay_lishicalcfee where orderid ='{$ebayid}' and value != '0' and name ='中国邮政平邮' order by value asc "; } } $ss = $dbConn->query($ss); $ss = $dbConn->fetch_array_all($ss); } } } } } $ssname = $ss[0]['name']; $value = $ss[0]['value']; echo "最终使用:{$ssname}---{$value}\n"; $totalweight = $ss[0]['totalweight']; if ($totalweight == 0) { $ssname = "中国邮政平邮"; } //当可能出现总重量为零的情况下将运输方式设置为中国邮政平邮 add by Herman.Xi 2012-11-01 $data = array(); $data[0] = $ssname; $data[1] = $value; $data[2] = $totalweight; return $data; }
/** *根据sku获取仓库信息 */ public static function getSkuStores($sku) { self::initDB(); $skuinfo = get_realskuinfo($sku); if (empty($skuinfo)) { self::$errCode = "003"; self::$errMsg = "error"; return false; } foreach ($skuinfo as $sku => $num) { $sql = "select a.storeId,b.whName from `wh_sku_location` as a \n\t\t\t\t\tleft join `wh_store` as b on a.storeId=b.id \n\t\t\t\t\twhere a.sku='{$sku}'"; $query = self::$dbConn->query($sql); if ($query) { $ret = self::$dbConn->fetch_array_all($query); return $ret; //成功, 返回列表数据 } else { self::$errCode = "003"; self::$errMsg = "error"; return false; } } }
while ($i < $messageCount[1] && $i < $max) { $mctime = time(); $msg = $channel->basic_get($queue); //$channel->basic_ack($msg->delivery_info['delivery_tag']); //var_dump($msg->body); $i++; continue; $msg_array = json_decode($msg->body, true); if (empty($msg_array)) { } else { if ($msg_array == 'quit') { echo "最后一条数据为退出命令!\n"; $channel->basic_ack($msg->delivery_info['delivery_tag']); break; } else { foreach ($msg_array as $order_infos) { $sku_info = array(); $true_sku = get_realskuinfo($order_infos['sku']); foreach ($true_sku as $sku => $num) { if (isset($sku_info[$sku])) { $sku_info[$sku] = $sku_info[$sku] + $num; } else { $sku_info[$sku] = $num; } } $order_detail = array(); $sku_blag = false; foreach ($sku_info as $sku => $nums) { $position_arr = getPositionBySku($sku, $nums); if (empty($position_arr)) { Log::write('料号' . $sku . '找不到仓位', Log::ERR); $sku_blag = true; break;
function get_purchase_info($order_sn) { //获取订单下真实料号情况 global $dbcon; $results = array(); $sql = "SELECT sku,ebay_amount FROM ebay_orderdetail WHERE ebay_ordersn='{$order_sn}'"; $sql = $dbcon->execute($sql); $orderdetaillist = $dbcon->getResultArray($sql); foreach ($orderdetaillist as $orderdetail) { $sku_arr = get_realskuinfo($orderdetail['sku']); foreach ($sku_arr as $or_sku => $or_nums) { $results[$or_sku] = get_sku_info($or_sku); } } return $results; }
function assign_item_to_partPackage($ebay_id, $scan_sku, $scan_num) { //PDA 扫描部分包货订单,自动分配到已经审核的订单中去 //add by Herman.Xi @ 20130321 global $dbcon, $truename, $user; $sql = "select ebay_status,ebay_ordersn from ebay_order where ebay_id = {$ebay_id} and ebay_user = '******' and ebay_combine != 1 "; $result = $dbcon->execute($sql); $ordercheck = $dbcon->fetch_one($result); if (empty($ordercheck)) { return false; } $orderdetail = array(); $orderdetails = "SELECT * FROM ebay_orderdetail where ebay_ordersn = '{$ordercheck['ebay_ordersn']}' "; $orderdetails = $dbcon->execute($orderdetails); $orderdetails = $dbcon->getResultArray($orderdetails); foreach ($orderdetails as $_orderdetail) { $sku_array = get_realskuinfo($_orderdetail['sku']); foreach ($sku_array as $real_sku => $sku_num) { $orderdetail[$_orderdetail['ebay_id']] = array('ebay_id' => $_orderdetail['ebay_id'], 'ebay_ordersn' => $_orderdetail['ebay_ordersn'], 'sku' => $real_sku, 'ebay_amount' => $sku_num * $_orderdetail['ebay_amount']); } } unset($orderdetails); //echo "<pre>"; print_r($orderdetail); echo "<br>"; if (empty($orderdetail)) { return false; } if ($ordercheck['ebay_status'] == '654') { //已打印部分包货 $checksql = "SELECT a.ebay_id,a.ebay_ordersn,a.ebaydetail_id,a.sku,b.realnum,b.totalnum FROM ebay_unusual_order_check a left join ebay_packing_status b ON a.ebay_id = b.ebay_id AND a.ebaydetail_id = b.ebaydetail_id AND a.sku = b.sku WHERE a.ebay_id='{$ebay_id}' AND a.sku = '{$scan_sku}' AND a.check_status = 1 ORDER BY modtime ASC "; //审核通过的料号需求量 $checksql = $dbcon->execute($checksql); $checksql = $dbcon->getResultArray($checksql); if (count($checksql) == 0) { return false; } else { $xu_nums = $scan_num; foreach ($checksql as $value) { if ($xu_nums <= 0) { break; } $ebaydetail_id = $value['ebaydetail_id']; $ebay_ordersn = $value['ebay_ordersn']; $sku = $value['sku']; $realnum = $value['realnum']; $totalnum = $value['totalnum']; if (empty($totalnum)) { //没有配货记录 $need_amount = $orderdetail[$ebaydetail_id]['ebay_amount']; if ($need_amount > $xu_nums) { $realnum = $xu_nums; } else { $realnum = $need_amount; } $xu_nums -= $need_amount; $sql = "INSERT INTO ebay_packing_status SET ebay_id={$ebay_id},ebaydetail_id={$ebaydetail_id},order_sn='{$ebay_ordersn}',sku='{$sku}',realnum={$realnum},totalnum={$orderdetail[$ebaydetail_id]['ebay_amount']},packagingstaff='',scanuser='******',status=1,time=" . time(); //$dbcon->query($sql); echo "新增配货 {$ebay_id} 明细 ID {$ebaydetail_id} 料号 {$sku} 数量 {$realnum} 需求量 {$orderdetail[$ebaydetail_id]['ebay_amount']}"; echo "<br>"; } else { //有配货记录 $need_amount = $orderdetail[$ebaydetail_id]['ebay_amount'] - $realnum; if ($need_amount > $xu_nums) { $realnum = $xu_nums; } else { $realnum = $need_amount; } $xu_nums -= $need_amount; $sql = "UPDATE ebay_packing_status SET realnum=realnum+{$realnum} WHERE ebay_id={$ebay_id} AND ebaydetail_id={$did}"; //$dbcon->query($sql); echo "新增配货 {$ebay_id} 明细 ID {$ebaydetail_id} 料号 {$sku} 数量 {$realnum} 需求量 {$orderdetail[$ebaydetail_id]['ebay_amount']}"; echo "<br>"; } } } } else { if ($ordercheck['ebay_status'] == '624') { //正常快递 $xu_nums = $scan_num; foreach ($orderdetail as $value) { if ($xu_nums <= 0) { break; } $ebaydetail_id = $value['ebay_id']; $ebay_ordersn = $value['ebay_ordersn']; $sku = $value['sku']; $schecksql = "SELECT realnum,totalnum FROM ebay_packing_status WHERE ebay_id={$ebay_id} AND ebaydetail_id={$ebaydetail_id} AND sku = '{$sku}' "; $schecksql = $dbcon->execute($schecksql); $schecksql = $dbcon->fetch_one($schecksql); if (empty($schecksql)) { //没有配货记录 $need_amount = $orderdetail[$ebaydetail_id]['ebay_amount']; if ($need_amount > $xu_nums) { $realnum = $xu_nums; } else { $realnum = $need_amount; } $xu_nums -= $need_amount; $sql = "INSERT INTO ebay_packing_status SET ebay_id={$ebay_id},ebaydetail_id={$ebaydetail_id},order_sn='{$ebay_ordersn}',sku='{$sku}',realnum={$realnum},totalnum={$orderdetail[$ebaydetail_id]['ebay_amount']},packagingstaff='',scanuser='******',status=1,time=" . time(); //$dbcon->query($sql); echo "新增配货 {$ebay_id} 明细 ID {$ebaydetail_id} 料号 {$sku} 数量 {$realnum} 需求量 {$orderdetail[$ebaydetail_id]['ebay_amount']}"; echo "<br>"; } else { //有配货记录 $realnum = $schecksql['realnum']; $totalnum = $schecksql['totalnum']; $need_amount = $orderdetail[$ebaydetail_id]['ebay_amount'] - $realnum; if ($need_amount > $xu_nums) { $realnum = $xu_nums; } else { $realnum = $need_amount; } $xu_nums -= $need_amount; $sql = "UPDATE ebay_packing_status SET realnum=realnum+{$realnum} WHERE ebay_id={$ebay_id} AND ebaydetail_id={$did}"; //$dbcon->query($sql); echo "新增配货 {$ebay_id} 明细 ID {$ebaydetail_id} 料号 {$sku} 数量 {$realnum} 需求量 {$orderdetail[$ebaydetail_id]['ebay_amount']}"; echo "<br>"; } } } } }
} else { if ($type == 'check') { if (empty($c_sql)) { $sql = "INSERT INTO ebay_unusual_order_check SET ebay_id={$ebay_id}" . $notecontent . ",ebay_ordersn='{$ordercheck[0]['ebay_ordersn']}',ebaydetail_id='{$detail_id}',sku='{$sku}',ebay_account='{$ordercheck[0]['ebay_account']}',check_user='******',checktime=" . time() . ",modtime=" . time() . ",check_status='{$check_status}'"; } else { $sql = "UPDATE ebay_unusual_order_check SET modtime=" . time() . ",check_status='{$check_status}'" . $notecontent . " WHERE ebay_id={$ebay_id} and ebaydetail_id='{$detail_id}' AND sku='{$sku}'"; } $dbcon->execute($sql); $ch_sql = "SELECT a.ebay_ordersn,a.sku,a.ebay_id as detail_id FROM\tebay_orderdetail AS a \n\t\t\t\t\tWHERE a.ebay_ordersn='{$ordercheck[0]['ebay_ordersn']}'"; $ch_sql = $dbcon->execute($ch_sql); $check_array = $dbcon->getResultArray($ch_sql); $isend = true; $status = array(); $array_sku = array(); foreach ($check_array as $check_sku) { $array_sku = get_realskuinfo($check_sku['sku']); foreach ($array_sku as $key_sku => $num) { $compare_sql = "SELECT ebay_ordersn,sku,check_status FROM ebay_unusual_order_check WHERE sku='{$key_sku}' and ebaydetail_id='{$check_sku['detail_id']}' AND ebay_ordersn='{$ordercheck[0]['ebay_ordersn']}'"; $compare_sql = $dbcon->execute($compare_sql); $compare_sql = $dbcon->getResultArray($compare_sql); if (empty($compare_sql)) { $isend = false; break; } else { if (!in_array($compare_sql[0]['check_status'], $status)) { array_push($status, $compare_sql[0]['check_status']); } } } } if ($isend === true) {
/** * ebay销售漏扫描报表导出 * @author zqt */ public function act_ebayNoScanOutputOn() { $start = strtotime($_POST['ebayNoScanStart']); $end = strtotime($_POST['ebayNoScanEnd']); $accountIdArr = $_POST['ebayNoScanAccount']; if (empty($accountIdArr)) { $statusStr = '账号为空,请选择!'; echo '<script language="javascript"> alert("' . $statusStr . '"); history.back(); </script>'; exit; } if ($start > $end) { $statusStr = '起始时间大于结束时间,错误!'; echo '<script language="javascript"> alert("' . $statusStr . '"); history.back(); </script>'; exit; } $packinglists = M('interfacePc')->getMaterList(); // 获取全部包材记录 foreach ($packinglists as $packinglist) { $packings[$packinglist['id']]['pmName'] = $packinglist['pmName']; $packings[$packinglist['id']]['pmCost'] = $packinglist['pmCost']; } unset($packinglists); $carrierLists = M('InterfaceTran')->getCarrierList(2); //获取所有的运输方式 foreach ($carrierLists as $carrierList) { $carriers[$carrierList['id']] = $carrierList['carrierNameCn']; } unset($carrierLists); $channelLists = M('InterfaceTran')->getChannelList(); //获取全部运输方式下的渠道记录 foreach ($channelLists as $channelList) { $channels[$channelList['id']] = $channelList['channelName']; } unset($channelLists); $staffLists = array(); //$staffInfoLists = CommonModel::getStaffInfoList (); // 获取全部人员,这里要换成接口, // foreach ( $staffInfoLists as $staffInfoList ) { // $staffLists [$staffInfoList ['global_user_id']] = $staffInfoList ['global_user_name']; // } // unset($staffInfoLists); $table = 'unshipped'; //查询的是未发货还是发货,发货为shipped,这里默认为unshipped $orderIdsSTList = M('Order')->getOrderWarehouseOmorderIdsByWeighTime($table, $start, $end); $tmpIdsArr = array(); foreach ($orderIdsSTList as $value) { $tmpIdsArr[] = $value['omOrderId']; } $tmpIdsStr = !empty($tmpIdsArr) ? implode(',', $tmpIdsArr) : '0'; $orderStatusStr = '2'; $accountIdStr = implode(',', $accountIdArr); $orderIdsISAList = M('Order')->getOrderIdsByISA($table, $tmpIdsStr, $orderStatusStr, $accountIdStr); //var_dump(M('Order')->getAllRunSql(), $orderIdsISAList);exit; $tmpIdsArr = array(); $tmpIdsArr[] = 0; foreach ($orderIdsISAList as $value) { $tmpIdsArr[] = $value['id']; } $shipOrderList = M('Order')->getFullUnshippedOrderById($tmpIdsArr); print_r(M('Order')->getAllRunSql()); //exit; print_r($shipOrderList); exit; F('order'); $fileName = "export_ebay_test_" . date("Y-m-d_H_i_s") . ".xls"; $excel = new ExportDataExcel('browser', $fileName); $excel->initialize(); $excel->addRow(array('付款日期', 'ebay store', '交易号', '客户ID', '仓位号', '料号', '数量', '国家', '产品价格', 'ebay运费', '包裹总价值', '币种', '包装员', '挂号条码', '是/否', '重量', '邮费', '运输方式', '订单编号', '产品货本', '交易ID', 'ItemID', '是否复制订单', '是否补寄', '是否拆分订单', '包材', '包材费用', '是否组合料号', '扫描日期', '采购')); foreach ($shipOrderList as $key => $value) { // key代表最外层的维数 /* * $value分别有7个对应的键,分别为 orderData,//订单表头数据记录 orderExtenData,//订单表扩展数据记录 orderUserInfoData,//订单表中客户的数据记录 orderWhInfoData,//物料对订单进行操作的数据记录 orderNote,//订单的备注(销售人员添加)记录 orderTracknumber,//订单的追踪号记录 orderAudit,//订单明细审核记录 orderDetail //订单明细记录 */ $orderData = $value['order']; // 订单表头数据记录,为一维数组 $orderExtenData = $value['orderExtension']; // 扩展表头数据记录,为一维数组 $orderUserInfoData = $value['orderUserInfo']; // 订单客户数据记录,为一维数组 $orderWhInfoData = $value['orderWarehouse']; // 物料对订单进行操作的数据记录,为一维数组 $orderNote = $value['orderNote']; // 订单备注记录,二维数组 $orderTracknumber = $value['orderTracknumber']; // 订单跟踪号,二维数组 //$orderAudit = $value ['orderAudit']; // 订单明细审核记录,二维数组 $orderDetail = $value['orderDetail']; // 订单明细记录,三维数组 $orderId = $orderData['id']; // ****订单编号 $ebay_id $orderPaidtime = @date('Y-m-d', $orderData['paymentTime']); // ****订单付款时间 paidtime $orderUserInfoEmail = $orderUserInfoData['email']; // ****客户邮箱 emial $platformUsername = $orderExtenData['platformUsername']; // ****客户平台登录名称 $ebay_userid,用扩展表中的该字段 ebay_username $username = @html_entity_decode($orderUserInfoData['username'], ENT_QUOTES, 'UTF-8'); // ****客户真实名称(收件人) username $orderUserInfoStreet1 = @$orderUserInfoData['street']; // **** 街道地址 street1 $orderUserInfoStreet2 = @$orderUserInfoData['address2']; // *** 街道地址2 steet2(一般订单会有两个街道地址) $orderUserInfoCity = $orderUserInfoData['city']; // **** 市 city $orderUserInfoState = $orderUserInfoData['state']; // **** 州 state $orderUserInfoCountryName = $orderUserInfoData['countryName']; // **** 国家全名 // 客服部小霞提出 导出列 国家 显示英文 方便退款处理 // $cnname = $country[$countryname]; $orderUserInfoZip = $orderUserInfoData['zipCode']; // **** 邮编 zipCode $orderUserInfoTel = $orderUserInfoData['landline']; // **** 座机 landline $orderWhInfoActualShipping = $orderWhInfoData['actualShipping']; // ****实际运费,warehouse表中,ebay_shipfee $orderExtenFeedback = $orderExtenData['feedback']; // ****客户留言 ebay_note $OrderActualTotal = @round($orderData['actualTotal'], 2); // ****实际收款总价 $ebay_total $orderTracknumberOne = @$orderTracknumber[0]['tracknumber']; // ****追踪号,这里只读取记录数的第一条记录的追踪号 $ebay_tracknumber $accountName = @get_accountnamebyid($orderData['accountId']); // ****账号名称 $ebay_account $orderRecordnumber = @$orderData['recordNumber']; // ****订单编码(对应平台上的编码) $recordnumber0 // $ebay_carrier = @$shipOrder['transportId'];//transportId ebay_carrier $orderUserInfoPhone = $orderUserInfoData['phone']; // ****客户手机号码 $ebay_phone $orderExtenCurrency = $orderExtenData['currency']; // ****币种 $ebay_currency $orderWhInfoPackersId = $orderWhInfoData['packersId']; // 包装人员Id $packinguser = $staffLists[$orderWhInfoPackersId]; // 对应包装人员姓名 // var_dump($packinguser); $OrderChannelId = $orderData['channelId']; // 渠道Id $channelId $orderCalcShipping = $orderData['calcShipping']; // 估算运费 $ordershipfee $orderExtenPayPalPaymentId = $orderExtenData['PayPalPaymentId']; // Paypal付款ID $ebay_ptid $orderExtenPayPalEmailAddress = $orderExtenData['PayPalEmailAddress']; // PayPal付款邮箱地址 $ebay_pp $isCopy = $orderData['isCopy']; // 默认为0为原始订单,1为被复制订单,2为复制订单 $isCopy = $isCopy == '0' ? '' : ($isCopy == '1' ? '被复制订单' : '复制订单'); // $ebay_noteb = $is_main_order==2 ? '复制 订单' : ($is_main_order==1 ? '被复制 订单' : ''); $isBuji = $orderData['isBuji']; // 是否补寄订单。默认0正常订单;1为被补寄的订单;2为补寄产生的新订单 $isBuji = $isBuji == '0' ? '' : ($isBuji == '1' ? '被补寄订单' : '补寄产生新订单'); // $isBuji = isset ($sendreplacement[$isBuji]) ? $sendreplacement[$isBuji] : ''; // $is_sendreplacement = $isBuji; $isSplit = $orderData['isSplit']; // 默认0正常订单;1为被拆分的订单;2为拆分产生的订单 $isSplit = $isSplit == '0' ? '' : ($isSplit == '1' ? '被拆分订单' : '拆分产生新订单'); // $ebay_splitorder $isCombinePackage = $orderData['combinePackage']; // 是否合并包裹。合并包裹状态,0为正常订单;1为合并包裹主订单;2为合并包裹子订单 $isCombinePackage = $isCombinePackage == '0' ? '' : ($isCombinePackage == '1' ? '合并包裹主订单' : '合并包裹子订单'); $OrderTransportId = $orderData['transportId']; // 运输方式Id $transportId $carrierName = $carriers[$OrderTransportId]; // 运输方式名称 $ebay_carrier $address = $orderUserInfoStreet1 . "\n" . $orderUserInfoStreet2 . "\n" . $orderUserInfoCity . "\n" . $orderUserInfoState . "\n" . $orderUserInfoZip . "\n" . $orderUserInfoCountryName; // 字段拼接成地址 $orderWhInfoWeighTime = date('Y-m-d', $orderWhInfoData['weighTime']); // 称重时间,亦可以当做发货时间 $scantime $OrderCalcWeight = $orderData['calcWeight']; // 估算重量,单位是kg $calculate_weight $orderWhInfoActualWeight = number_format($orderWhInfoData['actualWeight'] / 1000, 3); // 实际重量 $orderweight2 $totalweight = $orderWhInfoActualWeight; // 总重量 $mailway_c = $channels[$OrderChannelId]; // 根据运输管理系统的接口获取 //$isContainCombineSku = CommonModel::judge_contain_combinesku ( $orderId ); // $ebay_combineorder 判断订单是否包含组合料号,返回true or false $isContainCombineSku = false; //默认订单不含虚拟料号 foreach ($orderDetail as $value) { if (get_isCombineSku($value['orderDetail']['sku'])) { $isContainCombineSku = true; break; } } if (count($orderDetail) == 1) { // 订单明细中只有一条记录时,订单中只有一种料号 $orderDetailTotalData = array_pop($orderDetail); // 取得orderDetail中的这条总记录数据,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetail']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtension']; // 明细中的扩展数据 $orderDetailSku = $orderDetailData['sku']; // 该明细下的$sku $orderDetailExtenItemId = $orderDetailExtenData['itemId']; // itemId $ebay_itemid $orderDetailAmount = intval($orderDetailData['amount']); // $amount 该明细下的sku对应的数量 $orderDetailRecordnumber = $orderDetailData['recordNumber']; // 该明细对应平台的recordnumber $recordnumber $orderDetailStoreId = $orderDetailData['storeId']; //料号所在仓库id $orderDetailItemPrice = round($orderDetailData['itemPrice'], 2) * $orderDetailAmount; // itemPrice(平台对应的销售单价)*对应数量 $ebay_itemprice $ebay_shipfee = round_num($OrderActualTotal - $orderDetailItemPrice, 2); // 订单总价-sku对应的总价得出运费,$ebay_shipfee //$skus = GoodsModel::get_realskuinfo ( $orderDetailSku ); // 获取该sku下对应的真实料号信息(包括料号转换及组合料号对应真实料号信息) $skus = get_realskuinfo($orderDetailSku); // 获取该sku下对应的真实料号信息(包括料号转换及组合料号对应真实料号信息) $values_skus = array_values($skus); // 得到sku的数量 //$combineSku = GoodsModel::getCombineSkuinfo ( $sku ); // 判断该sku是否是组合料号,如果是返回combineSku,sku,count关系记录数据,不是则返回false if ($isContainCombineSku) { // 为组合订单 $goods_costs = 0; $combine_weight_list = array(); $goods_costs_list = array(); foreach ($skus as $k => $v) { $goodsInfo2 = get_trueSkuInfo($k); //获取真实料号信息 $combine_weight_list[$k] = $amount * $v * $goodsInfo2['goodsWeight']; // 组合订单重量数组 $goods_costs_list[$k] = $amount * $v * $goodsInfo2['goodsCost']; // 货本数组 $goods_costs += $amount * $v * $goodsInfo2['goodsCost']; } $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, '', '', $amount * array_sum($values_skus), $orderUserInfoCountryName, $orderDetailItemPrice, $ebay_shipfee, $OrderActualTotal, $orderExtenCurrency, $packinguser, $orderTracknumberOne, validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId, $goods_costs, $orderExtenPayPalPaymentId, '', $isCopy, $isBuji, $isSplit, '', '', $isContainCombineSku ? '组合料号' : '', $mailway_c, $isCombinePackage, $orderExtenPayPalEmailAddress, ''); $excel->addRow($row); foreach ($skus as $k => $v) { $goodsInfo3 = get_trueSkuInfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $goods_location2Info = M('interfaceWh')->getSkuPosition($sku, $orderDetailStoreId); $goods_location2 = $goods_location2Info['pName']; // 仓位 $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : ''; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3[0]['purchaseId']) ? $goodsInfo3[0]['purchaseId'] : ''; $cguser = @$staffLists[$purchaseId]; $ishipfee = round_num($goods_costs_list[$k] / array_sum($goods_costs_list) * $ebay_shipfee, 2); // 根据货本比ebay运费 $iorderweight2 = round($combine_weight_list[$k] / array_sum($combine_weight_list) * $orderWhInfoActualWeight, 3); $iordershipfee = round_num($combine_weight_list[$k] / array_sum($combine_weight_list) * $orderCalcShipping, 2); $iprice = round_num(($goods_costs_list[$k] + $iordershipfee) / (array_sum($goods_costs_list) + $orderCalcShipping) * $ebay_itemprice, 2); // 根据货本比产品价格 last modified by herman.xi @20130916 $row = array('', '', $orderDetailRecordnumber, '', $goods_location2, $k, $amount * $v, '', $iprice, $ishipfee, '', '', '', '', '', $iorderweight2, $iordershipfee, '', '', $goods_cost * $amount * $v, '', $orderDetailExtenItemId, '', '', '', $ebay_packingmaterial, $ebay_packingCost, '组合料号', '', '', '', $cguser); $excel->addRow($row); } } else { // 非组合订单 $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, $goods_location, $orderDetailSku, $orderDetailAmount * array_sum($values_skus), $orderUserInfoCountryName, $orderDetailItemPrice, $ebay_shipfee, $OrderActualTotal, $orderExtenCurrency, $packinguser, $orderTracknumberOne, validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId, $goods_costs, $orderExtenPayPalPaymentId, $orderDetailExtenItemId, $isCopy, $isBuji, $isSplit, $ebay_packingmaterial, $ebay_packingCost, '', $mailway_c, $isCombinePackage, $orderExtenPayPalEmailAddress, $cguser); $excel->addRow($row); } unset($combine_weight_list); unset($goods_costs_list); } else { // 订单详细记录>1 $cctotal = 0; $ebay_itemprice = 0; $goods_costs = 0; $goods_list = array(); $goods_lists = array(); $goods_weight_list = array(); $goods_costs_list = array(); $calculate_weight = 0; foreach ($orderDetail as $orderDetailTotalData) { // $orderDetailTotalData ,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetail']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtension']; // 明细中的扩展数据 $detail_id = $orderDetailData['id']; $sku = $orderDetailData['sku']; $skus = get_realskuinfo($sku); $_ebay_itemprice = round($orderDetailData['itemPrice'], 2); $ebay_itemprice += $orderDetailData['amount'] * $_ebay_itemprice; foreach ($skus as $k => $v) { $goodsInfo3 = get_trueSkuInfo($k); $_ebay_amount = intval($orderDetailData['amount'] * $v); $cctotal += $_ebay_amount; $calculate_weight += $_ebay_amount * $goodsInfo3['goodsWeight']; $goods_weight_list[$detail_id . $sku][$k] = $_ebay_amount * $goodsInfo3['goodsWeight']; $goods_costs_list[$detail_id . $sku][$k] = round($goodsInfo3['goodsCost'], 2) * $_ebay_amount; $goods_costs += round($goodsInfo3['goodsCost'], 2) * $_ebay_amount; } } // echo "---------$ebay_itemprice--------"; $ebay_shipfee = round_num($OrderActualTotal - $ebay_itemprice, 2); $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, '', '', $cctotal, $orderUserInfoCountryName, $ebay_itemprice, $ebay_shipfee, $OrderActualTotal, $orderExtenCurrency, $packinguser, $orderTracknumberOne, validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId, $goods_costs, $orderExtenPayPalPaymentId, '', $isCopy, $isBuji, $isSplit, '', '', $isContainCombineSku ? '组合料号' : '', $mailway_c, $isCombinePackage, $orderExtenPayPalEmailAddress, ''); $excel->addRow($row); foreach ($orderDetail as $orderDetailTotalData) { // $orderDetailTotalData ,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetail']; // 明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtension']; // 明细中的扩展数据 $detail_id = $orderDetailData['id']; $skuDe = $orderDetailData['sku']; $orderDetailStoreId = $orderDetailData['storeId']; $recordnumber = $orderDetailData['recordNumber']; $orderDetailExtenItemId = $orderDetailExtenData['itemId']; // itemId $ebay_itemid // $ebay_itemid = $detail_array['ebay_itemid']; $amount = intval($orderDetailData['amount']); $dshipingfee = $orderDetailData['shippingFee']; $debay_itemprice = round($orderDetailData['itemPrice'], 2); $goodsInfo3 = get_trueSkuInfo($skuDe); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : 0; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3['purchaseId']) ? $goodsInfo3['purchaseId'] : ''; $cguser = @$staffLists[$purchaseId]; $dordershipfee = round($orderCalcShipping * (array_sum($goods_weight_list[$detail_id . $skuDe]) / $calculate_weight), 2); $dorderweight2 = round($orderWhInfoActualWeight * (array_sum($goods_weight_list[$detail_id . $skuDe]) / $calculate_weight), 3); $isContainCombineSku = false; //默认订单不含虚拟料号 foreach ($orderDetail as $value) { if (get_isCombineSku($value['orderDetail']['sku'])) { $isContainCombineSku = true; break; } } if ($isContainCombineSku) { // 为组合料号 $skus = get_realskuinfo($skuDe); foreach ($skus as $k => $v) { ${$goods_locationInfo} = M('interfaceWh')->getSkuPosition($k, $orderDetailStoreId); $goods_location = ${$goods_locationInfo}['pName']; // 仓位 //$goods_location = CommonModel::getPositionBySku ( $k ); $goodsInfo3 = get_trueSkuInfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : ''; $ebay_packingmaterial = $packings[$pmId]['pmName']; $ebay_packingCost = $packings[$pmId]['pmCost']; $purchaseId = isset($goodsInfo3['purchaseId']) ? $goodsInfo3['purchaseId'] : ''; $cguser = @$staffLists[$purchaseId]; // $iprice = round_num(($goods_costs_list[$detail_id.$k][$k]/array_sum($goods_costs_list[$detail_id.$k])) * $debay_itemprice * $amount,2); //根据货本比产品价格 $ishipfee = round_num($goods_costs_list[$detail_id . $skuDe][$k] / array_sum($goods_costs_list[$detail_id . $skuDe]) * $dshipingfee, 2); // 根据货本比ebay运费 $iorderweight2 = round($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dorderweight2, 3); $iordershipfee = round_num($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dordershipfee, 2); $iprice = round_num(($goods_costs_list[$detail_id . $skuDe][$k] + $iordershipfee) / (array_sum($goods_costs_list[$detail_id . $skuDe]) + $dordershipfee) * $debay_itemprice * $amount, 2); // 根据货本比产品价格 last modified by herman.xi @20130916 $row = array('', '', $recordnumber, '', $goods_location, $k, $amount * $v, '', $iprice, $ishipfee, '', '', '', '', '', $iorderweight2, $iordershipfee, '', '', $goods_cost * $amount * $v, '', $orderDetailExtenItemId, '', '', '', $ebay_packingmaterial, $ebay_packingCost, '组合料号', '', '', '', $cguser); $excel->addRow($row); } } else { $row = array('', '', $recordnumber, '', $goods_location, $skuDe, $amount, '', $debay_itemprice * $amount, $dshipingfee, '', '', '', '', '', $dorderweight2, $dordershipfee, '', '', $goods_cost * $amount, '', $orderDetailExtenItemId, '', '', '', $ebay_packingmaterial, $ebay_packingCost, '', '', '', '', $cguser); $excel->addRow($row); } } unset($goods_weight_list); unset($goods_costs_list); } } $excel->finalize(); exit; }
function calc_order($ebay_id, $table_name) { global $dbcon, $db, $accounts, $packings, $team_sale_arr, $team_caigou_arr; $sql = "SELECT ebay_id,recordnumber,ebay_ptid,ebay_ordersn,ebay_account,ebay_userid,ebay_currency,ebay_shipfee,ebay_countryname,orderweight2,ebay_carrier,scantime,ebay_total,is_main_order,is_sendreplacement FROM ebay_order WHERE ebay_status=2 AND ebay_combine!=1 AND ebay_id={$ebay_id} ORDER BY scantime ASC"; $sql = $dbcon->query($sql); $orderlists = $dbcon->getResultArray($sql); foreach ($orderlists as $key => $orderlist) { //获取订单所属的平台 foreach ($accounts as $platform => $accountarr) { if (in_array($orderlist['ebay_account'], $accountarr)) { $order_platform = $platform; break; } } if ($order_platform != "ebay") { // 只计算ebay 平台的 echo $order_platform . "\n"; //return false; return 1; } //$idsk = array_search($orderlist ['ebay_userid'], $ids); //unset($ids[$idsk]); $orderlist['ebay_total'] = floatval($orderlist['ebay_total']); //订单总收入 item总收入 + 运费收入Gross rate $orderlist['ebay_shipfee'] = floatval($orderlist['ebay_shipfee']); $orderinfos = array(); $mainlist = array(); $mainlist['order_scantime'] = $orderlist['scantime']; $mainlist['order_id'] = $orderlist['ebay_id']; $mainlist['recordnumber'] = $orderlist['recordnumber']; $mainlist['ptid'] = $orderlist['ebay_ptid']; $mainlist['order_currency'] = $orderlist['ebay_currency']; //币种 $mainlist['order_countryname'] = $orderlist['ebay_countryname']; //国家名称 $mainlist['order_weight'] = $orderlist['orderweight2'] / 1000; //实际称重重量 $mainlist['sale_userid'] = $orderlist['ebay_userid']; //国家名称 $mainlist['send_account'] = $orderlist['ebay_account']; //账号 $mainlist['send_carrier'] = $orderlist['ebay_carrier']; //实际发货方式 $mainlist['send_allshipfee'] = calctrueshippingfee($orderlist['ebay_carrier'], $mainlist['order_weight'], $orderlist['ebay_countryname'], $orderlist['ebay_id']); //实际发货方式 $mainlist['send_allshipfee'] = in_array($orderlist['ebay_carrier'], array('Global Mail')) ? _HKD2CNY($mainlist['send_allshipfee']) : $mainlist['send_allshipfee']; if (in_array($orderlist['ebay_carrier'], array('中国邮政平邮', '中国邮政挂号', 'EUB', 'EMS'))) { $mainlist['send_rebateshipfee'] = calctrueshippingfee2($orderlist['ebay_carrier'], $mainlist['order_weight'], $orderlist['ebay_countryname'], $orderlist['ebay_id']); //计算折扣 } else { $mainlist['send_rebateshipfee'] = $mainlist['send_allshipfee']; } // 打折后的运费 $mainlist['is_copyorder'] = $orderlist['is_main_order'] == 1 ? 1 : ($orderlist['is_main_order'] == 2 ? 2 : 0); //$judge_is_splitorder = judge_is_splitorder($orderlist ['ebay_id']); $es_sql = "select * from ebay_splitorder as es where (split_order_id = '{$orderlist['ebay_id']}' OR main_order_id = '{$orderlist['ebay_id']}') "; $result = $dbcon->execute($es_sql); $result = $dbcon->fetch_one($result); if ($result['mode'] == 0) { $mainlist['is_splitorder'] = 1; } else { $mainlist['is_splitorder'] = 0; } if ($result['mode'] == 4) { $mainlist['is_suppleorder'] = 1; } else { $mainlist['is_suppleorder'] = 0; } if ($result['mode'] == 2 || $result['mode'] == 7) { $is_effectiveorder = 1; } else { $is_effectiveorder = 0; } $mainlist['is_effectiveorder'] = $is_effectiveorder; //$mainlist['is_suppleorder'] = $orderlist ['is_sendreplacement']; $mainlist['order_platform'] = $order_platform; $mainlist['order_sendZone'] = _getSendZone($orderlist['ebay_id']); //订单发货分区 $splitorder_log = func_readlog_splitorder($orderlist['ebay_id']); $mainlist['splitorder_log'] = $splitorder_log !== false ? $splitorder_log + 1 : 0; $sql = "select * from ebay_orderdetail where ebay_ordersn='{$orderlist['ebay_ordersn']}'"; $sql = $dbcon->query($sql); $detaillists = $dbcon->getResultArray($sql); $combineppfee = array(); $combineskutotal = array(); $combineskuapportion = array(); $combineskushippingfee = array(); if (count($detaillists) == 1 && !_is_combinesku($detaillists[0]['sku'])) { // 非组合料号订单 $detaillist = $detaillists[0]; $detaillist['shipingfee'] = floatval($detaillist['shipingfee']); $detaillist['ebay_itemprice'] = floatval($detaillist['ebay_itemprice']); $goodsinfo = _get_skuinfo($detaillist['sku']); $orderinfo = $mainlist; list($spu) = explode('_', $detaillist['sku']); $orderinfo['csku'] = ''; // 增加获取对应的销售 $skuInfo = _getSkuInfo($detaillist['sku']); $orderinfo['sku'] = $detaillist['sku']; $orderinfo['spu'] = $skuInfo['spu']; $orderinfo['order_number'] = 1; //订单数量 $members = _getMemberFromSpu($skuInfo['spu']); $membersArr = $members[$skuInfo['spu']]; foreach ($membersArr as $pkey => $item) { if ($accountPlatform[$pkey] == $order_platform) { $orderinfo['salemember'] = $item['global_user_name']; break; } } foreach ($team_sale_arr as $teamname => $team_arr) { if (in_array($orderinfo['salemember'], $team_arr)) { $orderinfo['sale_team'] = $teamname; break; } } $orderinfo['order_type'] = '普通'; $orderinfo['order_total'] = $detaillist['ebay_itemprice'] * intval($detaillist['ebay_amount']); //订单总收入 item总收入 + 运费收入Gross rate $orderinfo['order_shipfee'] = $detaillist['shipingfee']; $orderinfo['order_usdtotal'] = round(_other2USD($orderlist['ebay_currency'], $orderinfo['order_total'] + $orderinfo['order_shipfee']), 3); //$orderinfo['order_ppfee'] = in_array($orderlist ['ebay_account'], $EBAY_ACCOUNTS_CONFIG) ? round(_other2USD($orderlist ['ebay_currency'], _get_PPfee($orderinfo['order_total']+$orderinfo['order_shipfee'])), 3) : 0; if (in_array($orderlist['ebay_account'], $accounts['ebay'])) { $order_ppfee = _other2USD($orderlist['ebay_currency'], _get_PPfee($orderinfo['order_total'] + $orderinfo['order_shipfee'])); $orderinfo['order_ppfee'] = round($order_ppfee, 3); } else { $orderinfo['order_ppfee'] = 0; } $orderinfo['order_cnytotal'] = round(_USD2CNY($orderinfo['order_usdtotal'] - $orderinfo['order_ppfee']), 3); $orderinfo['sell_count'] = intval($detaillist['ebay_amount']); $orderinfo['sell_skuprice'] = $orderinfo['order_usdtotal']; $orderinfo['sell_cskuprice'] = 0; $orderinfo['sell_onlineskuprice'] = $detaillist['ebay_itemprice'] * intval($detaillist['ebay_amount']); $orderinfo['sell_onlineskushipfee'] = $detaillist['shipingfee']; $orderinfo['sku_cost'] = $goodsinfo['goods_cost'] * $orderinfo['sell_count']; $orderinfo['sku_purchase'] = $goodsinfo['cguser']; //获取采购所在team 名字 foreach ($team_caigou_arr as $teamname => $team_arr) { if (in_array($orderinfo['sku_purchase'], $team_arr)) { $orderinfo['caigou_team'] = $teamname; break; } } $orderinfo['sku_weight'] = $goodsinfo['goods_weight'] * $orderinfo['sell_count']; $orderinfo['sku_packing'] = $goodsinfo['ebay_packingmaterial']; $orderinfo['sku_packingcost'] = isset($packings[$goodsinfo['ebay_packingmaterial']]) ? $packings[$goodsinfo['ebay_packingmaterial']] : 0; $orderinfo['sku_processingcost'] = sku_processingcost($orderinfo['sell_count']); $orderinfo['is_register'] = is_registershipping($mainlist['send_carrier']); //是否挂号 $orderinfo['order_grossrate'] = $orderinfo['order_cnytotal'] - $orderinfo['sku_cost'] - $orderinfo['sku_packingcost'] - $orderinfo['sku_processingcost'] - $orderinfo['send_rebateshipfee']; $orderinfo['order_skugrossrate'] = $orderinfo['order_grossrate']; $orderinfo['order_cskugrossrate'] = 0; $orderinfo['order_grossmarginrate'] = round($orderinfo['order_grossrate'] * (1 - 0.135) / $orderinfo['order_cnytotal'], 5); //$orderinfo['is_effective'] = $orderlist ['ebay_shipfee']==$detaillist ['shipingfee']&&$orderlist ['ebay_total'].''==($orderlist ['ebay_shipfee']+$orderinfo['sell_onlineskuprice']).'' ? 0 : 1; //$orderlist ['ebay_total'] == ($orderlist ['ebay_shipfee'] + $orderinfo['sell_onlineskuprice']); $is_effective = array(); if ($orderlist['ebay_shipfee'] == $detaillist['shipingfee']) { $is_effective['shipingfee'] = 0; } else { $is_effective['shipingfee'] = 1; } $tmpVal = $orderlist['ebay_shipfee'] + $orderinfo['sell_onlineskuprice']; //var_dump($orderlist['ebay_total'],$tmpVal); //var_dump($orderlist ['ebay_total'] == $tmpVal); //var_dump(md5($orderlist['ebay_total'])==md5($tmpVal)); /* if($orderlist ['ebay_total'] == $tmpVal){ }else{ echo "#####################"; $orderinfo['is_effective'] = 1; } */ if (bccomp($orderlist['ebay_total'], $tmpVal, 2) == 0) { //比较浮点数 $is_effective['ebay_total'] = 0; } else { $is_effective['ebay_total'] = 1; } if ($orderinfo['sku_weight'] == 0) { $is_effective['sku_weight'] = 1; } else { $is_effective['sku_weight'] = 0; } if (empty($orderinfo['sku_purchase'])) { $is_effective['sku_purchase'] = 1; } else { $is_effective['sku_purchase'] = 0; } if ($orderinfo['sku_cost'] == 0) { $is_effective['sku_cost'] = 1; } else { $is_effective['sku_cost'] = 0; } if (empty($orderinfo['order_currency'])) { $is_effective['order_currency'] = 1; } else { $is_effective['order_currency'] = 0; } $effectiveNum = array_sum($is_effective); if ($effectiveNum > 0) { // 异常订单 $is_effective['order_id'] = $orderlist['ebay_id']; $is_effective['sku'] = $detaillist['sku']; print_r($is_effective); $db->ebay_unorder->insert($is_effective); //异常订单 unset($is_effective); $orderinfo['is_effective'] = 1; } else { //木有异常进行修复处理 $orderinfo['is_effective'] = 0; } $orderinfos["{$detaillist['ebay_id']}_{$detaillist['sku']}"] = $orderinfo; } else { $orderinfo = $mainlist; $skutotal = 0; $skushippingtotal = 0; $mixweightlist = array(); $orderinfo['csku'] = 0; $orderinfo['sku'] = 0; $orderinfo['spu'] = 0; $orderinfo['order_type'] = '组合订单'; $orderinfo['order_total'] = $orderlist['ebay_total']; //订单总收入 item总收入 + 运费收入Gross rate $orderinfo['order_shipfee'] = $orderlist['ebay_shipfee']; $orderinfo['order_usdtotal'] = 0; $orderinfo['order_ppfee'] = 0; $orderinfo['order_cnytotal'] = 0; $orderinfo['sell_count'] = 0; //后续 $orderinfo['sell_skuprice'] = 0; $orderinfo['sell_cskuprice'] = 0; $orderinfo['sell_onlineskuprice'] = 0; $orderinfo['sell_onlineskushipfee'] = 0; $orderinfo['sku_packingcost'] = 0; $orderinfo['sku_processingcost'] = 0; $orderinfo['sku_cost'] = 0; //后续 $orderinfo['sku_purchase'] = '无'; $orderinfo['sku_weight'] = 0; $orderinfo['sku_packing'] = '无'; $orderinfo['sku_packingcost'] = 0; $orderinfo['sku_processingcost'] = 0; $orderinfo['is_register'] = is_registershipping($mainlist['send_carrier']); $orderinfo['order_grossrate'] = 0; $orderinfo['order_skugrossrate'] = 0; $orderinfo['order_cskugrossrate'] = 0; $orderinfo['order_grossmarginrate'] = 0; $orderinfo['order_number'] = 1; //订单数量 $orderinfos['main'] = $orderinfo; foreach ($detaillists as $dkey => $detaillist) { $detaillist['shipingfee'] = floatval($detaillist['shipingfee']); $detaillist['ebay_itemprice'] = floatval($detaillist['ebay_itemprice']); $sql = "select goods_location,goods_weight,goods_cost,ebay_packingmaterial,cguser from ebay_goods where goods_sn='{$detaillist['sku']}'"; $sql = $dbcon->query($sql); $goodsinfo = $dbcon->fetch_one($sql); $skutotal += $detaillist['ebay_itemprice'] * $detaillist['ebay_amount']; $skushippingtotal += $detaillist['shipingfee']; if (_is_combinesku($detaillist['sku'])) { // 组合料号 $goodsinfos = array(); $combinepricelist = array(); $combineweightlist = array(); $combinskus = get_realskuinfo($detaillist['sku']); foreach ($combinskus as $sku => $count) { $goodsinfo = _get_skuinfo($sku); $goodsinfos[$sku] = $goodsinfo; $combinepricelist["{$detaillist['ebay_id']}_{$sku}"] = $goodsinfo['goods_cost'] * $count; $combineweightlist["{$detaillist['ebay_id']}_{$sku}"] = $goodsinfo['goods_weight'] * $count; } $combineppfee["{$detaillist['ebay_id']}"] = round(_other2USD($orderlist['ebay_currency'], _get_PPfee($detaillist['ebay_itemprice'] * $detaillist['ebay_amount'] + $detaillist['shipingfee'])), 3); $combineskutotal["{$detaillist['ebay_id']}"] = $detaillist['ebay_itemprice'] * $detaillist['ebay_amount']; $combineskushippingfee["{$detaillist['ebay_id']}"] = $detaillist['shipingfee']; foreach ($combinskus as $sku => $count) { $orderinfo = $mainlist; list($spu) = explode('_', $sku); $goodsinfo = $goodsinfos[$sku]; $orderinfo['csku'] = $detaillist['sku']; // 增加获取对应的销售 //$skuInfo = _getSkuInfo($detaillist['sku']); //$orderinfo['sku'] = $detaillist['sku']; //$orderinfo['spu'] = $skuInfo['spu']; $cspu_tmp = explode("_", $detaillist['sku']); $cspu = $cspu_tmp[0]; $members = _getMemberFromSpu($cspu); $membersArr = $members[$cspu]; foreach ($membersArr as $pkey => $item) { if ($accountPlatform[$pkey] == $order_platform) { $orderinfo['csalemember'] = $item['global_user_name']; //组合料号的销售 break; } } foreach ($team_sale_arr as $teamname => $team_arr) { if (in_array($orderinfo['csalemember'], $team_arr)) { $orderinfo['csale_team'] = $teamname; break; } } $orderinfo['sku'] = $sku; $skuInfo = _getSkuInfo($sku); //$orderinfo['sku'] = $detaillist['sku']; $orderinfo['spu'] = $skuInfo['spu']; $members = _getMemberFromSpu($skuInfo['spu']); $membersArr = $members[$skuInfo['spu']]; foreach ($membersArr as $pkey => $item) { if ($accountPlatform[$pkey] == $order_platform) { $orderinfo['salemember'] = $item['global_user_name']; break; } } foreach ($team_sale_arr as $teamname => $team_arr) { if (in_array($orderinfo['salemember'], $team_arr)) { $orderinfo['sale_team'] = $teamname; break; } } $orderinfo['spu'] = $spu; $orderinfo['order_type'] = '组合'; $orderinfo['order_number'] = 0; //订单数量 $orderinfo['sell_count'] = intval($detaillist['ebay_amount']) * $count; $orderinfo['sku_cost'] = $goodsinfo['goods_cost'] * $orderinfo['sell_count']; $orderinfo['sku_purchase'] = $goodsinfo['cguser']; //print_r($team_caigou_arr); foreach ($team_caigou_arr as $teamname => $team_arr) { if (in_array($orderinfo['sku_purchase'], $team_arr)) { $orderinfo['caigou_team'] = $teamname; break; } } $orderinfo['sku_weight'] = $goodsinfo['goods_weight'] * $orderinfo['sell_count']; $orderinfo['sku_packing'] = $goodsinfo['ebay_packingmaterial']; $orderinfo['sku_packingcost'] = isset($packings[$goodsinfo['ebay_packingmaterial']]) ? $packings[$goodsinfo['ebay_packingmaterial']] : 0; $orderinfo['sku_processingcost'] = sku_processingcost($orderinfo['sell_count']); $orderinfo['is_register'] = 0; $orderinfos["{$detaillist['ebay_id']}_{$sku}"] = $orderinfo; $mixweightlist["{$detaillist['ebay_id']}_{$sku}"] = $goodsinfo['goods_weight'] * $detaillist['ebay_amount']; $combineskuapportion["{$detaillist['ebay_id']}_{$sku}"] = $goodsinfo['goods_cost']; } unset($goodsinfos, $goodsinfo); } else { $orderinfo = $mainlist; list($spu) = explode('_', $detaillist['sku']); $orderinfo['csku'] = 0; $orderinfo['sku'] = $detaillist['sku']; $orderinfo['spu'] = $spu; // 增加获取对应的销售 $skuInfo = _getSkuInfo($detaillist['sku']); $orderinfo['sku'] = $detaillist['sku']; $orderinfo['spu'] = $skuInfo['spu']; $members = _getMemberFromSpu($skuInfo['spu']); $membersArr = $members[$skuInfo['spu']]; foreach ($membersArr as $pkey => $item) { if ($accountPlatform[$pkey] == $order_platform) { $orderinfo['salemember'] = $item['global_user_name']; break; } } foreach ($team_sale_arr as $teamname => $team_arr) { if (in_array($orderinfo['salemember'], $team_arr)) { $orderinfo['sale_team'] = $teamname; break; } } $orderinfo['order_type'] = '组合'; $orderinfo['order_total'] = $detaillist['ebay_itemprice'] * $detaillist['ebay_amount']; $orderinfo['order_shipfee'] = $detaillist['shipingfee']; $orderinfo['order_usdtotal'] = round(_other2USD($orderlist['ebay_currency'], $orderinfo['order_total'] + $orderinfo['order_shipfee']), 3); if (in_array($orderlist['ebay_account'], $accounts['ebay'])) { $order_ppfee = _other2USD($orderlist['ebay_currency'], _get_PPfee($orderinfo['order_total'] + $orderinfo['order_shipfee'])); $orderinfo['order_ppfee'] = round($order_ppfee, 3); } else { $orderinfo['order_ppfee'] = 0; } $orderinfo['order_cnytotal'] = round(_USD2CNY($orderinfo['order_usdtotal'] - $orderinfo['order_ppfee']), 3); $orderinfo['sell_count'] = intval($detaillist['ebay_amount']); $orderinfo['sell_skuprice'] = $orderinfo['order_usdtotal']; $orderinfo['sell_cskuprice'] = 0; $orderinfo['sell_onlineskuprice'] = $detaillist['ebay_itemprice'] * intval($detaillist['ebay_amount']); $orderinfo['sell_onlineskushipfee'] = $detaillist['shipingfee']; $orderinfo['sku_cost'] = $goodsinfo['goods_cost'] * $orderinfo['sell_count']; $orderinfo['sku_purchase'] = $goodsinfo['cguser']; $orderinfo['order_number'] = 0; //订单数量 foreach ($team_caigou_arr as $teamname => $team_arr) { if (in_array($orderinfo['sku_purchase'], $team_arr)) { $orderinfo['caigou_team'] = $teamname; break; } } $orderinfo['sku_weight'] = $goodsinfo['goods_weight'] * $orderinfo['sell_count']; $orderinfo['sku_packing'] = $goodsinfo['ebay_packingmaterial']; $orderinfo['sku_packingcost'] = isset($packings[$goodsinfo['ebay_packingmaterial']]) ? $packings[$goodsinfo['ebay_packingmaterial']] : 0; $orderinfo['sku_processingcost'] = sku_processingcost($orderinfo['sell_count']); $orderinfo['is_register'] = 0; $orderinfos["{$detaillist['ebay_id']}_{$detaillist['sku']}"] = $orderinfo; $mixweightlist["{$detaillist['ebay_id']}_{$detaillist['sku']}"] = $goodsinfo['goods_weight'] * $detaillist['ebay_amount']; } } //var_dump( $orderlist['ebay_shipfee'], $skushippingtotal, $orderlist['ebay_total'].''==($orderlist['ebay_shipfee']+$skutotal).'' ); $orderinfos['main']['order_total'] = $skutotal; $orderinfos['main']['order_shipfee'] = $skushippingtotal; //$orderinfos['main']['is_effective'] = &&$orderlist['ebay_total'].''==($orderlist['ebay_shipfee']+$skutotal).'' ? 0 : 32; $is_effective = array(); if ($orderlist['ebay_shipfee'] == $skushippingtotal) { $is_effective['shipingfee'] = 0; } else { $is_effective['shipingfee'] = 1; } $tmpVal = $orderlist['ebay_shipfee'] + $skutotal; if (bccomp($orderlist['ebay_total'], $tmpVal, 2) == 0) { //比较浮点数 $is_effective['ebay_total'] = 0; } else { $is_effective['ebay_total'] = 1; } if (array_sum($is_effective) > 0) { $orderinfos['main']['is_effective'] = 1; } else { $orderinfos['main']['is_effective'] = 0; } $veryallweight = _calceveryweight($mixweightlist, $mainlist['order_weight']); $veryallshipfee = _calceveryweight($veryallweight, $mainlist['send_allshipfee']); $rebateallshipfee = _calceveryweight($veryallweight, $mainlist['send_rebateshipfee']); $_combineskuapportion = array(); foreach ($combineskuapportion as $cakey => $cavalue) { list($_detailid) = explode('_', $cakey); $_combineskuapportion[$_detailid][$cakey] = $cavalue + $rebateallshipfee[$cakey]; } foreach ($combineskutotal as $detailid => $cskutotal) { $combineppfees[$detailid] = _calceveryweight($_combineskuapportion[$detailid], $combineppfee[$detailid]); $combineskutotals[$detailid] = _calceveryweight($_combineskuapportion[$detailid], $combineskutotal[$detailid]); $combineskushippingfees[$detailid] = _calceveryweight($_combineskuapportion[$detailid], $combineskushippingfee[$detailid]); } //$combineorderprices = _calceveryweight($combinepricelist, $detaillist['ebay_itemprice']*$detaillist['ebay_amount']); foreach ($combineskuapportion as $cakey => $cavalue) { list($_detailid) = explode('_', $cakey); $orderinfos[$cakey]['order_total'] = $combineskutotals[$_detailid][$cakey]; $orderinfos[$cakey]['order_shipfee'] = $combineskushippingfees[$_detailid][$cakey]; $orderinfos[$cakey]['order_usdtotal'] = round(_other2USD($orderinfos[$cakey]['order_currency'], $orderinfos[$cakey]['order_total'] + $orderinfos[$cakey]['order_shipfee']), 3); //$orderinfos[$cakey]['order_ppfee'] = in_array($orderlist ['ebay_account'], $EBAY_ACCOUNTS_CONFIG) ? $combineppfees[$_detailid][$cakey] : 0;//round(_other2USD($orderinfos[$cakey]['order_currency'], _get_PPfee($orderinfos[$cakey]['order_total'])), 3); if (in_array($orderlist['ebay_account'], $accounts['ebay'])) { $orderinfos[$cakey]['order_ppfee'] = $combineppfees[$_detailid][$cakey]; } else { $orderinfos[$cakey]['order_ppfee'] = 0; } $orderinfos[$cakey]['order_cnytotal'] = round(_USD2CNY($orderinfos[$cakey]['order_usdtotal'] - $orderinfos[$cakey]['order_ppfee']), 3); $orderinfos[$cakey]['sell_skuprice'] = $orderinfos[$cakey]['order_usdtotal'] * 0.7; $orderinfos[$cakey]['sell_cskuprice'] = $orderinfos[$cakey]['order_usdtotal'] * 0.3; $orderinfos[$cakey]['sell_onlineskuprice'] = $combineskutotals[$_detailid][$cakey]; $orderinfos[$cakey]['sell_onlineskushipfee'] = $combineskushippingfees[$_detailid][$cakey]; } foreach ($mixweightlist as $mwkey => $veryweight) { if ($orderinfos[$mwkey]['sku_weight'] == 0) { $is_effective['sku_weight'] = 1; } else { $is_effective['sku_weight'] = 0; } if (empty($orderinfos[$mwkey]['sku_purchase'])) { $is_effective['sku_purchase'] = 1; } else { $is_effective['sku_purchase'] = 0; } if ($orderinfos[$mwkey]['sku_cost'] == 0) { $is_effective['sku_cost'] = 1; } else { $is_effective['sku_cost'] = 0; } if (empty($orderinfos[$mwkey]['order_currency'])) { $is_effective['order_currency'] = 1; } else { $is_effective['order_currency'] = 0; } $effectiveNum = array_sum($is_effective); if ($effectiveNum > 0) { // 异常订单 $is_effective['order_id'] = $mainlist['order_id']; $is_effective['csku'] = $orderinfos[$mwkey]['csku']; $is_effective['sku'] = $orderinfos[$mwkey]['sku']; print_r($is_effective); $db->ebay_unorder->insert($is_effective); //异常订单 unset($is_effective); $orderinfos[$mwkey]['is_effective'] = 1; } else { //木有异常进行修复处理 $orderinfos[$mwkey]['is_effective'] = 0; } $orderinfos[$mwkey]['order_weight'] = $veryallweight[$mwkey]; $orderinfos[$mwkey]['send_allshipfee'] = $veryallshipfee[$mwkey]; $orderinfos[$mwkey]['send_rebateshipfee'] = $rebateallshipfee[$mwkey]; $orderinfos[$mwkey]['order_grossrate'] = $orderinfos[$mwkey]['order_cnytotal'] - $orderinfos[$mwkey]['sku_cost'] - $orderinfos[$mwkey]['sku_packingcost'] - $orderinfos[$mwkey]['sku_processingcost'] - $orderinfos[$mwkey]['send_rebateshipfee']; $orderinfos[$mwkey]['order_skugrossrate'] = $orderinfos[$mwkey]['csku'] != '' ? $orderinfos[$mwkey]['order_grossrate'] * 0.7 : $orderinfos[$mwkey]['order_grossrate']; $orderinfos[$mwkey]['order_cskugrossrate'] = $orderinfos[$mwkey]['csku'] != '' ? $orderinfos[$mwkey]['order_grossrate'] * 0.3 : 0; $orderinfos[$mwkey]['order_grossmarginrate'] = round($orderinfos[$mwkey]['order_grossrate'] * (1 - 0.135) / $orderinfos[$mwkey]['order_cnytotal'], 5); } } print_r($orderinfos); foreach ($orderinfos as $insertItem) { //$db->$table_name->insert($insertItem); } return true; } }
if ($isNotIn) { Log::write('订单' . $msg_array['orderData']['id'] . '仓库系统已经存在', Log::ERR); //continue; } } } if (!$isNotIn) { $isNote = empty($msg_array['notes']) ? 0 : 1; $sku_info = array(); foreach ($msg_array['orderDetail'] as $orderDetail) { $is_combine = get_skuIsCombine($orderDetail['orderDetailData']['sku']); //var_dump($is_combine); exit; $itemTitle = !empty($orderDetail['orderDetailExtenData']['0']['itemTitle']) ? mysql_real_escape_string($orderDetail['orderDetailExtenData']['0']['itemTitle']) : ''; $itemPrice = $orderDetail['orderDetailData']['itemPrice']; if ($is_combine) { $true_sku = get_realskuinfo($orderDetail['orderDetailData']['sku']); foreach ($true_sku as $sku => $num) { if (isset($sku_info[$orderDetail['orderDetailData']['sku']][$sku])) { $sku_info[$orderDetail['orderDetailData']['sku']][$sku] = $sku_info[$orderDetail['orderDetailData']['sku']][$sku] + $num * $orderDetail['orderDetailData']['amount']; } else { $sku_info[$orderDetail['orderDetailData']['sku']][$sku] = $num * $orderDetail['orderDetailData']['amount']; } } if (isset($sku_info[$orderDetail['orderDetailData']['sku']]['amount'])) { $sku_info[$orderDetail['orderDetailData']['sku']]['amount'] = $sku_info[$orderDetail['orderDetailData']['sku']]['amount'] + $orderDetail['orderDetailData']['amount']; } else { $sku_info[$orderDetail['orderDetailData']['sku']]['amount'] = $orderDetail['orderDetailData']['amount']; } $sku_info[$orderDetail['orderDetailData']['sku']]['itemTitle'] = $itemTitle; $sku_info[$orderDetail['orderDetailData']['sku']]['itemPrice'] = $itemPrice; } else {
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(); } }
public function view_getskuStockList() { $type = isset($_GET['type']) ? $_GET['type'] : ''; $searchContent = isset($_GET['searchContent']) ? $_GET['searchContent'] : ''; $online = isset($_GET['online']) ? $_GET['online'] : ''; $warehouse = isset($_GET['warehouse']) ? $_GET['warehouse'] : ''; $isnew = isset($_GET['isnew']) ? $_GET['isnew'] : ''; $pid_one = isset($_GET['pid_one']) ? $_GET['pid_one'] : ''; $pid_two = isset($_GET['pid_two']) ? $_GET['pid_two'] : ''; $pid_three = isset($_GET['pid_three']) ? $_GET['pid_three'] : ''; $pid_four = isset($_GET['pid_four']) ? $_GET['pid_four'] : ''; $skuStockAct = new SkuStockAct(); $where = 'WHERE a.is_delete=0 '; if (!empty($online)) { $where .= "AND a.goodsStatus='{$online}' "; $this->smarty->assign('online', $online); } if (!empty($warehouse)) { $where .= "AND b.storeId='{$warehouse}' "; $this->smarty->assign('warehouse', $warehouse); } if (is_numeric($isnew)) { $where .= "AND a.isNew='{$isnew}' "; $this->smarty->assign('isnew', $isnew); } if (!empty($pid_four)) { $cate = $pid_one . "-" . $pid_two . "-" . $pid_three . "-" . $pid_four; $where .= "AND a.goodsCategory='{$cate}' "; $this->smarty->assign('pid_four', $pid_four); $this->smarty->assign('pid_three', $pid_three); $this->smarty->assign('pid_two', $pid_two); $this->smarty->assign('pid_one', $pid_one); $cate_four = $skuStockAct->act_getCategoryInfo($pid_three); $this->smarty->assign('cate_four', $cate_four); $cate_three = $skuStockAct->act_getCategoryInfo($pid_two); $this->smarty->assign('cate_three', $cate_three); $cate_two = $skuStockAct->act_getCategoryInfo($pid_one); $this->smarty->assign('cate_two', $cate_two); } else { if (!empty($pid_three)) { $cate = $pid_one . "-" . $pid_two . "-" . $pid_three; $where .= "AND a.goodsCategory='{$cate}' "; $this->smarty->assign('pid_three', $pid_three); $this->smarty->assign('pid_two', $pid_two); $this->smarty->assign('pid_one', $pid_one); $cate_three = $skuStockAct->act_getCategoryInfo($pid_two); $this->smarty->assign('cate_three', $cate_three); $cate_two = $skuStockAct->act_getCategoryInfo($pid_one); $this->smarty->assign('cate_two', $cate_two); } else { if (!empty($pid_two)) { $cate = $pid_one . "-" . $pid_two; $where .= "AND a.goodsCategory='{$cate}' "; $this->smarty->assign('pid_two', $pid_two); $this->smarty->assign('pid_one', $pid_one); $cate_two = $skuStockAct->act_getCategoryInfo($pid_one); $this->smarty->assign('cate_two', $cate_two); } else { if (!empty($pid_one)) { $where .= "AND a.goodsCategory='{$pid_one}' "; $this->smarty->assign('pid_one', $pid_one); } } } } switch ($type) { case '1': $spuinfo = OmAvailableModel::getTNameList("pc_goods", "sku", "where spu='{$searchContent}'"); if (empty($spuinfo)) { $skuinfo = get_realskuinfo($searchContent); foreach ($skuinfo as $sku => $num) { $sku_str .= "'" . $sku . "',"; } $sku_str = trim($sku_str, ','); $where .= "AND a.sku in (" . $sku_str . ") "; } else { foreach ($spuinfo as $info) { $sku_str .= "'" . $info['sku'] . "',"; } $sku_str = trim($sku_str, ','); $where .= "AND a.sku in (" . $sku_str . ") "; } break; case '2': $positionIds = SkuStockModel::getAllPositionIdByPName($searchContent); $pos = ''; if (!empty($positionIds)) { foreach ($positionIds as $positionId) { $pos .= $positionId['id'] . ","; } } else { $pos = 0; } $pos = trim($pos, ','); $where .= "AND b.positionId in({$pos}) "; break; case '3': $where .= "AND a.goodsName='{$searchContent}' "; break; case '4': $purchaseId = getUserIdByName($searchContent); if (empty($purchaseId)) { $purchaseId = 10000000; } $where .= "AND a.purchaseId='{$purchaseId}' "; break; case '5': $str = ''; $Supplier_id = CommonModel::getPartnerByName($searchContent); $paramArr['method'] = 'pc.getSkuByPartnerId'; //API名称 $paramArr['pid'] = $Supplier_id; $Supplier_info = UserCacheModel::callOpenSystem($paramArr); if (!empty($Supplier_info['data'])) { foreach ($Supplier_info['data'] as $info) { $str .= "'" . $info . "',"; } $str = trim($str, ","); $str = "(" . $str . ")"; } else { $str = "('no')"; } $where .= "AND a.sku in {$str} "; break; default: break; } $where .= "GROUP BY a.sku "; $total = $skuStockAct->act_getSkuStockCount($where); $num = 100; //每页显示的个数 $page = new Page($total, $num, '', 'CN'); $where .= "ORDER BY a.sku " . $page->limit; $skuStockList = $skuStockAct->act_getSkuStockList($where); if (!empty($_GET['page'])) { if (intval($_GET['page']) <= 1 || intval($_GET['page']) > ceil($total / $num)) { $n = 1; } else { $n = (intval($_GET['page']) - 1) * $num + 1; } } else { $n = 1; } if ($total > $num) { //输出分页显示 $show_page = $page->fpage(array(0, 2, 3, 4, 5, 6, 7, 8, 9)); } else { $show_page = $page->fpage(array(0, 2, 3)); } $navlist = array(array('url' => 'index.php?mod=skuStock&act=searchSku', 'title' => '库存管理'), array('url' => 'index.php?mod=skuStock&act=searchSku', 'title' => '货品搜索')); $usermodel = UserModel::getInstance(); $count = count($skuStockList); for ($i = 0; $i < $count; $i++) { //$skuStockList[$i]['category'] = CommonModel::getCateInfoByPath($skuStockList[$i]['goodsCategory']); //类别 $user_info = $usermodel->getGlobalUserLists('global_user_name', "where a.global_user_id='{$skuStockList[$i]['purchaseId']}'", '', 'limit 1'); $skuStockList[$i]['pName'] = $user_info[0]['global_user_name']; //类别 $skuStockList[$i]['cateName'] = SkuStockModel::getCategoryInfoByPath($skuStockList[$i]['goodsCategory']); //获取供应商 $par['method'] = 'pc.getPartnerIdBySku'; //API名称 $par['sku'] = $skuStockList[$i]['sku']; $sku_pname = UserCacheModel::callOpenSystem($par); if (!empty($sku_pname['data'])) { $purchase = CommonModel::getPartnerByID($sku_pname['data']); $skuStockList[$i]['PartnerName'] = $purchase['username']; } //仓库 if (!empty($skuStockList[$i]['storeId'])) { $whName_info = WarehouseManagementModel::warehouseManagementModelList("where companyId=1 and id={$skuStockList[$i]['storeId']}"); $skuStockList[$i]['whName'] = $whName_info[0]['whName']; } //图片 //$picUrl = getPicFromOpenSys($skuStockList[$i]['sku']); //$skuStockList[$i]['picUrl'] = $picUrl; } //仓库 $whName = WarehouseManagementModel::warehouseManagementModelList("where companyId=1"); $this->smarty->assign('whName', $whName); //类别 $cate_f = SkuStockModel::getCategoryInfo(0); $this->smarty->assign('cate_f', $cate_f); $this->smarty->assign('type', $type); $this->smarty->assign('searchContent', $searchContent); $this->smarty->assign('navlist', $navlist); $this->smarty->assign('toptitle', '库存信息列表'); $this->smarty->assign('toplevel', 0); $this->smarty->assign('secondlevel', '01'); $this->smarty->assign('show_page', $show_page); $this->smarty->assign('status', $status); $this->smarty->assign('skuStockList', $skuStockList ? $skuStockList : null); //循环列表 $this->smarty->display("skuStock.htm"); }