Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/ecshopjcw/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/ecshopjcw/wholesale.php
<?php



/**

 * ECSHOP 管理中心批发管理

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com;

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用;不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: wholesale.php 17217 2011-01-19 06:29:08Z liubo $

 */



define('IN_ECTOUCH', true);

require(dirname(__FILE__) . '/includes/init.php');

include_once('../include/lib_goods.php');



/*------------------------------------------------------ */

//-- 活动列表页

/*------------------------------------------------------ */



if ($_REQUEST['act'] == 'list')

{

    admin_priv('whole_sale');



    /* 模板赋值 */

    $smarty->assign('full_page',   1);

    $smarty->assign('ur_here',     $_LANG['wholesale_list']);

    $smarty->assign('action_link', array('href' => 'wholesale.php?act=add', 'text' => $_LANG['add_wholesale']));

    $smarty->assign('action_link2',array('href' => 'wholesale.php?act=batch_add', 'text' => $_LANG['add_batch_wholesale']));



    $list = wholesale_list();



    $smarty->assign('wholesale_list',  $list['item']);

    $smarty->assign('filter',          $list['filter']);

    $smarty->assign('record_count',    $list['record_count']);

    $smarty->assign('page_count',      $list['page_count']);



    $sort_flag  = sort_flag($list['filter']);

    $smarty->assign($sort_flag['tag'], $sort_flag['img']);



    /* 显示商品列表页面 */

    assign_query_info();

    $smarty->display('wholesale_list.htm');

}



/*------------------------------------------------------ */

//-- 分页、排序、查询

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'query')

{

    $list = wholesale_list();



    $smarty->assign('wholesale_list',  $list['item']);

    $smarty->assign('filter',          $list['filter']);

    $smarty->assign('record_count',    $list['record_count']);

    $smarty->assign('page_count',      $list['page_count']);



    $sort_flag  = sort_flag($list['filter']);

    $smarty->assign($sort_flag['tag'], $sort_flag['img']);



    make_json_result($smarty->fetch('wholesale_list.htm'), '',

        array('filter' => $list['filter'], 'page_count' => $list['page_count']));

}



/*------------------------------------------------------ */

//-- 删除

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'remove')

{

    check_authz_json('whole_sale');



    $id = intval($_GET['id']);

    $wholesale = wholesale_info($id);

    if (empty($wholesale))

    {

        make_json_error($_LANG['wholesale_not_exist']);

    }

    $name = $wholesale['goods_name'];



    /* 删除记录 */

    $sql = "DELETE FROM " . $ecs->table('wholesale') .

            " WHERE act_id = '$id' LIMIT 1";

    $db->query($sql);



    /* 记日志 */

    admin_log($name, 'remove', 'wholesale');



    /* 清除缓存 */

    clear_cache_files();



    $url = 'wholesale.php?act=query&' . str_replace('act=remove', '', $_SERVER['QUERY_STRING']);



    ecs_header("Location: $url\n");

    exit;

}



/*------------------------------------------------------ */

//-- 批量操作

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'batch')

{

    /* 取得要操作的记录编号 */

    if (empty($_POST['checkboxes']))

    {

        sys_msg($_LANG['no_record_selected']);

    }

    else

    {

        /* 检查权限 */

        admin_priv('whole_sale');



        $ids = $_POST['checkboxes'];



        if (isset($_POST['drop']))

        {

            /* 删除记录 */

            $sql = "DELETE FROM " . $ecs->table('wholesale') .

                    " WHERE act_id " . db_create_in($ids);

            $db->query($sql);



            /* 记日志 */

            admin_log('', 'batch_remove', 'wholesale');



            /* 清除缓存 */

            clear_cache_files();



            $links[] = array('text' => $_LANG['back_wholesale_list'], 'href' => 'wholesale.php?act=list&' . list_link_postfix());

            sys_msg($_LANG['batch_drop_ok'], 0, $links);

        }

    }

}



/*------------------------------------------------------ */

//-- 修改排序

/*------------------------------------------------------ */

elseif ($_REQUEST['act'] == 'toggle_enabled')

{

    check_authz_json('whole_sale');



    $id  = intval($_POST['id']);

    $val = intval($_POST['val']);



    $sql = "UPDATE " . $ecs->table('wholesale') .

            " SET enabled = '$val'" .

            " WHERE act_id = '$id' LIMIT 1";

    $db->query($sql);



    make_json_result($val);

}



/*------------------------------------------------------ */

//-- 批量添加

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'batch_add')

