Example #1
0
 public function act_cancelDeal()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['orderid']) : 0;
     $type = isset($_GET['type']) ? intval($_GET['type']) : 2;
     if ($orderid < 1) {
         // 传入订单号不正确
         self::$errCode = 300;
         self::$errMsg = '订单号类型不正确!';
         return FALSE;
     }
     //var_dump($orderid); exit;
     //$oi_obj = new OrderInfoModel ();
     $orderinfo = OrderInfoModel::getOrderInfo($orderid);
     //var_dump($orderinfo);
     if (!$orderinfo) {
         // 未找到订单
         self::$errCode = OrderInfoModel::$errCode;
         self::$errMsg = OrderInfoModel::$errMsg;
         return FALSE;
     }
     if (C('STATESHIPPED') == $orderinfo['orderStatus'] && C('STATEHASSHIPPED_CONV') == $orderinfo['orderType']) {
         //订单已发货不能取消交易
         self::$errCode = 304;
         self::$errMsg = '订单已完成不能取消交易!';
         return FALSE;
     } else {
         if (C('STATESHIPPED') == $orderinfo['orderStatus'] && C('STATESHIPPED_APPLYPRINT') != $orderinfo['orderType']) {
             /*$ro_obj = new RequestOpenApiModel();
             		
             		$parameter = array(
             			'method' => 'wh.discardShippingOrder',  //API名称
             			'format' => 'json',  //返回格式
             			'v' => '1.0',   //API版本号
             			'username'	 => 'valsun.cn',
             			'originOrderId'=>$orderid,
             			'storeId'=>1
             		);
             		
             		$sendresult = $ro_obj->sendRequest($parameter);
             		$sendresult = json_decode($sendresult, TRUE);*/
             //$orderids = array(0=>$orderid);
             $sendresult = WarehouseAPIModel::discardShippingOrder($orderid);
             //var_dump($sendresult);
             if (!$sendresult) {
                 //推送消息到仓库系统失败
                 self::$errCode = 305;
                 self::$errMsg = "发货单仓库废弃失败";
                 return FALSE;
             }
         }
     }
     $rtn = OrderInfoModel::cancelDeal($orderid, $type);
     self::$errCode = OrderInfoModel::$errCode;
     self::$errMsg = OrderInfoModel::$errMsg;
     return $rtn;
 }
Example #2
0
 public function act_applyForException()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['orderid']) : 0;
     if ($orderid < 1) {
         // 传入订单号不正确
         self::$errCode = 200;
         self::$errCode = '订单号类型不正确!';
         return FALSEl;
     }
     //$oi_obj = new OrderInfoModel ();
     $orderinfo = OrderInfoModel::getOrderInfo($orderid);
     if ($orderinfo == FALSE) {
         // 未找到订单
         switch (OrderInfoModel::$errCode) {
             case '003':
                 self::$errCode = 201;
                 break;
             case '004':
                 self::$errCode = 203;
                 break;
         }
         self::$errMsg = OrderInfoModel::$errMsg;
         return FALSE;
     }
     if (900 != $orderinfo['orderStatus']) {
         //当前状态不可以申请
         self::$errCode = 204;
         self::$errMsg = '当前状态不可申请异常';
         return FALSE;
     }
     $ro_obj = new RequestOpenApiModel();
     $parameter = array('method' => 'wh.discardShippingOrder', 'format' => 'json', 'v' => '1.0', 'username' => 'valsun.cn', 'originOrderId' => $orderid, 'storeId' => 1);
     //print_r($parameter);exit;
     $sendresult = $ro_obj->sendRequest($parameter);
     //print_r( $sendresult); exit;
     $sendresult = json_decode($sendresult, TRUE);
     if (FALSE != $sendresult['errCode']) {
         //推送消息到仓库系统失败
         self::$errCode = 205;
         self::$errMsg = $sendresult['errMsg'];
         return FALSE;
     }
     $updateresult = $oi_obj->changStatusToException($orderid);
     if (FALSE == $updateresult) {
         //更新状态失败
         self::$errCode = 206;
         self::$errMsg = '申请失败!';
         return FALSE;
     }
     self::$errCode = 207;
     self::$errMsg = '申请成功!';
     return TRUE;
 }
