本文整理汇总了PHP中return_order_bonus函数的典型用法代码示例。如果您正苦于以下问题:PHP return_order_bonus函数的具体用法?PHP return_order_bonus怎么用?PHP return_order_bonus使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了return_order_bonus函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: cancel_delivery
function cancel_delivery($order_id, $delivery_id)
{
global $db, $ecs;
/* 取得参数 */
$delivery = '';
/* 根据发货单id查询发货单信息 */
if (!empty($delivery_id)) {
$delivery_order = delivery_order_info($delivery_id);
} else {
sys_msg('订单号不能为空!', 1);
}
/* 查询订单信息 */
$order = order_info($order_id);
/* 取消当前发货单物流单号 */
$_delivery['invoice_no'] = '';
$_delivery['status'] = 2;
$query = $db->autoExecute($ecs->table('delivery_order'), $_delivery, 'UPDATE', "delivery_id = {$delivery_id}", 'SILENT');
if (!$query) {
/* 操作失败 */
$links[] = array('text' => $GLOBALS['_LANG']['delivery_sn'] . $GLOBALS['_LANG']['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg($GLOBALS['_LANG']['act_false'], 1, $links);
exit;
}
/* 修改定单发货单号 */
$invoice_no_order = explode('<br>', $order['invoice_no']);
$invoice_no_delivery = explode('<br>', $delivery_order['invoice_no']);
foreach ($invoice_no_order as $key => $value) {
$delivery_key = array_search($value, $invoice_no_delivery);
if ($delivery_key !== false) {
unset($invoice_no_order[$key], $invoice_no_delivery[$delivery_key]);
if (count($invoice_no_delivery) == 0) {
break;
}
}
}
$_order['invoice_no'] = implode('<br>', $invoice_no_order);
/* 更新配送状态 */
$order_finish = get_all_delivery_finish($order_id);
$shipping_status = $order_finish == -1 ? SS_SHIPPED_PART : SS_SHIPPED_ING;
$arr['shipping_status'] = $shipping_status;
if ($shipping_status == SS_SHIPPED_ING) {
$arr['shipping_time'] = '';
// 发货时间
}
$arr['invoice_no'] = $_order['invoice_no'];
update_order($order_id, $arr);
/* 发货单取消发货记录log */
order_action($order['order_sn'], $order['order_status'], $shipping_status, $order['pay_status'], $action_note, null, 1);
/* 如果使用库存,则增加库存 */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP) {
// 检查此单发货商品数量
$virtual_goods = array();
$delivery_stock_sql = "SELECT DG.goods_id, DG.product_id, DG.is_real, SUM(DG.send_number) AS sums\r\n FROM " . $GLOBALS['ecs']->table('delivery_goods') . " AS DG\r\n WHERE DG.delivery_id = '{$delivery_id}'\r\n GROUP BY DG.goods_id ";
$delivery_stock_result = $GLOBALS['db']->getAll($delivery_stock_sql);
foreach ($delivery_stock_result as $key => $value) {
/* 虚拟商品 */
if ($value['is_real'] == 0) {
continue;
}
//(货品)
if (!empty($value['product_id'])) {
$minus_stock_sql = "UPDATE " . $GLOBALS['ecs']->table('products') . "\r\n SET product_number = product_number + " . $value['sums'] . "\r\n WHERE product_id = " . $value['product_id'];
$GLOBALS['db']->query($minus_stock_sql, 'SILENT');
}
$minus_stock_sql = "UPDATE " . $GLOBALS['ecs']->table('goods') . "\r\n SET goods_number = goods_number + " . $value['sums'] . "\r\n WHERE goods_id = " . $value['goods_id'];
$GLOBALS['db']->query($minus_stock_sql, 'SILENT');
}
}
/* 发货单全退回时,退回其它 */
if ($order['order_status'] == SS_SHIPPED_ING) {
/* 如果订单用户不为空,计算积分,并退回 */
if ($order['user_id'] > 0) {
/* 取得用户信息 */
$user = user_info($order['user_id']);
/* 计算并退回积分 */
$integral = integral_to_give($order);
log_account_change($order['user_id'], 0, 0, -1 * intval($integral['rank_points']), -1 * intval($integral['custom_points']), sprintf($GLOBALS['_LANG']['return_order_gift_integral'], $order['order_sn']));
/* todo 计算并退回红包 */
return_order_bonus($order_id);
}
}
/* 清除缓存 */
clear_cache_files();
/* 操作成功 */
$links[] = array('text' => $GLOBALS['_LANG']['delivery_sn'] . $GLOBALS['_LANG']['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg($GLOBALS['_LANG']['act_ok'], 0, $links);
}
示例2: order_action
/* 记录log */
order_action($order['order_sn'], OS_RETURNED, SS_UNSHIPPED, PS_UNPAYED, $action_note);
/* 如果订单用户不为空,计算积分,并退回 */
if ($order['user_id'] > 0) {
/* 取得用户信息 */
$user = user_info($order['user_id']);
$sql = "SELECT goods_number, send_number FROM" . $GLOBALS['ecs']->table('order_goods') . "\n WHERE order_id = '" . $order['order_id'] . "'";
$goods_num = $db->query($sql);
$goods_num = $db->fetchRow($goods_num);
if ($goods_num['goods_number'] == $goods_num['send_number']) {
/* 计算并退回积分 */
$integral = integral_to_give($order);
log_account_change($order['user_id'], 0, 0, -1 * intval($integral['rank_points']), -1 * intval($integral['custom_points']), sprintf($_LANG['return_order_gift_integral'], $order['order_sn']));
}
/* todo 计算并退回红包 */
return_order_bonus($order_id);
}
/* 如果使用库存,则增加库存(不论何时减库存都需要) */
if ($_CFG['use_storage'] == '1') {
if ($_CFG['stock_dec_time'] == SDT_SHIP) {
change_order_goods_storage($order['order_id'], false, SDT_SHIP);
} elseif ($_CFG['stock_dec_time'] == SDT_PLACE) {
change_order_goods_storage($order['order_id'], false, SDT_PLACE);
}
}
/* 退货用户余额、积分、红包 */
return_user_surplus_integral_bonus($order);
/* 获取当前操作员 */
$delivery['action_user'] = $_SESSION['admin_name'];
/* 添加退货记录 */
$delivery_list = array();
示例3: cancel_delivery
function cancel_delivery($order_id, $delivery_id)
{
global $db, $ecs, $_CFG;
/* 取得参数 */
$delivery = '';
/* 根据发货单id查询发货单信息 */
if (!empty($delivery_id)) {
$delivery_order = delivery_order_info($delivery_id);
} else {
sys_msg('订单号不能为空!', 1);
}
/* 查询订单信息 */
$order = order_info($order_id);
/* 取消当前发货单物流单号 */
$_delivery['invoice_no'] = '';
$_delivery['status'] = 2;
$query = $db->autoExecute($ecs->table('delivery_order'), $_delivery, 'UPDATE', "delivery_id = {$delivery_id}", 'SILENT');
if (!$query) {
/* 操作失败 */
$links[] = array('text' => $GLOBALS['_LANG']['delivery_sn'] . $GLOBALS['_LANG']['detail'], 'href' => 'order.php?act=delivery_info&delivery_id=' . $delivery_id);
sys_msg($GLOBALS['_LANG']['act_false'], 1, $links);
exit;
}
/* 修改定单发货单号 */
$invoice_no_order = explode('<br>', $order['invoice_no']);
$invoice_no_delivery = explode('<br>', $delivery_order['invoice_no']);
foreach ($invoice_no_order as $key => $value) {
$delivery_key = array_search($value, $invoice_no_delivery);
if ($delivery_key !== false) {
unset($invoice_no_order[$key], $invoice_no_delivery[$delivery_key]);
if (count($invoice_no_delivery) == 0) {
break;
}
}
}
$_order['invoice_no'] = implode('<br>', $invoice_no_order);
/* 更新配送状态 */
$order_finish = get_all_delivery_finish($order_id);
$shipping_status = $order_finish == -1 ? SS_SHIPPED_PART : SS_SHIPPED_ING;
$arr['shipping_status'] = $shipping_status;
if ($shipping_status == SS_SHIPPED_ING) {
$arr['shipping_time'] = '';
// 发货时间
}
$arr['invoice_no'] = $_order['invoice_no'];
update_order($order_id, $arr);
/* 发货单取消发货记录log */
order_action($order['order_sn'], $order['order_status'], $shipping_status, $order['pay_status'], $action_note, null, 1);
/* 如果使用库存,则增加库存 */
/* 代码增加_start By morestock_morecity */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_SHIP) {
$delivery_stock_sql = "SELECT * FROM " . $GLOBALS['ecs']->table('delivery_goods') . " WHERE delivery_id = '{$delivery_id}' ";
$delivery_stock_result = $GLOBALS['db']->getAll($delivery_stock_sql);
$store_error = '';
//$goods_attr_id = get_goods_attr_id($value['goods_id'], $value['goods_attr']);
$store_id_zhyh = get_storeid_by_ssq($order['province'], $order['city'], $order['district'], $order['xiangcun'], $order['supplier_id']);
if (!$store_id_zhyh) {
$store_error = '该发货单没有对应仓库!';
}
if ($store_error) {
sys_msg($store_error);
} else {
foreach ($delivery_stock_result as $key => $value) {
$goods_attr_id = get_goods_attr_id($value['goods_id'], $value['goods_attr']);
$store_row = get_storeid_youhuo($order['province'], $order['city'], $order['district'], $order['xiangcun'], $value['goods_id'], $goods_attr_id, $order['supplier_id'], $order_id);
$add_time = gmtime();
$add_date = local_date('Ymd');
$sql = "select max(today_sn) from " . $ecs->table('store_inout_list') . " where inout_mode=2 and add_date='{$add_date}' ";
$inout_count = $db->getOne($sql);
$inout_sn = $inout_count ? intval($inout_count + 1) : 1;
$today_sn = $inout_sn;
$inout_sn = str_pad($inout_sn, 4, "0", STR_PAD_LEFT);
$inout_sn = 'rk' . $add_date . $inout_sn;
$stock_type_id = 0;
if ($order['supplier_id'] > 0) {
$stock_type_id = $db->getOne('select type from ' . $ecs->table('store_type') . " where supplier_id=" . $order['supplier_id']);
}
$sql = "insert into " . $ecs->table('store_inout_list') . "(inout_sn, inout_status, store_id, adminer_id, inout_type, inout_mode, order_sn, " . "takegoods_man, today_sn, add_date, add_time, supplier_id, store_type_id) " . "values('{$inout_sn}', '3', '{$store_row['store_id']}', '{$_SESSION['supplier_user_id']}', '5', '2', '{$order['order_sn']}', " . "'{$_SESSION['supplier_name']}', '{$today_sn}' , '{$add_date}', '{$add_time}','{$order['supplier_id']}', '{$stock_type_id}' ) ";
$db->query($sql);
$inout_rec_id = $db->insert_id();
$sql = "insert into " . $ecs->table('store_inout_goods') . "(inout_rec_id, goods_id, goods_sn, attr_value, inout_mode, number_yingshou, number_shishou, supplier_id, store_type_id) " . "values('{$inout_rec_id}', '{$value['goods_id']}', '{$value['goods_sn']}', '{$goods_attr_id}', '2', '{$value['send_number']}', '{$value['send_number']}','{$order['supplier_id']}', '{$stock_type_id}') ";
$db->query($sql);
$upre = update_stock_in($inout_rec_id, $store_row['store_id']);
//更新库存表
}
}
}
/* 代码增加_end By morestock_morecity */
/* 发货单全退回时,退回其它 */
if ($order['order_status'] == SS_SHIPPED_ING) {
/* 如果订单用户不为空,计算积分,并退回 */
if ($order['user_id'] > 0) {
/* 取得用户信息 */
$user = user_info($order['user_id']);
/* 计算并退回积分 */
$integral = integral_to_give($order);
log_account_change($order['user_id'], 0, 0, -1 * intval($integral['rank_points']), -1 * intval($integral['custom_points']), sprintf($GLOBALS['_LANG']['return_order_gift_integral'], $order['order_sn']));
/* todo 计算并退回红包 */
return_order_bonus($order_id);
}
//.........这里部分代码省略.........