Files
OMS/app/console/controller/admin/vopsetting.php
2025-12-28 23:13:25 +08:00

321 lines
9.2 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.
*/
/**
* 唯品会JIT审核配置
*
* @access public
* @author wangbiao<wangbiao@shopex.cn>
* @version 1.0 vopurchase.php
*/
class console_ctl_admin_vopsetting extends desktop_controller{
var $workground = "console_purchasecenter";
function index(){
$params = array(
'title' => '自动规则配置',
'allow_detail_popup' => true,
'use_buildin_recycle' => false,
'orderBy' => 'create_time desc'
);
$params['actions'] =array(
array(
'label'=>'添加配置',
'href'=>'index.php?app=console&ctl=admin_vopsetting&act=add',
'target' => 'dialog::{width:650,height:680,title:\'添加JIT自动规则配置\'}',
),
);
$this->finder('console_mdl_vopsetting', $params);
}
//新增弹窗页
function add(){
$this->_edit('add');
}
//编辑弹窗页
function edit($sid){
$this->_edit('edit', $sid);
}
//新增和编辑弹窗页的展示
function _edit($action='', $sid=0)
{
$setObj = app::get('purchase')->model('setting');
$setShopObj = app::get('purchase')->model('setting_shop');
$purchaseLib = kernel::single('purchase_purchase_order');
//读取配置
$row = array();
$shop_filter = array();
if($sid)
{
$row = $setObj->dump(array('sid'=>$sid), '*');
if($row)
{
$shop_filter['sid|noequal'] = $sid;
}
//关联的shop_id
$sel_shop_ids = array();
$shopList = $setShopObj->getList('*', array('sid'=>$sid));
if($shopList)
{
foreach ($shopList as $key => $val)
{
$sel_shop_ids[] = $val['shop_id'];
}
}
$this->pagedata['sel_shop_ids'] = $sel_shop_ids;
}
//已被其它配置选择的店铺列表
$used_shop_ids = array();
$tempData = $setShopObj->getList('*', $shop_filter);
if($tempData)
{
foreach ($tempData as $key => $val)
{
$used_shop_ids[] = $val['shop_id'];
}
}
$this->pagedata['used_shop_ids'] = $used_shop_ids;
//唯品会店铺
$shopList = $purchaseLib->get_vop_shop_list();
$this->pagedata['shopList'] = $shopList;
//状态值
$stockLib = kernel::single('purchase_purchase_stockout');
$dly_mode = $stockLib->getDlyMode();//配送方式
$carrier_code = array();
if($sel_shop_ids)
{
$carrier_code = $stockLib->getCarrierCode($sel_shop_ids);//根据店铺加载承运商
}
$this->pagedata['dly_mode'] = $dly_mode;
$this->pagedata['carrier_code'] = $carrier_code;
//审核时间点
$hour_list = array();
for($i=1; $i<=24; $i++)
{
$hour_list[$i] = ($i<10 ? '0'.$i : $i) .':00';
}
$this->pagedata['hour_list'] = $hour_list;
$this->pagedata['json_hour_list'] = json_encode($hour_list);
//OMS仓库(只支持自有仓储、伊藤忠仓储)
$branch_list = $purchaseLib->get_branch_list();
$this->pagedata['branch_list'] = $branch_list;
//[读取]自动审核配置
#每日审核时间点
$sel_exec_hour = array();
if($row['exec_hour'])
{
$temp = explode(',', $row['exec_hour']);
sort($temp);
$key_i = 0;
foreach ($temp as $key => $val)
{
$key_i = $key + 1;
$sel_exec_hour[$key_i] = $val;
}
$this->pagedata['sel_exec_hour'] = $sel_exec_hour;
}
$this->pagedata['vop_config'] = $row;
$this->page('admin/vop/setting_edit.html');
}
//保存
function save()
{
$this->begin('javascript:finderGroup["'.$_GET['finder_id'].'"].refresh();');
$setObj = app::get('purchase')->model('setting');
$setShopObj = app::get('purchase')->model('setting_shop');
$sid = $_POST['sid'];
//读取配置
$shop_filter = array();
if($sid)
{
$row = $setObj->dump(array('sid'=>$sid), 'sid');
if($row)
{
$shop_filter['sid|noequal'] = $sid;
}
}
//选择的店铺
$shop_ids = array();
if($_POST['shopids'])
{
foreach ($_POST['shopids'] as $key => $val)
{
if($val != '_ALL_')
{
$shop_ids[] = $val;
}
}
}
if(empty($shop_ids))
{
$this->end(false, '请选择应用的店铺');
}
$shop_filter['shop_id'] = $shop_ids;
$tempData = $setShopObj->getList('*', $shop_filter);
if($tempData)
{
$this->end(false, '操作失败,有店铺已被其它配置使用。');
}
//每日审核时间点
$exec_hour = array();
$key_i = 0;
$temp = $_POST['exec_hour'];
if($temp)
{
foreach ($temp as $key => $val)
{
$temp_name = 'exec_hour_'. $val;
$hour = $_POST[$temp_name];
if($hour)
{
$key_i++;
$exec_hour[$key_i] = $hour;
}
}
$exec_hour = implode(',', $exec_hour);
}
$is_merge = ($_POST['is_merge'] == '1' ? 1 : 0);//相同唯品会入库仓是否合并出库
$is_auto_combine = ($_POST['is_auto_combine'] == '1' ? 1 : 0);//开启自动审核
$branch_id = intval($_POST['branch_id']);//指定出库仓
$carrier_code = $_POST['carrier_code'];//承运商
$dly_mode = $_POST['dly_mode'];//配送方式
//组织数据
$vop_config = array(
'is_merge' => $is_merge,
'is_auto_combine' => $is_auto_combine,
'exec_hour' => $exec_hour,
'branch_id' => $branch_id,
'carrier_code'=>$carrier_code,
'dly_mode'=>$dly_mode,
);
if($vop_config['is_auto_combine'] == 1)
{
if(empty($vop_config['branch_id']))
{
$this->end(false, '请选择指定仓库');
}
elseif(empty($vop_config['carrier_code']))
{
$this->end(false, '请设置承运商');
}
elseif(empty($vop_config['dly_mode']))
{
$this->end(false, '请设置配送方式');
}
}
else
{
//清空数据
$vop_config['exec_hour'] = '';
$vop_config['branch_id'] = 0;
$vop_config['carrier_code'] = '';
$vop_config['dly_mode'] = '';
$vop_config['arrival_type'] = '';
$vop_config['arrival_day'] = 0;
$vop_config['arrival_hour'] = '';
}
//保存配置
if($row)
{
$vop_config['sid'] = $row['sid'];
$result = $setObj->update($vop_config, array('sid'=>$row['sid']));
//清除关联店铺
$setShopObj->delete(array('sid'=>$row['sid']));
}
else
{
$vop_config['create_time'] = time();
$result = $setObj->save($vop_config);
}
if(!$result)
{
$this->end(false, '保存失败');
}
//保存关联店铺
foreach ($shop_ids as $key => $shop_id)
{
$data = array('sid'=>$vop_config['sid'], 'shop_id'=>$shop_id);
$setShopObj->insert($data);
}
$this->end(true, '保存成功');
}
/**
* Ajax加载承运商
*/
function ajax_carrier_code()
{
$ids = $_POST['shop_ids'];
$ids = explode(',', $ids);
$shop_ids = array();
if($ids)
{
foreach ($ids as $key => $val)
{
if($val && $val != '_ALL_')
{
$shop_ids[] = $val;
}
}
}
if(empty($shop_ids))
{
echo json_encode(array('res'=>'error'));
exit;
}
$stockLib = kernel::single('purchase_purchase_stockout');
$carrierList = $stockLib->getCarrierCode($shop_ids);
//格式化
$dataList = array();
foreach ($carrierList as $carrier_code => $carrier_name)
{
$dataList[] = array('carrier_code'=>$carrier_code, 'carrier_name'=>$carrier_name);
}
echo json_encode(array('res'=>'succ', 'carrier_list'=>$dataList));
exit;
}
}