Example #3
0
 public function act_resendOrder()
 {
     $orderid = isset($_GET['orderid']) ? intval($_GET['orderid']) : 0;
     $type = isset($_GET['type']) ? intval($_GET['type']) : 1;
     $resendArr = isset($_POST['resendArr']) ? $_POST['type'] : '';
     $reason_noteb = isset($_POST['reason_noteb']) ? $_POST['reason_noteb'] : '';
     $extral_noteb = isset($_POST['extral_noteb']) ? $_POST['extral_noteb'] : '';
     $old_ostatus = isset($_POST['old_ostatus']) ? $_POST['old_ostatus'] : '';
     $old_otype = isset($_POST['old_otype']) ? $_POST['old_otype'] : '';
     $SendReplacementAct = new SendReplacementAct();
     $return = $SendReplacementAct->act_getSendReplacement();
     $sendreplacement = $return['SendReplacementType'];
     $send_reason = $return['SendReplacementReason'];
     $note = " 补寄 订单(" . $sendreplacement[$resendArr] . ")--{$extral_noteb}," . $send_reason[$reason_noteb];
     //echo $orderid;
     if ($orderid < 1) {
         // 传入订单号不正确
         self::$errCode = 500;
         self::$errMsg = '订单号类型不正确!';
         return FALSE;
     }
     //$oi_obj = new OrderInfoModel ();
     /*$orderinfo = OrderInfoModel::getShipedOrderInfo($orderid);
     		
     		if ($orderinfo == FALSE) { // 未找到订单
     			switch (OrderInfoModel::$errCode) {
     				case '003' :
     					self::$errCode = 501;
     					break;
     				case '004' :
     					self::$errCode = 503;
     					break;
     			}
     			self::$errMsg = OrderInfoModel::$errMsg;
     			return FALSE;
     		}*/
     /*if (C('STATEHASSHIPPED') != $orderinfo['orderStatus']) {	//不会已经发货订单 不能补寄
     			self::$errCode = 504;
     			self::$errMsg = '当前状态不可申请补寄!';
     			return FALSE;
     		}*/
     $updateresult = OrderInfoModel::resendOrder($orderid, $note, $type, $old_ostatus, $old_otype);
     if (FALSE == $updateresult) {
         //更新状态失败
         self::$errCode = OrderInfoModel::$errCode;
         self::$errMsg = OrderInfoModel::$errMsg;
         return FALSE;
     }
     self::$errCode = OrderInfoModel::$errCode;
     self::$errMsg = OrderInfoModel::$errMsg;
     return TRUE;
 }
