/** * 判断订单的发货单是否全部发货 * @param int $order_id 订单 id * @return int 1,全部发货;0,未全部发货;-1,部分发货;-2,完全没发货; */ function get_all_delivery_finish($order_id) { $return_res = 0; if (empty($order_id)) { return $return_res; } /* 未全部分单 */ if (!get_order_finish($order_id)) { return $return_res; } else { // 是否全部发货 $sql = "SELECT COUNT(delivery_id)\n FROM " . $GLOBALS['ecs']->table('delivery_order') . "\n WHERE order_id = '{$order_id}'\n AND status = 2 "; $sum = $GLOBALS['db']->getOne($sql); // 全部发货 if (empty($sum)) { $return_res = 1; } else { /* 订单全部发货中时:当前发货单总数 */ $sql = "SELECT COUNT(delivery_id)\n FROM " . $GLOBALS['ecs']->table('delivery_order') . "\n WHERE order_id = '{$order_id}'\n AND status <> 1 "; $_sum = $GLOBALS['db']->getOne($sql); if ($_sum == $sum) { $return_res = -2; // 完全没发货 } else { $return_res = -1; // 部分发货 } } } return $return_res; }
} foreach ($goods_list as $key => $value) { if ($value['extension_code'] == 'package_buy') { unset($goods_list[$key]); } } $_goods['goods_list'] = $goods_list + $_goods['goods_list']; unset($goods_list); /* 更新订单的虚拟卡 商品(虚货) */ $_virtual_goods = isset($virtual_goods['virtual_card']) ? $virtual_goods['virtual_card'] : ''; update_order_virtual_goods($order_id, $_sended, $_virtual_goods); /* 更新订单的非虚拟商品信息 即:商品(实货)(货品)、商品(超值礼包)*/ update_order_goods($order_id, $_sended, $_goods['goods_list']); /* 标记订单为已确认 “发货中” */ /* 更新发货时间 */ $order_finish = get_order_finish($order_id); $shipping_status = SS_SHIPPED_ING; if ($order['order_status'] != OS_CONFIRMED && $order['order_status'] != OS_SPLITED && $order['order_status'] != OS_SPLITING_PART) { $arr['order_status'] = OS_CONFIRMED; $arr['confirm_time'] = GMTIME_UTC; } $arr['order_status'] = $order_finish ? OS_SPLITED : OS_SPLITING_PART; // 全部分单、部分分单 $arr['shipping_status'] = $shipping_status; update_order($order_id, $arr); } /* 记录log */ order_action($order['order_sn'], $arr['order_status'], $shipping_status, $order['pay_status'], $action_note); /* 清除缓存 clear_cache_files(); */