示例#1
0
 public static function ucenter_order()
 {
     $siteConfig = new Config('site_config');
     $order_cancel_time = $siteConfig->order_cancel_time !== "" ? intval($siteConfig->order_cancel_time) : 7;
     $order_finish_time = $siteConfig->order_finish_time !== "" ? intval($siteConfig->order_finish_time) : 20;
     $orderModel = new IModel('order');
     $orderCancelData = $order_cancel_time >= 0 ? $orderModel->query(" if_del = 0 and pay_type != 0 and status in(1) and datediff(NOW(),create_time) >= {$order_cancel_time} ", "id,order_no,4 as type_data") : array();
     $orderCreateData = $order_finish_time >= 0 ? $orderModel->query(" if_del = 0 and distribution_status = 1 and status in(1,2) and datediff(NOW(),send_time) >= {$order_finish_time} ", "id,order_no,5 as type_data") : array();
     $resultData = array_merge($orderCreateData, $orderCancelData);
     if ($resultData) {
         foreach ($resultData as $key => $val) {
             $type = $val['type_data'];
             $order_id = $val['id'];
             $order_no = $val['order_no'];
             //oerder表的对象
             $tb_order = new IModel('order');
             $tb_order->setData(array('status' => $type, 'completion_time' => ITime::getDateTime()));
             $tb_order->update('id=' . $order_id);
             //生成订单日志
             $tb_order_log = new IModel('order_log');
             //订单自动完成
             if ($type == '5') {
                 $action = '完成';
                 $note = '订单【' . $order_no . '】完成成功';
                 //完成订单并且进行支付
                 Order_Class::updateOrderStatus($order_no);
                 //增加用户评论商品机会
                 Order_Class::addGoodsCommentChange($order_id);
                 $logObj = new log('db');
                 $logObj->write('operation', array("系统自动", "订单更新为完成", '订单号:' . $order_no));
             } else {
                 $action = '作废';
                 $note = '订单【' . $order_no . '】作废成功';
                 //订单重置取消
                 Order_class::resetOrderProp($order_id);
                 $logObj = new log('db');
                 $logObj->write('operation', array("系统自动", "订单更新为作废", '订单号:' . $order_no));
             }
             $tb_order_log->setData(array('order_id' => $order_id, 'user' => "系统自动", 'action' => $action, 'result' => '成功', 'note' => $note, 'addtime' => ITime::getDateTime()));
             $tb_order_log->add();
         }
     }
 }
