예제 #1
0
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('香港小包平邮', '中国邮政平邮');
}
예제 #2
0
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;
}
예제 #3
0
 /**
  *根据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;
         }
     }
 }
예제 #4
0
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;
예제 #5
0
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;
}
예제 #6
0
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) {
예제 #8
0
 /**
  * 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;
 }
예제 #9
0
파일: sync_data.php 프로젝트: ohjack/newErp
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;
    }
}
예제 #10
0
         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 {
예제 #11
0
function function_split_partinterpet($ebay_orders)
{
    //自动部分包货拦截,超过半天的库存有的拆分出来
    //add Herman.Xi 2013-03-15
    /* 海外销售
    	我这边两个或者两个以上SKU有货的,请拆分有货的发货(雷贤容)
    	*/
    /* B2B
    	1、两个SKU以上有货就拆分出来发货
    	2、拆分订单,导出销售数据时需标记拆分订单(ebay的数据导出有这个,麻烦确认此规则B2B这边是否有实现?之前我们都没有用自动拆分订单的)
    	3、拆分订单的订单金额B2B这边不根据货本分摊,请只把订单金额保留在主订单/被拆分订单上,拆分订单的金额显示为0,此规则参照B2B复制订单规则(ebay那边维持现有的拆分规则不做改动)。
    	*/
    /*
    ebay
    chenxiaoxia(陈小霞) 2013-03-11 23:29:31
    有货就发
    */
    global $dbcon, $user, $defaultstoreid, $order_statistics, $SYSTEM_ACCOUNTS;
    /*include_once '/data/scripts/ebay_order_cron_job/config_row/config_database_row_master.php';
    	unset($dbcon);
    	$dbcon	= new DBClass();*/
    //$express_delivery = array('UPS','DHL','TNT','EMS','FedEx');
    $no_express_delivery = array('中国邮政平邮', '中国邮政挂号', '香港小包平邮', '香港小包挂号', '德国邮政挂号', '新加坡小包挂号', 'EUB', 'Global Mail', '俄速通平邮', '俄速通挂号');
    //echo count($ebay_orders); echo "\n";
    foreach ($ebay_orders as $ebay_order) {
        $log_data = "";
        //日志记录
        $ebay_id = $ebay_order['ebay_id'];
        $order_sn = $ebay_order['ebay_ordersn'];
        $ebay_status = $ebay_order['ebay_status'];
        //$ebay_status = $ebay_order['ebay_status'];
        $ebay_note = $ebay_order['ebay_note'];
        $ebay_carrier0 = $ebay_order['ebay_carrier'];
        //原订单运输方式
        $ebay_tracknumber = $ebay_order['ebay_tracknumber'];
        if ($ebay_carrier0 == 'EUB' && empty($ebay_tracknumber) && (in_array($ebay_account, $SYSTEM_ACCOUNTS['ebay平台']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['海外销售平台']))) {
            $log_data .= " 自动部分发货订单 {$ebay_id} 运输方式为 EUB 需要先申请跟踪号才能进行 不能进行拆分操作,直接过滤!\n";
            continue;
        }
        $ebay_countryname = $ebay_order['ebay_countryname'];
        $ebay_account = $ebay_order['ebay_account'];
        $recordorder = 'order' . $ebay_id;
        if (isset(${$recordorder})) {
            $log_data .= " 自动部分发货订单 {$ebay_id} 已经有拆分操作,PHP直接过滤!\n";
            continue;
        }
        $sql = "SELECT * FROM ebay_splitorder WHERE main_order_id = '{$ebay_id}' and mode = 5 ";
        $sql = $dbcon->execute($sql);
        //var_dump($dbcon->error);
        $epNums = $dbcon->num_rows($sql);
        if ($epNums > 0) {
            continue;
        }
        $dbcon->error = '';
        $sql = "SELECT sku,ebay_amount FROM ebay_orderdetail WHERE ebay_ordersn='{$order_sn}'";
        $result = $dbcon->execute($sql);
        $orderdetaillist = $dbcon->getResultArray($result);
        $part_intercept = array();
        foreach ($orderdetaillist as $orderdetail) {
            $sku_arr = get_realskuinfo($orderdetail['sku']);
            $hava_goodscount = true;
            foreach ($sku_arr as $or_sku => $or_nums) {
                $allnums = $or_nums * $orderdetail['ebay_amount'];
                $skuinfo = get_sku_info($or_sku);
                $salensend = getpartsaleandnosendall($or_sku, $defaultstoreid);
                if (!isset($skuinfo['realnums']) && !isset($skuinfo['secondCount']) || $skuinfo['realnums'] + $skuinfo['secondCount'] - $salensend - $allnums < 0) {
                    //if(!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || (($skuinfo['realnums'] - $salensend - $allnums) < 0)){
                    $hava_goodscount = false;
                    break;
                }
            }
            if ($hava_goodscount) {
                $part_intercept['yes'][] = $orderdetail['sku'];
                //部分有货
            } else {
                $part_intercept['no'][] = $orderdetail['sku'];
                //部分没货
            }
        }
        if (in_array($ebay_status, array('660'))) {
            //自动部分包货非快递拆分处理
            if (!in_array($ebay_carrier0, $no_express_delivery)) {
                continue;
            }
            if (isset($part_intercept['yes']) && isset($part_intercept['no']) && count($part_intercept['yes']) < count($orderdetaillist) && count($part_intercept['no']) < count($orderdetaillist)) {
                if (in_array($ebay_account, $SYSTEM_ACCOUNTS['ebay平台'])) {
                    echo "\n===========" . $ebay_id . "============\n";
                    echo "\n-------ebay--------\n";
                    //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                    //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                    if (count($part_intercept['yes']) > 0) {
                        //有货的等于或者超过1个
                        $all_weight = array();
                        $all_ebay_id = array();
                        $all_ebay_total = array();
                        $insertarr = $ebay_order;
                        unset($insertarr['ebay_id']);
                        if ($ebay_carrier0 != 'EUB') {
                            unset($insertarr['ebay_tracknumber']);
                        }
                        $new_ordersn = generateOrdersn();
                        $insertarr['ebay_ordersn'] = $new_ordersn;
                        $insertarr['ebay_status'] = 618;
                        $insertarr['ebay_addtime'] = time();
                        $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                        $dbcon->execute($sql);
                        $insert_ebay_id = $dbcon->insert_id();
                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                        $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                        $result = $dbcon->execute($sql);
                        $orderdetails = $dbcon->getResultArray($result);
                        $total_moneny = '';
                        $ebay_total = 0;
                        foreach ($orderdetails as $orderdetail) {
                            if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                $insertarr = $orderdetail;
                                unset($orderdetail['ebay_id']);
                                $orderdetail['ebay_ordersn'] = $new_ordersn;
                                $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                if ($dbcon->execute($sql)) {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                } else {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                }
                            }
                        }
                        //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                        $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                        $all_weight[] = $totalweight;
                        $all_ebay_id[] = $insert_ebay_id;
                        $all_ebay_total[] = $ebay_total;
                        if (count($part_intercept['no']) > 0) {
                            //没货的
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 661;
                            //自动拦截非快递
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                        }
                        echo "重量\n";
                        print_r($all_weight);
                        echo "\n";
                        echo "价格\n";
                        print_r($all_ebay_total);
                        echo "\n";
                        echo "ids\n";
                        print_r($all_ebay_id);
                        echo "\n";
                        foreach ($all_ebay_id as $i => $v) {
                            //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                            //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                            $fees = calcshippingfee($all_weight[$i], $ebay_countryname, $all_ebay_id[$i], $ebay_account, $all_ebay_total[$i]);
                            $ebay_carrier = $fees[0];
                            $shipfee = $fees[1];
                            //$totalweight	= $fees[2];
                            echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                            $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}' ,ebay_carrier = '{$ebay_carrier}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                            $dbcon->execute($bb);
                            $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                            $dbcon->execute($sql);
                        }
                        /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                        			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                        			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                        			$dbcon->execute($sql);
                        		}*/
                        ${$recordorder} = true;
                        if (count($all_ebay_id) == 2) {
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 是原订单 移动到回收站中!\n";
                            if ($ebay_carrier0 != 'EUB') {
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                            } else {
                                //modified by Herman.Xi @20140517 EUB原订单拆分需要取消跟踪号
                                $sql = "update ebay_order set ebay_status = '615',ebay_tracknumber='' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                            }
                            $dbcon->execute($sql);
                        }
                    }
                } else {
                    if (in_array($ebay_account, $SYSTEM_ACCOUNTS['海外销售平台'])) {
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------海外销售--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 1) {
                            //有货的等于或者超过2个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            if ($ebay_carrier0 != 'EUB') {
                                unset($insertarr['ebay_tracknumber']);
                            }
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 618;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 661;
                                //自动拦截非快递
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】 自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $v);
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}' ,packingtype ='{$ebay_packingmaterial}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values ('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            if ($all_weight[0] > 2) {
                                //拆分之后的有货订单自动跳转到超重订单中
                                $sql = "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递有货订单 {$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                                $dbcon->execute($sql);
                            }
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                //拆分订单完全
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【海外】自动部分发货非快递订单 {$ebay_id} 是原订单 移动到回收站中!\n";
                                if ($ebay_carrier0 != 'EUB') {
                                    $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                    // 原来的订单隐藏
                                } else {
                                    //modified by Herman.Xi @20140517 EUB原订单拆分需要取消跟踪号
                                    $sql = "update ebay_order set ebay_status = '615',ebay_tracknumber='' where ebay_id ='{$ebay_id}' ";
                                    // 原来的订单隐藏
                                }
                                $dbcon->execute($sql);
                            }
                        }
                    } elseif (in_array($ebay_account, $SYSTEM_ACCOUNTS['dresslink']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['cndirect'])) {
                        $now = time();
                        $ebay_addtime = $ebay_order['ebay_addtime'];
                        if ($now - $ebay_addtime < 2 * 24 * 3600) {
                            continue;
                            //小于2天跳过
                        }
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------独立商城--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 0) {
                            //有货的等于或者超过1个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 660;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $total_moneny = '';
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 614;
                                //
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $all_ebay_id[$i]);
                                //$ebay_carrier	= $fees[0];
                                //$shipfee		= $fees[1];
                                //$totalweight	= $fees[2];
                                echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                            			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                            			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                            			$dbcon->execute($sql);
                            		}*/
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【ebay】自动部分发货非快递订单 是原订单 移动到回收站中!\n";
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                                $dbcon->execute($sql);
                            }
                        }
                    }
                }
            } else {
                $log_data .= "{$ebay_id} 部分缺货非快递 拆分统计有误,请核实!\n";
            }
        } else {
            if (in_array($ebay_status, array('659'))) {
                //自动部分包货快递拆分处理
                if (in_array($ebay_carrier0, $no_express_delivery)) {
                    continue;
                }
                if (isset($part_intercept['yes']) && isset($part_intercept['no']) && count($part_intercept['yes']) < count($orderdetaillist) && count($part_intercept['no']) < count($orderdetaillist)) {
                    if (in_array($ebay_account, $SYSTEM_ACCOUNTS['dresslink']) || in_array($ebay_account, $SYSTEM_ACCOUNTS['cndirect'])) {
                        $now = time();
                        $ebay_addtime = $ebay_order['ebay_addtime'];
                        if ($now - $ebay_addtime < 2 * 24 * 3600) {
                            continue;
                            //小于2天跳过
                        }
                        echo "\n===========" . $ebay_id . "============\n";
                        echo "\n-------独立商城--------\n";
                        //echo "yes\n"; print_r($part_intercept['yes']); echo "\n";
                        //echo "no\n"; print_r($part_intercept['no']); echo "\n";
                        if (count($part_intercept['yes']) > 0) {
                            //有货的等于或者超过1个
                            $all_weight = array();
                            $all_ebay_id = array();
                            $all_ebay_total = array();
                            $insertarr = $ebay_order;
                            unset($insertarr['ebay_id']);
                            unset($insertarr['ebay_tracknumber']);
                            $new_ordersn = generateOrdersn();
                            $insertarr['ebay_ordersn'] = $new_ordersn;
                            $insertarr['ebay_status'] = 641;
                            $insertarr['ebay_addtime'] = time();
                            $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                            $dbcon->execute($sql);
                            $insert_ebay_id = $dbcon->insert_id();
                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货非快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} \n";
                            $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $orderdetails = $dbcon->getResultArray($result);
                            $total_moneny = '';
                            $ebay_total = 0;
                            foreach ($orderdetails as $orderdetail) {
                                if (in_array($orderdetail['sku'], $part_intercept['yes'])) {
                                    $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $orderdetail;
                                    unset($orderdetail['ebay_id']);
                                    $orderdetail['ebay_ordersn'] = $new_ordersn;
                                    $total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加明细失败\n";
                                    }
                                }
                            }
                            $sql = "select * from fedex_remark where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                            $result = $dbcon->execute($sql);
                            $fedexremarks = $dbcon->getResultArray($result);
                            //$total_moneny = '';
                            //$ebay_total = 0;
                            foreach ($fedexremarks as $fedexremark) {
                                //if(in_array($orderdetail['sku'], $part_intercept['yes'])){
                                //$ebay_total += $orderdetail['ebay_itemprice']*$orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                $insertarr = $fedexremark;
                                unset($insertarr['id']);
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['datetime'] = date('Y-m-d H:i:s', time());
                                //$total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                $sql = "INSERT INTO fedex_remark SET " . array2sql_bak($insertarr);
                                if ($dbcon->execute($sql)) {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述成功!\n";
                                } else {
                                    $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述失败--{$sql}\n";
                                }
                                //}
                            }
                            //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                            $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                            $all_weight[] = $totalweight;
                            $all_ebay_id[] = $insert_ebay_id;
                            $all_ebay_total[] = $ebay_total;
                            if (count($part_intercept['no']) > 0) {
                                //没货的
                                $insertarr = $ebay_order;
                                unset($insertarr['ebay_id']);
                                unset($insertarr['ebay_tracknumber']);
                                $new_ordersn = generateOrdersn();
                                $insertarr['ebay_ordersn'] = $new_ordersn;
                                $insertarr['ebay_status'] = 682;
                                //
                                $insertarr['ebay_addtime'] = time();
                                $sql = "INSERT INTO ebay_order SET " . array2sql($insertarr);
                                $dbcon->execute($sql);
                                $insert_ebay_id = $dbcon->insert_id();
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} \n";
                                $sql = "select * from ebay_orderdetail where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $orderdetails = $dbcon->getResultArray($result);
                                $ebay_total = 0;
                                foreach ($orderdetails as $orderdetail) {
                                    if (in_array($orderdetail['sku'], $part_intercept['no'])) {
                                        $ebay_total += $orderdetail['ebay_itemprice'] * $orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                        $insertarr = $orderdetail;
                                        unset($orderdetail['ebay_id']);
                                        $orderdetail['ebay_ordersn'] = $new_ordersn;
                                        $sql = "INSERT INTO ebay_orderdetail SET " . array2sql($orderdetail);
                                        if ($dbcon->execute($sql)) {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细成功!\n";
                                        } else {
                                            $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来无货的订单 {$insert_ebay_id} --添加明细失败\n";
                                        }
                                    }
                                }
                                $sql = "select * from fedex_remark where ebay_ordersn = '{$ebay_order['ebay_ordersn']}'";
                                $result = $dbcon->execute($sql);
                                $fedexremarks = $dbcon->getResultArray($result);
                                //$total_moneny = '';
                                //$ebay_total = 0;
                                foreach ($fedexremarks as $fedexremark) {
                                    //if(in_array($orderdetail['sku'], $part_intercept['yes'])){
                                    //$ebay_total += $orderdetail['ebay_itemprice']*$orderdetail['ebay_amount'] + $orderdetail['shipingfee'];
                                    $insertarr = $fedexremark;
                                    unset($insertarr['id']);
                                    $insertarr['ebay_ordersn'] = $new_ordersn;
                                    $insertarr['datetime'] = date('Y-m-d H:i:s', time());
                                    //$total_moneny = ($orderdetail['sku'] + $orderdetail['sku']) * $orderdetail['sku'];
                                    $sql = "INSERT INTO fedex_remark SET " . array2sql_bak($insertarr);
                                    if ($dbcon->execute($sql)) {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述成功!\n";
                                    } else {
                                        $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 拆分出来有货的订单 {$insert_ebay_id} --添加快递描述失败--{$sql}\n";
                                    }
                                    //}
                                }
                                //$order_statistics->replaceData($new_ordersn, array('mask'=>1), array('mask'=>1));
                                $totalweight = recalcorderweight($new_ordersn, $ebay_packingmaterial);
                                $all_weight[] = $totalweight;
                                $all_ebay_id[] = $insert_ebay_id;
                                $all_ebay_total[] = $ebay_total;
                            }
                            echo "重量\n";
                            print_r($all_weight);
                            echo "\n";
                            echo "价格\n";
                            print_r($all_ebay_total);
                            echo "\n";
                            echo "ids\n";
                            print_r($all_ebay_id);
                            echo "\n";
                            foreach ($all_ebay_id as $i => $v) {
                                //$ebay_total = round($ebay_order['ebay_total']*($all_weight[$i]/array_sum($all_weight)),2);
                                //$shipfee 	= calctrueshippingfee($ebay_carrier, $all_weight[$i], $ebay_countryname, $v);
                                $shipfee = calctrueshippingfee($ebay_carrier0, $all_weight[$i], $ebay_countryname, $all_ebay_id[$i]);
                                //$ebay_carrier	= $fees[0];
                                //$shipfee		= $fees[1];
                                //$totalweight	= $fees[2];
                                echo "\n经计算 运费 {$shipfee} 重量 {$all_weight[$i]} 包装材料\n";
                                $bb = "update ebay_order set ordershipfee='{$shipfee}', orderweight ='{$all_weight[$i]}', ebay_total = '{$all_ebay_total[$i]}' where ebay_id ='{$v}' ";
                                $dbcon->execute($bb);
                                $sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, mode, create_date) values \n\t\t\t\t\t\t\t('{$ebay_order['recordnumber']}', '{$ebay_id}', '{$v}', '5', '" . date("Y-m-d H:i:s") . "')";
                                $dbcon->execute($sql);
                            }
                            /*if($all_weight[0] > 2){//拆分之后的有货订单自动跳转到超重订单中
                            			$sql	= "update ebay_order set ebay_status='608' where ebay_id ='{$all_ebay_id[0]}' ";
                            			$log_data .= "ebay==自动部分发货非快递有货订单{$all_ebay_id[0]} 超重移动到超重订单文件夹中!\n";
                            			$dbcon->execute($sql);
                            		}*/
                            ${$recordorder} = true;
                            if (count($all_ebay_id) == 2) {
                                $log_data .= "\n[" . date("Y-m-d H:i:s") . "]\t 【{$ebay_account}】自动部分发货快递订单 {$ebay_id} 是原订单 移动到回收站中!\n";
                                $sql = "update ebay_order set ebay_status = '615' where ebay_id ='{$ebay_id}' ";
                                // 原来的订单隐藏
                                $dbcon->execute($sql);
                            }
                        }
                    }
                } else {
                    $log_data .= "{$ebay_id} 部分缺货非快递 拆分统计有误,请核实!\n";
                }
            }
        }
        if (!empty($log_data)) {
            write_scripts_log('auto_contrast_intercept', $ebay_account, $log_data);
        }
        //$dbcon->close();
    }
}
예제 #12
0
 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");
 }