Files
OMS/app/ome/controller/admin/crm/gift.php
2025-12-28 23:13:25 +08:00

873 lines
33 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright © ShopeX http://www.shopex.cn. All rights reserved.
* See LICENSE file for license details.
*/
/**
* User: jintao
* Date: 2016/3/18
*/
class ome_ctl_admin_crm_gift extends desktop_controller
{
/**
* _views
* @return mixed 返回值
*/
public function _views()
{
if ($_GET['act'] == 'rule') {
$nowTime = time();
$ruleObj = $this->app->model('gift_rule');
$base_filter = array();
$sub_menu = array(
0 => array('label' => app::get('base')->_('全部'), 'filter' => $base_filter, 'optional' => false),
1 => array('label' => app::get('base')->_('开启'), 'filter' => array('status' => '1'), 'optional' => false),
2 => array('label' => app::get('base')->_('关闭'), 'filter' => array('status' => '0'), 'optional' => false),
3 => array('label' => app::get('base')->_('进行中'), 'filter' => array('status' => '1', 'start_time|sthan' => $nowTime, 'end_time|bthan' => $nowTime), 'optional' => false),
4 => array('label' => app::get('base')->_('未开始'), 'filter' => array('start_time|than' => $nowTime), 'optional' => false),
5 => array('label' => app::get('base')->_('已过期'), 'filter' => array('end_time|lthan' => $nowTime), 'optional' => false),
);
$i = 0;
foreach ($sub_menu as $k => $v) {
if (!IS_NULL($v['filter'])) {
$v['filter'] = array_merge($v['filter'], $base_filter);
}
$sub_menu[$k]['filter'] = $v['filter'] ? $v['filter'] : null;
$sub_menu[$k]['addon'] = $ruleObj->count($v['filter']);
$sub_menu[$k]['href'] = 'index.php?app=' . $_GET['app'] . '&ctl=' . $_GET['ctl'] . '&act=' . $_GET['act'] . '&view=' . $i++;
}
return $sub_menu;
}
}
/**
* rule
* @param mixed $act act
* @return mixed 返回值
*/
public function rule($act)
{
$this->finder('ome_mdl_gift_rule', array(
'title' => '促销规则列表',
'actions' => array(
array(
'label' => '添加促销规则',
'href' => 'index.php?app=ome&ctl=admin_crm_gift&act=addAndEdit&p[0]=add&shop_id=' . $_GET['shop_id'] . '&view=' . $view,
),
array(
'label' => '删除',
'submit' => 'index.php?app=ome&ctl=admin_crm_gift&act=deleteRule&finder_id=' . $_GET['finder_id'],
'confirm' => '是否确认删除?',
'target' => 'refresh',
),
array(
'label' => '促销规则货品导入模板',
'href' => 'index.php?app=ome&ctl=admin_crm_gift&act=exportTemplate',
'target' => '_blank',
),
),
'orderBy' => 'status DESC,priority DESC,id DESC',
'use_buildin_recycle' => false,
));
}
/**
* 新增/编辑页面显示
*/
public function addAndEdit()
{
$sales_material_obj = app::get('material')->model('sales_material');
$shopObj = app::get('ome')->model('shop');
$shop_id = $_GET['shop_id'];
$id = intval($_GET['id']);
//$shops_name = $shopObj->getList('shop_id,name',array('node_id|noequal'=>''));
$shops_name = $shopObj->getList('shop_id,name', array('s_type' => 1));
$shops = $shops_name;
$rule = array(
'start_time' => strtotime(date('Y-m-d')),
'status' => 1,
'shop_id' => $shop_id,
'time_type' => 'pay_time',
'lv_id' => 0,
'filter_arr' => array(
'order_amount' => array(
'type' => 0,
),
'buy_goods' => array(
'type' => 0,
),
),
);
$rs = app::get('eccommon')->model('regions')->getList('local_name', array('region_grade' => 1, 'region_id|sthan' => 3320));
$provinces = $rs;
//订单类型
$order_types = array();
$order_types[] = array("type" => "normal", "name" => "普通订单");
$order_types[] = array("type" => "presale", "name" => "预售订单");
$rule_obj = $this->app->model('gift_rule');
//修改规则信息
$goods_name = '';
if ($id > 0) {
$rule = $rule_obj->dump($id);
$rule['filter_arr'] = json_decode($rule['filter_arr'], true);
$goods_bn = $rule['filter_arr']['buy_goods']['goods_bn'];
$count = count($goods_bn);
if (!is_array($goods_bn)) {
$goods_bn = array($goods_bn, '', '', '', '', '', '', '', '', '');
}
$rule['filter_arr']['buy_goods']['goods_bn'] = $goods_bn;
if ($rule['shop_ids']) {
$rule['shop_ids'] = explode(',', $rule['shop_ids']);
} else {
$rule['shop_ids'] = array($rule['shop_id']);
}
foreach ($shops as $ks => &$vs) {
if (in_array($vs['shop_id'], $rule['shop_ids'])) {
$vs['checked'] = 'true';
} else {
$vs['checked'] = 'false';
}
}
if (isset($rule['filter_arr']['province'])) {
foreach ($provinces as $keys => &$vals) {
if (in_array($vals['local_name'], $rule['filter_arr']['province'])) {
$vals['checked'] = 'true';
} else {
$vals['checked'] = 'false';
}
}
}
if (isset($rule['filter_arr']['order_type'])) {
foreach ($order_types as $keys_ot => &$vals_ot) {
if (in_array($vals_ot['type'], $rule['filter_arr']['order_type'])) {
$vals_ot['checked'] = 'true';
} else {
$vals_ot['checked'] = 'false';
}
}
unset($vals_ot);
}
if (is_array($rule['filter_arr']['member_uname'])) {
$rule['filter_arr']['member_uname'] = implode(',', $rule['filter_arr']['member_uname']);
}
$sm_infos = array();
foreach ($rule['filter_arr']['buy_goods']['goods_bn'] as $kes => $ves) {
$m_objs = $sales_material_obj->dump(array('sales_material_bn' => $ves), 'sm_id');
$sm_infos[] = $m_objs['sm_id'];
}
$this->pagedata['pgid'] = implode(',', $sm_infos);
$this->pagedata['replacehtml'] = <<<EOF
<div id='hand-selected-product'>已选择了{$count}个销售物料,<a href='javascript:void(0);' onclick='product_selected_show();'>查看选中的销售物料.</a></div>
EOF;
} else {
$rule['filter_arr']['buy_goods']['goods_bn'] = array('', '', '', '', '', '', '', '', '', '');
}
//已经设定的赠品组合
$gifts = array();
if ($rule['gift_ids']) {
$gift_ids = explode(',', $rule['gift_ids']);
$gift_num = explode(',', $rule['gift_num']);
foreach ($gift_ids as $k => $v) {
$gift_id_num[$v] = $gift_num[$k];
}
$gifts = app::get('crm')->model('gift')->getList('*,"checked" as checked', array('gift_id' => $gift_ids));
foreach ($gifts as $k => $v) {
$gifts[$k]['gift_name'] = mb_substr($v['gift_name'], 0, 22, 'utf-8');
$gifts[$k]['num'] = $gift_id_num[$v['gift_id']];
}
} else {
//$gifts = $this->app->model('shop_gift')->getList('*',array(),0,5);
}
$rule['start_time_hour'] = 0;
if ($rule['start_time']) {
$rule['start_time_hour'] = (int) date('H', $rule['start_time']);
}
$rule['end_time_hour'] = 0;
if ($rule['end_time']) {
$rule['end_time_hour'] = (int) date('H', $rule['end_time']);
}
$this->pagedata['conf_hours'] = array_merge(array('00', '01', '02', '03', '04', '05', '06', '07', '08', '09'), range(10, 23));
$this->pagedata['order_types'] = $order_types;
$this->pagedata['provinces'] = $provinces;
$this->pagedata['goods_name'] = $goods_name;
$this->pagedata['shops'] = $shops;
$this->pagedata['gifts'] = $gifts;
$this->pagedata['rule'] = $rule;
$this->pagedata['view'] = $_GET['view'];
$this->pagedata['beigin_time'] = date("Y-m-d", time());
$this->pagedata['end_time'] = date('Y-m-d', strtotime('+15 days'));
$this->page('admin/gift/rule_edit.html');
}
/**
* logs
* @return mixed 返回值
*/
public function logs()
{
$actions = array();
$base_filter = array();
$this->finder('ome_mdl_gift_logs', array(
'title' => '赠品发送记录',
'actions' => $actions,
'base_filter' => $base_filter,
'orderBy' => 'id DESC',
'use_buildin_recycle' => false,
'use_buildin_export' => true,
'use_buildin_filter' => true,
'use_view_tab' => false,
));
}
//赠品设置操作和显示
/**
* 设置gift
* @return mixed 返回操作结果
*/
public function setgift()
{
//判断是否保存操作
if (isset($_POST['set_gift_erp'])) {
$set_gift_taobao = $set_gift_erp = 'on';
//淘宝赠品启用状态
if (empty($_POST['set_gift_taobao']) || $_POST['set_gift_taobao'] == 'off') {
$set_gift_taobao = 'off';
app::get('ome')->setConf('ome.preprocess.tbgift', 'false');
} else {
app::get('ome')->setConf('ome.preprocess.tbgift', 'true');
}
//本地赠品启用状态
if (empty($_POST['set_gift_erp']) || $_POST['set_gift_erp'] == 'off') {
$set_gift_erp = 'off';
$this->app->setConf('gift.on_off.cfg', 'off');
} else {
$this->app->setConf('gift.on_off.cfg', 'on');
}
//本地赠品启用状态
if (empty($_POST['gift_order_create_deal'])) {
$this->app->setConf('gift.order.create.deal', 'false');
} else {
$this->app->setConf('gift.order.create.deal', 'true');
}
//本地赠品的出错处理
if (empty($_POST['erp_gift_error_setting']) || $_POST['erp_gift_error_setting'] == 'off') {
//关闭出错,审单发货
$this->app->setConf('gift.error.ways', 'off');
} else {
$this->app->setConf('gift.error.ways', 'on');
}
$arr = array(
'set_gift_taobao' => $set_gift_taobao,
'set_gift_erp' => $set_gift_erp,
'op_user' => kernel::single('desktop_user')->get_name(),
'create_time' => time(),
);
$url = 'index.php?app=ome&ctl=admin_crm_gift&act=setgift';
$this->begin($url);
$this->app->model('gift_set_logs')->insert($arr);
$this->end(true, '保存成功');
}
//是否启用淘宝赠品(兼容很早以前的)
$set_gift_taobao = 'off';
$taobao_gift_setting = app::get('ome')->getConf('ome.preprocess.tbgift');
if ($taobao_gift_setting == 'true') {
$set_gift_taobao = 'on';
}
$this->pagedata['set_gift_taobao'] = $set_gift_taobao;
$this->pagedata['set_gift_erp'] = $this->app->getConf('gift.on_off.cfg');
$this->pagedata['erp_gift_error_setting'] = $this->app->getConf('gift.error.ways');
$this->pagedata['gift_order_create_deal'] = $this->app->getConf('gift.order.create.deal');
$extra_view = array('ome' => 'admin/gift/set.html');
$actions = array();
$base_filter = array();
$this->finder('ome_mdl_gift_set_logs', array(
'title' => '赠品设置',
'actions' => $actions,
'base_filter' => $base_filter,
'orderBy' => 'id DESC',
'use_buildin_recycle' => false,
'use_buildin_filter' => false,
'use_view_tab' => false,
'top_extra_view' => $extra_view,
'use_buildin_setcol' => false,
'use_buildin_refresh' => false,
));
}
/**
* 规则保存
*/
public function save_rule()
{
$this->begin('index.php?app=ome&ctl=admin_crm_gift&act=rule');
$gift_rule_obj = app::get('ome')->model('gift_rule');
$sales_material_obj = app::get('material')->model('sales_material');
$data = $_POST;
$data['filter_arr'] = $_POST['filter_arr'];
$data['gift_ids'] = $_POST['gift_id'];
$data['gift_num'] = $_POST['gift_num'];
$data['shop_ids'] = $_POST['shop_ids'];
$data['start_time'] = strtotime($_POST['start_time'] . ' ' . $_POST['start_time_hour'] . ':00:00');
$data['end_time'] = strtotime($_POST['end_time'] . ' ' . $_POST['end_time_hour'] . ':00:00');
$data['modified_time'] = time();
if (is_array($data['shop_ids']) && count($data['shop_ids']) > 10) {
$this->end(false, '最多只能选择十个店铺');
}
$data['shop_id'] = $data['shop_ids'][0];
$data['shop_ids'] = empty($data['shop_ids']) ? '' : implode(',', $data['shop_ids']);
//if($data['filter_arr']['buy_goods']['goods_bn']){
// foreach($data['filter_arr']['buy_goods']['goods_bn'] as $v){
// $v = strtoupper($v);
// }
//}
$sales_material_bns = array();
if (!empty($data['sm_id'])) {
foreach ($data['sm_id'] as $ka => $va) {
$sales_material_bns[] = $sales_material_obj->dump(array('sm_id' => $va), 'sales_material_bn');
}
}
$data['filter_arr']['buy_goods']['goods_bn'] = array();
foreach ($sales_material_bns as $k => $v) {
$data['filter_arr']['buy_goods']['goods_bn'][] = $v['sales_material_bn'];
}
//添加的指定会员
if ($data['filter_arr']['member_uname']) {
$unameStr = preg_replace("/(\n)|(\s)|(\t)|(\')|(')|()/", ',', $data['filter_arr']['member_uname']);
$memberUname = explode(',', $unameStr);
$data['filter_arr']['member_uname'] = $memberUname;
}
$data['filter_arr'] = json_encode($data['filter_arr']);
if (!$data['id']) {
$data['create_time'] = time();
}
//清理gift_num
foreach ($data['gift_num'] as $k => $v) {
if (!in_array($k, $data['gift_ids'])) {
unset($data['gift_num'][$k]);
}
}
$data['gift_ids'] = implode(',', $data['gift_ids']);
$data['gift_num'] = implode(',', $data['gift_num']);
if ($data['id']) {
// 数据快照
$rule_detail = $gift_rule_obj->dump($data['id'], '*');
$opObj = app::get('ome')->model('operation_log');
$opObj->write_log('crm_edit@ome', $data['id'], serialize($rule_detail));
unset($rule_detail);
}
if ($gift_rule_obj->save($data)) {
$this->end(true, '添加成功');
} else {
$this->end(false, '添加失败');
}
}
//复制赠品规则
/**
* copy_rule
* @return mixed 返回值
*/
public function copy_rule()
{
$mdl_ome_gift_rule = app::get('ome')->model('gift_rule');
$copy_data = $mdl_ome_gift_rule->dump($_GET["id"]);
unset($copy_data["id"]);
$time_str = time();
$copy_data["create_time"] = $time_str;
$copy_data["modified_time"] = $time_str;
$mdl_ome_gift_rule->insert($copy_data);
echo "<script>parent.MessageBox.success('命令已经被成功发送!!');parent.finderGroup['{$_GET[finder_id]}'].refresh();</script>";
exit;
}
/**
* priority
* @param mixed $id ID
* @return mixed 返回值
*/
public function priority($id = 0)
{
if ($_POST) {
$this->begin("index.php?app=ome&ctl=admin_crm_gift&act=rule");
$shopGiftObj = app::get('ome')->model('gift_rule');
$data = $_POST;
$data['priority'] = intval($_POST['priority']);
$data['modified_time'] = time();
if ($shopGiftObj->save($data)) {
$this->end(true, '添加成功');
} else {
$this->end(false, '添加失败');
}
}
//修改规则信息
if ($id > 0) {
$rule = $this->app->model('gift_rule')->dump($id);
$rule['start_time'] = date("Y-m-d", $rule['start_time']);
$rule['end_time'] = date("Y-m-d", $rule['end_time']);
}
$this->pagedata['rule'] = $rule;
$this->pagedata['view'] = $_GET['view'];
$this->display('admin/gift/priority.html');
}
/**
* object_rows
* @return mixed 返回值
*/
public function object_rows()
{
if ($_POST['data']) {
if ($_POST['app_id']) {
$app = app::get($_POST['app_id']);
} else {
$app = $this->app;
}
$obj = $app->model($_POST['object']);
$schema = $obj->get_schema();
$textColumn = $_POST['textcol'] ? $_POST['textcol'] : $schema['textColumn'];
$textColumn = explode(',', $textColumn);
$_textcol = $textColumn;
$textColumn = $textColumn[0];
$keycol = $_POST['key'] ? $_POST['key'] : $schema['idColumn'];
//统一做掉了。
if ($_POST['data'][0] === '_ALL_') {
if (isset($_POST['filter']['advance']) && $_POST['filter']['advance']) {
$arr_filters = explode(',', $_POST['filter']['advance']);
foreach ($arr_filters as $obj_filter) {
$arr = explode('=', $obj_filter);
$_POST['filter'][$arr[0]] = $arr[1];
}
unset($_POST['filter']['advance']);
}
$all_filter = !empty($obj->__all_filter) ? $obj->__all_filter : array();
$filter = !empty($_POST['filter']) ? $_POST['filter'] : $all_filter;
$arr_list = $obj->getList($keycol, $filter);
$_POST['data'] = array_map('current', $arr_list);
}
$items = $obj->getList('*', array($keycol => $_POST['data']));
if($_POST['get_sales_material']==1){
echo json_encode($items);
exit();
}
$name = $items[0][$textColumn];
if ($_POST['type'] == 'radio') {
if (strpos($textColumn, '@') !== false) {
list($field, $table, $app_) = explode('@', $textColumn);
if ($app_) {
$app = app::get($app_);
}
$mdl = $app->model($table);
$schema = $mdl->get_schema();
$row = $mdl->getList('*', array($schema['idColumn'] => $items[0][$keycol]));
$name = $row[0][$field];
}
echo json_encode(array('id' => $items[0][$keycol], 'name' => $name));
exit;
}
$this->pagedata['_input'] = array('items' => $items,
'idcol' => $schema['idColumn'],
'keycol' => $keycol,
'textcol' => $textColumn,
'_textcol' => $_textcol,
'name' => $_POST['name'],
);
$this->pagedata['_input']['view_app'] = 'desktop';
$this->pagedata['_input']['view'] = $_POST['view'];
if ($_POST['view_app']) {
$this->pagedata['_input']['view_app'] = $_POST['view_app'];
}
if (strpos($_POST['view'], ':') !== false) {
list($view_app, $view) = explode(':', $_POST['view']);
$this->pagedata['_input']['view_app'] = $view_app;
$this->pagedata['_input']['view'] = $view;
}
$this->display('admin/gift/input-row.html');
}
}
/**
* 查找er_common
* @return mixed 返回结果
*/
public function finder_common()
{
if(isset($_GET['is_bind'])){
$base_filter['is_bind']=$_GET['is_bind'];
}
$params = array(
'title' => app::get('desktop')->_('列表'),
'use_buildin_new_dialog' => false,
'use_buildin_set_tag' => false,
'use_buildin_recycle' => false,
'use_buildin_export' => false,
'use_buildin_import' => false,
'use_buildin_filter' => true,
'use_buildin_setcol' => true,
'use_buildin_refresh' => true,
'finder_aliasname' => 'finder_common',
'alertpage_finder' => true,
'use_buildin_tagedit' => false,
'base_filter' => $base_filter,
);
//人工预占库存根据branch_id显示商品列表用
if ($_GET['app_id'] == "material" && $_GET["object"] == "basic_material" && $_GET["name"] == "bm_id") {
$params["base_filter"] = array("bm_id" => "-1");
if (isset($_GET["filter"]["branch_id"]) && intval($_GET["filter"]["branch_id"]) > 0) {
$params["base_filter"] = [
'filter_sql' => ' bm_id IN(SELECT product_id FROM sdb_ome_branch_product WHERE branch_id = "'.$_GET["filter"]["branch_id"].'")',
];
}
}
if ($_GET['findercount']) {
$params['object_method']['count'] = $_GET['findercount'];
}
if ($_GET['findergetlist']) {
$params['object_method']['getlist'] = $_GET['findergetlist'];
}
$params['slaes_material_type'] = $_GET['slaes_material_type'];
if (substr($_GET['name'], 0, 7) == 'adjunct') {
$params['orderBy'] = 'goods_id desc';
}
$this->finder($_GET['app_id'] . '_mdl_' . $_GET['object'], $params);
}
/**
* @description 显示选用的货品
* @access public
* @param void
* @return void
*/
public function showProducts()
{
$salesMaterialObj = app::get('material')->model('sales_material');
$sm_id = kernel::single('base_component_request')->get_post('sm_id');
if ($sm_id) {
//前端店铺_规则应用传值
if (!is_array($sm_id)) {
$sm_id = explode(',', $sm_id);
}
$this->pagedata['_input'] = array(
'name' => 'sm_id',
'idcol' => 'sm_id',
'_textcol' => 'sales_material_name',
);
$list = $salesMaterialObj->getList('sm_id,sales_material_name,sales_material_bn', array('sm_id' => $sm_id, 'sales_material_type|noequal' => 3), 0, -1, 'sm_id asc');
$this->pagedata['_input']['items'] = $list;
}
$this->display('admin/gift/show_products.html');
}
/**
* @description AJax加载选择销售物料模板
* @param $id int
* @param $shop_ids String
* @return void
*/
public function ajax_sales_material_html($id = '', $shop_ids = '')
{
#规则应用详细信息
if ($id) {
$sales_material_obj = app::get('material')->model('sales_material');
$gift_obj = app::get('ome')->model('gift_rule');
$data = $gift_obj->dump(array('id' => $id));
$gift_rule = json_decode($data['filter_arr'], true);
$sm_infos = array();
foreach ($gift_rule['buy_goods']['goods_bn'] as $ks => $vs) {
$m_objs = $sales_material_obj->dump(array('sales_material_bn' => $vs));
$sm_infos[] = $m_objs['sm_id'];
}
$googs_bns = implode(',', $sm_infos);
# 获取ID范围
if ($googs_bns && $googs_bns != '_ALL_') {
$data['pgid'] = explode(',', $googs_bns);
$count = count($data['pgid']);
$this->pagedata['replacehtml'] = <<<EOF
<div id='hand-selected-product'>已选择了{$count}个销售物料,<a href='javascript:void(0);' onclick='product_selected_show();'>查看选中的销售物料.</a></div>
EOF;
}
}
#店铺
$shop_id = array();
if ($shop_ids && $shop_ids != '_ALL_') {
$shop_id_list = explode(',', $shop_ids);
foreach ($shop_id_list as $key => $val) {
if (empty($shop_id_list)) {
unset($shop_id_list[$key]);
}
}
$shop_id = $this->app->model('shop')->getList('shop_id', array('shop_id' => $shop_id_list));
$shop_id = array_map('current', $shop_id);
}
$this->pagedata['data'] = $data;
$this->pagedata['pgid'] = $googs_bns;
$this->pagedata['in_shop_id'] = ($shop_id ? implode(',', $shop_id) . ',_ALL_' : '');
$this->display('admin/gift/select_sales_material.html');
}
/**
* show_operation
* @return mixed 返回值
*/
public function show_operation()
{
$log_id = $_GET['log_id'];
$id = $_GET['id'];
$sales_material_obj = app::get('material')->model('sales_material');
$shopObj = app::get('ome')->model('shop');
$logObj = app::get('ome')->model('operation_log');
$operation_history = $logObj->read_log(array('obj_id' => $id, 'obj_type' => 'gift_rule@ome', 'log_id' => $log_id), 0, 1);
$operation_history = current($operation_history);
$region_detail = $operation_history['memo'];
$rule = unserialize($region_detail);
$shops_name = $shopObj->getList('shop_id,name');
$shops = $shops_name;
$rs = app::get('eccommon')->model('regions')->getList('local_name', array('region_grade' => 1, 'region_id|sthan' => 3320));
$provinces = $rs;
//订单类型
$order_types = array();
$order_types[] = array("type" => "normal", "name" => "普通订单");
$order_types[] = array("type" => "presale", "name" => "预售订单");
//修改规则信息
$goods_name = '';
$rule['filter_arr'] = json_decode($rule['filter_arr'], true);
$goods_bn = $rule['filter_arr']['buy_goods']['goods_bn'];
$count = count($goods_bn);
if (!is_array($goods_bn)) {
$goods_bn = array($goods_bn, '', '', '', '', '', '', '', '', '');
}
$rule['filter_arr']['buy_goods']['goods_bn'] = $goods_bn;
if ($rule['shop_ids']) {
$rule['shop_ids'] = explode(',', $rule['shop_ids']);
} else {
$rule['shop_ids'] = array($rule['shop_id']);
}
foreach ($shops as $ks => &$vs) {
if (in_array($vs['shop_id'], $rule['shop_ids'])) {
$vs['checked'] = 'true';
} else {
$vs['checked'] = 'false';
}
}
if (isset($rule['filter_arr']['province'])) {
foreach ($provinces as $keys => &$vals) {
if (in_array($vals['local_name'], $rule['filter_arr']['province'])) {
$vals['checked'] = 'true';
} else {
$vals['checked'] = 'false';
}
}
}
if (isset($rule['filter_arr']['order_type'])) {
foreach ($order_types as $keys_ot => &$vals_ot) {
if (in_array($vals_ot['type'], $rule['filter_arr']['order_type'])) {
$vals_ot['checked'] = 'true';
} else {
$vals_ot['checked'] = 'false';
}
}
unset($vals_ot);
}
$sm_infos = array();
foreach ($rule['filter_arr']['buy_goods']['goods_bn'] as $kes => $ves) {
$m_objs = $sales_material_obj->dump(array('sales_material_bn' => $ves), 'sm_id');
$sm_infos[] = $m_objs['sm_id'];
}
$this->pagedata['pgid'] = implode(',', $sm_infos);
$this->pagedata['replacehtml'] = <<<EOF
<div id='hand-selected-product'>已选择了{$count}个销售物料,<a href='javascript:void(0);' onclick='product_selected_show();'>查看选中的销售物料.</a></div>
EOF;
//已经设定的赠品组合
$gifts = array();
if ($rule['gift_ids']) {
$gift_ids = explode(',', $rule['gift_ids']);
$gift_num = explode(',', $rule['gift_num']);
foreach ($gift_ids as $k => $v) {
$gift_id_num[$v] = $gift_num[$k];
}
$gifts = app::get('crm')->model('gift')->getList('*,"checked" as checked', array('gift_id' => $gift_ids));
foreach ($gifts as $k => $v) {
$gifts[$k]['gift_name'] = mb_substr($v['gift_name'], 0, 22, 'utf-8');
$gifts[$k]['num'] = $gift_id_num[$v['gift_id']];
}
}
$rule['start_time_hour'] = 0;
if ($rule['start_time']) {
$rule['start_time_hour'] = (int) date('H', $rule['start_time']);
}
$rule['end_time_hour'] = 0;
if ($rule['end_time']) {
$rule['end_time_hour'] = (int) date('H', $rule['end_time']);
}
$this->pagedata['conf_hours'] = array_merge(array('00', '01', '02', '03', '04', '05', '06', '07', '08', '09'), range(10, 23));
$this->pagedata['order_types'] = $order_types;
$this->pagedata['provinces'] = $provinces;
$this->pagedata['goods_name'] = $goods_name;
$this->pagedata['shops'] = $shops;
$this->pagedata['gifts'] = $gifts;
$this->pagedata['rule'] = $rule;
$this->pagedata['view'] = $_GET['view'];
$this->pagedata['beigin_time'] = date("Y-m-d", time());
$this->pagedata['end_time'] = date('Y-m-d', strtotime('+15 days'));
$this->singlepage('admin/gift/rule_history.html');
}
/**
* 删除Rule
* @return mixed 返回值
*/
public function deleteRule()
{
$this->begin('');
$ids = $_POST['id'];
$giftObj = app::get('ome')->model('gift_rule');
if (!empty($ids)) {
foreach ($ids as $id) {
$gift = $giftObj->dump(array('id' => $id, 'status' => '1'), 'title');
if ($gift) {
$this->end(false, '规则' . $gift['title'] . ':状态为开启状态不可以删除!');
exit;
} else {
$giftObj->db->exec("DELETE FROM sdb_ome_gift_rule WHERE id=" . $id);
}
}
}
$this->end(true);
}
/**
* import_goods
* @param mixed $id ID
* @return mixed 返回值
*/
public function import_goods($id)
{
$this->pagedata['id'] = $id;
$this->display('admin/gift/import_goods.html');
}
/**
* exportTemplate
* @return mixed 返回值
*/
public function exportTemplate()
{
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=促销规则货品导入模板." . date('Ymd') . ".csv");
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
$oObj = $this->app->model('gift_rule');
$title = $oObj->exportTemplate();
echo '"' . implode('","', $title) . '"';
$data[0] = array('sales001');
foreach ($data as $items) {
foreach ($items as $key => $val) {
$items[$key] = kernel::single('base_charset')->utf2local($val);
}
echo "\n";
echo '"' . implode('","', $items) . '"';
}
}
}