{

    /* 检查权限 */

    admin_priv('whole_sale');

    $smarty->assign('form_action', 'batch_add_insert');



    /* 初始化、取得批发活动信息 */

    $wholesale = array(

        'act_id'        => 0,

        'goods_id'      => 0,

        'goods_name'    => $_LANG['pls_search_goods'],

        'enabled'       => '1',

        'price_list'    => array()

    );



    $wholesale['price_list'] = array(

        array(

            'attr'    => array(),

            'qp_list' => array(

                array('quantity' => 0, 'price' => 0)

            )

        )

    );

    $smarty->assign('wholesale', $wholesale);



    /* 取得用户等级 */

    $user_rank_list = array();

    $sql = "SELECT rank_id, rank_name FROM " . $ecs->table('user_rank') .

            " ORDER BY special_rank, min_points";

    $res = $db->query($sql);

    while ($rank = $db->fetchRow($res))

    {

        if (!empty($wholesale['rank_ids']) && strpos($wholesale['rank_ids'], $rank['rank_id']) !== false)

        {

            $rank['checked'] = 1;

        }

        $user_rank_list[] = $rank;

    }

    $smarty->assign('user_rank_list', $user_rank_list);



    $smarty->assign('cat_list', cat_list());

    $smarty->assign('brand_list',   get_brand_list());



    /* 显示模板 */

    $smarty->assign('ur_here', $_LANG['add_wholesale']);



    $href = 'wholesale.php?act=list';

    $smarty->assign('action_link', array('href' => $href, 'text' => $_LANG['wholesale_list']));

    assign_query_info();



    $smarty->display('wholesale_batch_info.htm');

}



/*------------------------------------------------------ */

//-- 批量添加入库

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'batch_add_insert')

{

    /* 检查权限 */

    admin_priv('whole_sale');



    /* 取得goods */

    $_POST['dst_goods_lists'] = array();

    if (!empty($_POST['goods_ids']))

    {

        $_POST['dst_goods_lists'] = explode(',', $_POST['goods_ids']);

    }

    if (!empty($_POST['dst_goods_lists']) && is_array($_POST['dst_goods_lists']))

    {

        foreach ($_POST['dst_goods_lists'] as $dst_key => $dst_goods)

        {

            $dst_goods = intval($dst_goods);

            if ($dst_goods == 0)

            {

                unset($_POST['dst_goods_lists'][$dst_key]);

            }

        }

    }

    else if (!empty($_POST['dst_goods_lists']))

    {

        $_POST['dst_goods_lists'] = array(intval($_POST['dst_goods_lists']));

    }

    else

    {

        sys_msg($_LANG['pls_search_goods']);

    }

    $dst_goods = implode(',', $_POST['dst_goods_lists']);





    $sql = "SELECT goods_name, goods_id FROM " . $ecs->table('goods') .

            " WHERE goods_id IN ($dst_goods)";

    $goods_name = $db->getAll($sql);

    if (!empty($goods_name))

    {

        $goods_rebulid = array();

        foreach ($goods_name as $goods_value)

        {

            $goods_rebulid[$goods_value['goods_id']] = addslashes($goods_value['goods_name']);

        }

    }

    if (empty($goods_rebulid))

    {

        sys_msg('invalid goods id: All');

    }



    /* 会员等级 */

    if (!isset($_POST['rank_id']))

    {

        sys_msg($_LANG['pls_set_user_rank']);

    }



    /* 同一个商品,会员等级不能重叠 */

    /* 一个批发方案只有一个商品 一个产品最多支持count(rank_id)个批发方案 */

    if (isset($_POST['rank_id']))

    {

        $dst_res = array();

        foreach ($_POST['rank_id'] as $rank_id)

        {

            $sql = "SELECT COUNT(act_id) AS num, goods_id FROM " . $ecs->table('wholesale') .

                    " WHERE goods_id IN ($dst_goods) " .

                    " AND CONCAT(',', rank_ids, ',') LIKE CONCAT('%,', '$rank_id', ',%')

                      GROUP BY goods_id";

            if($dst_res = $db->getAll($sql))

            {

                foreach ($dst_res as $dst)

                {

                    $key = array_search($dst['goods_id'], $_POST['dst_goods_lists']);

                    if ($key != null && $key !== false)

                    {

                        unset($_POST['dst_goods_lists'][$key]);

                    }

                }

            }

        }

    }

    if (empty($_POST['dst_goods_lists']))

    {

        sys_msg($_LANG['pls_search_goods']);

    }



    /* 提交值 */

    $wholesale = array(

            'rank_ids'      => isset($_POST['rank_id']) ? join(',', $_POST['rank_id']) : '',

            'prices'        => '',

            'enabled'       => empty($_POST['enabled']) ? 0 : 1

    );



    foreach ($_POST['dst_goods_lists'] as $goods_value)

    {

        $_wholesale = $wholesale;

        $_wholesale['goods_id'] = $goods_value;

        $_wholesale['goods_name'] = $goods_rebulid[$goods_value];



        /* 保存数据 */

        $db->autoExecute($ecs->table('wholesale'), $_wholesale, 'INSERT');



        /* 记日志 */

        admin_log($goods_rebulid[$goods_value], 'add', 'wholesale');

    }



    /* 清除缓存 */

    clear_cache_files();



    /* 提示信息 */

    $links = array(

        array('href' => 'wholesale.php?act=list', 'text' => $_LANG['back_wholesale_list']),

        array('href' => 'wholesale.php?act=add', 'text' => $_LANG['continue_add_wholesale'])

    );

    sys_msg($_LANG['add_wholesale_ok'], 0, $links);

}



