function cancelOrder($id) { $result = array('success' => true, 'info' => '取消成功'); $order = new Erp_Model_Sale_Order(); $orderData = $order->getData(null, $id); // 取消订单:如当前订单状态为被拒绝,则直接取消,否则检查是否存在收货订单项 if ($orderData['state'] == 1) { $order->cancelOrderById($id); } else { $receiveItems = new Erp_Model_Purchse_Receiveitems(); $items = $receiveItems->getReceivedOrderItems($orderData['number']); if (count($items)) { $codeArr = array(); foreach ($items as $item) { array_push($codeArr, $item['code']); } $result['success'] = false; $result['info'] = '取消失败,[' . implode(',', $codeArr) . '] 已交货!'; } else { $order->cancelOrderById($id); } } return $result; }