Exemple #1
0
/**
 * 返回某个订单可执行的操作列表,包括权限判断
 * @param   array   $order      订单信息 order_status, shipping_status, pay_status
 * @param   bool    $is_cod     支付方式是否货到付款
 * @return  array   可执行的操作  confirm, pay, unpay, prepare, ship, unship, receive, cancel, invalid, return, drop
 * 格式 array('confirm' => true, 'pay' => true)
 */
function operable_list($order)
{
    /* 取得订单状态、发货状态、付款状态 */
    $os = $order['order_status'];
    $ss = $order['shipping_status'];
    $ps = $order['pay_status'];
    /* 取得订单操作权限 */
    $actions = $_SESSION['action_list'];
    if ($actions == 'all') {
        $priv_list = array('os' => true, 'ss' => true, 'ps' => true, 'edit' => true);
    } else {
        $actions = ',' . $actions . ',';
        $priv_list = array('os' => strpos($actions, ',order_os_edit,') !== false, 'ss' => strpos($actions, ',order_ss_edit,') !== false, 'ps' => strpos($actions, ',order_ps_edit,') !== false, 'edit' => strpos($actions, ',order_edit,') !== false);
    }
    /* 取得订单支付方式是否货到付款 */
    $payment = payment_info($order['pay_id']);
    $is_cod = $payment['is_cod'] == 1;
    /* 根据状态返回可执行操作 */
    $list = array();
    if (OS_UNCONFIRMED == $os) {
        /* 状态:未确认 => 未付款、未发货 */
        if ($priv_list['os']) {
            $list['confirm'] = true;
            // 确认
            $list['invalid'] = true;
            // 无效
            $list['cancel'] = true;
            // 取消
            if ($is_cod) {
                /* 货到付款 */
                if ($priv_list['ss']) {
                    $list['prepare'] = true;
                    // 配货
                    $list['split'] = true;
                    // 分单
                }
            } else {
                /* 不是货到付款 */
                if ($priv_list['ps']) {
                    $list['pay'] = true;
                    // 付款
                }
            }
        }
    } elseif (OS_CONFIRMED == $os || OS_SPLITED == $os || OS_SPLITING_PART == $os) {
        /* 状态:已确认 */
        if (PS_UNPAYED == $ps) {
            /* 状态:已确认、未付款 */
            if (SS_UNSHIPPED == $ss || SS_PREPARING == $ss) {
                /* 状态:已确认、未付款、未发货(或配货中) */
                if ($priv_list['os']) {
                    $list['cancel'] = true;
                    // 取消
                    $list['invalid'] = true;
                    // 无效
                }
                if ($is_cod) {
                    /* 货到付款 */
                    if ($priv_list['ss']) {
                        if (SS_UNSHIPPED == $ss) {
                            $list['prepare'] = true;
                            // 配货
                        }
                        $list['split'] = true;
                        // 分单
                    }
                } else {
                    /* 不是货到付款 */
                    if ($priv_list['ps']) {
                        $list['pay'] = true;
                        // 付款
                    }
                }
            } elseif (SS_SHIPPED_ING == $ss || SS_SHIPPED_PART == $ss) {
                // 部分分单
                if (OS_SPLITING_PART == $os) {
                    $list['split'] = true;
                    // 分单
                }
                $list['to_delivery'] = true;
                // 去发货
            } else {
                /* 状态:已确认、未付款、已发货或已收货 => 货到付款 */
                if ($priv_list['ps']) {
                    $list['pay'] = true;
                    // 付款
                }
                if ($priv_list['ss']) {
                    if (SS_SHIPPED == $ss) {
                        $list['receive'] = true;
                        // 收货确认
                    }
                    $list['unship'] = true;
                    // 设为未发货
                    if ($priv_list['os']) {
                        $list['return'] = true;
                        // 退货
                    }
                }
            }
        } else {
            /* 状态:已确认、已付款和付款中 */
            if (SS_UNSHIPPED == $ss || SS_PREPARING == $ss) {
                /* 状态:已确认、已付款和付款中、未发货(配货中) => 不是货到付款 */
                if ($priv_list['ss']) {
                    if (SS_UNSHIPPED == $ss) {
                        $list['lack_goods'] = true;
                        $list['fast_deliver'] = true;
                        $list['prepare'] = true;
                        // 配货
                    }
                    $list['split'] = true;
                    // 分单
                }
                if ($priv_list['ps']) {
                    $list['unpay'] = true;
                    // 设为未付款
                    if ($priv_list['os']) {
                        $list['cancel'] = true;
                        // 取消
                    }
                }
            } elseif (SS_SHIPPED_ING == $ss || SS_SHIPPED_PART == $ss) {
                // 部分分单
                if (OS_SPLITING_PART == $os) {
                    $list['split'] = true;
                    // 分单
                }
                $list['to_delivery'] = true;
                // 去发货
            } else {
                /* 状态:已确认、已付款和付款中、已发货或已收货 */
                if ($priv_list['ss']) {
                    if (SS_SHIPPED == $ss) {
                        $list['receive'] = true;
                        // 收货确认
                    }
                    if (!$is_cod) {
                        $list['unship'] = true;
                        // 设为未发货
                    }
                }
                if ($priv_list['ps'] && $is_cod) {
                    $list['unpay'] = true;
                    // 设为未付款
                }
                if ($priv_list['os'] && $priv_list['ss'] && $priv_list['ps']) {
                    $list['return'] = true;
                    // 退货(包括退款)
                }
            }
        }
    } elseif (OS_CANCELED == $os) {
        /* 状态:取消 */
        if ($priv_list['os']) {
            $list['confirm'] = true;
        }
        if ($priv_list['edit']) {
            $list['remove'] = true;
        }
    } elseif (OS_INVALID == $os) {
        /* 状态:无效 */
        if ($priv_list['os']) {
            $list['confirm'] = true;
        }
        if ($priv_list['edit']) {
            $list['remove'] = true;
        }
    } elseif (OS_RETURNED == $os) {
        /* 状态:退货 */
        if ($priv_list['os']) {
            $list['confirm'] = true;
        }
    }
    /* 修正发货操作 */
    if (!empty($list['split'])) {
        /* 如果是团购活动且未处理成功,不能发货 */
        if ($order['extension_code'] == 'group_buy') {
            include_once ROOT_PATH . 'includes/lib_goods.php';
            $group_buy = group_buy_info(intval($order['extension_id']));
            if ($group_buy['status'] != GBS_SUCCEED) {
                unset($list['split']);
                unset($list['to_delivery']);
            }
        }
        /* 如果部分发货 不允许 取消 订单 */
        if (order_deliveryed($order['order_id'])) {
            $list['return'] = true;
            // 退货(包括退款)
            unset($list['cancel']);
            // 取消
        }
    }
    /* 售后 */
    $list['after_service'] = true;
    return $list;
}
Exemple #2
0
/**
 * 取得某订单应该赠送的积分数
 * @param   array   $order  订单
 * @return  int     积分数
 */