/*------------------------------------------------------ */

//-- 添加、编辑

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'add' || $_REQUEST['act'] == 'edit')

{

    /* 检查权限 */

    admin_priv('whole_sale');



    /* 是否添加 */

    $is_add = $_REQUEST['act'] == 'add';

    $smarty->assign('form_action', $is_add ? 'insert' : 'update');



    /* 初始化、取得批发活动信息 */

    if ($is_add)

    {

        $wholesale = array(

            'act_id'        => 0,

            'goods_id'      => 0,

            'goods_name'    => $_LANG['pls_search_goods'],

            'enabled'       => '1',

            'price_list'    => array()

        );

    }

    else

    {

        if (empty($_GET['id']))

        {

            sys_msg('invalid param');

        }

        $id = intval($_GET['id']);

        $wholesale = wholesale_info($id);

        if (empty($wholesale))

        {

            sys_msg($_LANG['wholesale_not_exist']);

        }



        /* 取得商品属性 */

        $smarty->assign('attr_list', get_goods_attr($wholesale['goods_id']));

    }

    if (empty($wholesale['price_list']))

    {

        $wholesale['price_list'] = array(

            array(

                'attr'    => array(),

                'qp_list' => array(

                    array('quantity' => 0, 'price' => 0)

                )

            )

        );

    }

    $smarty->assign('wholesale', $wholesale);



    /* 取得用户等级 */

    $user_rank_list = array();

    $sql = "SELECT rank_id, rank_name FROM " . $ecs->table('user_rank') .

            " ORDER BY special_rank, min_points";

    $res = $db->query($sql);

    while ($rank = $db->fetchRow($res))

    {

        if (!empty($wholesale['rank_ids']) && strpos($wholesale['rank_ids'], $rank['rank_id']) !== false)

        {

            $rank['checked'] = 1;

        }

        $user_rank_list[] = $rank;

    }

    $smarty->assign('user_rank_list', $user_rank_list);



    $smarty->assign('cat_list', cat_list());

    $smarty->assign('brand_list',   get_brand_list());



    /* 显示模板 */

    if ($is_add)

    {

        $smarty->assign('ur_here', $_LANG['add_wholesale']);

    }

    else

    {

        $smarty->assign('ur_here', $_LANG['edit_wholesale']);

    }

    $href = 'wholesale.php?act=list';

    if (!$is_add)

    {

        $href .= '&' . list_link_postfix();

    }

    $smarty->assign('action_link', array('href' => $href, 'text' => $_LANG['wholesale_list']));

    assign_query_info();

    $smarty->display('wholesale_info.htm');

}



/*------------------------------------------------------ */

//-- 添加、编辑后提交

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'insert' || $_REQUEST['act'] == 'update')

