Exemple #1
0
 /**
  * 列出结算对应的订单明细
  *
  * @param $f3
  */
 public function ListOrderGoods($f3)
 {
     global $smarty;
     // 参数验证
     $validator = new Validator($f3->get('GET'));
     $settle_id = $validator->required('结算ID非法')->digits('结算ID非法')->min(1, true, '结算ID非法')->validate('settle_id');
     $pageNo = $validator->digits()->min(0)->validate('pageNo');
     $pageSize = $validator->digits()->min(0)->validate('pageSize');
     // 设置缺省值
     $pageNo = isset($pageNo) && $pageNo > 0 ? $pageNo : 0;
     $pageSize = isset($pageSize) && $pageSize > 0 ? $pageSize : 10;
     if (!$this->validate($validator)) {
         goto out_fail;
     }
     // 做权限检查
     $authSupplierUser = AuthHelper::getAuthUser();
     $orderSettleService = new OrderSettleService();
     $orderSettle = $orderSettleService->loadOrderSettleBySettleId($settle_id);
     if ($orderSettle->isEmpty() || $authSupplierUser['suppliers_id'] !== $orderSettle['suppliers_id']) {
         $this->addFlashMessage('结算ID非法');
         goto out_fail;
     }
     $orderGoodsService = new OrderGoodsService();
     $totalCount = $orderGoodsService->countOrderGoodsArray(array(array('settle_id = ?', $settle_id)));
     if ($totalCount <= 0) {
         // 没订单,可以直接退出了
         goto out;
     }
     // 页数超过最大值,返回结算列表
     if ($pageNo * $pageSize >= $totalCount) {
         goto out_fail;
     }
     $orderGoodsArray = $orderGoodsService->fetchOrderGoodsArray(array(array('settle_id = ?', $settle_id)), $pageNo * $pageSize, $pageSize);
     // 转换状态显示
     foreach ($orderGoodsArray as &$orderGoodsItem) {
         $orderGoodsItem['order_goods_status_desc'] = OrderGoodsService::$orderGoodsStatusDesc[$orderGoodsItem['order_goods_status']];
     }
     unset($orderGoodsItem);
     // 给模板赋值
     $smarty->assign('totalCount', $totalCount);
     $smarty->assign('pageNo', $pageNo);
     $smarty->assign('pageSize', $pageSize);
     $smarty->assign('orderGoodsArray', $orderGoodsArray);
     out:
     $smarty->display('order_settle_listordergoods.tpl');
     return;
     out_fail:
     // 失败从这里退出
     RouteHelper::reRoute($this, '/Order/Settle/ListSettle');
 }