function integral_to_give($order)
{
    /* 判断是否团购 */
    if ($order['extension_code'] == 'group_buy') {
        include_once ROOT_PATH . 'includes/lib_goods.php';
        $group_buy = group_buy_info(intval($order['extension_id']));
        return array('custom_points' => $group_buy['gift_integral'], 'rank_points' => $order['goods_amount']);
    } else {
        $sql = "SELECT SUM(og.goods_number * IF(g.give_integral > -1, g.give_integral, og.goods_price)) AS custom_points, SUM(og.goods_number * IF(g.rank_integral > -1, g.rank_integral, og.goods_price)) AS rank_points " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " AS og, " . $GLOBALS['ecs']->table('goods') . " AS g " . "WHERE og.goods_id = g.goods_id " . "AND og.order_id = '{$order['order_id']}' " . "AND og.goods_id > 0 " . "AND og.parent_id = 0 " . "AND og.is_gift = 0 AND og.extension_code != 'package_buy'";
        return $GLOBALS['db']->getRow($sql);
    }
}
Exemple #3
0
    }

    /* 查询:取得参数:团购活动id */
    $group_buy_id = isset($_POST['group_buy_id']) ? intval($_POST['group_buy_id']) : 0;
    if ($group_buy_id <= 0)
    {
        ecs_header("Location: ./\n");
        exit;
    }

    /* 查询:取得数量 */
    $number = isset($_POST['number']) ? intval($_POST['number']) : 1;
    $number = $number < 1 ? 1 : $number;

    /* 查询:取得团购活动信息 */
    $group_buy = group_buy_info($group_buy_id, $number);
    if (empty($group_buy))
    {
        ecs_header("Location: ./\n");
        exit;
    }

    /* 查询:检查团购活动是否是进行中 */
    if ($group_buy['status'] != GBS_UNDER_WAY)
    {
        show_message($_LANG['gb_error_status'], '', '', 'error');
    }

    /* 查询:取得团购商品信息 */
    $goods = goods_info($group_buy['goods_id']);
    if (empty($goods))