{

    /* 检查权限 */

    admin_priv('whole_sale');



    /* 是否添加 */

    $is_add = $_REQUEST['act'] == 'insert';



    /* 取得goods */

    $goods_id = intval($_POST['goods_id']);

    if ($goods_id <= 0)

    {

        sys_msg($_LANG['pls_search_goods']);

    }

    $sql = "SELECT goods_name FROM " . $ecs->table('goods') .

            " WHERE goods_id = '$goods_id'";

    $goods_name = $db->getOne($sql);

    $goods_name = addslashes($goods_name);

    if (is_null($goods_name))

    {

        sys_msg('invalid goods id: ' . $goods_id);

    }



    /* 会员等级 */

    if (!isset($_POST['rank_id']))

    {

        sys_msg($_LANG['pls_set_user_rank']);

    }



    /* 同一个商品,会员等级不能重叠 */

    if (isset($_POST['rank_id']))

    {

        foreach ($_POST['rank_id'] as $rank_id)

        {

            $sql = "SELECT COUNT(*) FROM " . $ecs->table('wholesale') .

                    " WHERE goods_id = '$goods_id' " .

                    " AND CONCAT(',', rank_ids, ',') LIKE CONCAT('%,', '$rank_id', ',%')";

            if (!$is_add)

            {

                $sql .= " AND act_id <> '$_POST[id]'";

            }

            if ($db->getOne($sql) > 0)

            {

                sys_msg($_LANG['user_rank_exist']);

            }

        }

    }



    /* 取得goods_attr */

    $sql = "SELECT a.attr_id " .

            "FROM " . $ecs->table('goods') . " AS g, " . $ecs->table('attribute') . " AS a " .

            "WHERE g.goods_id = '$goods_id' " .

            "AND g.goods_type = a.cat_id " .

            "AND a.attr_type = 1";

    $attr_id_list = $db->getCol($sql);



    /* 取得属性、数量、价格信息 */

    $prices = array();

    $key_list = array_keys($_POST['quantity']);



    foreach ($key_list as $key)

    {

        $attr = array();

        foreach ($attr_id_list as $attr_id)

        {

            if($_POST['attr_' . $attr_id][$key]!=0)

            {

                $attr[$attr_id] = $_POST['attr_' . $attr_id][$key];

            }

        }



        //判断商品的货品表是否存在此规格的货品

        $attr_error = false;

        if (!empty($attr))

        {

            $_attr = $attr;

            ksort($_attr);

            $goods_attr = implode('|', $_attr);



            $sql = "SELECT product_id FROM " . $ecs->table('products') . " WHERE goods_attr = '$goods_attr' AND goods_id = '$goods_id'";

            if (!$db->getOne($sql))

            {

                $attr_error = true;

                continue;

            }

        }



        //

        $qp_list = array();

        foreach ($_POST['quantity'][$key] as $index => $quantity)

        {

            $quantity = intval($quantity);

            $price    = floatval($_POST['price'][$key][$index]);

            /* 数量或价格为0或者已经存在的数量忽略 */

            if ($quantity <= 0 || $price <= 0 || isset($qp_list[$quantity]))

            {

                continue;

            }

            $qp_list[$quantity] = $price;

        }

        ksort($qp_list);



        $arranged_qp_list = array();

        foreach ($qp_list as $quantity => $price)

        {

            $arranged_qp_list[] = array('quantity' => $quantity, 'price' => $price);

        }



        /* 只记录有数量价格的数据 */

        if ($arranged_qp_list)

        {

            $prices[] = array('attr' => $attr, 'qp_list' => $arranged_qp_list);

        }

    }



    /* 提交值 */

    $wholesale = array(

        'act_id'        => intval($_POST['id']),

        'goods_id'      => $goods_id,

        'goods_name'    => $goods_name,

        'rank_ids'      => isset($_POST['rank_id']) ? join(',', $_POST['rank_id']) : '',

        'prices'        => serialize($prices),

        'enabled'       => empty($_POST['enabled']) ? 0 : 1

    );



    /* 保存数据 */

    if ($is_add)

    {

        $db->autoExecute($ecs->table('wholesale'), $wholesale, 'INSERT');

        $wholesale['act_id'] = $db->insert_id();

    }

    else

    {

        $db->autoExecute($ecs->table('wholesale'), $wholesale, 'UPDATE', "act_id = '$wholesale[act_id]'");

    }



    /* 记日志 */

    if ($is_add)

    {

        admin_log($wholesale['goods_name'], 'add', 'wholesale');

    }

    else

    {

        admin_log($wholesale['goods_name'], 'edit', 'wholesale');

    }



    /* 清除缓存 */

    clear_cache_files();



    /* 提示信息 */

    if ($attr_error)

    {

        $links = array(

            array('href' => 'wholesale.php?act=list', 'text' => $_LANG['back_wholesale_list'])

        );

        sys_msg(sprintf($_LANG['save_wholesale_falid'], $wholesale['goods_name']), 1, $links);

    }



    if ($is_add)

    {

        $links = array(

            array('href' => 'wholesale.php?act=add', 'text' => $_LANG['continue_add_wholesale']),

            array('href' => 'wholesale.php?act=list', 'text' => $_LANG['back_wholesale_list'])

        );

        sys_msg($_LANG['add_wholesale_ok'], 0, $links);

    }

    else

    {

        $links = array(

            array('href' => 'wholesale.php?act=list&' . list_link_postfix(), 'text' => $_LANG['back_wholesale_list'])

        );

        sys_msg($_LANG['edit_wholesale_ok'], 0, $links);

    }

}



