$msg = DLdlModel::insertOrderDetailExtDL($sql); if(!$msg){ echo "订单{$orderdata['recordnumber']}订单明细扩展信息插入失败!\r\n"; BaseModel::rollback(); }*/ $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtDL); $ebay_fedex_remark[$categoryName][] = array('real_price' => $ShenBaoQuantity, 'qty' => $ShenBaoUnitPrice, 'hamcodes' => $customCode, 'detail' => $material); } $insertOrder = array('orderData' => $orderdata, 'orderExtenData' => $orderExtDL, 'orderUserInfoData' => $orderUserInfo, 'orderDetail' => $obj_order_detail_data, 'orderNote' => $orderNote); $calcInfo = CommonModel::calcAddOrderWeight($insertOrder['orderDetail']); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; //$insertOrder['orderData']['transportId'] = $flip_transportList[get_carrier($insertOrder['orderData']['calcWeight'], $insertOrder['orderUserInfoData']['countryName'])]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $insertOrder['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrder = AutoModel::auto_contrast_intercept($insertOrder); $omOrderId = OrderAddModel::insertAllOrderRow($insertOrder, 'cndl'); if ($omOrderId) { echo "订单 {$orderdata['recordnumber']} 信息添加成功!ERP订单号为{$omOrderId}--" . date("Y-M-d H:i:s", $mctime) . "--\n"; } foreach ($ebay_fedex_remark as $k => $v) { $fedex_remark = array(); if ($carrierList[$orderdata['transportId']] == 'FedEx') { $fedex_remark['description'] = "[No Brand]" . $k . "({$v[0]['detail']})"; $fedex_remark['type'] = 1; } elseif ($carrierList[$orderdata['transportId']] == 'DHL' || $carrierList[$orderdata['transportId']] == 'EMS') {
function act_sureAddOrder() { $order_data = array(); $detail_data = array(); $exten_data = array(); $userinfo_data = array(); $buyer_data = array(); $time = time(); $platform_id = trim($_POST['platform']); $username = trim($_POST['fullname']); $account_id = trim($_POST['account']); $street1 = trim($_POST['street1']); $platformUsername = trim($_POST['userid']); $email = trim($_POST['ebay_usermail1']); $street2 = trim($_POST['street2']); $recordNumber = trim($_POST['orderid']); $city = trim($_POST['city']); $ordersTime = strtotime(trim($_POST['ebay_createdtime'])); $state = trim($_POST['state']); $paymentTime = strtotime(trim($_POST['ebay_paidtime'])); $countryname = trim($_POST['country']); $ebay_itemprice = trim($_POST['ebay_itemprice']); $zipCode = trim($_POST['zip']); $shippingFee = trim($_POST['ebay_shipfee']); $ebay_tel1 = trim($_POST['tel1']); $actualTotal = trim($_POST['ebay_total']); $ebay_tel2 = trim($_POST['tel2']); $ebay_tel3 = trim($_POST['tel3']); $currency = trim($_POST['ebay_currency']); $other_currency = trim($_POST['other_currency']); $isCheckOrder = self::act_checkOrder(); $returnArr = array(); //返回的数组信息 if (!$isCheckOrder) { $returnArr['errCode'] = self::$errCode; $returnArr['errMsg'] = self::$errMsg; return $returnArr; } if ($currency == '其他') { $currency = $other_currency; } $phone = trim($_POST['tel1']); $transId = trim($_POST['ebay_ptid']); $other_ptid = trim($_POST['other_ptid']); if ($transId == 'paypal' || $transId == 'Escrow' || $transId == '其他') { $transId = $other_ptid; } $PayPalPaymentId = $transId; $orderweight = trim($_POST['orderweight']); $ebay_usermail2 = trim($_POST['ebay_usermail2']); $ebay_carrier = trim($_POST['ebay_carrier']); $ebay_usermail3 = trim($_POST['ebay_usermail3']); $ebay_tracknumber = trim($_POST['ebay_tracknumber']); $ebay_noteb = trim($_POST['ebay_noteb']); $orderStatus = 100; $orderType = 101; $tracknumber = trim($_POST['ebay_tracknumber']); //order信息 $orderData[$recordNumber]['orderData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderData']['ordersTime'] = $ordersTime; $orderData[$recordNumber]['orderData']['paymentTime'] = $paymentTime; $orderData[$recordNumber]['orderData']['actualTotal'] = $actualTotal; $orderData[$recordNumber]['orderData']['onlineTotal'] = $actualTotal; //默认线上总价和实际总价一样 $orderData[$recordNumber]['orderData']['orderAddTime'] = time(); //$orderData[$recordNumber]['orderData']['calcWeight'] = $orderweight;//估算重量 $orderData[$recordNumber]['orderData']['accountId'] = $account_id; $orderData[$recordNumber]['orderData']['platformId'] = $platform_id; //添加状态信息 $orderData[$recordNumber]['orderData']['orderStatus'] = 100; $orderData[$recordNumber]['orderData']['orderType'] = 101; $SYS_ACCOUNTS = OmAvailableModel::getPlatformAccount(); foreach ($SYS_ACCOUNTS as $platform => $accounts) { foreach ($accounts as $accountId => $accountname) { if ($account_id == $accountId) { if ($platform == 'ebay') { //为ebay平台 $orderData[$recordNumber]['orderData']['isFixed'] = 2; } else { $orderData[$recordNumber]['orderData']['isFixed'] = 1; } } } } $transportation = CommonModel::getCarrierList(); //所有的 foreach ($transportation as $tranValue) { if ($tranValue['id'] == $ebay_carrier) { $orderData[$recordNumber]['orderData']['transportId'] = $tranValue['id']; break; } } //order扩展信息 $orderData[$recordNumber]['orderExtenData']['currency'] = $currency; $orderData[$recordNumber]['orderExtenData']['paymentStatus'] = "PAY_SUCCESS"; //$orderData[$recordNumber]['orderExtenData']['transId'] = $transId; $orderData[$recordNumber]['orderExtenData']['PayPalPaymentId'] = $PayPalPaymentId; $orderData[$recordNumber]['orderExtenData']['platformUsername'] = $platformUsername; //user信息 $orderData[$recordNumber]['orderUserInfoData']['platformUsername'] = $platformUsername; $orderData[$recordNumber]['orderUserInfoData']['username'] = $username; $orderData[$recordNumber]['orderUserInfoData']['email'] = $email; $orderData[$recordNumber]['orderUserInfoData']['street'] = $street1; $orderData[$recordNumber]['orderUserInfoData']['currency'] = $currency; $orderData[$recordNumber]['orderUserInfoData']['address2'] = $street2; $orderData[$recordNumber]['orderUserInfoData']['city'] = $city; $orderData[$recordNumber]['orderUserInfoData']['state'] = $state; $orderData[$recordNumber]['orderUserInfoData']['zipCode'] = $zipCode; $orderData[$recordNumber]['orderUserInfoData']['countryName'] = $countryname; $orderData[$recordNumber]['orderUserInfoData']['landline'] = !empty($ebay_tel2) ? $ebay_tel2 : $ebay_tel3; $orderData[$recordNumber]['orderUserInfoData']['phone'] = $phone; //note信息 if (!empty($ebay_noteb)) { $orderData[$recordNumber]['orderNote']['content'] = $ebay_noteb; $orderData[$recordNumber]['orderNote']['userId'] = $_SESSION['sysUserId']; $orderData[$recordNumber]['orderNote']['createdTime'] = time(); } //tracknumer信息 $orderData[$recordNumber]['orderTrack']['tracknumber'] = $tracknumber; $sku_list = $_POST['sku']; $sku_count = $_POST['qty']; $ebay_itemtitle = $_POST['name']; $count = count($sku_list); for ($i = 0; $i < $count; $i++) { //detail信息 $sku = $sku_list[$i]; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku_list[$i]; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] += $sku_count[$i]; //累加 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['createdTime'] = time(); $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $ebay_itemtitle[$i]; } foreach ($orderData as $id => $order) { //$orderData 中第一维只有一个元素,方便起见这里用foreach,虽然只循环一次 $ret = commonModel::checkOrder($recordNumber); if ($ret) { $returnArr['errCode'] = 101; $returnArr['errMsg'] = "订单{$recordNumber}已存在!"; return $returnArr; } //计算订单属性 if (count($order['orderDetail']) == 1) { $detail = current($order['orderDetail']); if ($detail['orderDetailData']['amount'] == 1) { $orderData[$id]['orderData']['orderAttribute'] = 1; } else { $orderData[$id]['orderData']['orderAttribute'] = 2; } } else { $orderData[$id]['orderData']['orderAttribute'] = 3; } //计算订单重量及包材 $obj_order_detail_data = array(); foreach ($order['orderDetail'] as $sku => $detail) { $obj_order_detail_data[] = $detail['orderDetailData']; } $weightfee = commonModel::calcOrderWeight($obj_order_detail_data); $orderData[$id]['orderData']['calcWeight'] = $weightfee[0]; $orderData[$id]['orderData']['pmId'] = $weightfee[1]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($orderData[$id], $orderData[$id]['orderData']['isFixed']); //计算运费 $orderData[$id]['orderData']['channelId'] = $calcShippingInfo['channelId']; $orderData[$id]['orderData']['calcShipping'] = $calcShippingInfo['fee']; //调用旧系统接口,先插入数据到旧系统 $rtn = OldsystemModel::orderErpInsertorder($orderData[$id]); $insertData = array(); if (empty($rtn)) { $returnArr['errCode'] = 102; $returnArr['errMsg'] = "接口返回异常,请重试!"; return $returnArr; } if ($rtn['errcode'] == 200) { $rtn_data = $rtn['data']; $orderId = $rtn_data['orderId']; //echo "插入老系统成功,订单编号 [$orderId] \n"; $pmId = $rtn_data['pmId']; $totalweight = $rtn_data['totalweight']; $shipfee = $rtn_data['shipfee']; $carrier = $rtn_data['carrier']; $carrierId = $rtn_data['carrierId']; $status = $rtn_data['status']; $orderData[$id]['orderData']['id'] = $orderId; //赋予新系统订单编号 if ($orderData['orderData']['calcWeight'] != $totalweight) { $insertData['old_totalweight'] = $totalweight; $insertData['new_totalweight'] = $orderData[$id]['orderData']['calcWeight']; $orderData[$id]['orderData']['calcWeight'] = $totalweight; } if ($orderData['orderData']['pmId'] != $pmId) { $insertData['old_pmId'] = $pmId; $insertData['new_pmId'] = $orderData[$id]['orderData']['pmId']; $orderData[$id]['orderData']['pmId'] = $pmId; } if ($orderData['orderData']['calcShipping'] != $shipfee) { $insertData['old_shippfee'] = $shipfee; $insertData['new_shippfee'] = $orderData[$id]['orderData']['calcShipping']; $orderData[$id]['orderData']['calcShipping'] = $shipfee; } if ($orderData['orderData']['transportId'] != $carrierId) { $insertData['old_carrierId'] = $carrierId; $insertData['new_carrierId'] = $orderData[$id]['orderData']['transportId']; $orderData[$id]['orderData']['transportId'] = $carrierId; } if (!empty($insertData)) { $insertData['ebay_id'] = $orderId; $insertData['addtime'] = time(); //var_dump($insertData); OldsystemModel::insertTempSyncRecords($insertData); // 插入临时对比记录表 } //缺货拦截 $orderData[$id] = AutoModel::auto_contrast_intercept($orderData[$id]); //插入订单 $info = OrderAddModel::insertAllOrderRowNoEvent($orderData[$id]); if ($info) { $returnArr['errCode'] = 200; $returnArr['errMsg'] = "订单{$id}上传成功!"; } else { $returnArr['errCode'] = 404; $returnArr['errMsg'] = "订单{$id}上传失败!"; } } else { $returnArr['errCode'] = 400; $returnArr['errMsg'] = "添加失败,原因为:{$rtn['msg']}!"; } } return $returnArr; }
public static function overWeightSplitB2B($omOrderId) { !self::$dbConn ? self::initDB() : null; global $memc_obj; //调用memcache获取sku信息 $mctime = time(); //var_dump($moOrderIdArr); $tableName = 'om_unshipped_order'; $where = ' WHERE id = ' . $omOrderId . ' and is_delete = 0 and storeId = 1'; $orderData = OrderindexModel::showOrderList($tableName, $where); $orderDetail = $orderData[$omOrderId]['orderDetail']; $obj_order_data = $orderData[$omOrderId]['orderData']; $orderExtenData = $orderData[$omOrderId]['orderExtenData']; $orderUserInfoData = $orderData[$omOrderId]['orderUserInfoData']; $_actualTotal = $obj_order_data['actualTotal']; $_actualShipping = $obj_order_data['actualShipping']; $_platformId = $obj_order_data['platformId']; $_mainId = $obj_order_data['id']; $_transportId = $obj_order_data['transportId']; //var_dump($orderDetail); exit; $omAvailableAct = new OmAvailableAct(); $GLOBAL_EBAY_ACCOUNT = $omAvailableAct->act_getTNameList2arrById('om_account', 'id', 'account', ' WHERE is_delete=0 AND platformId in(1,5) '); $weightlists = array(); $skuinfo = array(); $goods_sn_nums = 0; $shippfee_arr = array(); $ebay_total_be = 0; foreach ($orderDetail as $k => $f) { $sku = trim($f['orderDetailData']['sku']); $amount = $f['orderDetailData']['amount']; $shippingFee = $f['orderDetailData']['shippingFee']; $goods_sn_nums += $amount; $ebay_total_be += $f['orderDetailData']['amount'] * $f['orderDetailData']['itemPrice']; $shippfee_arr[$sku] = round($shippingFee / $amount, 3); //单个料号的运费 $skuinfo[$sku] = $f; for ($i = 1; $i <= $amount; $i++) { $var = $sku; $oneskuweight = CommonModel::calcOnlySkuWeight($var, 1); //一个sku的重量 $weightlists[$var][] = $oneskuweight[0]; } } $rate = $_actualTotal / $ebay_total_be; //var_dump($weightlists); exit; if ($goods_sn_nums <= 1) { self::$errCode = '0020'; self::$errMsg = "只有一个料号组成,不允许超重拆分"; return false; } //echo "==========="; exit; $keyarray = array(); $keyarrays = array(); $checkweight = 0; $arrinfo = CommonModel::calcNowOrderWeight($omOrderId); //var_dump($arrinfo); exit; $realweight = $arrinfo[0]; $realcosts = $arrinfo[2]; $itemprices = $arrinfo[3]; foreach ($weightlists as $wk => $wv) { foreach ($wv as $weightlist) { $checkweight += $weightlist; if ($checkweight > 1.85) { $keyarrays[] = $keyarray; $keyarray = array(); $checkweight = $weightlist; $keyarray[$wk][] = $wk; } else { $keyarray[$wk][] = $wk; } } } if (!empty($keyarray)) { $keyarrays[] = $keyarray; } //var_dump($keyarrays); exit; BaseModel::begin(); //开始事务 $insert_orderData = array(); foreach ($keyarrays as $keyarray) { $ebay_total = 0; $totalweight = 0; $insert_ebay_ids = array(); //var_dump($skuinfo); echo "<br>"; foreach ($keyarray as $k => $kav) { //var_dump($skuinfo[$k]['orderDetailData']['itemPrice'], count($kav)); //$ebay_total += ($skuinfo[$k]['orderDetailData']['itemPrice'] + $shippfee_arr[$k]) * count($kav); $ebay_total += $skuinfo[$k]['orderDetailData']['itemPrice'] * count($kav); } $ebay_total = $rate * $ebay_total; $shipfee = 0; //$val = generateOrdersn(); $insert_obj_order_data = $obj_order_data; unset($insert_obj_order_data['id']); $insert_obj_order_data['actualTotal'] = $ebay_total; $insert_obj_order_data['orderType'] = C('STATEPENDING_OWDONE'); $insert_obj_order_data['orderAddTime'] = $mctime; $insert_obj_order_data['isSplit'] = 2; $insert_orderExtenData = $orderExtenData; unset($insert_orderExtenData['id']); $insert_orderUserInfoData = $orderUserInfoData; unset($insert_orderUserInfoData['id']); $insert_orderData = array('orderData' => $insert_obj_order_data, 'orderExtenData' => $insert_orderExtenData, 'orderUserInfoData' => $insert_orderUserInfoData); /*$sql = "insert into ebay_splitorder (recordnumber, main_order_id, split_order_id, create_date) values ('$recordnumber', '$ebay_id', '$insert_ebay_id', '".date("Y-m-d H:i:s")."')"; $split_log .= "添加主定单和拆分订单到关系表中\r\n".$sql ."\r\n"; $dbcon->execute($sql) or die("Fail : $sql");*/ $obj_order_detail_data = array(); foreach ($keyarray as $k => $kav) { $sku = $k; $amount = count($kav); $insert_orderDetailData = $skuinfo[$k]['orderDetailData']; unset($insert_orderDetailData['id']); $insert_orderDetailData['sku'] = strtoupper($sku); $insert_orderDetailData['amount'] = $amount; $insert_orderDetailData['createdTime'] = $mctime; if (isset($shippfee_arr[$sku])) { $insert_orderDetailData['shippingFee'] = $shippfee_arr[$sku] * $amount; //相同料号运费拆分 } $insert_orderDetailExtenData = $skuinfo[$k]['orderDetailExtenData']; unset($insert_orderDetailExtenData['id']); $obj_order_detail_data[] = array('orderDetailData' => $insert_orderDetailData, 'orderDetailExtenData' => $insert_orderDetailExtenData); } $insert_orderData['orderDetail'] = $obj_order_detail_data; //echo "<pre>"; //var_dump($obj_order_detail_data); exit; $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 //var_dump($calcInfo); exit; $insert_orderData['orderData']['calcWeight'] = $calcInfo[0]; $insert_orderData['orderData']['pmId'] = $calcInfo[1]; //var_dump($insert_orderData); exit; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insert_orderData, 1); //计算运费 //var_dump($calcShippingInfo); exit; $insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $insert_orderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; /*$interceptInfo = CommonModel :: auto_contrast_intercept($orderData); //print_r($interceptInfo); exit; $orderData['orderData']['orderStatus'] = $interceptInfo['orderStatus']; $orderData['orderData']['orderType'] = $interceptInfo['orderType'];*/ if ($_spitId = OrderAddModel::insertAllOrderRowNoEvent($insert_orderData)) { //echo $split_log .= 'insert success!' . "\n"; exit; //var_dump($_mainId,$_spitId); exit; if (!OrderLogModel::insertOrderLog($_spitId, 'INSERT ORDER')) { BaseModel::rollback(); self::$errCode = '0021'; self::$errMsg = "split error!"; return false; } if (!OrderRecordModel::insertSpitRecords($_mainId, $_spitId)) { BaseModel::rollback(); self::$errCode = '0022'; self::$errMsg = "split error!"; return false; } } else { $split_log .= 'insert error!' . "\n"; BaseModel::rollback(); self::$errCode = '0023'; self::$errMsg = "split error!"; return false; } if (!OrderindexModel::deleteOrderData($tableName, $where)) { self::$errCode = '0024'; self::$errMsg = "split error!"; return false; } if (!OrderLogModel::insertOrderLog($_mainId, 'DELETE ORDER')) { BaseModel::rollback(); self::$errCode = '0025'; self::$errMsg = "split error!"; return false; } BaseModel::commit(); BaseModel::autoCommit(); } self::$errCode = '200'; self::$errMsg = "split success!"; return true; }
function act_addDistributorOrder() { $orderArrJson = json_decode($_POST["orderArr"], true); $app_key = trim($_POST['app_key']); $account = $this->getOrderSystemAccount($app_key); $accountInfo = omAccountModel::getAccountInfoByName($account); $accountId = $accountInfo['id']; $orderAddAct = new OrderAddAct(); $rtnArr = array(); foreach ($orderArrJson as $val) { $itemRtn = array(); $orderId = $val['orderId']; $check = $orderAddAct->checkDuplicateOrder($orderId, '16'); if ($check) { $itemRtn["errcode"] = 80001; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "系统已经存在[" . $orderId . "]这个订单"; $rtnArr[] = $itemRtn; continue; } //return $rtnArr; $insertOrder = array(); /***************BEGIN 订单表数据***************/ //$unshipedOrder = array(); $orderdata['recordNumber'] = $orderId; $orderdata['platformId'] = 16; //国内销售部 $orderdata['accountId'] = $accountId; $orderdata['orderStatus'] = C('STATEPENDING'); $orderdata['orderType'] = C('STATEPENDING'); //daichu //$gmtCreate = time_shift($val['gmtCreate']); $orderdata['ordersTime'] = $val['gmtCreate']; $orderdata['paymentTime'] = ""; //$pay_time[0]; $orderdata['onlineTotal'] = ""; //$order['initOderAmount']['amount']; //线上总金额 $orderdata['actualTotal'] = ""; //$orderDetail2['payAmount']['amount'];//付款总金额 $orderdata['calcShipping'] = $orderdata['orderAddTime'] = time(); $orderdata['isFixed'] = 1; /***************END 订单表数据***************/ /***************BEGIN 订单扩展表数据***************/ $orderExtAli = array(); // $orderExtAli['declaredPrice'] = $val['orderAmount']['amount']; $orderExtAli['paymentStatus'] = ""; //$order['fundStatus']; $orderExtAli['transId'] = ""; //$val['tradeID'];//$order['id'];//$orderdetail["id"]; // 交易id;; //$orderExtAli[PayPalPaymentId"] = ''; //$orderExtAli["site"] = ''; $orderExtAli['orderId'] = $val['orderId']; $orderExtAli['platformUsername'] = ""; //$order['buyerSignerFullname'];; $orderExtAli['currency'] = $val['orderAmount']['currencyCode']; $orderExtAli['PayPalEmailAddress'] = ""; //$order['buyerInfo']['email'];; $orderExtAli['eBayPaymentStatus'] = ""; //1?//$order['orderStatus']; //订单状态; /***************END 订单扩展表数据***************/ /***************BEGIN 订单用户表数据***************/ $orderUserInfo = array(); $orderUserInfo['username'] = $val['receiptAddress']['contactPerson']; $orderUserInfo['platformUsername'] = ""; //$order['buyerSignerFullname']; $orderUserInfo['email'] = ""; //$order['buyerInfo']['email']; $orderUserInfo['countryName'] = get_country_name($val['receiptAddress']['country']); $orderUserInfo['countrySn'] = $val['receiptAddress']['country']; $orderUserInfo['currency'] = $val['orderAmount']['currencyCode']; $orderUserInfo['state'] = $val['receiptAddress']['province']; $orderUserInfo['city'] = $val['receiptAddress']['city']; $orderUserInfo['street'] = $val['receiptAddress']['address1']; //?//$val['receiptAddress']['detailAddress']; $orderUserInfo['address2'] = isset($val['receiptAddress']['address2']) ? $val['receiptAddress']['address2'] : ""; $orderUserInfo['zipCode'] = $val['receiptAddress']['zip']; $orderUserInfo['phone'] = $val['receiptAddress']['phoneNumber']; /*************END 订单用户表数据***************/ $carrier = array(); $item_notes = array(); $noteb = array(); $insertOrder = array('orderData' => $orderdata, 'orderExtenData' => $orderExtAli, 'orderUserInfoData' => $orderUserInfo); $orderweight = ""; $obj_order_detail_data = array(); foreach ($val['childOrderList'] as $orderdetail) { //明细表 $orderdata_detail = array(); //$orderdata_detail['omOrderId'] = $insertId;//$order["id"]; $orderdata_detail['recordNumber'] = $orderId; $orderdata_detail['sku'] = $orderdetail['productAttributes']['sku']; //substr($orderdetail['skuCode'],0,stripos($orderdetail['skuCode'],'#')); $orderdata_detail['itemPrice'] = $orderdetail['productAttributes']['itemPrice']; $orderdata_detail['amount'] = $orderdetail['lotNum']; //$orderdata_detail["shippingFee"] = ''; //$orderdata_detail["reviews"] = ''; $orderdata_detail['createdTime'] = time(); //明细扩展表 $orderDetailExtAli = array(); $orderDetailExtAli['itemTitle'] = $orderdetail['productAttributes']['itemTitle']; $orderDetailExtAli['itemURL'] = $orderdetail['productAttributes']['skuUrl']; $orderDetailExtAli['itemId'] = ""; //$orderdetail['productId']; $orderDetailExtAli['transId'] = 0; //$orderId;//$orderdetail['orderId']; // 交易id; $orderDetailExtAli['note'] = ""; //$item_notes[$orderdetail['orderId']]; $obj_order_detail_data[] = array('orderDetailData' => $orderdata_detail, 'orderDetailExtenData' => $orderDetailExtAli); } $insertOrder['orderDetail'] = $obj_order_detail_data; $calcInfo = CommonModel::calcAddOrderWeight($obj_order_detail_data); //计算重量和包材 $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrder['orderDetail']) > 1) { $insertOrder['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrder['orderDetail'][0]['orderDetailData']['amount']) && $insertOrder['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrder['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 $insertOrder['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrder = AutoModel::auto_contrast_intercept($insertOrder); $opflag = "false"; if (OrderAddModel::insertAllOrderRow($insertOrder)) { $itemRtn["errcode"] = 0; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "success"; $rtnArr[] = $itemRtn; $opflag = "success"; } else { $itemRtn["errcode"] = 80005; $itemRtn["orderId"] = $orderId; $itemRtn["msg"] = "添加订单失败"; $rtnArr[] = $itemRtn; } $logfile = date("Y-m-d") . ".log"; @file_put_contents("/home/ebay_order_cronjob_logs/auto_contrast_intercept/" . $account . "/" . $logfile, $_POST["orderArr"] . "==" . $opflag . "\r\n", FILE_APPEND); } $rtnStr = json_encode($rtnArr); echo $rtnStr; }
public function view_guoneiSaleImport() { //var_dump($_POST);//exit; include_once WEB_PATH . "lib/PHPExcel.php"; //phpexcel include_once WEB_PATH . "conf/scripts/script.ebay.config.php"; //global $SYSTEM_ACCOUNTS,$__liquid_items_fenmocsku,$__liquid_items_BuiltinBattery,$__liquid_items_SuperSpecific,$__liquid_items_Paste; $toptitle = '速卖通线下订单导入'; //头部title $this->smarty->assign('toptitle', $toptitle); $this->smarty->assign('toplevel', 2); $this->smarty->assign('secondlevel', 220); $OmAccountAct = new OmAccountAct(); $aliexpressAccountList = $OmAccountAct->act_getINNERAccountList(); $this->smarty->assign("aliexpressAccountList", $aliexpressAccountList); if (isset($_FILES['aliexpressFile']['tmp_name'])) { $filePath = $_FILES['aliexpressFile']['tmp_name']; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } $PHPExcel = $PHPReader->load($filePath); $currentSheet = $PHPExcel->getSheet(0); //$excellists = excel2array($PHPExcel, $filePath, 0, 0); //print_r($excellists);print_r($_SESSION); $orderid = array(); $orderData = array(); //$orderarr = OrderindexModel::showSearchOrderList("om_unshipped_order","where da.id=14448"); //echo "<pre>";print_r($orderarr); $account = $_POST['aliexpressAccount']; $transportation = CommonModel::getCarrierList(); //所有的 $c = 2; while (true) { $aa = 'A' . $c; $bb = 'B' . $c; $cc = 'C' . $c; $dd = 'D' . $c; $ee = 'E' . $c; $ff = 'F' . $c; $gg = 'G' . $c; $hh = 'H' . $c; $ii = 'I' . $c; $jj = 'J' . $c; $kk = 'K' . $c; $ll = 'L' . $c; $mm = 'M' . $c; $nn = 'N' . $c; $oo = 'O' . $c; $pp = 'P' . $c; $qq = 'Q' . $c; $rr = 'R' . $c; $ss = 'S' . $c; $tt = 'T' . $c; $uu = 'U' . $c; $vv = 'V' . $c; $ww = 'W' . $c; $xx = 'X' . $c; $yy = 'Y' . $c; $zz = 'Z' . $c; $c++; $recordNumber = trim($currentSheet->getCell($aa)->getValue()); $userId = trim($currentSheet->getCell($bb)->getValue()); $skuStr = trim($currentSheet->getCell($cc)->getValue()); $amount = trim($currentSheet->getCell($dd)->getValue()); $countryName = trim($currentSheet->getCell($ee)->getValue()); $actualTotal = trim($currentSheet->getCell($ff)->getValue()); $currency = trim($currentSheet->getCell($gg)->getValue()); $street1 = trim($currentSheet->getCell($hh)->getValue()); $street2 = trim($currentSheet->getCell($ii)->getValue()); $carrierNameCn = trim($currentSheet->getCell($jj)->getValue()); $city = trim($currentSheet->getCell($kk)->getValue()); $state = trim($currentSheet->getCell($ll)->getValue()); $zipCode = trim($currentSheet->getCell($mm)->getValue()); $phone = trim($currentSheet->getCell($nn)->getValue()); $trackNumber = trim($currentSheet->getCell($oo)->getValue()); $noteStr = trim($currentSheet->getCell($pp)->getValue()); $ordersTime = time(); $paymentTime = time(); $email = ''; $onlineTotal = ''; $shippingFee = ''; $transId = ''; $note = ''; $username = $userId; $platformUsername = $userId; $PayPalPaymentId = $transId; if (empty($recordNumber)) { break; } $skuArrlist = explode(',', $skuStr); $noteArr = explode(',', $noteStr); $skuCount = count($skuArrlist); for ($i = 0; $i < $skuCount; $i++) { list($sku, $amount) = explode('*', $skuArrlist[$i]); //echo "--sku=$sku---amount=$amount-------"; //detail信息 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] = $amount; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['createdTime'] = time(); $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $noteArr[$i]; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['transId'] = $transId; if (!empty($note)) { $orderData[$recordNumber]['orderNote'][$c]['content'] = $note; $orderData[$recordNumber]['orderNote'][$c]['userId'] = $_SESSION['sysUserId']; } } //order信息 $orderData[$recordNumber]['orderData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderData']['ordersTime'] = $ordersTime; $orderData[$recordNumber]['orderData']['paymentTime'] = $paymentTime; $orderData[$recordNumber]['orderData']['onlineTotal'] = $onlineTotal; $orderData[$recordNumber]['orderData']['actualTotal'] = $actualTotal; $orderData[$recordNumber]['orderData']['actualShipping'] = $shippingFee; $orderData[$recordNumber]['orderData']['calcShipping'] = $shippingFee; $orderData[$recordNumber]['orderData']['orderAddTime'] = time(); $orderData[$recordNumber]['orderData']['orderStatus'] = 100; $orderData[$recordNumber]['orderData']['orderType'] = 101; $SYS_ACCOUNTS = OmAvailableModel::getTNameList("om_account", "*", " where account='{$account}'"); $orderData[$recordNumber]['orderData']['accountId'] = $SYS_ACCOUNTS[0]['id']; $orderData[$recordNumber]['orderData']['platformId'] = $SYS_ACCOUNTS[0]['platformId']; $plataccountId = $SYS_ACCOUNTS[0]['id']; $platformId = $SYS_ACCOUNTS[0]['platformId']; $SYS_ACCOUNTS = OmAvailableModel::getPlatformAccount(); foreach ($SYS_ACCOUNTS as $platform => $accounts) { foreach ($accounts as $accountId => $accountname) { if ($account == $accountname) { if ($platform == "ebay") { $orderData[$recordNumber]['orderData']['isFixed'] = 2; } else { $orderData[$recordNumber]['orderData']['isFixed'] = 1; } } } } foreach ($transportation as $tranValue) { if ($tranValue['carrierNameCn'] == $carrierNameCn) { $orderData[$recordNumber]['orderData']['transportId'] = $tranValue['id']; break; } } if ($trackNumber != '') { $orderData[$recordNumber]['orderTrack']['tracknumber'] = $trackNumber; $orderData[$recordNumber]['orderTrack']['addUser'] = $_SESSION['sysUserId']; $orderData[$recordNumber]['orderTrack']['createdTime'] = time(); } //order扩展信息 $orderData[$recordNumber]['orderExtenData']['currency'] = $currency; $orderData[$recordNumber]['orderExtenData']['paymentStatus'] = "PAY_SUCCESS"; $orderData[$recordNumber]['orderExtenData']['transId'] = $recordNumber; // 交易id;; $orderData[$recordNumber]['orderExtenData']['PayPalPaymentId'] = $PayPalPaymentId; $orderData[$recordNumber]['orderExtenData']['platformUsername'] = $platformUsername; $orderData[$recordNumber]['orderExtenData']['currency'] = $currency; //user信息 $orderData[$recordNumber]['orderUserInfoData']['platformUsername'] = $platformUsername; $orderData[$recordNumber]['orderUserInfoData']['username'] = $username; $orderData[$recordNumber]['orderUserInfoData']['email'] = $email; $orderData[$recordNumber]['orderUserInfoData']['street'] = $street1; $orderData[$recordNumber]['orderUserInfoData']['address2'] = ${$street2}; $orderData[$recordNumber]['orderUserInfoData']['currency'] = $currency; //$orderData[$recordNumber]['orderUserInfoData']['address3'] = $address3; $orderData[$recordNumber]['orderUserInfoData']['city'] = $city; $orderData[$recordNumber]['orderUserInfoData']['state'] = $state; $orderData[$recordNumber]['orderUserInfoData']['zipCode'] = $zipCode; $orderData[$recordNumber]['orderUserInfoData']['countryName'] = $countryName; $orderData[$recordNumber]['orderUserInfoData']['landline'] = $phone; $orderData[$recordNumber]['orderUserInfoData']['phone'] = $phone; //note信息 if (!empty($note)) { $orderData[$recordNumber]['orderNote'][$c]['content'] = $note; $orderData[$recordNumber]['orderNote'][$c]['userId'] = $_SESSION['sysUserId']; } } //print_r($orderData); //echo "<pre>";print_r($orderData);//exit; $message = ""; foreach ($orderData as $id => $order) { //echo $id; //$msg = commonModel::checkOrder($id); $msg = commonModel::checkRecordNumber($id, $platformId, $plataccountId); if ($msg) { $message .= "<font color='red'>订单{$id}已存在!</font><br>"; continue; } //计算订单属性 if (count($order['orderDetail']) == 1) { $detail = current($order['orderDetail']); if ($detail['orderDetailData']['amount'] == 1) { $orderData[id]['orderData']['orderAttribute'] = 1; } else { $orderData[id]['orderData']['orderAttribute'] = 2; } } else { $orderData[id]['orderData']['orderAttribute'] = 3; } //计算订单重量及包材 $obj_order_detail_data = array(); foreach ($order['orderDetail'] as $sku => $detail) { $obj_order_detail_data[] = $detail['orderDetailData']; } $weightfee = commonModel::calcOrderWeight($obj_order_detail_data); $orderData[$id]['orderData']['calcWeight'] = $weightfee[0]; //$orderData[$value[0]]['orderData']['calcShipping'] = $weightfee[3]; $orderData[$id]['orderData']['pmId'] = $weightfee[1]; //计算运费 $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, $orderData[$id]['orderData']['isFixed']); //计算运费 $orderData[$id]['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; //$orderData[$id]['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; //缺货拦截 $orderData[$id] = AutoModel::auto_contrast_intercept($orderData[$id]); /*$orderData[$id]['orderData']['orderStatus'] = $status['orderStatus']; $orderData[$id]['orderData']['orderType'] = $status['orderType'];*/ //echo "<pre>";print_r($orderData[$id]); //print_r($orderData); //exit; //插入订单 $info = OrderAddModel::insertAllOrderRowNoEvent($orderData[$id]); if ($info) { $message .= "<font color='green'>订单{$id}上传成功!</font><br>"; } else { $message .= "<font color='red'>订单{$id}上传失败!</font><br>"; } } $this->smarty->assign("showerrorinfo", $message); //header("location:index.php?mod=underLineOrderImport&act=importOrder"); } $this->smarty->display('guoneiSaleImport.htm'); }
public function act_transportFee() { $omOrderId = $_POST['id']; $tableName = 'om_unshipped_order'; $where = ' WHERE id = ' . $omOrderId; $orderList = OrderindexModel::showOrderList($tableName, $where); $orderData = $orderList[$omOrderId]; $data = array(); //print_r($orderData); $obj_order_detail_data = array(); foreach ($orderData['orderDetail'] as $sku => $detail) { $obj_order_detail_data[] = $detail['orderDetailData']; } $weightfee = commonModel::calcOrderWeight($obj_order_detail_data); $data['calcWeight'] = $weightfee[0]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($orderData, 1); //计算运费 //var_dump($calcShippingInfo); exit; $calcInfo = CommonModel::calcAddOrderWeight($orderData['orderDetail']); //计算重量和包材 //var_dump($calcInfo); exit; $data['calcWeight'] = $calcInfo[0]; $data['pmId'] = $calcInfo[1]; $data['calcShipping'] = $calcShippingInfo['fee']['fee']; $data['channelId'] = $calcShippingInfo['fee']['channelId']; if (OrderindexModel::updateOrder($tableName, $data, $where)) { self::$errCode = OrderindexModel::$errCode; self::$errMsg = OrderindexModel::$errMsg; return true; } else { self::$errCode = OrderindexModel::$errCode; self::$errMsg = OrderindexModel::$errMsg; return false; } }
public function view_aliexpressimport() { $this->smarty->assign('toplevel', 2); $this->smarty->assign('secondlevel', 24); $OmAccountAct = new OmAccountAct(); //$aliexpressAccountList = $OmAccountAct->act_getAccountListByPid(2); $aliexpressAccountList = $OmAccountAct->act_getAccountListAliexpress(); var_dump($aliexpressAccountList); $aliexpressAccountList = json_decode($aliexpressAccountList, true); $this->smarty->assign("aliexpressAccountList", $aliexpressAccountList); $this->smarty->display('aliexpressImport.htm'); include_once WEB_PATH . "lib/PHPExcel.php"; //phpexcel $toptitle = 'underLineOrderImport'; //头部title $this->smarty->assign('toptitle', $toptitle); $this->smarty->assign('toplevel', 2); $this->smarty->assign('secondlevel', 22); if (isset($_FILES['orderUpfile']['tmp_name'])) { $filePath = $_FILES['orderUpfile']['tmp_name']; $PHPExcel = new PHPExcel(); $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { echo 'no Excel'; return; } } $PHPExcel = $PHPReader->load($filePath); $currentSheet = $PHPExcel->getSheet(0); //$excellists = excel2array($PHPExcel, $filePath, 0, 0); //print_r($excellists);print_r($_SESSION); $orderid = array(); $orderData = array(); //$orderarr = OrderindexModel::showSearchOrderList("om_unshipped_order","where da.id=14448"); //echo "<pre>";print_r($orderarr); $c = 2; while (true) { $aa = 'A' . $c; $bb = 'B' . $c; $cc = 'C' . $c; $dd = 'D' . $c; $ee = 'E' . $c; $ff = 'F' . $c; $gg = 'G' . $c; $hh = 'H' . $c; $ii = 'I' . $c; $jj = 'J' . $c; $kk = 'K' . $c; $ll = 'L' . $c; $mm = 'M' . $c; $nn = 'N' . $c; $oo = 'O' . $c; $pp = 'P' . $c; $qq = 'Q' . $c; $rr = 'R' . $c; $ss = 'S' . $c; $tt = 'T' . $c; $uu = 'U' . $c; $vv = 'V' . $c; $ww = 'W' . $c; $xx = 'X' . $c; $yy = 'Y' . $c; $zz = 'Z' . $c; $c++; $account = trim($currentSheet->getCell($aa)->getValue()); $recordNumber = trim($currentSheet->getCell($bb)->getValue()); $platformUsername = trim($currentSheet->getCell($cc)->getValue()); $email = trim($currentSheet->getCell($dd)->getValue()); $ordersTime = trim($currentSheet->getCell($ee)->getValue()); $paymentTime = trim($currentSheet->getCell($ff)->getValue()); $sku = trim($currentSheet->getCell($gg)->getValue()); $amount = trim($currentSheet->getCell($hh)->getValue()); $itemTitle = trim($currentSheet->getCell($ii)->getValue()); $note = trim($currentSheet->getCell($jj)->getValue()); $itemPrice = trim($currentSheet->getCell($kk)->getValue()); $shippingFee = trim($currentSheet->getCell($ll)->getValue()); $actualTotal = trim($currentSheet->getCell($mm)->getValue()); $currency = trim($currentSheet->getCell($nn)->getValue()); $transId = trim($currentSheet->getCell($oo)->getValue()); $username = trim($currentSheet->getCell($pp)->getValue()); $street = trim($currentSheet->getCell($qq)->getValue()); $address2 = trim($currentSheet->getCell($rr)->getValue()); $address3 = trim($currentSheet->getCell($ss)->getValue()); $city = trim($currentSheet->getCell($tt)->getValue()); $state = trim($currentSheet->getCell($uu)->getValue()); $zipCode = trim($currentSheet->getCell($vv)->getValue()); $countryName = trim($currentSheet->getCell($ww)->getValue()); $landline = trim($currentSheet->getCell($xx)->getValue()); $carrierNameCn = trim($currentSheet->getCell($yy)->getValue()); if (empty($account)) { break; } if (in_array($recordNumber, $orderid)) { $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] = $amount; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['itemPrice'] = $itemPrice; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['shippingFee'] = $shippingFee; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $itemTitle; //$orderData['orderDetail']['orderDetailExtenData']['note'] = $value[10]; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['transId'] = $transId; if (!empty($note)) { $orderData[$recordNumber]['orderNote'][$c]['content'] = $note; $orderData[$recordNumber]['orderNote'][$c]['userId'] = $_SESSION['sysUserId']; } } else { $orderid[] = $recordNumber; //order信息 $orderData[$recordNumber]['orderData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderData']['ordersTime'] = strtotime($ordersTime); $orderData[$recordNumber]['orderData']['paymentTime'] = strtotime($paymentTime); $orderData[$recordNumber]['orderData']['actualTotal'] = $actualTotal; $orderData[$recordNumber]['orderData']['orderAddTime'] = time(); $SYSTEM_ACCOUNTS = OmAvailableModel::getTNameList("om_account", "*", " where account='{$account}'"); $orderData[$recordNumber]['orderData']['accountId'] = $SYSTEM_ACCOUNTS[0]['id']; $orderData[$recordNumber]['orderData']['platformId'] = $SYSTEM_ACCOUNTS[0]['platformId']; $SYSTEM_ACCOUNTS = OmAvailableModel::getPlatformAccount(); foreach ($SYSTEM_ACCOUNTS as $platform => $accounts) { foreach ($accounts as $accountId => $accountname) { if ($account == $accountname) { if ($platform == "ebay") { $orderData[$recordNumber]['orderData']['isFixed'] = 2; } else { $orderData[$recordNumber]['orderData']['isFixed'] = 1; } } } } $transportation = CommonModel::getCarrierList(); //所有的 foreach ($transportation as $tranValue) { if ($tranValue['carrierNameCn'] == $carrierNameCn) { $orderData[$recordNumber]['orderData']['transportId'] = $tranValue['id']; break; } //$transportationList[$tranValue['id']] = $tranValue['carrierNameCn']; } //order扩展信息 $orderData[$recordNumber]['orderExtenData']['currency'] = $currency; $orderData[$recordNumber]['orderExtenData']['paymentStatus'] = "PAY_SUCCESS"; $orderData[$recordNumber]['orderExtenData']['transId'] = $recordNumber; // 交易id;; $orderData[$recordNumber]['orderExtenData']['platformUsername'] = $platformUsername; //$orderData[$recordNumber]['orderExtenData']['currency'] = $currency; //user信息 $orderData[$recordNumber]['orderUserInfoData']['platformUsername'] = $platformUsername; $orderData[$recordNumber]['orderUserInfoData']['username'] = $username; $orderData[$recordNumber]['orderUserInfoData']['email'] = $email; $orderData[$recordNumber]['orderUserInfoData']['street'] = $street; $orderData[$recordNumber]['orderUserInfoData']['currency'] = $currency; $orderData[$recordNumber]['orderUserInfoData']['address2'] = $address2; $orderData[$recordNumber]['orderUserInfoData']['address3'] = $address3; $orderData[$recordNumber]['orderUserInfoData']['city'] = $city; $orderData[$recordNumber]['orderUserInfoData']['state'] = $state; $orderData[$recordNumber]['orderUserInfoData']['zipCode'] = $zipCode; $orderData[$recordNumber]['orderUserInfoData']['countryName'] = $countryName; $orderData[$recordNumber]['orderUserInfoData']['landline'] = $landline; //detail信息 $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['sku'] = $sku; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['amount'] = $amount; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['itemPrice'] = $itemPrice; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['shippingFee'] = $shippingFee; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['recordNumber'] = $recordNumber; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailData']['createdTime'] = time(); $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['itemTitle'] = $itemTitle; //$orderData['orderDetail']['orderDetailExtenData']['note'] = $value[10]; $orderData[$recordNumber]['orderDetail'][$sku]['orderDetailExtenData']['transId'] = $transId; //note信息 if (!empty($note)) { $orderData[$recordNumber]['orderNote'][$c]['content'] = $note; $orderData[$recordNumber]['orderNote'][$c]['userId'] = $_SESSION['sysUserId']; } } } //echo "<pre>";print_r($orderData); $message = ""; foreach ($orderData as $id => $order) { $msg = commonModel::checkOrder($id); if ($msg) { $message .= "<font color='red'>订单{$id}已存在!</font><br>"; continue; } //计算订单属性 if (count($order['orderDetail']) == 1) { $detail = current($order['orderDetail']); if ($detail['orderDetailData']['amount'] == 1) { $orderData[id]['orderData']['orderAttribute'] = 1; } else { $orderData[id]['orderData']['orderAttribute'] = 2; } } else { $orderData[id]['orderData']['orderAttribute'] = 3; } //计算订单重量及包材 $obj_order_detail_data = array(); foreach ($order['orderDetail'] as $sku => $detail) { $obj_order_detail_data[] = $detail['orderDetailData']; } $weightfee = commonModel::calcOrderWeight($obj_order_detail_data); $orderData[$id]['orderData']['calcWeight'] = $weightfee[0]; //$orderData[$value[0]]['orderData']['calcShipping'] = $weightfee[3]; $orderData[$id]['orderData']['pmId'] = $weightfee[1]; //计算运费 $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, $orderData[$id]['orderData']['isFixed']); //计算运费 $orderData[$id]['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; //缺货拦截 $status = commonModel::auto_contrast_intercept($orderData[$id]); $orderData[$id]['orderData']['orderStatus'] = $status['orderStatus']; $orderData[$id]['orderData']['orderType'] = $status['orderType']; //print_r($order); //插入订单 $info = OrderAddModel::insertAllOrderRowNoEvent($order); if ($info) { $message .= "<font color='green'>订单{$id}上传成功!</font><br>"; } else { $message .= "<font color='red'>订单{$id}上传失败!</font><br>"; } } $this->smarty->assign("showerrorinfo", $message); //header("location:index.php?mod=underLineOrderImport&act=importOrder"); } $this->smarty->display('underLineOrderImport.htm'); }
/** * List Orders Action Sample * ListOrders can be used to find orders that meet the specified criteria. * * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrders or array of parameters */ function invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request) { global $account, $site, $accountId, $flip_transportList; try { $response = $service->listOrders($request); echo "Service Response\n"; echo "=============================================================================\n"; if ($response->isSetListOrdersResult()) { //echo ("ListOrdersResult\n"); $listOrdersResult = $response->getListOrdersResult(); if ($listOrdersResult->isSetNextToken()) { //echo (" NextToken----"); //echo ($listOrdersResult->getNextToken() . "\n"); } if ($listOrdersResult->isSetCreatedBefore()) { //echo ("CreatedBefore----"); //echo ($listOrdersResult->getCreatedBefore() . "\n"); } if ($listOrdersResult->isSetLastUpdatedBefore()) { //echo ("LastUpdatedBefore----"); //echo ($listOrdersResult->getLastUpdatedBefore() . "\n"); } if ($listOrdersResult->isSetOrders()) { $orders = $listOrdersResult->getOrders(); $orderList = $orders->getOrder(); $orderIndex = 1; $now = time(); //BaseModel :: begin(); //开始事务 foreach ($orderList as $order) { echo "***********Orders {$orderIndex}************\n\n"; $orderIndex++; $orderData = array(); //om_unshipped_order $orderUserInfoData = array(); //om_unshipped_order_userInfo $orderExtenData = array(); //om_unshipped_order_extension $street2 = ''; //街道2 $street3 = ''; //街道3 if ($order->isSetAmazonOrderId() && $order->isSetOrderStatus() && $order->getOrderStatus() == 'Unshipped') { //$orderData['ebay_status'] = 1; //同步进来的订单的状态 $orderData['recordNumber'] = $order->getAmazonOrderId(); //平台上的订单id //echo "AmazonOrderId ==== {$orderData['recordNumber']}\n"; } else { //echo 'getOrderStatus======' . $order->getOrderStatus() . "\n"; if ($order->getOrderStatus() == 'Shipped') { //表示已经发货了的订单 $shippedRecordNum = $order->getAmazonOrderId(); $tName = 'om_shipped_order'; $where = "WHERE recordNumber='{$shippedRecordNum}' and accountId='{$accountId}' and ShippedTime=''"; $set = "SET ShippedTime='{$now}'"; //标记发货时间 $affectRow = OmAvailableModel::updateTNameRow($tName, $set, $where); if ($affectRow) { echo "update {$shippedRecordNum} ShippedTime success" . "\n"; } else { echo "update {$shippedRecordNum} ShippedTime fail may be has shippedTime or had no this recordNumber" . "\n"; } } continue; } if ($order->isSetPurchaseDate()) { //亚马逊平台上的下单时间 $orderData['ordersTime'] = strtotime($order->getPurchaseDate()); //echo ("addTime ==== {$order->getPurchaseDate()}\n"); } if ($order->isSetLastUpdateDate()) { //支付时间 $orderData['paymentTime'] = strtotime($order->getLastUpdateDate()); //echo ("paidTime ==== {$order->getLastUpdateDate()}\n"); } $orderstatus = ''; //订单状态 //if ($order->isSetOrderStatus()) { // if($order->getOrderStatus() == 'Unshipped'){ // $orderstatus = 1; // } // } if ($order->isSetFulfillmentChannel()) { $orderExtenData['FulfillmentChannel'] = $order->getFulfillmentChannel(); //echo ("FulfillmentChannel ==== "); //订单配送方式 //echo ($orderExtenData['FulfillmentChannel'] . "\n"); } if ($order->isSetSalesChannel()) { $orderExtenData['SalesChannel'] = $order->getSalesChannel(); //echo ("SalesChannel ==== "); //echo ($orderExtenData['SalesChannel'] . "\n"); } if ($order->isSetOrderChannel()) { $orderExtenData['OrderChannel'] = $order->getOrderChannel(); //echo ("OrderChannel ===="); //echo ($orderExtenData['OrderChannel'] . "\n"); } if ($order->isSetShipServiceLevel()) { $orderExtenData['ShipServiceLevel'] = $order->getShipServiceLevel(); //echo ("ShipServiceLevel ==== "); //echo ($orderExtenData['ShipServiceLevel'] . "\n"); } if ($order->isSetShippingAddress()) { //判断是否设置了地址 $shippingAddress = $order->getShippingAddress(); if ($shippingAddress->isSetName()) { //获取收件人姓名 $orderUserInfoData['username'] = htmlentities($shippingAddress->getName(), ENT_QUOTES); //echo ("username ==== "); //echo ($orderUserInfoData['username'] . "\n"); } if ($shippingAddress->isSetAddressLine1()) { //街道1 $orderUserInfoData['street'] = htmlentities($shippingAddress->getAddressLine1(), ENT_QUOTES); //echo ("street ==== "); //echo ($orderUserInfoData['street'] . "\n"); } if ($shippingAddress->isSetAddressLine2()) { //街道2 $street2 = htmlentities($shippingAddress->getAddressLine2(), ENT_QUOTES); } if ($shippingAddress->isSetAddressLine3()) { //街道3 $street3 = htmlentities($shippingAddress->getAddressLine3(), ENT_QUOTES); } if ($shippingAddress->isSetCity()) { //城市 $orderUserInfoData['city'] = htmlentities($shippingAddress->getCity(), ENT_QUOTES); //echo ("city ==== "); //echo ($orderUserInfoData['city'] . "\n"); } if ($shippingAddress->isSetCounty()) { //郡,县 $orderUserInfoData['address2'] = htmlentities($shippingAddress->getCounty() . ' ' . $street2, ENT_QUOTES); $orderUserInfoData['address3'] = htmlentities($shippingAddress->getCounty() . ' ' . $street3, ENT_QUOTES); //echo ("address2 ==== "); //echo ($orderUserInfoData['address2'] . "\n"); //echo ("address3 ==== "); //echo ($orderUserInfoData['address3'] . "\n"); } if ($shippingAddress->isSetDistrict()) { //地方,区 //echo ("District ==== " . $shippingAddress->getDistrict() . "\n"); } if ($shippingAddress->isSetStateOrRegion()) { //州 $orderUserInfoData['state'] = htmlentities($shippingAddress->getStateOrRegion(), ENT_QUOTES); //echo ("state ==== "); //echo ($orderUserInfoData['state'] . "\n"); } if ($shippingAddress->isSetPostalCode()) { //邮编 $orderUserInfoData['zipCode'] = htmlentities($shippingAddress->getPostalCode(), ENT_QUOTES); //echo ("zipCode ==== "); //echo ($orderUserInfoData['zipCode'] . "\n"); } if ($shippingAddress->isSetCountryCode()) { //国家简称 /*$ebay_countrynames = array('US'=>'United States', "UK"=>"United Kingdom"); $orderData['ebay_couny'] = $shippingAddress->getCountryCode() ; $orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderData['ebay_countryname'] = $ebay_countrynames[$shippingAddress->getCountryCode()];*/ //$sql = "SELECT regions_en FROM ebay_region WHERE regions_jc = '".$shippingAddress->getCountryCode()."'"; // $sql = $dbcon->execute($sql); // $amazon_countryname = $dbcon->fetch_one($sql); $countrycode = $shippingAddress->getCountryCode() == 'GB' ? 'UK' : $shippingAddress->getCountryCode(); $orderUserInfoData['countrySn'] = $countrycode; //这里要调用运输方式管理系统的数据,获取国家简称对应的国家名称 $countryNameInfo = CommonModel::getCountrieInfoBySn($countrycode); //根据国家简称获取该国家的信息 //$orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderUserInfoData['countryName'] = trim($countryNameInfo['regions_en']); //获得国家名称 //echo ("getCountryCode==== " . $orderUserInfoData['countrySn'] . "\n"); } if ($shippingAddress->isSetPhone()) { //手机 $orderUserInfoData['phone'] = $shippingAddress->getPhone(); //echo ("phone ==== "); //echo ($orderUserInfoData['phone'] . "\n"); } } if ($order->isSetOrderTotal()) { $orderTotal = $order->getOrderTotal(); if ($orderTotal->isSetCurrencyCode()) { //币种 $orderUserInfoData['currency'] = $orderTotal->getCurrencyCode(); //echo ("currency ==== "); //echo ($orderUserInfoData['currency'] . "\n"); } if ($orderTotal->isSetAmount()) { //订单总价,线上总价 $orderData['onlineTotal'] = $orderTotal->getAmount(); $orderData['actualTotal'] = $orderTotal->getAmount(); //echo ("onlineTotal ==== "); //echo ($orderData['onlineTotal'] . "\n"); } } if ($order->isSetNumberOfItemsShipped()) { //echo ("ItemsShipped ==== " . $order->getNumberOfItemsShipped() . "\n"); } if ($order->isSetNumberOfItemsUnshipped()) { //echo ("NumberOfItemsUnshipped ==== " . $order->getNumberOfItemsUnshipped() . "\n"); } if ($order->isSetPaymentExecutionDetail()) { $paymentExecutionDetail = $order->getPaymentExecutionDetail(); $paymentExecutionDetailItemList = $paymentExecutionDetail->getPaymentExecutionDetailItem(); foreach ($paymentExecutionDetailItemList as $paymentExecutionDetailItem) { echo "######PaymentExecutionDetailItem######\n"; if ($paymentExecutionDetailItem->isSetPayment()) { $payment = $paymentExecutionDetailItem->getPayment(); if ($payment->isSetCurrencyCode()) { //echo ("CurrencyCode ==== "); //echo ($payment->getCurrencyCode() . "\n"); } if ($payment->isSetAmount()) { //echo (" Amount ==== "); //echo ($payment->getAmount() . "\n"); } } if ($paymentExecutionDetailItem->isSetSubPaymentMethod()) { //echo ("SubPaymentMethod ==== "); //echo ($paymentExecutionDetailItem->getSubPaymentMethod() . "\n"); } } } if ($order->isSetPaymentMethod()) { $orderExtenData['PaymentMethod'] = $order->getPaymentMethod(); //echo ("PaymentMethod ==== "); //echo ($orderExtenData['PaymentMethod'] . "\n"); } if ($order->isSetMarketplaceId()) { $orderExtenData['MarketplaceId'] = $order->getMarketplaceId(); //echo ("MarketplaceId ==== "); //echo ($orderExtenData['MarketplaceId'] . "\n"); } if ($order->isSetBuyerName()) { //买家ID $orderUserInfoData['platformUsername'] = htmlentities($order->getBuyerName(), ENT_QUOTES); //echo ("platformUsername ==== "); //echo ($orderUserInfoData['platformUsername'] . "\n"); } if ($order->isSetBuyerEmail()) { //买家email $orderUserInfoData['email'] = $order->getBuyerEmail(); //echo ("email ==== "); //echo ($orderUserInfoData['email'] . "\n"); } if ($order->isSetShipmentServiceLevelCategory()) { $orderExtenData['ShipmentServiceLevelCategory'] = $order->getShipmentServiceLevelCategory(); //echo ("ShipmentServiceLevelCategory ==== "); //echo ($orderExtenData['ShipmentServiceLevelCategory'] . "\n"); } //$orderData['ebay_user'] = $user; $orderData['platformId'] = 11; //amazon的平台ID为11 $orderData['accountId'] = $accountId; //amazon的账号ID //echo ("accountId ==== "); //echo ($orderData['accountId'] . "\n"); $orderData['orderAddTime'] = time(); //添加到系统的时间 //echo ("orderAddTime ==== "); //echo ($orderData['orderAddTime'] . "\n"); $orderData['orderStatus'] = C('STATEPENDING'); //默认订单状态 $orderData['orderType'] = C('STATEPENDING_CONV'); //默认订单类型 $insertOrder = array('orderData' => $orderData, 'orderExtenData' => $orderExtenData, 'orderUserInfoData' => $orderUserInfoData); $tName = 'om_unshipped_order'; $where = "WHERE recordNumber='{$orderData['recordNumber']}' AND platformId={$orderData['platformId']}"; $flagCountUnshipped = OmAvailableModel::getTNameCount($tName, $where); $tName = 'om_shipped_order'; $flagCountshipped = OmAvailableModel::getTNameCount($tName, $where); if (empty($flagCountUnshipped) && empty($flagCountshipped)) { //判断订单是否已经在系统2个订单表(未发货和已发货)中存在 //$orderData['ebay_ordersn'] = generateOrdersn(); $detailrequest = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $detailrequest->setSellerId(MERCHANT_ID); $detailrequest->setAmazonOrderId($orderData['recordNumber']); $orderDetailArr = invokeListOrderItems($service, $detailrequest); for ($i = 0; $i < count($orderDetailArr); $i++) { $orderDetailArr[$i]['orderDetailData']['recordNumber'] = $orderData['recordNumber']; } //print_r($orderDetailArr); if (!empty($orderDetailArr)) { $insertOrder['orderDetail'] = $orderDetailArr; //var_dump($obj_order_detail_data); echo "<br>"; $calcInfo = CommonModel::calcAddOrderWeight($orderDetailArr); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrder['orderData']['calcWeight'] = $calcInfo[0]; $insertOrder['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrder['orderDetail']) > 1) { $insertOrder['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrder['orderDetail'][0]['orderDetailData']['amount']) && $insertOrder['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrder['orderData']['orderAttribute'] = 2; } } $insertOrder['orderData']['transportId'] = $flip_transportList[get_carrier($insertOrder['orderData']['calcWeight'], $insertOrder['orderUserInfoData']['countryName'])]; $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $insertOrder['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrder = AutoModel::auto_contrast_intercept($insertOrder); //print_r($interceptInfo); exit; /*$insertOrder['orderData']['orderStatus'] = $interceptInfo['orderStatus']; $insertOrder['orderData']['orderType'] = $interceptInfo['orderType'];*/ //var_dump($insertOrder); exit; if (OrderAddModel::insertAllOrderRow($insertOrder)) { //echo 'insert success!' . "\n"; echo "-----" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['recordNumber']}成功\r\n"; } else { echo "-----" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['recordNumber']}失败\r\n"; //echo OrderAddModel :: $errMsg; } } else { //echo "Amazon ID: ".$orderData['recordnumber']." 订单详情添加失败\n"; echo "Amazon ID: " . $orderData['recordNumber'] . " has no detail \n"; } } else { echo "Amazon ID: " . $orderData['recordNumber'] . " had exist\n"; } } } } } catch (MarketplaceWebServiceOrders_Exception $ex) { echo "Caught Exception: " . $ex->getMessage() . "\n"; echo "Response Status Code: " . $ex->getStatusCode() . "\n"; echo "Error Code: " . $ex->getErrorCode() . "\n"; echo "Error Type: " . $ex->getErrorType() . "\n"; echo "Request ID: " . $ex->getRequestId() . "\n"; echo "XML: " . $ex->getXML() . "\n"; } catch (Exception $e) { BaseModel::rollback(); BaseModel::autoCommit(); echo $e->getMessage() . "\n"; } }
public function act_operateAbOrderAPI() { if (!isset($_POST['omData'])) { self::$errCode = 500; self::$errMsg = '未成功接收数据!'; return false; } $ostatus = 770; $otype = 0; $storeId = 1; $orderstr = $_POST['omData']; $orderstr2 = $_POST['omData2']; $orderids = array_unique(explode(',', $orderstr)); $invoiceids = array_unique(explode(',', $orderstr2)); if (!$orderids) { self::$errCode = 400; self::$errMsg = '未获取订单编号信息!'; return false; } //var_dump($orderids); exit; $OrderindexAct = new OrderindexAct(); $WarehouseAPIAct = new WarehouseAPIAct(); foreach ($orderids as $k => $orderId) { BaseModel::begin(); //开始事务 $insertOrderData = array(); $AbOrderInfo = $WarehouseAPIAct->act_getAbOrderInfo($invoiceids[$k]); //var_dump($AbOrderInfo); echo "<br>"; //exit; $where = ' WHERE id = ' . $orderId . ' and is_delete = 0 AND storeId = ' . $storeId . ' LIMIT 1'; $orderList = $OrderindexAct->act_showOrderList($ostatus, $otype, $where); //var_dump($orderList);exit; $order = $orderList[$orderId]; $orderData = $order['orderData']; $insert_orderData = $orderData; unset($insert_orderData['id']); $insert_orderData['orderStatus'] = C('STATEOUTOFSTOCK'); $insert_orderData['orderType'] = C('STATEOUTOFSTOCK_ABNORMAL'); $orderExtenData = $order['orderExtenData']; $insert_orderExtenData = $orderExtenData; unset($insert_orderExtenData['omOrderId']); $orderUserInfoData = $order['orderUserInfoData']; $insert_orderUserInfoData = $orderUserInfoData; unset($insert_orderUserInfoData['omOrderId']); //$orderTracknumber = $order['orderTracknumber']; //$orderAudit = $order['orderAudit']; $orderDetail = $order['orderDetail']; $insertOrderData['orderData'] = $insert_orderData; $insertOrderData['orderExtenData'] = $insert_orderExtenData; $insertOrderData['orderUserInfoData'] = $insert_orderUserInfoData; $insert_orderDetail = array(); $need_delete_ids = array(); foreach ($orderDetail as $dkey => $detailValue) { $orderDetailData = $detailValue['orderDetailData']; $orderDetailExtenData = $detailValue['orderDetailExtenData']; if (!isset($AbOrderInfo[$orderDetailData['sku']]) || $AbOrderInfo[$orderDetailData['sku']] == 0) { $insert_orderDetailData = $orderDetailData; unset($insert_orderDetailData['id']); unset($insert_orderDetailData['omOrderId']); $insert_orderDetailExtenData = $orderDetailExtenData; unset($insert_orderDetailExtenData['omOrderdetailId']); $insert_orderDetail[$dkey]['orderDetailData'] = $insert_orderDetailData; $insert_orderDetail[$dkey]['orderDetailExtenData'] = $insert_orderDetailExtenData; $need_delete_ids[] = $orderDetailData['id']; } } $insertOrderData['orderDetail'] = $insert_orderDetail; $count_insert_orderDetail = count($insert_orderDetail); $count_orderDetail = count($orderDetail); $tableName = "om_unshipped_order"; if ($count_insert_orderDetail > 0 && $count_insert_orderDetail < $count_orderDetail) { $calcWeight = CommonModel::calcNowOrderWeight($orderId); //重新计算原来订单的重量 if (!OrderindexModel::deleteOrderDetail(array('is_delete' => 1), ' where id in(' . join(',', $need_delete_ids) . ')')) { BaseModel::rollback(); self::$errCode = '005'; self::$errMsg = "删除原订单明细失败!"; return false; } $insertOrderData['orderData']['isCopy'] = 2; $insertOrderData['orderData']['actualTotal'] = 0.0; //var_dump($orderData);exit; $calcInfo = CommonModel::calcAddOrderWeight($insert_orderDetail); //计算重量和包材 //var_dump($calcInfo); exit; $insertOrderData['orderData']['calcWeight'] = $calcInfo[0]; $insertOrderData['orderData']['pmId'] = $calcInfo[1]; if (count($insertOrderData['orderDetail']) > 1) { $insertOrderData['orderData']['orderAttribute'] = 3; } else { if (isset($insertOrderData['orderDetail'][0]['orderDetailData']['amount']) && $insertOrderData['orderDetail'][0]['orderDetailData']['amount'] > 1) { $insertOrderData['orderData']['orderAttribute'] = 2; } } $calcShippingInfo = CommonModel::calcAddOrderShippingFee($insertOrder, 1); //计算运费 $insertOrderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId']; $insertOrderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; //print_r($insertOrderData); exit; if ($_spitId = OrderAddModel::insertAllOrderRowNoEvent($insertOrderData)) { if (!OrderLogModel::insertOrderLog($_spitId, 'INSERT ORDER')) { BaseModel::rollback(); self::$errCode = '001'; self::$errMsg = "插入订单日志失败!"; return false; } if (!OrderRecordModel::insertSpitRecords($orderId, $_spitId)) { BaseModel::rollback(); self::$errCode = '002'; self::$errMsg = "插入拆分日志失败!"; return false; } } else { BaseModel::rollback(); self::$errCode = '010'; self::$errMsg = "插入订单信息失败!"; return false; } $returnStatus0 = array('isCopy' => 1, 'calcWeight' => $calcWeight); $rtn = $WarehouseAPIAct->act_operateAbOrder($invoiceids[$k], $calcWeight); if (!$rtn) { BaseModel::rollback(); self::$errCode = '011'; self::$errMsg = "调用仓库系统拆分功能失败!"; return false; } } else { $returnStatus0 = array('orderStatus' => $insert_orderData['orderStatus'], 'orderType' => $insert_orderData['orderType']); } if (!OrderindexModel::updateOrder($tableName, $returnStatus0, $where)) { BaseModel::rollback(); self::$errCode = '002'; self::$errMsg = "订单移动到缺货异常失败!"; return false; } BaseModel::commit(); BaseModel::autoCommit(); } self::$errCode = 200; self::$errMsg = '缺货拆分完成!'; return true; }