示例#2
0
 public function order_report()
 {
     $seller_id = $this->seller['seller_id'];
     $search = IFilter::act(IReq::get('search'));
     /* //必须为已支付状态
        $search['pay_status='] = 1;
        //必须为未发货状态
        $search['distribution_status='] = 0; */
     $condition = Util::search($search);
     $where = "go.seller_id = " . $seller_id;
     $where .= $condition ? " and " . $condition : "";
     //拼接sql
     $orderHandle = new IQuery('order_goods as og');
     $orderHandle->order = "o.id desc";
     $orderHandle->fields = "o.*,p.name as payment_name";
     $orderHandle->join = "left join goods as go on go.id=og.goods_id left join order as o on o.id=og.order_id left join payment as p on p.id = o.pay_type";
     $orderHandle->where = $where;
     $orderList = $orderHandle->find();
     //pr($orderList);
     //对订单进行重构
     if (empty($orderList)) {
         IError::show(403, "数据为空");
         exit;
     } else {
         $addrObj = new IModel("address");
         foreach ($orderList as $k => $v) {
             if ($v['address_id']) {
                 $order_addr = explode(',', $v['address_id']);
                 $count = count($order_addr);
                 for ($i = 0; $i < $count; $i++) {
                     $new = $v;
                     $new['old_book_count'] = $count;
                     $new['one_book_price'] = round($new['order_amount'] / $count, 2);
                     $addr_detil = $this->getAddr($addrObj, $order_addr[$i]);
                     if ($addr_detil) {
                         $new['accept_name'] = $addr_detil['accept_name'];
                         $new['province_val'] = $addr_detil['province_val'];
                         $new['city_val'] = $addr_detil['city_val'];
                         $new['area_val'] = $addr_detil['area_val'];
                         $new['address'] = $addr_detil['address'];
                         $new['school'] = $addr_detil['school'];
                         $new['grade'] = $addr_detil['grade'];
                         $new['class'] = $addr_detil['class'];
                         $new['mobile'] = $addr_detil['mobile'];
                         $new['telphone'] = $addr_detil['telphone'];
                     } else {
                         $new['province_val'] = '';
                         $new['city_val'] = '';
                         $new['area_val'] = '';
                         $new['school'] = '';
                         $new['grade'] = '';
                         $new['class'] = '';
                     }
                     $new_order[] = $new;
                 }
             }
         }
     }
     //pr($new_order);
     //构建 Excel table
     $strTable = '<table width="500" border="1">';
     $strTable .= '<tr>';
     $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">订单编号</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="100">下单日期</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">收货人</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">省</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">市</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">区</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">学校</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">年级</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">班级</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">电话</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">订单金额</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">原有本数</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">单本金额</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付方式</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付时间</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">发货状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">商品信息</td>';
     $strTable .= '</tr>';
     foreach ($new_order as $k => $val) {
         $strTable .= '<tr>';
         $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['order_no'] . '</td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['create_time'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['accept_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['province_val'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['city_val'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['area_val'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['school'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['grade'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['class'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">&nbsp;' . $val['telphone'] . '&nbsp;' . $val['mobile'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['order_amount'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['old_book_count'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['one_book_price'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['payment_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderPayStatusText($val) . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['pay_time'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderDistributionStatusText($val) . ' </td>';
         $orderGoods = Order_class::getOrderGoods($val['id']);
         $strGoods = "";
         foreach ($orderGoods as $good) {
             $strGoods .= "商品编号:" . $good->goodsno . " 商品名称:" . $good->name;
             if ($good->value != '') {
                 $strGoods .= " 规格:" . $good->value;
             }
             $strGoods .= "<br />";
         }
         unset($orderGoods);
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $strGoods . ' </td>';
         $strTable .= '</tr>';
     }
     $strTable .= '</table>';
     //输出成EXcel格式文件并下载
     $reportObj = new report();
     $reportObj->setFileName('order');
     $reportObj->toDownload($strTable);
     exit;
 }
示例#3
0
 public function order_report()
 {
     //搜索条件
     $search = IFilter::act(IReq::get('search'), 'strict');
     //条件筛选处理
     list($join, $where) = order_class::getSearchCondition($search);
     //拼接sql
     $orderHandle = new IQuery('order as o');
     $orderHandle->order = "o.id desc";
     $orderHandle->fields = "o.*,d.name as distribute_name,u.username,p.name as payment_name";
     $orderHandle->join = $join;
     $orderHandle->where = $where;
     $orderList = $orderHandle->find();
     $strTable = '<table width="500" border="1">';
     $strTable .= '<tr>';
     $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">订单编号</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">商家id</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">区</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="100">日期</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">收货人</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">电话</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">订单金额</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">实际支付</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付方式</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">发货状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">商品信息</td>';
     $strTable .= '</tr>';
     foreach ($orderList as $k => $val) {
         $strTable .= '<tr>';
         $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['order_no'] . '</td>';
         $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['seller_id'] . '</td>';
         $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['area'] . '</td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['create_time'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['accept_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">&nbsp;' . $val['telphone'] . '&nbsp;' . $val['mobile'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['payable_amount'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['real_amount'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['payment_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderPayStatusText($val) . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderDistributionStatusText($val) . ' </td>';
         $orderGoods = Order_class::getOrderGoods($val['id']);
         $strGoods = "";
         foreach ($orderGoods as $good) {
             $strGoods .= "商品编号:" . $good->goodsno . " 商品名称:" . $good->name;
             if ($good->value != '') {
                 $strGoods .= " 规格:" . $good->value;
             }
             $strGoods .= "<br />";
         }
         unset($orderGoods);
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $strGoods . ' </td>';
         $strTable .= '</tr>';
     }
     $strTable .= '</table>';
     unset($orderList);
     $reportObj = new report();
     $reportObj->setFileName('order');
     $reportObj->toDownload($strTable);
     exit;
 }
示例#4
0
    ?>
</a>
			<?php 
}
?>
			</span>
		</div>

		<div id="admin_left">
			<ul class="submenu"></ul>
			<div id="copyright"></div>
		</div>

		<div id="admin_right">
			<?php 
$orderStatus = Order_class::getOrderStatus(array('status' => $status, 'pay_type' => $pay_type, 'distribution_status' => $distribution_status));
?>

<div class="headbar clearfix">
	<div class="position">订单<span>></span><span>订单管理</span><span>></span><span>订单查看</span></div>
	<ul class="tab" name="menu1">
		<li id="li_1"><a href="javascript:selectTab('1');" hidefocus="true">基本信息</a></li>
		<li id="li_2"><a href="javascript:selectTab('2');" hidefocus="true">收退款记录</a></li>
		<li id="li_3"><a href="javascript:selectTab('3');" hidefocus="true">发货记录</a></li>
		<li id="li_4"><a href="javascript:selectTab('4');" hidefocus="true">优惠方案</a></li>
		<li id="li_5"><a href="javascript:selectTab('5');" hidefocus="true">订单备注</a></li>
		<li id="li_6"><a href="javascript:selectTab('6');" hidefocus="true">订单日志</a></li>
		<li id="li_7"><a href="javascript:selectTab('7');" hidefocus="true">订单附言</a></li>
	</ul>
</div>
示例#5
0
    echo isset($item['goods_nums']) ? $item['goods_nums'] : "";
    ?>
</td>
					<td>
						<?php 
    if ($item['is_send'] == 0) {
        ?>
						<input type="checkbox" name="sendgoods[]" value="<?php 
        echo isset($item['id']) ? $item['id'] : "";
        ?>
" />
						<?php 
    } else {
        ?>
						<?php 
        echo Order_class::goodsSendStatus($item['is_send']);
        ?>
						<?php 
    }
    ?>
					</td>
				</tr>
				<?php 
}
?>
			</tbody>
		</table>

		<table width="95%" class="border_table" style="margin:10px auto">
			<col width="100px" />
			<col />
示例#6
0
 /**
  * @brief 检查活动的合法性
  * @return string(有错误) or true(处理正确)
  */
 public function checkValid()
 {
     if (!$this->id) {
         return "商品ID不存在";
     }
     $goodsData = $this->type == 'product' ? Api::run('getProductInfo', array('#id#', $this->id)) : Api::run('getGoodsInfo', array('#id#', $this->id));
     //库存判断
     if (!$goodsData || $this->buy_num <= 0 || $this->buy_num > $goodsData['store_nums']) {
         return "购买的数量不正确或大于商品的库存量";
     }
     $this->originalGoodsInfo = $goodsData;
     $this->activePrice = $goodsData['sell_price'];
     $goods_id = $goodsData['goods_id'];
     //具体促销活动的合法性判断
     switch ($this->promo) {
         //团购
         case "groupon":
             if (!$this->user_id) {
                 return "参加团购活动请您先登录";
             }
             $regimentRow = Api::run('getRegimentRowById', array("#id#", $this->active_id));
             if ($regimentRow) {
                 if ($regimentRow['goods_id'] != $goodsData['goods_id']) {
                     return "该商品没有参与团购活动";
                 }
                 if ($regimentRow['store_nums'] <= $regimentRow['sum_count']) {
                     return "团购商品已经销售一空";
                 }
                 //检查次团购订单
                 $orderDB = new IModel('order as o,order_goods as og');
                 $orderData = $orderDB->query('o.user_id = ' . $this->user_id . ' and o.type = 1 and active_id = ' . $this->active_id);
                 $hasBugNum = 0;
                 foreach ($orderData as $key => $val) {
                     $orderStatus = Order_class::getOrderStatus($val);
                     if (in_array($orderStatus, array(2, 1, 11))) {
                         return "您参与的该团购订单还没有完成";
                     }
                     if (in_array($orderStatus, array(3, 4, 6))) {
                         $hasBugNum += $val['goods_nums'];
                     }
                 }
                 //批量购买(薄利多销)
                 if ($regimentRow['limit_min_count'] > 0) {
                     if ($this->buy_num < $regimentRow['limit_min_count']) {
                         return "购买数量必须超过 " . $regimentRow['limit_min_count'] . " 件才能下单";
                     }
                 }
                 //限制购买(限购,要多人参与)
                 if ($regimentRow['limit_max_count'] > 0) {
                     if ($this->buy_num > $regimentRow['limit_max_count']) {
                         return "购买数量不能超过 " . $regimentRow['limit_min_count'] . " 件";
                     }
                     if ($hasBugNum + $this->buy_num > $regimentRow['limit_max_count']) {
                         return "此团购为限购活动,您累计购买数量不能超过" . $regimentRow['limit_max_count'];
                     }
                 }
                 if ($this->buy_num > $regimentRow['store_nums']) {
                     return "购买数量超过了团购剩余量";
                 }
                 $this->activePrice = $regimentRow['regiment_price'];
             } else {
                 return "当前时间段内不存在此团购活动";
             }
             return true;
             break;
             //抢购
         //抢购
         case "time":
             $promotionRow = Api::run('getPromotionRowById', array("#id#", $this->active_id));
             if ($promotionRow) {
                 if ($promotionRow['condition'] != $goodsData['goods_id']) {
                     return "该商品没有参与抢购活动";
                 }
                 $memberObj = new IModel('member');
                 $memberRow = $memberObj->getObj('user_id = ' . $this->user_id, 'group_id');
                 if ($promotionRow['user_group'] == 'all' || isset($memberRow['group_id']) && stripos(',' . $promotionRow['user_group'] . ',', $memberRow['group_id']) !== false) {
                     $this->activePrice = $promotionRow['award_value'];
                 } else {
                     return "此活动仅限指定的用户组";
                 }
             } else {
                 return "不存在此限时抢购活动";
             }
             return true;
             break;
     }
     return "未知促销活动";
 }
示例#7
0
 /**
  * @brief 订单退款操作
  * @param int $refundId 退款单ID
  * @param int $authorId 操作人ID
  * @param string $type admin:管理员;seller:商家
  * @param int $isNotBalance 是否充值到余额, 0:退款余额; 1:不退款到余额
  * @return
  */
 public static function refund($refundId, $authorId, $type = 'admin', $isNotBalance = 0)
 {
     $orderGoodsDB = new IModel('order_goods');
     $refundDB = new IModel('refundment_doc');
     //获取goods_id和product_id用于给用户减积分,经验
     $refundsRow = $refundDB->getObj('id = ' . $refundId);
     $order_id = $refundsRow['order_id'];
     $order_no = $refundsRow['order_no'];
     $user_id = $refundsRow['user_id'];
     $orderGoodsRow = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and goods_id = ' . $refundsRow['goods_id'] . ' and product_id = ' . $refundsRow['product_id'] . ' and is_send != 2');
     if (!$orderGoodsRow) {
         return false;
     }
     $order_goods_id = $orderGoodsRow['id'];
     //如果管理员(商家)自定义了退款金额。否则就使用默认的付款商品金额
     $amount = $refundsRow['amount'] > 0 ? $refundsRow['amount'] : $orderGoodsRow['goods_nums'] * $orderGoodsRow['real_price'];
     //库存增加
     self::updateStore($order_goods_id, 'add');
     //更新退款状态
     $orderGoodsDB->setData(array('is_send' => 2));
     $orderGoodsDB->update('id = ' . $order_goods_id);
     //更新order表状态
     $isSendData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and is_send != 2');
     $orderStatus = 6;
     //全部退款
     if ($isSendData) {
         $orderStatus = 7;
         //部分退款
     }
     $tb_order = new IModel('order');
     $tb_order->setData(array('status' => $orderStatus));
     $tb_order->update('id=' . $order_id);
     /**
      * 进行用户的余额增加操作,积分,经验的减少操作,
      * 1,当全部退款时候,减少订单中记录的积分和经验;且如果没有发货的商品直接退回订单中的运费,报价,税金等
      * 2,当部分退款时候,查询商品表中积分和经验
      */
     if ($orderStatus == 6) {
         Order_class::resetOrderProp($order_id);
         $orderRow = $tb_order->getObj('id = ' . $order_id);
         //是否返还运费,报价,税金
         $isDeliveryData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and delivery_id > 0');
         if (!$isDeliveryData) {
             $amount += $orderRow['real_freight'] + $orderRow['insured'] + $orderRow['taxes'];
         }
     }
     //退款积分,经验
     $goodsDB = new IModel('goods');
     $goodsRow = $goodsDB->getObj('id = ' . $orderGoodsRow['goods_id']);
     $orderRow = array('exp' => $goodsRow['exp'] * $orderGoodsRow['goods_nums'], 'point' => $goodsRow['point'] * $orderGoodsRow['goods_nums'], 'order_no' => $order_no);
     //更新退款表
     $updateData = array('amount' => $amount, 'pay_status' => 2, 'dispose_time' => ITime::getDateTime());
     $refundDB->setData($updateData);
     $refundDB->update('id = ' . $refundId);
     //更新用户的信息
     $obj = new IModel('member');
     $memberObj = $obj->getObj('user_id = ' . $user_id, 'exp,point');
     $exp = $memberObj['exp'] - $orderRow['exp'];
     $obj->setData(array('exp' => $exp <= 0 ? 0 : $exp));
     $obj->update('user_id = ' . $user_id);
     //积分记录日志
     $pointConfig = array('user_id' => $user_id, 'point' => '-' . $orderRow['point'], 'log' => '退款订单号:' . $orderRow['order_no'] . '中的商品,减掉积分 -' . $orderRow['point']);
     $pointObj = new Point();
     $pointObj->update($pointConfig);
     //用户余额进行的操作记入account_log表
     $log = new AccountLog();
     $config = array('user_id' => $user_id, 'event' => 'drawback', 'num' => $amount, 'order_no' => $order_no);
     if ($type == 'admin') {
         $config['admin_id'] = $authorId;
         $adminObj = new IModel('admin');
         $adminRow = $adminObj->getObj('id = ' . $authorId);
         $authorName = $adminRow['admin_name'];
     } else {
         if ($type == 'seller') {
             $config['seller_id'] = $authorId;
             $sellerObj = new IModel('seller');
             $sellerRow = $sellerObj->getObj('id = ' . $authorId);
             $authorName = $sellerRow['seller_name'];
         }
     }
     //生成订单日志
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $authorName, 'action' => '退款', 'result' => '成功', 'note' => '订单【' . $order_no . '】退款,退款金额:¥' . $amount, 'addtime' => ITime::getDateTime()));
     $tb_order_log->add();
     return $isNotBalance == 0 ? $log->write($config) : true;
 }
示例#8
0
 /**
  * @brief 订单退款操作
  * @param int $refundId 退款单ID
  * @param int $authorId 操作人ID
  * @param string $type admin:管理员;seller:商家
  * @return
  */
 public static function refund($refundId, $authorId, $type = 'admin')
 {
     $orderGoodsDB = new IModel('order_goods');
     $refundDB = new IModel('refundment_doc');
     //更新退款表
     $updateData = array('pay_status' => 2, 'dispose_time' => ITime::getDateTime());
     $refundDB->setData($updateData);
     $refundDB->update('id = ' . $refundId);
     //获取goods_id和product_id用于给用户减积分,经验
     $refundsRow = $refundDB->getObj('id = ' . $refundId);
     $order_id = $refundsRow['order_id'];
     $order_no = $refundsRow['order_no'];
     $amount = $refundsRow['amount'];
     $user_id = $refundsRow['user_id'];
     $orderGoodsRow = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and goods_id = ' . $refundsRow['goods_id'] . ' and product_id = ' . $refundsRow['product_id']);
     $order_goods_id = $orderGoodsRow['id'];
     //更新退款状态
     $orderGoodsDB->setData(array('is_send' => 2));
     $orderGoodsDB->update('id = ' . $order_goods_id);
     //更新order表状态
     $isSendData = $orderGoodsDB->getObj('order_id = ' . $order_id . ' and is_send != 2');
     $orderStatus = 6;
     //全部退款
     if ($isSendData) {
         $orderStatus = 7;
         //部分退款
     }
     $tb_order = new IModel('order');
     $tb_order->setData(array('status' => $orderStatus));
     $tb_order->update('id=' . $order_id);
     if ($orderStatus == 6) {
         Order_class::resetOrderProp($order_id);
     }
     //生成订单日志
     $authorName = $type == 'admin' ? ISafe::get('admin_name') : ISafe::get('seller_name');
     $tb_order_log = new IModel('order_log');
     $tb_order_log->setData(array('order_id' => $order_id, 'user' => $authorName, 'action' => '退款', 'result' => '成功', 'note' => '订单【' . $order_no . '】退款,退款金额:¥' . $amount, 'addtime' => ITime::getDateTime()));
     $tb_order_log->add();
     /**
      * 进行用户的余额增加操作,积分,经验的减少操作,
      * 1,当全部退款时候,减少订单中记录的积分和经验;
      * 2,当部分退款时候,查询商品表中积分和经验
      */
     if ($orderStatus == 6) {
         $orderRow = $tb_order->getObj('id = ' . $order_id);
     } else {
         $goodsDB = new IModel('goods');
         $goodsRow = $goodsDB->getObj('id = ' . $orderGoodsRow['goods_id']);
         $orderRow = array('exp' => $goodsRow['exp'], 'point' => $goodsRow['point'], 'order_no' => $order_no);
     }
     $obj = new IModel('member');
     $memberObj = $obj->getObj('user_id = ' . $user_id, 'balance,exp,point');
     $exp = $memberObj['exp'] - $orderRow['exp'];
     $balance = $memberObj['balance'] + $amount;
     $obj->setData(array('balance' => $balance, 'exp' => $exp <= 0 ? 0 : $exp));
     $isSuccess = $obj->update('user_id = ' . $user_id);
     //积分记录日志
     $pointConfig = array('user_id' => $user_id, 'point' => '-' . $orderRow['point'], 'log' => '退款订单号:' . $orderRow['order_no'] . '中的商品,减掉积分 -' . $orderRow['point']);
     $pointObj = new Point();
     $pointObj->update($pointConfig);
     if ($isSuccess) {
         //用户余额进行的操作记入account_log表
         $log = new AccountLog();
         $config = array('user_id' => $user_id, 'event' => 'drawback', 'num' => $amount, 'order_no' => $order_no);
         if ($type == 'admin') {
             $config['admin_id'] = $authorId;
         } else {
             if ($type == 'seller') {
                 $config['seller_id'] = $authorId;
             }
         }
         $re = $log->write($config);
         return true;
     }
     return false;
 }
示例#9
0
    ?>
');">合</span>
					<span class="prt" title="快递单打印" onclick="window.open('<?php 
    echo IUrl::creatUrl("/order/expresswaybill_template/id/" . $item['id'] . "");
    ?>
');">递</span>
				</td>
				<td>
					<a class="order_deliery" data-id="<?php 
    if (Order_class::isGoDelivery($item)) {
        echo IUrl::creatUrl("/seller/order_deliver/id/" . $item['id'] . "");
    } else {
    }
    ?>
" href="<?php 
    if (Order_class::isGoDelivery($item)) {
        echo IUrl::creatUrl("/seller/order_deliver/id/" . $item['id'] . "");
    } else {
        ?>
javascript:alert('此单不满足发货条件');<?php 
    }
    ?>
"><img class="operator" src="<?php 
    echo IUrl::creatUrl("") . "views/" . $this->theme . "/skin/" . $this->skin . "/images/main/icn_jump_back.png";
    ?>
" title="立即发货" alt="立即发货" /></a>
					<a href="<?php 
    echo IUrl::creatUrl("/seller/order_show/id/" . $item['id'] . "");
    ?>
"><img title="订单详情" alt="订单详情" src="<?php 
    echo IUrl::creatUrl("") . "views/" . $this->theme . "/skin/" . $this->skin . "/images/main/icn_settings.png";
示例#10
0
    echo isset($item['create_time']) ? $item['create_time'] : "";
    ?>
"><?php 
    echo isset($item['create_time']) ? $item['create_time'] : "";
    ?>
</td>
					<td>
						<a href="<?php 
    echo IUrl::creatUrl("/order/order_show/id/" . $item['id'] . "");
    ?>
"><img class="operator" src="<?php 
    echo IUrl::creatUrl("") . "views/" . $this->theme . "/skin/" . $this->skin . "/images/admin/icon_check.gif";
    ?>
" title="查看" /></a>
						<?php 
    if (Order_class::getOrderStatus($item) < 3) {
        ?>
						<a href="<?php 
        echo IUrl::creatUrl("/order/order_edit/id/" . $item['id'] . "");
        ?>
"><img class="operator" src="<?php 
        echo IUrl::creatUrl("") . "views/" . $this->theme . "/skin/" . $this->skin . "/images/admin/icon_edit.gif";
        ?>
" title="编辑"/></a>
						<?php 
    }
    ?>
						<a href="javascript:void(0)" onclick="delModel({link:'<?php 
    echo IUrl::creatUrl("/order/order_del/id/" . $item['id'] . "");
    ?>
'})" ><img class="operator" src="<?php 
示例#11
0
 public function order_report()
 {
     $seller_id = $this->seller['seller_id'];
     $condition = Util::search(IFilter::act(IReq::get('search'), 'strict'));
     $where = "go.seller_id = " . $seller_id;
     $where .= $condition ? " and " . $condition : "";
     //拼接sql
     $orderHandle = new IQuery('order_goods as og');
     $orderHandle->order = "o.id desc";
     $orderHandle->fields = "o.*,p.name as payment_name";
     $orderHandle->join = "left join goods as go on go.id=og.goods_id left join order as o on o.id=og.order_id left join payment as p on p.id = o.pay_type";
     $orderHandle->where = $where;
     $orderList = $orderHandle->find();
     //构建 Excel table
     $strTable = '<table width="500" border="1">';
     $strTable .= '<tr>';
     $strTable .= '<td style="text-align:center;font-size:12px;width:120px;">订单编号</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="100">日期</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">收货人</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">电话</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">订单金额</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">实际支付</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付方式</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">支付状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">发货状态</td>';
     $strTable .= '<td style="text-align:center;font-size:12px;" width="*">商品信息</td>';
     $strTable .= '</tr>';
     foreach ($orderList as $k => $val) {
         $strTable .= '<tr>';
         $strTable .= '<td style="text-align:center;font-size:12px;">&nbsp;' . $val['order_no'] . '</td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['create_time'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['accept_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">&nbsp;' . $val['telphone'] . '&nbsp;' . $val['mobile'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['payable_amount'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['real_amount'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $val['payment_name'] . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderPayStatusText($val) . ' </td>';
         $strTable .= '<td style="text-align:left;font-size:12px;">' . Order_Class::getOrderDistributionStatusText($val) . ' </td>';
         $orderGoods = Order_class::getOrderGoods($val['id']);
         $strGoods = "";
         foreach ($orderGoods as $good) {
             $strGoods .= "商品编号:" . $good->goodsno . " 商品名称:" . $good->name;
             if ($good->value != '') {
                 $strGoods .= " 规格:" . $good->value;
             }
             $strGoods .= "<br />";
         }
         unset($orderGoods);
         $strTable .= '<td style="text-align:left;font-size:12px;">' . $strGoods . ' </td>';
         $strTable .= '</tr>';
     }
     $strTable .= '</table>';
     //输出成EXcel格式文件并下载
     $reportObj = new report();
     $reportObj->setFileName('order');
     $reportObj->toDownload($strTable);
     exit;
 }