コード例 #1
0
ファイル: lib_order.php プロジェクト: moonlight-wang/feilun
/**
 * 改变订单中商品库存
 * @param   int     $order_id   订单号
 * @param   bool    $is_dec     是否减少库存
 * @param   bool    $storage     减库存的时机,1,下订单时;0,发货时;
 */
function change_order_goods_storage($order_id, $is_dec = true, $storage = 0)
{
    if ($is_dec) {
        //减库存
        return change_morestorck_morecity_stock_jian($order_id);
    } else {
        //加库存
        return change_morestorck_morecity_stock_jia($order_id);
    }
    return;
    /* 查询订单商品信息 */
    switch ($storage) {
        case 0:
            $sql = "SELECT goods_id, SUM(send_number) AS num, MAX(extension_code) AS extension_code, product_id FROM " . $GLOBALS['ecs']->table('order_goods') . " WHERE order_id = '{$order_id}' AND is_real = 1 GROUP BY goods_id, product_id";
            break;
        case 1:
            $sql = "SELECT goods_id, SUM(goods_number) AS num, MAX(extension_code) AS extension_code, product_id FROM " . $GLOBALS['ecs']->table('order_goods') . " WHERE order_id = '{$order_id}' AND is_real = 1 GROUP BY goods_id, product_id";
            break;
    }
    $res = $GLOBALS['db']->query($sql);
    while ($row = $GLOBALS['db']->fetchRow($res)) {
        if ($row['extension_code'] != "package_buy") {
            if ($is_dec) {
                change_goods_storage($row['goods_id'], $row['product_id'], -$row['num']);
            } else {
                change_goods_storage($row['goods_id'], $row['product_id'], $row['num']);
            }
            $GLOBALS['db']->query($sql);
        } else {
            $sql = "SELECT goods_id, goods_number" . " FROM " . $GLOBALS['ecs']->table('package_goods') . " WHERE package_id = '" . $row['goods_id'] . "'";
            $res_goods = $GLOBALS['db']->query($sql);
            while ($row_goods = $GLOBALS['db']->fetchRow($res_goods)) {
                $sql = "SELECT is_real" . " FROM " . $GLOBALS['ecs']->table('goods') . " WHERE goods_id = '" . $row_goods['goods_id'] . "'";
                $real_goods = $GLOBALS['db']->query($sql);
                $is_goods = $GLOBALS['db']->fetchRow($real_goods);
                if ($is_dec) {
                    change_goods_storage($row_goods['goods_id'], $row['product_id'], -($row['num'] * $row_goods['goods_number']));
                } elseif ($is_goods['is_real']) {
                    change_goods_storage($row_goods['goods_id'], $row['product_id'], $row['num'] * $row_goods['goods_number']);
                }
            }
        }
    }
}
コード例 #2
0
ファイル: order.php プロジェクト: moonlight-wang/feilun
         }
     }
 }
 if (isset($_POST['finish'])) {
     /* 完成 */
     if ($step_act == 'add') {
         /* 订单改为已确认,(已付款) */
         $arr['order_status'] = OS_CONFIRMED;
         $arr['confirm_time'] = gmtime();
         if ($order['order_amount'] <= 0) {
             $arr['pay_status'] = PS_PAYED;
             $arr['pay_time'] = gmtime();
         }
         update_order($order_id, $arr);
         if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE) {
             change_morestorck_morecity_stock_jian($order_id);
         }
     }
     /* 初始化提示信息和链接 */
     $msgs = array();
     $links = array();
     /* 如果已付款,检查金额是否变动,并执行相应操作 */
     $order = order_info($order_id);
     handle_order_money_change($order, $msgs, $links);
     /* 显示提示信息 */
     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;
     }