Exemple #4
0
 $smarty->assign('cod_disabled', $cod_disabled);
 /* 取得支付列表 */
 if ($order['shipping_id'] == 0) {
     $cod = true;
     $cod_fee = 0;
 } else {
     $shipping = shipping_info($order['shipping_id']);
     $cod = $shipping['support_cod'];
     if ($cod) {
         /* 如果是团购,且保证金大于0,不能使用货到付款 */
         if ($flow_type == CART_GROUP_BUY_GOODS) {
             $group_buy_id = $_SESSION['extension_id'];
             if ($group_buy_id <= 0) {
                 show_message('error group_buy_id');
             }
             $group_buy = group_buy_info($group_buy_id);
             if (empty($group_buy)) {
                 show_message('group buy not exists: ' . $group_buy_id);
             }
             if ($group_buy['deposit'] > 0) {
                 $cod = false;
                 $cod_fee = 0;
                 /* 赋值保证金 */
                 $smarty->assign('gb_deposit', $group_buy['deposit']);
             }
         }
         if ($cod) {
             $shipping_area_info = shipping_area_info($order['shipping_id'], $region);
             $cod_fee = $shipping_area_info['pay_fee'];
         }
     } else {
Exemple #5
0
/**
 * 取得某页的所有团购活动
 * @param   int     $size   每页记录数
 * @param   int     $page   当前页
 * @return  array
 */
function group_buy_list($size, $page)
{
    /* 取得团购活动 */
    $gb_list = array();
    $now = gmtime();
    $sql = "SELECT b.*, IFNULL(g.goods_thumb, '') AS goods_thumb, b.act_id AS group_buy_id, " . "b.start_time AS start_date, b.end_time AS end_date " . "FROM " . $GLOBALS['ecs']->table('goods_activity') . " AS b " . "LEFT JOIN " . $GLOBALS['ecs']->table('goods') . " AS g ON b.goods_id = g.goods_id " . "WHERE b.act_type = '" . GAT_GROUP_BUY . "' " . "AND b.start_time <= '{$now}' AND b.is_finished < 3 ORDER BY b.act_id DESC";
    $res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);
    while ($group_buy = $GLOBALS['db']->fetchRow($res)) {
        $ext_info = unserialize($group_buy['ext_info']);
        $group_buy = array_merge($group_buy, $ext_info);
        /* 格式化时间 */
        $group_buy['formated_start_date'] = local_date($GLOBALS['_CFG']['time_format'], $group_buy['start_date']);
        $group_buy['formated_end_date'] = local_date($GLOBALS['_CFG']['time_format'], $group_buy['end_date']);
        /* 格式化保证金 */
        $group_buy['formated_deposit'] = price_format($group_buy['deposit'], false);
        /* 处理价格阶梯 */
        $price_ladder = $group_buy['price_ladder'];
        if (!is_array($price_ladder) || empty($price_ladder)) {
            $price_ladder = array(array('amount' => 0, 'price' => 0));
        } else {
            foreach ($price_ladder as $key => $amount_price) {
                $price_ladder[$key]['formated_price'] = price_format($amount_price['price']);
            }
        }
        $group_buy['price_ladder'] = $price_ladder;
        $group_buy_info = group_buy_info($group_buy['group_buy_id']);
        $group_buy['formated_cur_price'] = $group_buy_info['formated_cur_price'];
        $tg = group_buy_stat($group_buy['group_buy_id'], 0);
        $group_buy['num'] = $tg['total_order'];
        /* 处理图片 */
        if (empty($group_buy['goods_thumb'])) {
            $group_buy['goods_thumb'] = get_image_path($group_buy['goods_id'], $group_buy['goods_thumb'], true);
        }
        /* 处理链接 */
        $group_buy['url'] = build_uri('group_buy', array('gbid' => $group_buy['group_buy_id']));
        /* 加入数组 */
        $gb_list[] = $group_buy;
    }
    return $gb_list;
}
Exemple #6
0
	public function checkout () {
		global $ecs,$db,$_CFG;
		/*------------------------------------------------------ */
	    //-- 订单确认
	    /*------------------------------------------------------ */
	
	    #取得购物类型
	    $flow_type = isset($_SESSION['flow_type']) ? intval($_SESSION['flow_type']) : CART_GENERAL_GOODS;
		
		/*
	    #团购标志
	    if ($flow_type == CART_GROUP_BUY_GOODS)
	    {
	        $smarty->assign('is_group_buy', 1);
	    }
	    #积分兑换商品
	    elseif ($flow_type == CART_EXCHANGE_GOODS)
	    {
	        $smarty->assign('is_exchange_goods', 1);
	    }
	    else
	    {
		*/
		#正常购物流程  清空其他购物流程情况
		$_SESSION['flow_order']['extension_code'] = '';
		/*}*/
	
	    /* 检查购物车中是否有商品 */
	    $sql = "SELECT COUNT(*) FROM " . $ecs->table('cart') ." WHERE session_id = '" . SESS_ID . "' " .
	           "AND parent_id = 0 AND is_gift = 0 AND rec_type = '$flow_type'";
	
	    if ($db->getOne($sql) == 0)
	    {
			$msg = rpcLang('flow.php', 'no_goods_in_cart');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    /*
	     * 检查用户是否已经登录
	     * 如果用户已经登录了则检查是否有默认的收货地址
	     * 如果没有登录则跳转到登录和注册页面
	     */
	    if (empty($_SESSION['direct_shopping']) && $_SESSION['user_id'] == 0)
	    {
			$msg = rpcLang('user.php', 'nologin');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    $consignee = get_consignee($_SESSION['user_id']);
	
	    #检查收货人信息是否完整
	    if (!check_consignee_info($consignee, $flow_type))
	    {
			$msg = rpcLang('flow.php', 'user_address_not_full');
			jsonExit("{\"status\":\"$msg\"}");
	    }
	
	    //$_SESSION['flow_consignee'] = $consignee;
	    
	    #对商品信息赋值
	    $cart_goods = cart_goods($flow_type); // 取得商品列表,计算合计
	
		/*
	    $smarty->assign('goods_list', $cart_goods);
	    #对是否允许修改购物车赋值
	    if ($flow_type != CART_GENERAL_GOODS || $_CFG['one_step_buy'] == '1')
	    {
	        $smarty->assign('allow_edit_cart', 0);
	    }
	    else
	    {
	        $smarty->assign('allow_edit_cart', 1);
	    }
	    
	    #取得购物流程设置
	    $smarty->assign('config', $_CFG);
		*/
	
	    /*
	     * 取得订单信息
	     */
	    $order = flow_order_info();
	
	    /* 计算折扣 */
	    if ($flow_type != CART_EXCHANGE_GOODS && $flow_type != CART_GROUP_BUY_GOODS)
	    {
	        $discount = compute_discount();
			
	    }
	
	    /*
	     * 计算订单的费用
	     */
	    $total = order_fee($order, $cart_goods, $consignee);
		
	    #取得配送列表
	    $region            = array($consignee['country'], $consignee['province'], $consignee['city'], $consignee['district']);
		#快递方式集合
		$shipping_list     = available_shipping_list($region);
		#购物车重量
	    $cart_weight_price = cart_weight_price($flow_type);
	    $insure_disabled   = true;
	    $cod_disabled      = true;
	
	    #查看购物车中是否全为免运费商品,若是则把运费赋为零s
	    $sql = 'SELECT count(*) FROM ' . $ecs->table('cart') . " WHERE `session_id` = '" . SESS_ID. "' AND `extension_code` != 'package_buy' AND `is_shipping` = 0";
	    $shipping_count = $db->getOne($sql);
	    foreach ($shipping_list AS $key => $val)
	    {
	        $shipping_cfg = unserialize_config($val['configure']);
	        $shipping_fee = ($shipping_count == 0 AND $cart_weight_price['free_shipping'] == 1) ? 0 : shipping_fee($val['shipping_code'], unserialize($val['configure']),
	        $cart_weight_price['weight'], $cart_weight_price['amount'], $cart_weight_price['number']);
	
	        $shipping_list[$key]['format_shipping_fee'] = price_format($shipping_fee, false);
	        $shipping_list[$key]['shipping_fee']        = $shipping_fee;
	        $shipping_list[$key]['free_money']          = price_format($shipping_cfg['free_money'], false);
	        $shipping_list[$key]['insure_formated']     = strpos($val['insure'], '%') === false ?
	        price_format($val['insure'], false) : $val['insure'];
	
	        #当前的配送方式是否支持保价
	        if ($val['shipping_id'] == $order['shipping_id'])
	        {
	            $insure_disabled = ($val['insure'] == 0);
	            $cod_disabled    = ($val['support_cod'] == 0);
	        }
	    }
		#取得支付列表
	    if ($order['shipping_id'] == 0)
	    {
	        $cod        = true;
	        $cod_fee    = 0;
	    }
	    else
	    {
	        $shipping = shipping_info($order['shipping_id']);
	        $cod = $shipping['support_cod'];
	
	        if ($cod)
	        {
	            #如果是团购,且保证金大于0,不能使用货到付款
	            if ($flow_type == CART_GROUP_BUY_GOODS)
	            {
	                $group_buy_id = $_SESSION['extension_id'];
	                if ($group_buy_id <= 0)
	                {
	                    show_message('error group_buy_id');
	                }
	                $group_buy = group_buy_info($group_buy_id);
	                if (empty($group_buy))
	                {
	                    show_message('group buy not exists: ' . $group_buy_id);
	                }
	
	                if ($group_buy['deposit'] > 0)
	                {
	                    $cod = false;
	                    $cod_fee = 0;
	
	                    #赋值保证金
	                    $smarty->assign('gb_deposit', $group_buy['deposit']);
	                }
	            }
	
	            if ($cod)
	            {
	                $shipping_area_info = shipping_area_info($order['shipping_id'], $region);
	                $cod_fee            = $shipping_area_info['pay_fee'];
	            }
	        }
	        else
	        {
	            $cod_fee = 0;
	        }
	    }
	    
	
	    # 给货到付款的手续费加<span id>,以便改变配送的时候动态显示
	    $payment_list = available_payment_list(1, $cod_fee);
	    if(isset($payment_list))
	    {
	        foreach ($payment_list as $key => $payment)
	        {
	            if ($payment['is_cod'] == '1')
	            {
	                $payment_list[$key]['format_pay_fee'] = '<span id="ECS_CODFEE">' . $payment['format_pay_fee'] . '</span>';
	            }
	            #如果有易宝神州行支付 如果订单金额大于300 则不显示
	            if ($payment['pay_code'] == 'yeepayszx' && $total['amount'] > 300)
	            {
	                unset($payment_list[$key]);
	            }
	            #如果有余额支付
	            if ($payment['pay_code'] == 'balance')
	            {
	                #如果未登录,不显示
	                if ($_SESSION['user_id'] == 0)
	                {
	                    unset($payment_list[$key]);
	                }
	                else
	                {
	                    if ($_SESSION['flow_order']['pay_id'] == $payment['pay_id'])
	                    {
	                        $smarty->assign('disable_surplus', 1);
	                    }
	                }
	            }
	        }
	    }
	
		$pack_list = array();
		$card_list = array();
	    /* 取得包装与贺卡 */
	    if ($total['real_goods_count'] > 0)
	    {
	        #只有有实体商品,才要判断包装和贺卡
	        if (!isset($_CFG['use_package']) || $_CFG['use_package'] == '1')
	        {
				#如果使用包装,取得包装列表及用户选择的包装
				$pack_list = pack_list();
	        }
	
	        #如果使用贺卡,取得贺卡列表及用户选择的贺卡
	        if (!isset($_CFG['use_card']) || $_CFG['use_card'] == '1')
	        {
				$card_list = card_list();
			}
	    }
	
	    /* 
		$user_info = user_info($_SESSION['user_id']);
		#如果使用余额,取得用户余额
	    if ((!isset($_CFG['use_surplus']) || $_CFG['use_surplus'] == '1') && $_SESSION['user_id'] > 0  && $user_info['user_money'] > 0)
	    {
	        // 能使用余额
	        $smarty->assign('allow_use_surplus', 1);
	        $smarty->assign('your_surplus', $user_info['user_money']);
	    }
		
		#如果使用积分,取得用户可用积分及本订单最多可以使用的积分
	    if ((!isset($_CFG['use_integral']) || $_CFG['use_integral'] == '1')
	        && $_SESSION['user_id'] > 0
	        && $user_info['pay_points'] > 0
	        && ($flow_type != CART_GROUP_BUY_GOODS && $flow_type != CART_EXCHANGE_GOODS))
	    {
	        // 能使用积分
	        $smarty->assign('allow_use_integral', 1);
	        $smarty->assign('order_max_integral', flow_available_points());  // 可用积分
	        $smarty->assign('your_integral',      $user_info['pay_points']); // 用户积分
	    }*/
		
	    #如果使用红包,取得用户可以使用的红包及用户选择的红包
	    if ((!isset($_CFG['use_bonus']) || $_CFG['use_bonus'] == '1') && ($flow_type != CART_GROUP_BUY_GOODS && $flow_type != CART_EXCHANGE_GOODS))
	    {
	        #取得用户可用红包
	        $user_bonus = zy_user_bonus($_SESSION['user_id'], $total['goods_price']);
	        if (!empty($user_bonus))
	        {
	            foreach ($user_bonus AS $key => $val)
	            {
	                $user_bonus[$key]['bonus_money_formated'] = price_format($val['type_money'], false);
	            }
	        }
	        #能使用红包
	        //$smarty->assign('allow_use_bonus', 1);
	    }
		/*
	    # 如果使用缺货处理,取得缺货处理列表
	    if (!isset($_CFG['use_how_oos']) || $_CFG['use_how_oos'] == '1')
	    {
	        if (is_array($GLOBALS['_LANG']['oos']) && !empty($GLOBALS['_LANG']['oos']))
	        {
	            $smarty->assign('how_oos_list', $GLOBALS['_LANG']['oos']);
	        }
	    }*/
		
	    #如果能开发票,取得发票内容列表
	    if ((!isset($_CFG['can_invoice']) || $_CFG['can_invoice'] == '1')	&& isset($_CFG['invoice_content']) 
			&& trim($_CFG['invoice_content']) != '' && $flow_type != CART_EXCHANGE_GOODS)
	    {
	        $inv_content_list = explode("\n", str_replace("\r", '', $_CFG['invoice_content']));
	       
	        $inv_type_list = array();
	        foreach ($_CFG['invoice_type']['type'] as $key => $type)
	        {
	            if (!empty($type))
	            {
	                $inv_type_list[$type] = $type . ' [' . floatval($_CFG['invoice_type']['rate'][$key]) . '%]';
	            }
	        }
	        $inv_content_list = implode(",", $inv_content_list);
	        $inv_list = array ('inv_content_list'=>$inv_content_list,'inv_type_list'=>$inv_type_list);
	       
	    }
		
	
	    #保存session
	    $_SESSION['flow_order'] = $order;
	   /* $pay_code = rpcLang('flow.php', 'pay_code_name');
		foreach ($payment_list as $value) {
			
			foreach ($value as $k=>$v){
				
			    if (strpos($v, $pay_code) !== false) {
			        $payment_list = $value;
			        $payment_list = preg_replace('/<.*?>|\[.*?\]/', '', $payment_list);
	    			$payment_list = array($payment_list);
			    }
			}
		}*/
	   
		$checkout_order = array('cart_goods'=>$cart_goods,
								'total'=>$total,
								'pack_list'=>$pack_list,
								'card_list'=>$card_list,
								'shipping_list'=>$shipping_list,
								'payment_list'=>$payment_list,
								'inv_list'=>$inv_list,
								'consignee'=>$consignee,);
		if (!empty($user_bonus)) {
	    	$checkout_order ['user_bonus'] = $user_bonus;
	    }
	  // print_r($checkout_order);die;
		jsonExit($checkout_order);
	}
Exemple #7
0
 if (!empty($_REQUEST['goods_id']) && empty($_POST['goods'])) {
     if (!is_numeric($_REQUEST['goods_id']) || intval($_REQUEST['goods_id']) <= 0) {
         ecs_header("Location:./\n");
     }
     $goods_id = intval($_REQUEST['goods_id']);
     exit;
 }
 $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');
 $json = new JSON();
 if (empty($_POST['goods'])) {
     $result['error'] = 1;
     die($json->encode($result));
 }
 $goods = $json->decode($_POST['goods']);
 /* 查询:取得团购活动信息 */
 $group_buy = group_buy_info($goods->goods_id, $goods->number);
 if (empty($group_buy)) {
     ecs_header("Location: ./\n");
     exit;
 }
 /* 查询:检查团购活动是否是进行中 */
 if ($group_buy['status'] != GBS_UNDER_WAY) {
     $result['error'] = 10;
     //该活动已结束
     $result['goods_id'] = $goods->goods_id;
     $result['parent'] = $goods->parent;
     $result['message'] = $spe_array;
     die($json->encode($result));
 }
 /* 查询:取得团购商品信息 */
 $goods = goods_info($group_buy['goods_id']);
Exemple #8
0
/**
 * 取得某订单应该赠送的积分数
 * @param   array   $order  订单
 * @return  int     积分数
 */
function integral_to_give2($order)
{
    /* 判断是否团购 */
    if ($order['extension_code'] == 'group_buy') {
        include_once ROOT_PATH . 'includes/lib_goods.php';
        $group_buy = group_buy_info(intval($order['extension_id']));
        return array('custom_points' => $group_buy['gift_integral'], 'rank_points' => $order['goods_amount']);
    } else {
        $sql1 = "SELECT SUM(og.goods_number * IF(g.give_integral < 0, og.goods_price*(g.give_integral/10)*(-1), g.give_integral)) AS custom_points, SUM(og.goods_number * og.goods_price) AS rank_points " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " AS og, " . $GLOBALS['ecs']->table('goods') . " AS g " . "WHERE og.goods_id = g.goods_id " . "AND og.order_id = '{$order['order_id']}' " . "AND og.goods_id > 0 " . "AND og.parent_id = 0 " . "AND og.is_integral = 0 " . "AND og.is_gift = 0";
        /*$sql = "SELECT SUM(og.goods_number * IF(g.give_integral > -1, g.give_integral, og.goods_price)) AS custom_points, SUM(og.goods_number * og.goods_price) AS rank_points " .
        				"FROM " . $GLOBALS['ecs']->table('order_goods') . " AS og, " .
        						  $GLOBALS['ecs']->table('goods') . " AS g " .
        				"WHERE og.goods_id = g.goods_id " .
        				"AND og.order_id = '$order[order_id]' " .
        				"AND og.goods_id > 0 " .
        				"AND og.parent_id = 0 " .
        				"AND og.is_gift = 0";
        		*/
        $res1 = $GLOBALS['db']->getRow($sql1);
        //print_r($res1);
        $sql2 = "SELECT SUM(og.goods_number * g.integral) AS custom_points, SUM(og.goods_number * og.goods_price) AS rank_points " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " AS og, " . $GLOBALS['ecs']->table('goods') . " AS g " . "WHERE og.goods_id = g.goods_id " . "AND og.order_id = '{$order['order_id']}' " . "AND og.goods_id > 0 " . "AND og.parent_id = 0 " . "AND og.is_integral = 1 " . "AND g.cat_id <> 4 " . "AND og.is_gift = 0";
        $res2 = $GLOBALS['db']->getRow($sql2);
        //print_r($res2);
        $sql3 = "SELECT SUM(og.goods_number * og.goods_price) AS custom_points, SUM(og.goods_number * og.goods_price) AS rank_points " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " AS og, " . $GLOBALS['ecs']->table('goods') . " AS g " . "WHERE og.goods_id = g.goods_id " . "AND og.order_id = '{$order['order_id']}' " . "AND og.goods_id > 0 " . "AND og.parent_id = 0 " . "AND og.is_integral = 1 " . "AND g.cat_id = 4 " . "AND og.is_gift = 0";
        $res3 = $GLOBALS['db']->getRow($sql3);
        //print_r($res3);
        if ($order['discount'] == 0) {
            $res['custom_points'] = $res1['custom_points'] + $order['shipping_fee'] / 10 + $order['pay_fee'] / 10 - $res2['custom_points'] - $res3['custom_points'];
            $res['rank_points'] = $res1['rank_points'] + $res2['rank_points'] + $res3['rank_points'];
        } else {
            $res['custom_points'] = $res1['custom_points'] * 0.95 + $order['shipping_fee'] / 10 + $order['pay_fee'] / 10 - $res2['custom_points'] - $res3['custom_points'];
            $res['rank_points'] = $res1['rank_points'] + $res2['rank_points'] + $res3['rank_points'];
        }
        return $res;
    }
}
Exemple #9
0
             $result['one_step_buy'] = $_CFG['one_step_buy'];
         } else {
             $result['message'] = $err->last_message();
             $result['error'] = $err->error_no;
             $result['package_id'] = stripslashes($package->package_id);
         }
     }
     $result['confirm_type'] = !empty($_CFG['cart_confirm']) ? $_CFG['cart_confirm'] : 2;
     die($json->encode($result));
 } elseif ($_REQUEST['step'] == 'update_group_cart') {
     include_once 'includes/cls_json.php';
     $json = new JSON();
     $result = array('error' => ", 'content' => ");
     $rec_id = $_GET['rec_id'];
     $number = $_GET['number'];
     $group_buy = group_buy_info($_SESSION['extension_id'], $number);
     if (!is_numeric($number)) {
         $result['error'] = '1';
         $result['content'] = '请输入合法数量';
         die($json->encode($result));
     }
     if ($group_buy['restrict_amount'] > 0 && $number > $group_buy['restrict_amount'] - $group_buy['valid_goods']) {
         $result['error'] = '1';
         $restrict_amount = $group_buy['restrict_amount'] - $group_buy['valid_goods'];
         $result['content'] = '您最多可买' . $restrict_amount . '件';
         die($json->encode($result));
     }
     $sql = "UPDATE " . $GLOBALS['ecs']->table('cart') . " SET goods_number = '{$number}' WHERE rec_id = {$rec_id}";
     $GLOBALS['db']->query($sql);
     $subtotal = $GLOBALS['db']->getONE("select goods_price * goods_number AS subtotal from " . $GLOBALS['ecs']->table('cart') . " where rec_id = {$rec_id}");
     $cart_amount = cart_amount($_SESSION['flow_type']);