Example #4
0
 public function act_amazonInStockExport()
 {
     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;
     $accountLists = omAccountModel::accountAllList();
     //获取全部账号信息
     foreach ($accountLists as $value) {
         $accounts[$value['id']] = $value['account'];
         //账号id对应名称
     }
     unset($accountLists);
     $time1 = time();
     $start = strtotime($_REQUEST['start']);
     $end = strtotime($_REQUEST['end']);
     $account = $_REQUEST['account'];
     //$account	=	'336';//zyp,测试
     $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';
     //已發貨订单表
     //$tNameUnShipped = 'om_unshipped_order'; //未發貨订单表
     $tNameOrderIdList = OrderInfoModel::getTNameOrderIdByTSA($tNameUnShipped, $start, $end, $accountStr);
     $orderIdArr = array();
     foreach ($tNameOrderIdList as $value) {
         $orderIdArr[] = $value['id'];
     }
     $orderIdStr = implode(',', $orderIdArr);
     if (empty($orderIdStr)) {
         $orderIdStr = 0;
     }
     $where = "WHERE id in({$orderIdStr})";
     //	$where = " WHERE `paymentTime` > $start AND `paymentTime` < $end AND `accountId` = '".$account."' LIMIT 1,100";
     $shipOrderList = OrderindexModel::showOrderList($tNameUnShipped, $where);
     $fileName = "AmazonInStock_" . date('Y-m-d', $end) . ".xls";
     $excel = new ExportDataExcel('browser', $fileName);
     $excel->initialize();
     $excel->addRow(array('日期', '店铺', '交易号', '客户ID', '料号', '数量', '国家', '包裹总价值', '币种', '重量', '邮费', '运输方式', '订单编号'));
     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' ? '合并包裹主订单' : '合并包裹子订单');
         $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);
             //订单总价-sku对应的总价得出运费,$ebay_shipfee
             $skus = GoodsModel::get_realskuinfo($orderDetailSku);
             //获取该sku下对应的真实料号信息(包括料号转换及组合料号对应真实料号信息)
             $values_skus = array_values($skus);
             //得到sku的数量
             $goods_location = CommonModel::getPositionBySku($sku);
             //仓位
             $goodsInfo = GoodsModel::getSkuinfo($sku);
             //获取真实sku的详细信息,包括采购名称和可用库存
             $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($sku);
             //判断该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, '', $orderDetailAmount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId);
                 $excel->addRow($row);
                 foreach ($skus as $k => $v) {
                     $goodsInfo3 = GoodsModel::getSkuinfo($k);
                     $goods_cost = isset($goodsInfo3['goodsCost']) ? round($goodsInfo3['goodsCost'], 2) : 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('', '', $orderDetailRecordnumber, '', $k, $orderDetailAmount * $v, '', '', '', $iorderweight2, $iordershipfee, '', $orderDetailExtenItemId);
                     $excel->addRow($row);
                 }
             } else {
                 //非组合订单
                 $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, $orderDetailSku, $orderDetailAmount * array_sum($values_skus), $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId);
                 $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 = round_num($OrderActualTotal - $ebay_itemprice, 2);
             $row = array($orderWhInfoWeighTime, $accountName, $orderRecordnumber, $platformUsername, '', $cctotal, $orderUserInfoCountryName, $OrderActualTotal, $orderExtenCurrency, $orderWhInfoActualWeight, $orderCalcShipping, $carrierName, $orderId);
             $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;
                         $pmId = isset($goodsInfo3['pmId']) ? $goodsInfo3['pmId'] : '';
                         $ebay_packingmaterial = $packings[$pmId]['pmName'];
                         $ebay_packingCost = $packings[$pmId]['pmCost'];
                         $purchaseId = isset($goodsInfo3['purchaseId']) ? $goodsInfo3['purchaseId'] : '';
                         $cguser = $staffLists[$purchaseId];
                         //$iprice = round_num(($goods_costs_list[$detail_id.$k][$k]/array_sum($goods_costs_list[$detail_id.$k])) * $debay_itemprice * $amount,2); //根据货本比产品价格
                         $ishipfee = round_num($goods_costs_list[$detail_id . $skuDe][$k] / array_sum($goods_costs_list[$detail_id . $skuDe]) * $dshipingfee, 2);
                         //根据货本比ebay运费
                         $iorderweight2 = round($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dorderweight2, 3);
                         $iordershipfee = round_num($goods_weight_list[$detail_id . $skuDe][$k] / array_sum($goods_weight_list[$detail_id . $skuDe]) * $dordershipfee, 2);
                         $iprice = round_num(($goods_costs_list[$detail_id . $skuDe][$k] + $iordershipfee) / (array_sum($goods_costs_list[$detail_id . $skuDe]) + $dordershipfee) * $debay_itemprice * $amount, 2);
                         //根据货本比产品价格  last modified by herman.xi @20130916
                         $row = array('', '', $recordnumber, '', $k, $amount * $v, '', '', '', $iorderweight2, $iordershipfee, '', '');
                         $excel->addRow($row);
                     }
                 } else {
                     $row = array('', '', $recordnumber, '', $skuDe, $amount, '', '', '', $dorderweight2, $dordershipfee, '', '');
                     $excel->addRow($row);
                 }
             }
             unset($goods_weight_list);
             unset($goods_costs_list);
         }
     }
     $excel->finalize();
     exit;
 }
Example #5
0
 public function act_getExpressShipOrderInfo()
 {
     $recordnumber = !empty($_GET["recordnumber"]) ? addslashes(trim($_GET["recordnumber"])) : '';
     $selleraccount = !empty($_GET["selleraccount"]) ? addslashes(trim($_GET["selleraccount"])) : '';
     //$selleraccount='sunwebzone';
     //$recordnumber='537995';
     if (empty($recordnumber)) {
         $data['errCode'] = '5806';
         $data['errMsg'] = 'recordnumber  is null.';
         exit(json_encode($data));
     }
     if (empty($selleraccount)) {
         $data['errCode'] = '5806';
         $data['errMsg'] = 'selleraccount  is null.';
         exit(json_encode($data));
     }
     $field = "a.*";
     $condition = "ORDER BY a.id DESC LIMIT 50";
     $orders = OrderInfoModel::getExpressOrderInfo($selleraccount, $recordnumber, $field, $condition = '');
     if (empty($orders)) {
         $data['errCode'] = '5806';
         $data['errMsg'] = 'No data or get a order information error';
         exit(json_encode($data));
     }
     foreach ($orders as &$order) {
         if ($order['orderStatus'] == 2) {
             $order['catename'] = '已发货';
         } else {
             $select = 'statusName';
             $where = " WHERE groupId = '{$order['orderStatus']}' AND statusCode = '{$order['orderType']}' LIMIT 1 ";
             $cates = StatusMenuModel::getStatusMenuList($select, $where);
             $order['catename'] = $cates[0]['statusName'];
         }
         $order['orderdetail'] = OrderInfoModel::getShipOrderDetailByOrderId($order['id']);
     }
     $data['data'] = $orders;
     exit(json_encode($data));
 }