/*------------------------------------------------------ */

//-- 搜索商品

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'search_goods')

{

    check_authz_json('whole_sale');



    include_once(ROOT_PATH . 'include/cls_json.php');



    $json   = new JSON;

    $filter = $json->decode($_GET['JSON']);

    $arr    = get_goods_list($filter);

    if (empty($arr))

    {

        $arr[0] = array(

            'goods_id'   => 0,

            'goods_name' => $_LANG['search_result_empty']

        );

    }



    make_json_result($arr);

}



/*------------------------------------------------------ */

//-- 取得商品信息

/*------------------------------------------------------ */



elseif ($_REQUEST['act'] == 'get_goods_info')

{

    include_once(ROOT_PATH . 'include/cls_json.php');

    $json = new JSON();



    $goods_id = intval($_REQUEST['goods_id']);

    $goods_attr_list = array_values(get_goods_attr($goods_id));



    // 将数组中的 goods_attr_list 元素下的元素的数字下标转换成字符串下标

    if (!empty($goods_attr_list))

    {

        foreach ($goods_attr_list as $goods_attr_key => $goods_attr_value)

        {

            if (isset($goods_attr_value['goods_attr_list']) && !empty($goods_attr_value['goods_attr_list']))

            {

                foreach ($goods_attr_value['goods_attr_list'] as $key => $value)

                {

                    $goods_attr_list[$goods_attr_key]['goods_attr_list']['c' . $key] = $value;

                    unset($goods_attr_list[$goods_attr_key]['goods_attr_list'][$key]);

                }

            }

        }

    }



    echo $json->encode($goods_attr_list);

}



/*

 * 取得批发活动列表

 * @return   array

 */

function wholesale_list()

{

    /* 查询会员等级 */

    $rank_list = array();

    $sql = "SELECT rank_id, rank_name FROM " . $GLOBALS['ecs']->table('user_rank');

    $res = $GLOBALS['db']->query($sql);

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

        $rank_list[$row['rank_id']] = $row['rank_name'];

    }



    $result = get_filter();

    if ($result === false)

    {

        /* 过滤条件 */

        $filter['keyword']    = empty($_REQUEST['keyword']) ? '' : trim($_REQUEST['keyword']);

        if (isset($_REQUEST['is_ajax']) && $_REQUEST['is_ajax'] == 1)

        {

            $filter['keyword'] = json_str_iconv($filter['keyword']);

        }

        $filter['sort_by']    = empty($_REQUEST['sort_by']) ? 'act_id' : trim($_REQUEST['sort_by']);

        $filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);



        $where = "";

        if (!empty($filter['keyword']))

        {

            $where .= " AND goods_name LIKE '%" . mysql_like_quote($filter['keyword']) . "%'";

        }



        $sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('wholesale') .

                " WHERE 1 $where";

        $filter['record_count'] = $GLOBALS['db']->getOne($sql);



        /* 分页大小 */

        $filter = page_and_size($filter);



        /* 查询 */

        $sql = "SELECT * ".

                "FROM " . $GLOBALS['ecs']->table('wholesale') .

                " WHERE 1 $where ".

                " ORDER BY $filter[sort_by] $filter[sort_order] ".

                " LIMIT ". $filter['start'] .", $filter[page_size]";



        $filter['keyword'] = stripslashes($filter['keyword']);

        set_filter($filter, $sql);

    }

    else

    {

        $sql    = $result['sql'];

        $filter = $result['filter'];

    }

    $res = $GLOBALS['db']->query($sql);



    $list = array();

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

        $rank_name_list = array();

        if ($row['rank_ids'])

        {

            $rank_id_list = explode(',', $row['rank_ids']);

            foreach ($rank_id_list as $id)

            {

                if (isset($rank_list[$id]))

                {

                    $rank_name_list[] = $rank_list[$id];

                }

            }

        }

        $row['rank_names'] = join(',', $rank_name_list);

        $row['price_list'] = unserialize($row['prices']);



        $list[] = $row;

    }



    return array('item' => $list, 'filter' => $filter, 'page_count' => $filter['page_count'], 'record_count' => $filter['record_count']);

}



?>