mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
161 lines
5.1 KiB
PHP
161 lines
5.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
class pos_ctl_store extends desktop_controller
|
|
{
|
|
|
|
|
|
function index() {
|
|
|
|
$this->title='门店列表';
|
|
$servers = kernel::single('pos_event_trigger_common')->getChannelId('pekon');
|
|
$server_id = $servers['server_id'];
|
|
$filter = $this->baseFilter();
|
|
$_GET['view'] = intval($_GET['view']);
|
|
$actions =[];
|
|
|
|
//if(in_array($_GET['view'],array('1','2'))){
|
|
$actions[] = array(
|
|
'label' => '批量同步',
|
|
'submit' => 'index.php?app=pos&ctl=store&act=syncstoreDailog',
|
|
'target'=>'dialog::{width:600,height:300,title:\'批量同步\'}"'
|
|
);
|
|
//}
|
|
$params = array(
|
|
'title' => $this->title,
|
|
'use_buildin_new_dialog' => false,
|
|
'use_buildin_set_tag'=>false,
|
|
'use_buildin_recycle'=>false,
|
|
'use_buildin_export'=>false,
|
|
'use_buildin_import'=>false,
|
|
'use_buildin_importxls'=>true,
|
|
'use_buildin_filter'=>true,
|
|
'use_view_tab'=>true,
|
|
'base_filter' => $filter,
|
|
'actions'=>$actions,
|
|
|
|
);
|
|
$this->finder('pos_mdl_store', $params);
|
|
}
|
|
|
|
|
|
|
|
function _views() {
|
|
|
|
$storeMdl = app::get('pos')->model('store');
|
|
|
|
$base_filter = $this->baseFilter();
|
|
$sub_menu[0] = array('label' => app::get('base')->_('全部'), 'filter' => array_merge($base_filter), 'optional' => false);
|
|
$sub_menu[1] = array('label' => app::get('base')->_('未同步'), 'filter' => array_merge($base_filter, array('sync_status'=>'0')), 'optional' => false);
|
|
$sub_menu[2] = array('label' => app::get('base')->_('同步失败'),'filter' => array_merge($base_filter,array('sync_status' => '2')),'optional' => false);
|
|
$sub_menu[3] = array('label' => app::get('base')->_('同步成功'),'filter' => array_merge($base_filter,array('sync_status' => '1')),'optional' => false);
|
|
|
|
foreach ($sub_menu as $k => $v) {
|
|
$sub_menu[$k]['filter'] = $v['filter'] ? $v['filter'] : null;
|
|
$sub_menu[$k]['addon'] = $v['addon'] ? $v['addon'] : $storeMdl->viewcount($v['filter']);
|
|
$sub_menu[$k]['href'] = 'index.php?app=pos&ctl=' . $_GET['ctl'] . '&act=' . $_GET['act'] . '&flt=' . $_GET['flt'] . '&view=' . $k . $s;
|
|
}
|
|
|
|
return $sub_menu;
|
|
}
|
|
|
|
|
|
/**
|
|
* syncstoreDailog
|
|
* @return mixed 返回值
|
|
*/
|
|
public function syncstoreDailog()
|
|
{
|
|
|
|
$this->pagedata['request_url'] = 'index.php?app=pos&ctl=store&act=ajaxSyncstore';
|
|
$this->pagedata['autotime'] = '500';
|
|
|
|
|
|
if ($_POST['isSelectedAll'] == '_ALL_') {
|
|
|
|
$view = intval($_POST['view']);
|
|
|
|
$subMenu = $this->_views();
|
|
$baseFilter = $subMenu[$view]['filter'];
|
|
|
|
$_POST = array_merge($baseFilter, $_POST);
|
|
|
|
}else{
|
|
$base_filter = $this->baseFilter();
|
|
$_POST = array_merge($_POST, $_GET,$base_filter);
|
|
}
|
|
|
|
|
|
parent::dialog_batch('pos_mdl_store',true,10);
|
|
}
|
|
|
|
/**
|
|
* ajaxSyncstore
|
|
* @return mixed 返回值
|
|
*/
|
|
public function ajaxSyncstore()
|
|
{
|
|
parse_str($_POST['primary_id'], $primary_id);
|
|
|
|
if (!$primary_id) { echo 'Error: 请先选择数据';exit;}
|
|
|
|
|
|
$retArr = array(
|
|
'itotal' => 0,
|
|
'isucc' => 0,
|
|
'ifail' => 0,
|
|
'err_msg' => array(),
|
|
);
|
|
|
|
$storeMdl = app::get('pos')->model('store');
|
|
$storeMdl->filter_use_like = true;
|
|
|
|
$stores = $storeMdl->getList('store_id',$primary_id['f'],$primary_id['f']['offset'],$primary_id['f']['limit']);
|
|
|
|
$retArr['itotal'] = count($stores);
|
|
|
|
foreach ($stores as $v) {
|
|
|
|
|
|
list($rs,$msg) = kernel::single('pos_event_trigger_shop')->add($v['store_id']);
|
|
|
|
if ($rs) {
|
|
$retArr['isucc']++;
|
|
} else {
|
|
$retArr['ifail']++;
|
|
|
|
$retArr['err_msg'] = sprintf('[%s]', $msg);
|
|
}
|
|
}
|
|
|
|
echo json_encode($retArr),'ok.';exit;
|
|
}
|
|
|
|
/**
|
|
* baseFilter
|
|
* @return mixed 返回值
|
|
*/
|
|
public function baseFilter(){
|
|
$servers = kernel::single('pos_event_trigger_common')->getChannelId('pekon');
|
|
$server_id = $servers['server_id'];
|
|
$base_filter = [
|
|
|
|
'server_id' => $server_id,
|
|
];
|
|
return $base_filter;
|
|
}
|
|
} |