public static function intercept_exception_orders($orderData) { global $SYSTEM_ACCOUNTS, $__liquid_items_fenmocsku, $__liquid_items_BuiltinBattery, $__liquid_items_SuperSpecific, $__liquid_items_Paste; global $GLOBAL_EBAY_ACCOUNT; global $express_delivery, $no_express_delivery; global $actualTotal0; if (!$SYSTEM_ACCOUNTS) { require_once WEB_PATH . "conf/scripts/script.ebay.config.php"; } self::initDB(); $log_data = ''; $orderStatus = empty($orderData['orderData']['orderStatus']) ? C('STATEPENDING') : $orderData['orderData']['orderStatus']; $orderType = empty($orderData['orderData']['orderType']) ? C('STATEPENDING_CONV') : $orderData['orderData']['orderType']; $isNote = $orderData['orderData']['isNote']; if ($isNote) { $orderType = C('STATEPENDING_MSG'); } $transportId = $orderData['orderData']['transportId']; $countryName = $orderData['orderUserInfoData']['countryName']; $accountId = $orderData['orderData']['accountId']; $paymentTime = $orderData['orderData']['paymentTime']; $actualTotal = $orderData['orderData']['actualTotal']; $ebay_username = $orderData['orderUserInfoData']['username']; $orderDataid = $orderData['orderExtenData']['orderId']; $ebay_usermail = $orderData['orderUserInfoData']['email']; $PayPalEmailAddress = $orderData['orderExtenData']['PayPalEmailAddress']; /*echo "<pre>"; echo "-----------------------------<br>"; var_dump($SYSTEM_ACCOUNTS['Amazon']);*/ if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['Amazon'])) { //非线下amazon账号订单 //ebay 平台可以重新计算运输方式 @ 20130301 if (empty($countryName)) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为--".$orderStatus."--".$orderType."!\n\n"; //CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); } } /*echo "<pre>"; echo "-----------------------------<br>"; var_dump($GLOBAL_EBAY_ACCOUNT[$accountId]); var_dump($SYSTEM_ACCOUNTS['ebay']); var_dump($GLOBAL_EBAY_ACCOUNT[$accountId]); var_dump($SYSTEM_ACCOUNTS['海外销售平台']); var_dump($orderDataid);*/ if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['ebay']) && !empty($orderDataid)) { //非线下ebay账号订单 //ebay 平台可以重新计算运输方式 @ 20130301 if (empty($countryName)) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); } if ($actualTotal != $actualTotal0) { $actualTotal0 = (string) $actualTotal0; } echo "[" . date("Y-m-d H:i:s") . "]\t总价记录---{$ebay_id}---系统总价{$actualTotal}---计算总价{$actualTotal0}\n"; if (in_array($ebay_usermail, array("", "Invalid Request")) && $ebay_carrier == 'EUB') { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); } else { if ($actualTotal != $actualTotal0 && $orderStatus == 1) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATESYNCINTERCEPT_AB'); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); } else { if (!empty($PayPalEmailAddress) && !in_array(strtolower($PayPalEmailAddress), PaypalEmailModel::get_account_paypalemails($accountId)) && $orderStatus == 1) { $orderStatus = C('STATESYNCINTERCEPT'); $orderType = C('STATEPENDING_EXCPAY'); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); } } } //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为--".$orderStatus."--".$orderType."!\n\n"; //CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); } if ($orderStatus == C('STATEOUTOFSTOCK')) { //缺货和自动拦截判断 //ebay 线上订单EUB大于5天,平邮和挂号大于7天不发货,不包括快递 //海外销售十天 $timeout = false; //$orderDataid = isset($orderData['ebay_orderid']) ? $orderData['ebay_orderid'] : ''; //$ebay_paidtime = isset($orderData['ebay_paidtime']) ? $orderData['ebay_paidtime'] : ''; if (!empty($paymentTime)) { //线上订单,付款时间不能为空 $diff_time = ceil((time() - $paymentTime) / (3600 * 24)); if (in_array($GLOBAL_EBAY_ACCOUNT[$accountId], $SYSTEM_ACCOUNTS['ebay'])) { if ($ebay_carrier == 'EUB' && $diff_time > 5) { $timeout = true; } else { if ((strpos($ebay_carrier, '平邮') !== false || strpos($ebay_carrier, '挂号') !== false) && $diff_time > 7) { $timeout = true; } } } /*else if(in_array($GLOBAL_EBAY_ACCOUNT[$accountId],$SYSTEM_ACCOUNTS['海外销售平台'])){ if((strpos($ebay_carrier, '中国邮政平邮')!==false && $diff_time > 5) || $diff_time > 10){ $timeout = true; } }*/ } if ($timeout) { //$log_data .= "\n缺货订单={$ebay_id}======移动到缺货需退款中======\n"; $orderStatus = C('STATEREFUND'); $orderType = C('STATEREFUND_OUTSTOCK'); //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为--".$orderStatus."--".$orderType."!\n\n"; //CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); //continue; } } if (in_array($orderStatus, array(C('STATESTOCKEXCEPTION')))) { //缺货处理\合并包裹处理 $have_goodscount = true; foreach ($orderdetaillist as $orderdetail) { $sku_arr = GoodsModel::get_realskuinfo($orderdetail['sku']); foreach ($sku_arr as $or_sku => $or_nums) { $allnums = $or_nums * $orderdetail['ebay_amount']; $skuinfo = CommonModel::get_sku_info($or_sku); $salensend = CommonModel::getpartsaleandnosendall($or_sku); //$sql = "UPDATE ebay_sku_statistics SET salensend = $salensend WHERE sku = '$or_sku' "; //self::$dbConn->query($sql); //$log_data .= "[".date("Y-m-d H:i:s")."]\t---{$sql}\n\n"; //$log_data .= "订单===$ebay_id===料号==$or_sku===实际库存为{$skuinfo['realnums']}===需求量为{$allnums}===待发货数量为{$salensend}===\n"; if (!isset($skuinfo['realnums']) || empty($skuinfo['realnums']) || $skuinfo['realnums'] - $salensend < 0) { //缺货本身算待发货,不能重复扣除 $have_goodscount = false; break; } } } if ($have_goodscount) { /*$orderStatus = C('STATEPENDING'); $orderType = C('STATEPENDING_CONV');*/ $log_data .= "\n缺货订单={$ebay_id}======有货至待打印======\n"; //$final_status = 618; //$log_data .= "[".date("Y-m-d H:i:s")."]\t自动跳转的状态为--".$orderStatus."--".$orderType."!\n\n"; //CommonModel::write_scripts_log('auto_contrast_intercept', $GLOBAL_EBAY_ACCOUNT[$accountId], $log_data); return array('orderStatus' => $orderStatus, 'orderType' => $orderType); //continue; } } return false; }
public function act_repeatShipments2() { date_default_timezone_set("Asia/Chongqing"); error_reporting(0); $currenctyList = CurrencyModel::getCurrencyList('currency,rates', 'where 1=1'); foreach ($currenctyList as $value) { $currenctys[$value['currency']] = $value['rates']; //汇率数组 } $packinglists = GoodsModel::getMaterInfo(); //获取全部包材记录 foreach ($packinglists as $packinglist) { $packings[$packinglist['id']]['pmName'] = $packinglist['pmName']; $packings[$packinglist['id']]['pmCost'] = $packinglist['pmCost']; } unset($packinglists); $carrierLists = CommonModel::getCarrierList(); //获取全部运输方式 foreach ($carrierLists as $carrierList) { $carriers[$carrierList['id']] = $carrierList['carrierNameCn']; } unset($carrierLists); $channelLists = CommonModel::getAllChannelList(); //获取全部运输方式下的渠道记录 foreach ($channelLists as $channelList) { $channels[$channelList['id']] = $channelList['channelName']; } unset($channelLists); $staffInfoLists = CommonModel::getStaffInfoList(); //获取全部人员 foreach ($staffInfoLists as $staffInfoList) { $staffLists[$staffInfoList['global_user_id']] = $staffInfoList['global_user_name']; } unset($staffInfoLists); //print_r($packings); // exit; $ebayaccount = omAccountModel::ebayaccountAllList(); //获取全部账号信息 foreach ($ebayaccount as $value) { $ebayaccounts[$value['ebay_platform']][] = $value['id']; //账号id对应名称 } unset($ebayaccount); $accountLists = omAccountModel::accountAllList(); //获取全部账号信息 foreach ($accountLists as $value) { $accounts[$value['id']] = $value['account']; //账号id对应名称 } $time1 = time(); $start = strtotime($_REQUEST['start']); $end = strtotime($_REQUEST['end']); $mailway = $_REQUEST['mailway']; $account = $_REQUEST['account']; /////////////////////////////////////////////// $accountStr = ''; if ($account != '') { //组合成sql 中accountId In() 语句 $account = explode("#", $account); foreach ($account as $value) { if ($value != '') { $accountStr .= " accountId='" . $value . "' or "; } } } $accountStr = substr($accountStr, 0, strlen($accountStr) - 3); if (empty($accountStr)) { $accountStr = ' 1=1'; } //$shipOrderList = OrderInfoModel :: getShipOrderList($start, $end, $accountStr); $tNameUnShipped = 'om_shipped_order'; //已發貨订单表 $where = " WHERE id IN ('8344971','8344971','8344971','8849112','9027686','9118441','9253209','9255395','9337524','9337524','9393954','9395762','9423987','9423987','9425121','9437038','9440042','9440042','9440042','9457399','9461841','9465559','9466929','9472244','9472244','9472244','9488351','9488351','9488479','9489408','9489408','9489408','9489408','9499144','9518194','9518200','9518866','9518866','9518866','9518866','9518898','9519076','9522183','9522183','9532719','9535192','9549634','9549634','9549634','9549643','9552004','9552004','9552004','9560244','9560244','9560244','9560244','9576989','9576989','9576989','9596753','9612887','9622477','9622500','9622512','9623276','9623276','9624016','9626076','9626076','9626076','9626076','9626316','9626385','9626385','9626385','9626403','9627404','9628837','9630913','9630913','9640585','9640585','9640585','9640604','9640770','9641002','9641274','9641274','9641274','9641395','9641529','9641529','9641744','9641829','9641829','9641892','9641892','9641946','9642205','9642205','9642380','9642780','9643939','9643939','9644644','9644644','9647186','9648475','9648478','9648478','9649284','9649286','9649649','9649649','9649649','9649652','9649652','9649652','9649885','9649909','9650192','9650192','9650198','9650198','9650241','9650322','9650322','9650322','9650322','9650380','9650381','9650388','9650571','9650571','9650571','9650612','9650615','9650637','9650649','9650673','9650673','9650681','9650685','9650696','9650704','9650704','9650726','9650741','9650741','9650761','9650785','9650826','9650834','9650834','9650834','9650834','9650838','9650841','9650841','9650914','9650937','9650937','9650958','9650958','9650989','9650995','9651008','9651120','9651151','9651333','9651351','9651351','9651351','9651363','9651618','9652039','9652041','9652172','9652197','9652294','9652355','9652355','9652365','9652547','9652570','9652815','9652829','9652829','9652830','9652830','9652830','9652834','9653349','9653350','9653677','9653677','9653784','9653786','9653790','9653790','9653826','9653866','9653866','9653866','9653866','9653868','9653869','9653869','9653869','9653870','9653870','9653871','9653874','9653878','9653878','9653878','9653878','9653879','9653884','9653884','9653959','9654059','9654071','9654332','9654572','9654572','9654572','9654573','9654573','9654778','9654778','9654784','9654792','9654961','9654964','9655556','9655630','9655630','9655643','9655643','9655643','9655646','9655734','9655775','9655777','9656086','9656208','9656209','9656210','9656529','9656529','9656593','9656629','9656634','9656746','9656983','9657511','9657566','9657566','9657566','9657566','9657641','9657641','9657677','9657678','9657680','9657802','9657802','9657803','9657985','9658074','9658081','9658321','9658337','9658449','9658458','9658501','9658501','9658840','9659006','9659144','9659726','9659726','9660877','9661308','9662160','9662162','9663236','9663236','9663236','9663236','9663236','9663236','9663254','9663408','9664335','9664335','9664335','9664335','9664335','9664335','9664335','9664335','9664335','9664338','9664338','9664341','9665707','9667826','9667826','9667826','9667826','9667826','9667826','9667826','9667826','9667835','9667843','9667849','9667849','9667849','9667849','9667849','9670393','9670393','9670393','9670393','9670393','9670393','9670407','9670407','9670407','9670407','9670407','9670417','9670426','9670683','9673777','9673777','9673777','9673777','9673777','9673778','9675229','9675242','9675595','9675595','9675595','8526402','8809110','8842096','8842096','8842096','8862631','8862631','8905974','8905974','8968635','9046612','9162772','9180940','9180940','9180940','9180940','9241329','9241329','9241329','9308486','9308486','9308486','9376347','9378671','9393969','9411833','9457216','9474385','9474385','9474385','9474385','9474603','9476126','9477416','9477416','9478721','9489020','9489608','9489608','9489608','9498874','9505075','9505075','9505075','9505075','9505151','9505151','9505151','9505151','9505733','9510621','9520197','9528779','9537456','9537668','9550596','9550596','9550596','9566234','9566234','9566248','9566248','9592573','9593512','9593512','9593512','9593512','9593512','9593512','9593512','9602420','9602420','9607647','9607647','9607647','9607647','9607647','9610633','9610776','9610776','9611433','9612362','9615401','9618958','9618958','9623437','9628510','9628510','9628655','9628655','9638991','9641400','9649804','9649855','9649855','9649855','9649855','9649894','9650472','9650472','9650552','9650556','9650583','9650585','9651279','9651509','9651712','9652013','9652013','9652273','9652273','9652274','9652274','9652274','9652441','9652483','9652513','9652523','9652523','9652929','9652929','9652929','9652929','9652929','9652929','9652929','9652929','9653014','9653027','9653027','9653027','9653027','9653103','9653345','9653345','9653345','9653345','9653345','9653489','9653567','9653637','9653938','9653938','9653938','9653938','9653938','9653941','9653941','9653941','9654055','9654055','9654055','9654055','9654061','9654075','9654084','9654323','9654641','9655179','9655255','9655255','9655506','9655506','9655538','9655671','9655835','9655967','9655967','9655967','9656198','9656251','9656251','9656251','9656277','9656279','9656329','9656329','9656329','9656329','9656522','9656541','9656541','9656655','9656921','9656921','9656942','9656942','9657107','9657174','9657174','9657175','9657175','9657175','9657345','9657860','9657860','9657994','9658000','9658000','9658004','9658004','9658012','9658030','9658030','9658030','9658030','9658114','9658141','9658141','9658156','9658209','9658286','9658286','9658295','9658295','9658295','9658295','9658296','9658296','9658595','9658595','9658649','9658691','9658784','9658784','9658784','9658784','9658798','9658809','9658834','9658845','9658852','9658852','9658852','9658914','9658914','9659007','9659009','9659083','9659084','9659148','9659151','9659151','9659355','9659378','9659401','9659451','9659451','9659594','9659804','9660076','9660076','9660393','9660399','9660399','9660406','9660453','9660453','9660453','9660453','9660460','9660603','9660603','9660603','9660862','9660862','9660864','9660864','9660864','9660864','9660864','9660864','9660864','9660864','9660864','9660942','9660952','9660952','9661096','9661096','9661156','9661187','9661292','9661481','9661622','9661850','9661890','9661890','9662030','9662113','9662113','9662146','9662146','9662249','9662249','9662343','9662457','9662471','9662471','9662502','9662696','9662732','9662732','9662732','9662733','9662733','9662733','9662832','9662908','9662908','9662909','9662971','9663010','9663010','9663010','9663014','9663380','9663380','9663380','9663386','9663386','9663692','9663693','9663754','9663754','9663826','9663826','9663894','9663998','9664012','9664080','9664090','9664093','9664112','9664112','9664112','9664112','9664175','9664191','9664191','9664192','9664192','9664196','9664554','9664554','9664968','9665016','9665209','9665222','9665222','9665309','9665392','9665396','9665667','9665667','9665667','9665668','9665668','9659581','9660388','9662117','9662117','9664751','9666120','9666124','9666258','9666258','9666262','9666264','9666344','9666377','9666383','9666383','9666383','9666383','9666384','9666384','9666384','9666384','9666828','9666828','9666947','9667031','9667031','9667206','9667206','9667206','9667206','9667332','9667564','9667564','9667564','9667564','9667567','9667567','9667567','9667567','9667567','9667567','9667580','9667580','9667581','9667597','9667754','9667802','9667802','9667802','9667802','9667949','9667949','9668151','9668151','9668683','9668685','9668773','9668802','9668802','9668802','9668808','9668808','9669255','9669262','9669265','9669268','9669268','9669273','9669285','9669541','9669883','9669964','9669964','9669964','9669964','9669964','9669972','9670114','9670129','9670129','9670286','9670338','9670338','9670411','9671287','9671290','9671452','9671531','9671634','9671634','9671634','9671680','9671680','9671693','9671896','9671934','9671973','9671988','9671988','9672000','9672194','9672194','9672339','9672362','9672362','9672698','9672735','9672743','9672751','9672790','9672911','9672911','9672911','9672993','9673004','9673004','9673101','9673218','9673319','9673323','9673380','9673421','9673452','9673475','9673516','9673643','9673643','9673643','9673668','9673747','9673749','9673753','9673753','9673760','9674395','9674395','9674419','9674419','9674848','9674848','9674850','9674850','9674850','9674850','9674852','9674854','9674854','9674854','9674885','9674899','9674899','9674899','9674899','9674899','9674899','9674908','9674913','9674913','9674913','9674920','9674920','9674920','9674920','9675055','9675087','9675087','9675087','9675137','9675137','9675137','9675137','9675137','9675157','9675157','9675157','9675271','9675583','9675584','9675586','9675586','9696845','9696880','9696880','9697073','9697082','9697092','9697095','9697095','9697095','9697095','9697105','9697110','9697110','9697110','9697115','9697115','9697115','9697254','9698356','9632026','9658246','9661119','9661119','9661119','9661119','9661119','9662121','9666751','9697750','9697750','9698264','9698805','9698808','9698810','9698810','9698810','9698810','9698813','9699173','9699175','9699179','9699179','9699179','9699182','9699184','9699267','9699267','9699267','9699821','9699821','9699892','9699900','9699908','9699923','9699924','9699924','9699924','9699927','9699930','9699930','9699976','9700235','9700312','9700333','9700357','9700357','9700399','9700399','9700931','9700973','9701169','9701449','9701648','9704135')"; //$where = " WHERE `paymentTime` > $start AND `paymentTime` < $end AND `accountId` = '336' LIMIT 1,100"; $shipOrderList = OrderindexModel::showOrderList($tNameUnShipped, $where); $fileName = "repeatShipments" . date('Y-m-d', $end) . ".xls"; $excel = new ExportDataExcel('browser', $fileName); $excel->initialize(); $row = array('日期', 'ebay store', '交易号', '客户ID', '仓位号', '料号', '数量', '料号重量', '成本', '国家', '包裹总价值', '邮费', '币种', '运输方式', '邮寄公司', '挂号条码', '是/否', '重量', '收件人姓名', '客户电话', '地址', '英文州名', '英文城市名', '邮编', '订单编号', '包装员', '配货员', '扫描员', '分区人员', '料号描述'); $excel->addRow($row); foreach ($shipOrderList as $key => $value) { //key代表最外层的维数 /*$value分别有7个对应的键,分别为 orderData,//订单表头数据记录 orderExtenData,//订单表扩展数据记录 orderUserInfoData,//订单表中客户的数据记录 orderWhInfoData,//物料对订单进行操作的数据记录 orderNote,//订单的备注(销售人员添加)记录 orderTracknumber,//订单的追踪号记录 orderAudit,//订单明细审核记录 orderDetail //订单明细记录 */ $orderData = $value['orderData']; //订单表头数据记录,为一维数组 $orderExtenData = $value['orderExtenData']; //扩展表头数据记录,为一维数组 $orderUserInfoData = $value['orderUserInfoData']; //订单客户数据记录,为一维数组 $orderWhInfoData = $value['orderWhInfoData']; //物料对订单进行操作的数据记录,为一维数组 $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 = @$accounts[$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' ? '合并包裹主订单' : '合并包裹子订单'); $weighStaffId = isset($orderWhInfoData[0]['weighStaffId']) ? $orderWhInfoData[0]['weighStaffId'] : ''; //扫描员ID//称重 $weighStaff = $weighStaffId != '' ? $staffLists[$weighStaffId] : ''; //扫描员 $districtStaffId = isset($orderWhInfoData[0]['districtStaffId']) ? $orderWhInfoData[0]['districtStaffId'] : ''; //分区人员ID $districtStaff = $districtStaffId != '' ? $staffLists[$districtStaffId] : ''; //分区人员 $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 if (count($orderDetail) == 1) { //订单明细中只有一条记录时,订单中只有一种料号 $orderDetailTotalData = array_pop($orderDetail); //取得orderDetail中的这条总记录数据,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetailData']; //明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; //明细中的扩展数据 $orderDetailSku = $orderDetailData['sku']; //该明细下的$sku $orderDetailExtenItemId = $orderDetailExtenData['itemId']; //itemId $ebay_itemid $orderDetailAmount = intval($orderDetailData['amount']); //$amount 该明细下的sku对应的数量 $orderDetailRecordnumber = $orderDetailData['recordNumber']; //该明细对应平台的recordnumber $recordnumber $orderDetailItemPrice = round($orderDetailData['itemPrice'], 2) * $orderDetailAmount; //itemPrice(平台对应的销售单价)*对应数量 $ebay_itemprice // $ebay_shipfee = round_num(($OrderActualTotal - $orderDetailItemPrice), 2); $ebay_shipfee = CommonModel::calcshippingfee($totalweight, $orderUserInfoCountryName, $OrderActualTotal, $OrderTransportId); //round_num(($OrderActualTotal - $orderDetailItemPrice), 2); //订单总价-sku对应的总价得出运费,$ebay_shipfee $ebay_shipfee = isset($ebay_shipfee['fee']) ? $ebay_shipfee['fee']['fee'] : ''; $skus = GoodsModel::get_realskuinfo($orderDetailSku); //获取该sku下对应的真实料号信息(包括料号转换及组合料号对应真实料号信息) $values_skus = array_values($skus); //得到sku的数量 $goods_location = CommonModel::getPositionBySku($orderDetailSku); //仓位 $goodsInfo = GoodsModel::getSkuinfo($orderDetailSku); //获取真实sku的详细信息,包括采购名称和可用库存 $goodsWeight = $goodsInfo['goodsWeight']; //料号重量 $goods_cost = isset($goodsInfo['goodsCost']) ? round($goodsInfo['goodsCost'], 2) : 0; //采购成本 $pmId = isset($goodsInfo['pmId']) ? $goodsInfo['pmId'] : ''; //包材Id $ebay_packingmaterial = $packings[$pmId]['pmName']; //包材名称 $ebay_packingCost = $packings[$pmId]['pmCost']; //包材成本 $purchaseId = isset($goodsInfo['purchaseId']) ? $goodsInfo['purchaseId'] : ''; $cguser = $staffLists[$purchaseId]; //采购名称 $combineSku = GoodsModel::getCombineSkuinfo($orderDetailSku); //判断该sku是否是组合料号,如果是返回combineSku,sku,count关系记录数据,不是则返回false if ($combineSku !== false) { //为组合订单 $goods_costs = 0; $combine_weight_list = array(); $goods_costs_list = array(); foreach ($skus as $k => $v) { $goodsInfo2 = GoodsModel::getSkuinfo($k); $combine_weight_list[$k] = $orderDetailAmount * $v * $goodsInfo2['goodsWeight']; //组合订单重量数组 $goods_costs_list[$k] = $orderDetailAmount * $v * $goodsInfo2['goodsCost']; //货本数组 $goods_costs += $orderDetailAmount * $v * $goodsInfo2['goodsCost']; } $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, $goods_location, $orderDetailSku, $orderDetailAmount, $goodsWeight, $goods_cost, $orderUserInfoCountryName, $OrderActualTotal, $ebay_shipfee, $orderExtenCurrency, $carrierName, $mailway_c, '', validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $totalweight, $username, $orderUserInfoPhone, $address, $orderUserInfoState, $orderUserInfoCity, $orderUserInfoZip, $orderId, $packinguser, '', $weighStaff, $districtStaff, ''); $excel->addRow($row); foreach ($skus as $k => $v) { $goodsInfo3 = GoodsModel::getSkuinfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $goods_weight = isset($goodsInfo3['goodsWeight']) ? $goodsInfo3['goodsWeight'] : 0; $goods_location2 = CommonModel::getPositionBySku($k); //仓位 $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('', '', '', '', $goods_location2, $k, $v, $goods_weight, $goods_cost, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); $excel->addRow($row); } } else { //非组合订单 $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, $goods_location, $orderDetailSku, $orderDetailAmount, $goodsWeight, $goods_cost, $orderUserInfoCountryName, $OrderActualTotal, $ebay_shipfee, $orderExtenCurrency, $carrierName, $mailway_c, '', validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $totalweight, $username, $orderUserInfoPhone, $address, $orderUserInfoState, $orderUserInfoCity, $orderUserInfoZip, $orderId, $packinguser, '', $weighStaff, $districtStaff, ''); $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['orderDetailData']; //明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; //明细中的扩展数据 $detail_id = $orderDetailData['id']; $sku = $orderDetailData['sku']; $skus = GoodsModel::get_realskuinfo($sku); $_ebay_itemprice = round($orderDetailData['itemPrice'], 2); $ebay_itemprice += $orderDetailData['amount'] * $_ebay_itemprice; foreach ($skus as $k => $v) { $goodsInfo3 = GoodsModel::getSkuinfo($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 = CommonModel::calcshippingfee($totalweight, $orderUserInfoCountryName, $OrderActualTotal, $OrderTransportId); $ebay_shipfee = isset($ebay_shipfee['fee']) ? $ebay_shipfee['fee']['fee'] : ''; // $ebay_shipfee = round_num(($OrderActualTotal - $ebay_itemprice), 2); $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, '', '', $cctotal, '', $ebay_itemprice, $orderUserInfoCountryName, $OrderActualTotal, $ebay_shipfee, $orderExtenCurrency, $carrierName, $mailway_c, '', validate_trackingnumber($orderTracknumberOne) ? '是' : '否', $totalweight, $username, $orderUserInfoPhone, $address, $orderUserInfoState, $orderUserInfoCity, $orderUserInfoZip, $orderId, $packinguser, '', $weighStaff, $districtStaff, ''); $excel->addRow($row); foreach ($orderDetail as $orderDetailTotalData) { //$orderDetailTotalData ,包括orderDetailData和orderDetailExtenData $orderDetailData = $orderDetailTotalData['orderDetailData']; //明细中的常用数据 $orderDetailExtenData = $orderDetailTotalData['orderDetailExtenData']; //明细中的扩展数据 $detail_id = $orderDetailData['id']; $skuDe = $orderDetailData['sku']; $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); $goods_location = CommonModel::getPositionBySku($skuDe); $goodsInfo3 = GoodsModel::getSkuinfo($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); $combineSku = GoodsModel::getCombineSkuinfo($skuDe); //$is_combineSku = count($combineSku); if ($combineSku !== false) { //为组合料号 $skus = GoodsModel::get_realskuinfo($skuDe); foreach ($skus as $k => $v) { $goods_location = CommonModel::getPositionBySku($k); $goodsInfo3 = GoodsModel::getSkuinfo($k); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $goods_weight = isset($goodsInfo3['goodsWeight']) ? $goodsInfo3['goodsWeight'] : 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('', '', '', '', $goods_location, $k, $v, $goods_weight, $goods_cost, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); $excel->addRow($row); } } else { $goods_location = CommonModel::getPositionBySku($skuDe); $goodsInfo3 = GoodsModel::getSkuinfo($skuDe); $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 0; $goods_weight = isset($goodsInfo3['goodsWeight']) ? $goodsInfo3['goodsWeight'] : 0; $row = array('', '', '', '', $goods_location, $skuDe, $amount, $goods_weight, $goods_cost, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); $excel->addRow($row); } } unset($goods_weight_list); unset($goods_costs_list); } } $excel->finalize(); exit; }
/** * 获取订单下的全部真实料号 * @param number $id * @param number $type * @param number $storeId * @return boolean|$skuinfos array * @author czq */ public function getRealskulist($id, $type = 1, $storeId = 1) { if ($type == 1) { $table = 'unshipped'; } else { if ($type == 2) { $table = 'shipped'; } else { return false; } } $orders = $this->getOrderById($table, array($id)); $order = $orders[$id]['order']; if ($order) { $skuinfos = array(); $omOrderId = $order['id']; $combinePackage = $order['combinePackage']; //获取订单明细 $orderdetails = $orders[$id]['detail']['base']; foreach ($orderdetails as $_k => $odlist) { $sku = trim($odlist['sku']); $amount = $odlist['amount']; /**预留,待实现**/ $sku_arr = GoodsModel::get_realskuinfo($sku); foreach ($sku_arr as $or_sku => $or_nums) { if (isset($skuinfos[$or_sku])) { $skuinfos[$or_sku] += $or_nums * $amount; } else { $skuinfos[$or_sku] = $or_nums * $amount; } } } if ($combinePackage == 1) { $sonCombineOrders = $this->selectSonOrder($id); foreach ($sonCombineOrders as $sonOrder) { $_skuinfos = $this->getRealskulist($sonOrder['split_order_id'], $type, $storeId); foreach ($_skuinfos as $_sku => $_nums) { if (isset($_skuinfos[$_sku])) { $skuinfos[$_sku] += $_nums; } else { $skuinfos[$_sku] = $_nums; } } } } return $skuinfos; } return false; }
public static function auditOrder($orderid, $sku, $type, $status, $purchaseId, $note = '', $storeId = 1) { //exit; !self::$dbConn ? self::initDB() : NULL; $res = array(); //var_dump($orderid, $sku, $type, $status, $purchaseId); $ordercheck = "select * from om_unshipped_order where id = {$orderid} and is_delete = 0 and storeId = " . $storeId; $ordercheck = self::$dbConn->query($ordercheck); $ordercheck = self::$dbConn->fetch_array($ordercheck); if (empty($ordercheck)) { self::$errCode = 502; self::$errMsg = '未找到对应的订单!'; return false; } else { $notecontent = ''; if (!empty($note)) { $notecontent = " , note = '{$note}' "; } $c_sql = "select * from om_records_order_audit where omOrderId={$orderid} and sku='{$sku}' "; //echo $c_sql; $c_sql = self::$dbConn->query($c_sql); $c_sql = self::$dbConn->fetch_array_all($c_sql); //var_dump($c_sql); if (empty($c_sql)) { $sql = "INSERT INTO om_records_order_audit SET omOrderId={$orderid},sku='{$sku}',auditUser='******',auditTime=" . time() . ",lastModified=" . time() . ",auditStatus='{$status}'" . $notecontent; //echo $sql; } else { $sql = "UPDATE om_records_order_audit SET lastModified=" . time() . ",auditStatus='{$status}'" . $notecontent . " WHERE omOrderId={$orderid} AND sku='{$sku}'"; } if (self::$dbConn->query($sql)) { //echo "insert auit log"; echo "<br>"; } //BaseModel :: begin(); //开始事务 /*if($type=='1'){*/ $ch_sql = "SELECT a.sku,a.omOrderId as detail_id FROM om_unshipped_order_detail AS a WHERE a.omOrderId='{$orderid}' "; $ch_sql = self::$dbConn->query($ch_sql); $check_array = self::$dbConn->fetch_array_all($ch_sql); $isend = true; $status_arr = array(); $array_sku = array(); //echo "<pre>"; //var_dump($check_array); foreach ($check_array as $check_sku) { $array_sku = GoodsModel::get_realskuinfo($check_sku['sku']); //var_dump($array_sku); foreach ($array_sku as $key_sku => $num) { $compare_sql = "SELECT sku,auditStatus FROM om_records_order_audit WHERE omOrderId='{$orderid}' and sku='{$key_sku}' "; //echo $compare_sql; echo "<br>"; $compare_sql = self::$dbConn->query($compare_sql); $compare_sql = self::$dbConn->fetch_array($compare_sql); if (empty($compare_sql)) { $isend = false; break; } else { if (!in_array($compare_sql['auditStatus'], $status_arr)) { array_push($status_arr, $compare_sql['auditStatus']); } } } } //var_dump($isend); //var_dump($status_arr); exit; if ($isend) { if (in_array(1, $status_arr) && in_array(2, $status_arr)) { $updateArr = array('orderStatus' => C('STATEOVERSIZEDORDERS'), 'orderType' => C('STATEOVERSIZEDORDERS_PA')); } else { if (in_array(1, $status_arr)) { if ($ordercheck['calcWeight'] > 2) { $updateArr = array('orderStatus' => C('STATEPENDING'), 'orderType' => C('STATEPENDING_OW')); } else { $updateArr = array('orderStatus' => C('STATEOVERSIZEDORDERS'), 'orderType' => C('STATEOVERSIZEDORDERS_TA')); } } else { if (in_array(2, $status_arr)) { $updateArr = array('orderStatus' => C('STATEOVERSIZEDORDERS'), 'orderType' => C('STATEOVERSIZEDORDERS_WB')); } } } /*else{ }*/ //var_dump($updateArr); //$sql = "UPDATE om_unshipped_order SET ".array2sql($updateArr)." where id={$orderid} AND orderStatus = '".C('STATEOVERSIZEDORDERS')."' AND orderType = '".C('STATEOVERSIZEDORDERS_PEND')."' AND is_delete = 0 "; $sql = "UPDATE om_unshipped_order SET " . array2sql($updateArr) . " where id={$orderid} AND orderStatus = '" . C('STATEOVERSIZEDORDERS') . "' AND is_delete = 0 "; //$log_data .= $sql."\n"; if (self::$dbConn->query($sql)) { //echo "update order success"; } /*else{ echo "update order error"; }*/ //BaseModel :: commit(); //BaseModel :: autoCommit(); } else { /*self::$errCode = 040; self::$errMsg = '审核异常,有审核通过!'; return false;*/ //$log_data .= "isend is false!\n"; } /*}else */ if ($type == '2') { $sql = "UPDATE om_records_order_audit SET lastModified=" . time() . ",note='{$note}' WHERE omOrderId={$orderid} AND sku='{$sku}' "; if (self::$dbConn->query($sql)) { //BaseModel :: commit(); //BaseModel :: autoCommit(); self::$errCode = 200; self::$errMsg = '添加备注成功!'; return true; } else { self::$errCode = 03; self::$errMsg = '添加备注失败!'; return false; } } self::$errCode = 200; self::$errMsg = '审核完成!'; return true; } }
/** * 搜索真实料号信息列表 * @para $data as array * return true */ public static function getRealskulist($omOrderId, $tableName, $where, $storeId = 1) { !self::$dbConn ? self::initDB() : null; $sql = "SELECT id,combinePackage FROM {$tableName} WHERE is_delete = 0 AND storeId = " . $storeId . " AND id = " . $omOrderId . " " . $where; $query = self::$dbConn->query($sql); if ($query) { $skuinfos = array(); while ($orderData = self::$dbConn->fetch_array($query)) { //var_dump($orderData); exit; $omOrderId = $orderData['id']; $combinePackage = $orderData['combinePackage']; $orderdetails = self::showOnlyOrderDetailList($tableName, 'where omOrderId = ' . $omOrderId); //var_dump($orderdetails); echo "<br>"; foreach ($orderdetails as $_k => $odlist) { $sku = trim($odlist['sku']); $amount = $odlist['amount']; $sku_arr = GoodsModel::get_realskuinfo($sku); //var_dump($sku_arr); exit; foreach ($sku_arr as $or_sku => $or_nums) { if (isset($skuinfos[$or_sku])) { $skuinfos[$or_sku] += $or_nums * $amount; } else { $skuinfos[$or_sku] = $or_nums * $amount; } } } if ($combinePackage == 1) { $_omOrderids = combinePackageModel::selectRecordByOrderId($omOrderId); if ($_omOrderids) { foreach ($_omOrderids as $_omOrderId) { $_skuinfos = self::getRealskulist($_omOrderId, $tableName, $where, $storeId); foreach ($_skuinfos as $_sku => $_nums) { if (isset($_skuinfos[$_sku])) { $skuinfos[$_sku] += $_nums; } else { $skuinfos[$_sku] = $_nums; } } } } } } return $skuinfos; } else { self::$errCode = "003"; self::$errMsg = "error"; return false; } }
function act_applyEUBTrackNumber() { // global $memc_obj; //调用memcache获取sku信息 $addUser = $_SESSION['sysUserId']; $omData = isset($_POST['omData']) ? $_POST['omData'] : ''; if (empty($omData)) { self::$errCode = '1000'; self::$errMsg = "订单ID参数为空"; return false; } $omOrderId = $omData; $tName = 'om_unshipped_order'; $select = '*'; $where = "WHERE id='{$omOrderId}'"; $unShippedOrderList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($unShippedOrderList)) { //订单号在未发货表中不存在 self::$errCode = '0001'; self::$errMsg = "empty unShippedOrderList"; return 1; } $platformId = $unShippedOrderList[0]['platformId']; $tName = 'om_platform'; $select = 'platform'; $where = "WHERE id='{$platformId}'"; $platformList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($platformList)) { self::$errCode = '0002'; self::$errMsg = "empty platformList"; return 2; } $platform = $platformList[0]['platform']; if (strcasecmp(trim($platform), 'ebay') != 0) { //订单所在平台不是ebay时 self::$errCode = '0003'; self::$errMsg = "is not a ebay order"; return 3; } //这里还要判断一下运输方式是不是EUB //////////////////////////////// //return 4; //////////////////////////////// $accountId = $unShippedOrderList[0]['accountId']; //订单中的账号id $tName = 'om_eub_account'; $select = '*'; $where = "WHERE accountId='{$accountId}'"; $accountList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($accountList)) { self::$errCode = '0005'; self::$errMsg = "orderAccountId is not in EubAccount"; return 5; } if (!in_array($accountList[0]['account'], array('eshoppingstar75', 'ishoppingclub68', 'newcandy789', 'mysoulfor', 'estore456'))) { self::$errCode = '0006'; self::$errMsg = "目前只有 eshoppingstar75,ishoppingclub68,newcandy789,mysoulfor,estore456 可以执行线上申请跟踪号"; return false; } //print_r($accountList); $APIDevUserID = $accountList[0]['account']; //API参数 $APISellerUserID = $accountList[0]['dev_id']; //API参数 $APIPassword = $accountList[0]['dev_sig']; //API参数 //揽货地址 $pname = $accountList[0]['pname']; $pcompany = $accountList[0]['pcompany']; $pcountry = $accountList[0]['pcountry']; $pprovince = $accountList[0]['pprovince']; $pcity = $accountList[0]['pcity']; $pdis = $accountList[0]['pdis']; $pstreet = $accountList[0]['pstreet']; $pzip = $accountList[0]['pzip']; $ptel = $accountList[0]['ptel']; $pte1 = $accountList[0]['pte1']; $pemail = $accountList[0]['pemail']; //寄件人地址 $dname = $accountList[0]['dname']; $dcompany = $accountList[0]['dcompany']; $dcountry = $accountList[0]['dcountry']; $dprovince = $accountList[0]['dprovince']; $dcity = $accountList[0]['dcity']; $ddis = $accountList[0]['ddis']; $dstreet = $accountList[0]['dstreet']; $dzip = $accountList[0]['dzip']; $dtel = $accountList[0]['dtel']; $demail = $accountList[0]['demail']; $shiptype = $accountList[0]['shiptype']; //EMS派送类型,上门或自送 //退货地址 $rname = $accountList[0]['rname']; $rcompany = $accountList[0]['rcompany']; $rcountry = $accountList[0]['rcountry']; $rprovince = $accountList[0]['rprovince']; $rdis = $accountList[0]['rdis']; $rstreet = $accountList[0]['rstreet']; $rcity = $accountList[0]['rcity']; //收件人地址 $tName = 'om_unshipped_order_userInfo'; $select = '*'; $where = "WHERE omOrderId='{$omOrderId}'"; $userInfoList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($userInfoList)) { self::$errCode = '0006'; self::$errMsg = "empty userInfoList"; return 6; } $tusername = $userInfoList[0]['username']; //收件人 $tstreet = $userInfoList[0]['street']; //街道 $tcity = $userInfoList[0]['city']; //城市 $tstate = $userInfoList[0]['state']; //省份 $tcountry = $userInfoList[0]['countryName']; //国家名称 $tcountryCode = $userInfoList[0]['countrySn']; //国家简称 $tpostcode = $userInfoList[0]['zipCode']; //邮编 $tphone = $userInfoList[0]['phone'] ? $userInfoList[0]['phone'] : $userInfoList[0]['landline']; //固话,手机号为空时,用座机号 $temail = $userInfoList[0]['email']; //电邮 //置入参数数组中 $PickUpAddress = array('Contact' => $pname, 'Company' => $pcompany, 'Street' => $pstreet, 'District' => $pdis, 'City' => $pcity, 'Province' => $pprovince, 'Postcode' => $pzip, 'Country' => $pcountry, 'Email' => $pemail, 'Mobile' => $ptel, 'Phone' => $pte1); $ShipFromAddress = array("Contact" => $dname, "Company" => $dcompany, "Street" => $dstreet, "District" => $ddis, "City" => $dcity, "Province" => $dprovince, "Postcode" => $dzip, "Country" => $dcountry, "Email" => $demail, "Mobile" => $dtel); $ReturnAddress = array('Contact' => $rname, 'Company' => $rcompany, 'Street' => $rstreet, 'District' => $rdis, 'City' => $rcity, 'Province' => $rprovince, 'Postcode' => $pzip, 'Country' => '中国'); $ShipToAddress = array('Email' => $temail, 'Company' => '', 'Contact' => $tusername, 'Phone' => $tphone, 'Street' => $tstreet, 'City' => $tcity, 'Province' => $tstate, 'Postcode' => $tpostcode, 'Country' => $tcountry, 'CountryCode' => $tcountryCode); //////////////////////////// //Item参数 //orderDetail $omOrderDetailIds = OmEUBTrackNumberModel::getOrderDetailIds($omOrderId); //print_r($omOrderDetailIds); if (count($omOrderDetailIds) == 1) { $info = $omOrderDetailIds[0]['id']; } else { $info = array(); foreach ($omOrderDetailIds as $value) { $info[] = $value['id']; } $info = implode(",", $info); } $tName = 'om_unshipped_order_detail_extension_ebay'; $select = '*'; $where = "WHERE omOrderdetailId in ({$info})"; $ebayOrderDetailList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($ebayOrderDetailList)) { self::$errCode = '0007'; self::$errMsg = "empty ebayOrderDetailList"; return 7; } //print_r($ebayOrderDetailList); $tName = 'om_unshipped_order_extension_ebay'; $select = '*'; $where = "WHERE omOrderId='{$omOrderId}'"; $ebayShippedOrderList = OmAvailableModel::getTNameList($tName, $select, $where); if (empty($ebayShippedOrderList)) { self::$errCode = '0008'; self::$errMsg = "empty ebayShippedOrderList"; return 8; } //查询订单下的货品数量 $tName = 'om_unshipped_order_detail'; $select = 'count(amount) amount'; $where = "WHERE omOrderId='{$omOrderId}'"; $amountList = OmAvailableModel::getTNameList($tName, $select, $where); $amounts = $amountList[0]['amount']; if (empty($amounts)) { self::$errCode = '0009'; self::$errMsg = "empty amounts"; return 9; } $Item = array(); /*foreach ($ebayOrderDetailList as $ebayOrderDetail) { print_r($ebayShippedOrderList); $EBayItemID = $ebayOrderDetail['itemId']; //API参数,物品号 $EBayTransactionID = $ebayOrderDetail['transId']; //API参数,交易号,拍卖物品为0 $EBayBuyerID = $userInfoList[0]['platformUsername']; //API参数,买家ID $email = $userInfoList[0]['email']; //API参数,买家ID $PostedQTY = $amounts; //寄货数量 $currency = $ebayShippedOrderList[0]['currency']; $omOrderdetailId = $ebayOrderDetail['omOrderdetailId']; $tName = 'om_unshipped_order_detail'; $select = '*'; $where = "WHERE id='$omOrderdetailId'"; $omOrderDetailList = OmAvailableModel :: getTNameList($tName, $select, $where); if (empty ($omOrderDetailList)) { self :: $errCode = '0010'; self :: $errMsg = "empty omOrderDetailList"; return 10; } $sku = $omOrderDetailList[0]['sku']; $amount = $omOrderDetailList[0]['amount']; $skuInfo = $memc_obj->get_extral("sku_info_" . $sku); $DeclaredValue = $skuInfo['goods_sbjz'] * $amount ? $skuInfo['goods_sbjz'] * $amount : 1; //申报价值 $Weight = $skuInfo['goods_weight'] * $amount ? $skuInfo['goods_weight'] * $amount : 0.01; //重量 $CustomsTitleCN = $skuInfo['goods_zysbmc'] ? $skuInfo['goods_zysbmc'] : $sku; //中文申报名称 $CustomsTitleEN = $skuInfo['goods_ywsbmc'] ? $skuInfo['goods_ywsbmc'] : $sku; //英文申报名称 $OriginCountryCode = 'CN'; //原产地简码 //echo "##".$EBayItemID."##"; /*if((!in_array($ebay_itemid.'-'.$ebay_tid, $unique_item_tid))){ $unique_item_tid[] = $ebay_itemid.'-'.$ebay_tid; $item[$i] = array( 'CurrencyCode' => $ebay_currency, 'EBayEmail' => $ebay_usermail, 'EBayBuyerID' => $ebay_userid, 'EBayItemID' => $ebay_itemid, 'EBayItemTitle' => $ebay_itemtitle, 'EBayMessage' => $ebay_note, 'EBaySiteID' => "0", 'EBayTransactionID' => $ebay_tid, 'Note' => $ebay_noteb, 'OrderSalesRecordNumber' => $recordnumber, 'PaymentDate' => $ebay_paidtime, 'PayPalEmail' => "0", 'PayPalMessage' => $ebay_note, 'PostedQTY' => $ebay_amount, 'ReceivedAmount' => $ebay_total, 'SalesRecordNumber' => $recordnumber1, 'SoldDate' => $ebay_createdtime, 'SoldPrice' => $ebay_itemprice, 'SoldQTY' => $ebay_amount, 'SKU' =>array( 'SKUID' => $sku, 'Weight' => $weight * $ebay_amount, 'CustomsTitleCN' => $goods_zysbmc, 'CustomsTitleEN' => $goods_ywsbmc.' '.$sku, 'DeclaredValue' => $goods_sbjz*$ebay_amount, 'OriginCountryName' => "China", 'OriginCountryCode' => "CN", ) ); }*/ $where = "WHERE omOrderId='{$omOrderId}'"; $orderarr = OrderindexModel::showSearchOrderList("om_unshipped_order", $where); //print_r($orderarr); $unique_item_tid = array(); foreach ($orderarr as $key => $order) { foreach ($order['orderDetail'] as $k => $detail) { $sku = $detail['orderDetailData']['sku']; $amount = $detail['orderDetailData']['amount']; //$goods = ExportsToXlsModel::getGoods($detail['orderDetailData']['sku']); $skus = GoodsModel::get_realskuinfo($detail['orderDetailData']['sku']); foreach ($skus as $k => $v) { $goods = GoodsModel::getSkuList($k); if (!in_array($detail['orderDetailExtenData']['itemId'] . '-' . $detail['orderDetailExtenData']['transId'], $unique_item_tid)) { $unique_item_tid[] = $detail['orderDetailExtenData']['itemId'] . '-' . $detail['orderDetailExtenData']['transId']; $Item[] = array('EBayBuyerID' => $order['orderUserInfoData']['platformUsername'], 'EBayItemID' => $detail['orderDetailExtenData']['itemId'], 'EBayEmail' => $order['orderUserInfoData']['email'], 'EBayTransactionID' => $detail['orderDetailExtenData']['transId'], 'PostedQTY' => $detail['orderDetailData']['amount'], 'EBaySiteID' => "0", 'PayPalEmail' => "0", 'EBayItemTitle' => $detail['orderDetailExtenData']['itemTitle'], 'OrderSalesRecordNumber' => $order['orderData']['recordNumber'], 'EBayMessage' => $order['orderExtenData']['feedback'], 'CurrencyCode' => $order['orderExtenData']['currency'], 'SoldDate' => date("Y-m-d", $order['orderData']['ordersTime']), 'SoldPrice' => $detail['orderDetailData']['itemPrice'], 'SoldQTY' => $detail['orderDetailData']['amount'], 'ReceivedAmount' => $order['orderData']['actualTotal'], 'PayPalMessage' => $order['orderExtenData']['feedback'], 'PaymentDate' => date("Y-m-d", $order['orderData']['paymentTime']), 'SalesRecordNumber' => $order['orderData']['recordNumber'], 'Note' => isset($order['orderNote'][0]['content']) ? $order['orderNote'][0]['content'] : "", 'SKU' => array('SKUID' => $detail['orderDetailData']['sku'], 'Weight' => $goods['goodsWeight'] * $amount * $v, 'CustomsTitleCN' => $goods['goodsName'], 'CustomsTitleEN' => $sku, 'DeclaredValue' => $detail['orderDetailData']['itemPrice'] * $amount * $v, 'OriginCountryName' => "China", 'OriginCountryCode' => "CN")); } } } } $url_test = "http://epacketws.pushauction.net/v3/orderservice.asmx?WSDL"; $url = "http://shippingapi.ebay.cn/production/v3/orderservice.asmx?wsdl"; $soapclient = new soapclient($url); $params = array('Version' => "3.0.0", 'APIDevUserID' => $APIDevUserID, 'APIPassword' => $APIPassword, 'APISellerUserID' => $APISellerUserID, "OrderDetail" => array("PickUpAddress" => $PickUpAddress, "ShipFromAddress" => $ShipFromAddress, "ShipToAddress" => $ShipToAddress, "ItemList" => array("Item" => $Item), "EMSPickUpType" => $shiptype, "ReturnAddress" => $ReturnAddress)); try { //print_r($params); $functions = $soapclient->AddAPACShippingPackage(array("AddAPACShippingPackageRequest" => $params)); //echo "dfg"; foreach ($functions as $value) { $bb = (array) $value; $ack = $bb['Ack']; if ($ack == 'Success') { $TrackCode = $bb['TrackCode']; //这里插入记录到records表中 $tName = 'om_order_tracknumber'; $set = "SET omOrderId='{$omOrderId}',addUser='******',tracknumber='{$TrackCode}',createdTime='" . time() . "'"; $affectRow = OmAvailableModel::insertRow($tName, $set); if ($affectRow) { self::$errCode = '200'; self::$errMsg = "success"; return 200; } else { self::$errCode = '0011'; self::$errMsg = "添加跟踪号失败"; return 11; } } else { $tName = 'om_order_notes'; $set = "SET omOrderId='{$omOrderId}',content='{$bb['Message']}',userId='{$addUser}',createdTime='" . time() . "'"; $affectRow = OmAvailableModel::insertRow($tName, $set); self::$errCode = '0012'; self::$errMsg = $bb['Message']; return 12; } } } catch (Exception $e) { self::$errCode = '0013'; self::$errMsg = $e->getMessage(); return 0; } }