Example #1
0
/**
 * 取得订单应该发放的红包
 * @param   int     $order_id   订单id
 * @return  array
 */
function order_bonus($order_id)
{
    /* 查询按商品发的红包 */
    $day = getdate();
    $today = local_mktime(23, 59, 59, $day['mon'], $day['mday'], $day['year']);
    $sql = "SELECT b.type_id, b.type_money, SUM(o.goods_number) AS number " . "FROM " . $GLOBALS['ecs']->table('order_goods') . " AS o, " . $GLOBALS['ecs']->table('goods') . " AS g, " . $GLOBALS['ecs']->table('bonus_type') . " AS b " . " WHERE o.order_id = '{$order_id}' " . " AND o.is_gift = 0 " . " AND o.goods_id = g.goods_id " . " AND g.bonus_type_id = b.type_id " . " AND b.send_type = '" . SEND_BY_GOODS . "' " . " AND b.send_start_date <= '{$today}' " . " AND b.send_end_date >= '{$today}' " . " GROUP BY b.type_id ";
    $list = $GLOBALS['db']->getAll($sql);
    /* 查询定单中非赠品总金额 */
    $amount = order_amount($order_id, false);
    /* 查询订单日期 */
    $sql = "SELECT add_time " . " FROM " . $GLOBALS['ecs']->table('order_info') . " WHERE order_id = '{$order_id}' LIMIT 1";
    $order_time = $GLOBALS['db']->getOne($sql);
    /* 查询按订单发的红包 */
    $sql = "SELECT type_id, type_money, IFNULL(FLOOR('{$amount}' / min_amount), 1) AS number " . "FROM " . $GLOBALS['ecs']->table('bonus_type') . "WHERE send_type = '" . SEND_BY_ORDER . "' " . "AND send_start_date <= '{$order_time}' " . "AND send_end_date >= '{$order_time}' ";
    $list = array_merge($list, $GLOBALS['db']->getAll($sql));
    return $list;
}
Example #2
0
         }
         /* 显示提示信息 */
         if (!empty($msgs)) {
             sys_msg(join(chr(13), $msgs), 0, $links);
         } else {
             /* 完成 */
             ecs_header("Location: order.php?act=info&order_id=" . $order_id . "\n");
             exit;
         }
     }
 } elseif ('payment' == $step) {
     /* 取得支付信息 */
     $pay_id = $_POST['payment'];
     $payment = payment_info($pay_id);
     /* 计算支付费用 */
     $order_amount = order_amount($order_id);
     if ($payment['is_cod'] == 1) {
         $order = order_info($order_id);
         $region_id_list = array($order['country'], $order['province'], $order['city'], $order['district']);
         $shipping = shipping_area_info($order['shipping_id'], $region_id_list);
         $pay_fee = pay_fee($pay_id, $order_amount, $shipping['pay_fee']);
     } else {
         $pay_fee = pay_fee($pay_id, $order_amount);
     }
     /* 保存订单 */
     $order = array('pay_id' => $pay_id, 'pay_name' => addslashes($payment['pay_name']), 'pay_fee' => $pay_fee);
     update_order($order_id, $order);
     update_order_amount($order_id);
     /* 更新 pay_log */
     update_pay_log($order_id);
     /* todo 记录日志 */
Example #3
0
     admin_priv('order_edit');
     /* 取得参数 */
     $rec_id = intval($_GET['rec_id']);
     $step_act = $_GET['step_act'];
     $order_id = intval($_GET['order_id']);
     /* 如果使用库存,且下订单时减库存,则修改库存 */
     if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE) {
         $goods = $db->getRow("SELECT goods_id, goods_number FROM " . $ecs->table('order_goods') . " WHERE rec_id = " . $rec_id);
         $sql = "UPDATE " . $ecs->table('goods') . " SET `goods_number` = goods_number + '" . $goods['goods_number'] . "' " . " WHERE `goods_id` = '" . $goods['goods_id'] . "' LIMIT 1";
         $db->query($sql);
     }
     /* 删除 */
     $sql = "DELETE FROM " . $ecs->table('order_goods') . " WHERE rec_id = '{$rec_id}' LIMIT 1";
     $db->query($sql);
     /* 更新商品总金额和订单总金额 */
     update_order($order_id, array('goods_amount' => order_amount($order_id)));
     update_order_amount($order_id);
     /* 跳回订单商品 */
     ecs_header("Location: order.php?act=" . $step_act . "&order_id=" . $order_id . "&step=goods\n");
     exit;
 } elseif ('cancel_order' == $func) {
     $step_act = $_GET['step_act'];
     $order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;
     if ($step_act == 'add') {
         /* 如果是添加,删除订单,返回订单列表 */
         if ($order_id > 0) {
             $sql = "DELETE FROM " . $ecs->table('order_info') . " WHERE order_id = '{$order_id}' LIMIT 1";
             $db->query($sql);
         }
         ecs_header("Location: order.php?act=list\n");
         exit;
    /**
     * 取得订单应该发放的红包
     * @param   int     $order_id   订单id
     * @return  array
     */
    function order_bonus($order_id) {
        /* 查询按商品发的红包 */
        $day = getdate();
        $today = local_mktime(23, 59, 59, $day['mon'], $day['mday'], $day['year']);

        $sql = "SELECT b.type_id, b.type_money, SUM(o.goods_number) AS number " .
                "FROM " . $this->pre . "order_goods AS o, " .
                $this->pre . "goods AS g, " .
                $this->pre . "bonus_type AS b " .
                " WHERE o.order_id = '$order_id' " .
                " AND o.is_gift = 0 " .
                " AND o.goods_id = g.goods_id " .
                " AND g.bonus_type_id = b.type_id " .
                " AND b.send_type = '" . SEND_BY_GOODS . "' " .
                " AND b.send_start_date <= '$today' " .
                " AND b.send_end_date >= '$today' " .
                " GROUP BY b.type_id ";
        $list = $this->query($sql);

        /* 查询定单中非赠品总金额 */
        $amount = order_amount($order_id, false);

        /* 查询订单日期 */
        $sql = "SELECT add_time " .
                " FROM " . $this->pre .
                "order_info WHERE order_id = '$order_id' LIMIT 1";
        $res = $this->row($sql);
        $order_time = $res['add_time'];
        /* 查询按订单发的红包 */
        $sql = "SELECT type_id, type_money, IFNULL(FLOOR('$amount' / min_amount), 1) AS number " .
                "FROM " . $this->pre .
                "bonus_type WHERE send_type = '" . SEND_BY_ORDER . "' " .
                "AND send_start_date <= '$order_time' " .
                "AND send_end_date >= '$order_time' ";
        $list = array_merge($list, $this->query($sql));

        return $list;
    }