Example #6
0
 public function view_applyLabel()
 {
     $returnData = array('code' => 0, 'msg' => '');
     $orderId = isset($_GET['oid']) ? intval($_GET['oid']) : 0;
     if (!$orderId) {
         $returnData['msg'] = '未指定订单号';
         echo json_encode($returnData);
         return FALSE;
     }
     $orderInfo = OrderInfoModel::getOrderInfo($orderId);
     if (FALSE === $orderInfo) {
         //不存在的订单号
         $returnData['msg'] = '不存在的订单号!';
         echo json_encode($returnData);
         return FALSE;
     }
     if ($orderInfo['orderStatus'] != 911 || $orderInfo['orderType'] != 916) {
         //订单状态不合法
         $returnData['msg'] = '该订单不是海外仓待打印订单!';
         echo json_encode($returnData);
         return FALSE;
     }
     if ($orderInfo['transportId'] == 0) {
         //订单未设置运输方式
         $returnData['msg'] = '该订单还未设定运输方式!';
         echo json_encode($returnData);
         return FALSE;
     }
     $orderActObj = new OrderindexAct();
     $skuList = $orderActObj->act_getRealskulist($orderId);
     //获得全部的sku列表
     if (FALSE == $skuList) {
         $returnData['msg'] = '获取料号信息出错!';
         echo json_encode($returnData);
         return FALSE;
     }
     $owOrderMg = new OwOrderManageModel();
     $owShipDes = new OwShippingWayDesisionModel();
     $outside = $owShipDes->culPackageLWH($skuList);
     $buyerInfo = $owOrderMg->getUnshippedOrderBuyerInfo($orderId);
     //买家信息
     if (FALSE === $buyerInfo) {
         $returnData['msg'] = '获取买家信息失败!';
         echo json_encode($returnData);
         return FALSE;
     }
     $zipCode = $buyerInfo['zipCode'];
     //邮编
     $weight = $orderInfo['calcWeight'];
     //订单重量
     if ($weight == 0) {
         //重量为0 则无法处理
         $returnData['msg'] = '订单重量为0,请先确认重量!';
         echo json_encode($returnData);
         return FALSE;
     }
     $owOrderMG = new OwOrderManageModel();
     $transInfo = $owOrderMG->getShippingInfo($orderId);
     if (!empty($transInfo) && $transInfo['shippingWay'] == 'USPS' && $transInfo['isCanceled'] == 0) {
         /* 当之前有申请过usps 并且申请的usps还没有退款的时 则 不予申请*/
         $returnData['msg'] = '请先退款已申请的USPS!';
         echo json_encode($returnData);
         return FALSE;
     }
     $shipping = new ExpressLabelApplyModel();
     $zone = $shipping->getZoneCode($zipCode);
     $zone = FALSE !== $zone ? $zone : 6;
     //如果没找到分区则默认为6区
     $shippingInfo = $owShipDes->chooseShippingWay($skuList, $weight, $outside, $zone);
     if ($shippingInfo) {
         $transId = $shipping->reflectCodeToId($shippingInfo['shippingCode']);
     } else {
         $transId = 0;
     }
     if ($transId != $orderInfo['transportId']) {
         //计算出的运输方式和系统的不符合
         $returnData['msg'] = "计算的运输方式和初始运输方式不符合! 请重新生成运输方式 ! 计算运输方式为 " . $shippingInfo['shippingCode'];
         echo json_encode($returnData);
         return FALSE;
     }
     if (0 == $transId) {
         //没找到正确的运输方式
         $returnData['msg'] = OwShippingWayDesisionModel::$errMsg;
         echo json_encode($returnData);
         return FALSE;
     }
     $data = array();
     $data['recipients'] = $buyerInfo['username'];
     //收件人
     $data['re_phone'] = $buyerInfo['landline'] . '/' . $buyerInfo['phone'];
     //电话
     $data['re_address1'] = $buyerInfo['street'];
     //街道地址一
     $data['re_address2'] = $buyerInfo['address2'];
     //街道地址二
     $data['re_city'] = $buyerInfo['city'];
     //市
     $data['re_post_code'] = $zipCode;
     //邮编
     $data['re_country_code'] = 'US';
     //国家简称
     $data['weight'] = $weight;
     //重量
     $data['orderId'] = $orderId;
     //订单号
     $owSkuMG = new OwSkuInfoManageModel();
     //生成料号仓位数据
     $skuLocation = $owSkuMG->getAsetOfSkusLocation(array_keys($skuList));
     $positionStr = '';
     $skuDetailStr = '';
     foreach ($skuList as $k => $_num) {
         $position = $skuLocation[$k];
         $positionStr .= " {$k} [{$position}] ";
         $skuDetailStr .= " {$k} * {$_num} ";
     }
     $data['sku_position'] = $positionStr;
     $data['show_detail'] = $skuDetailStr;
     $handResult = FALSE;
     $errMsg = '';
     //         print_r($shippingInfo['shippingCode']);exit;
     if ('UPS Ground' == $shippingInfo['shippingCode']) {
         //申请 UPS Label
         $upsApplyObj = new ApplyUpsLabelModel();
         $data['re_state_code'] = $upsApplyObj->getStateAbbreviationName($buyerInfo['state']);
         //州简称
         if (FALSE == $data['re_state_code']) {
             //没找到则使用原始值
             $data['re_state_code'] = $buyerInfo['state'];
         }
         //         	print_r($data);exit;
         $applyResult = $upsApplyObj->applyUPSLabel($data);
         if (FALSE === $applyResult) {
             //申请标签失败
             $errMsg = ApplyUpsLabelModel::$errMsg;
         } else {
             $handResult = TRUE;
             $this->deal_img_ups($applyResult['imagePath'], $applyResult['imagePath']);
         }
     } else {
         if ('USPS' == $shippingInfo['shippingCode']) {
             //申请usps label
             $uspsApplyObj = new ApplyUSPSLabelModel();
             $data['re_state_code'] = $uspsApplyObj->getStateAbbreviationName($buyerInfo['state']);
             //州简称
             if (FALSE == $data['re_state_code']) {
                 //没找到则使用原始值
                 $data['re_state_code'] = $buyerInfo['state'];
             }
             $mailClass = $shippingInfo['extensionInfo']['mailclass'];
             //运输类型
             $packageType = $shippingInfo['extensionInfo']['packageType'];
             $typeInfo = array('mailClass' => $mailClass, 'packageType' => $packageType);
             $applyResult = $uspsApplyObj->aplyUSPSLabel($data, $typeInfo);
             if (FALSE === $applyResult) {
                 //申请标签失败
                 $errMsg = ApplyUSPSLabelModel::$errMsg;
             } else {
                 $handResult = TRUE;
                 if ($packageType == 'Letter' || $packageType == 'Flat') {
                     $this->deal_img_usps($applyResult['imagePath'], $applyResult['imagePath']);
                     //后期处理图片
                 }
             }
         }
     }
     if (FALSE == $handResult) {
         $returnData['msg'] = $errMsg;
     } else {
         $returnData['code'] = 1;
         //               array('trackNumber'=>$trackNumber, 'shippFee'=>$totalMoney, 'imagePath'=>$labelSavePath
         $result = $owOrderMG->insertNewTrackNumber($orderId, $applyResult['trackNumber'], $shippingInfo['shippingCode'], $_SESSION['sysUserId'], 0);
         //更新跟踪号信息
         $result2 = $owOrderMG->changeOrderStatus(911, 910, $orderId);
     }
     echo json_encode($returnData);
     return FALSE;
 }
Example #7
0
 public static function getExpressOrderInfo($sellerAccount, $recordnumber, $field, $condition = '')
 {
     self::initDB();
     $sql = "SELECT {$field}\n\t\t\t\t\t\tFROM om_unshipped_order AS a\n\t\t\t\t\t\tLEFT JOIN om_unshipped_order_userInfo AS b ON a.id = b.omOrderId\n\t\t\t\t\t\tLEFT JOIN om_account AS c ON a.accountId = c.id\n\t\t\t\t\t\tWHERE a.recordNumber = '{$recordnumber}' AND c.account='{$sellerAccount}' " . $condition;
     //echo $sql;
     $query = self::$dbConn->query($sql);
     if ($query) {
         $ret = self::$dbConn->fetch_array_all($query);
         return $ret;
         //成功, 返回列表数据
     } else {
         self::$errCode = "003";
         self::$errMsg = "error";
         return false;
     }
 }