mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-07 23:25:32 +08:00
596 lines
24 KiB
PHP
596 lines
24 KiB
PHP
<?php
|
||
/**
|
||
* Copyright © ShopeX (http://www.shopex.cn). All rights reserved.
|
||
* See LICENSE file for license details.
|
||
*/
|
||
/**
|
||
* 销售物料控制层
|
||
*
|
||
* @author kamisama.xia@gmail.com
|
||
* @version 0.1
|
||
*/
|
||
class dealer_ctl_admin_material_sales extends desktop_controller
|
||
{
|
||
|
||
public $workground = 'dealer_manager';
|
||
|
||
/**
|
||
* 销售物料列表分栏菜单
|
||
*
|
||
* @param Null
|
||
* @return Array
|
||
*/
|
||
|
||
public function _views()
|
||
{
|
||
|
||
#不是销售列表时_隐藏Tab
|
||
if ($_GET['act'] != 'index') {
|
||
return array();
|
||
}
|
||
|
||
$base_filter = [];
|
||
// 根据权限,只展示当前账号有权限的商品
|
||
$cosList = kernel::single('organization_cos')->getCosList();
|
||
if (!$cosList[0]) {
|
||
$base_filter = ['sm_id' => 0];
|
||
} elseif ($cosList[0] && $cosList[1] != '_ALL_') {
|
||
$cosIds = array_column($cosList[1], 'cos_id');
|
||
$base_filter['cos_id|in'] = $cosIds;
|
||
}
|
||
|
||
$smMdl = app::get('dealer')->model('sales_material');
|
||
|
||
$sub_menu = array(
|
||
0 => array('label' => app::get('base')->_('全部'), 'filter' => $base_filter, 'optional' => false),
|
||
1 => array('label' => app::get('base')->_('普通'), 'filter' => array_merge($base_filter, array('sales_material_type' => 1)), 'optional' => false),
|
||
2 => array('label' => app::get('base')->_('组合'), 'filter' => array_merge($base_filter, array('sales_material_type' => 2)), 'optional' => false),
|
||
3 => array('label' => app::get('base')->_('赠品'), 'filter' => array_merge($base_filter, array('sales_material_type' => 3)), 'optional' => false),
|
||
);
|
||
|
||
foreach ($sub_menu as $k => $v) {
|
||
$sub_menu[$k]['filter'] = $v['filter'] ? $v['filter'] : null;
|
||
$sub_menu[$k]['addon'] = $smMdl->count($v['filter']);
|
||
$sub_menu[$k]['href'] = 'index.php?app=dealer&ctl=admin_material_sales&act=index&view=' . $k;
|
||
}
|
||
|
||
return $sub_menu;
|
||
}
|
||
|
||
/**
|
||
* 销售物料列表项方法
|
||
*
|
||
* @param Post
|
||
* @return String
|
||
*/
|
||
public function index()
|
||
{
|
||
// 根据权限,只展示当前账号有权限的商品
|
||
$cosList = kernel::single('organization_cos')->getCosList();
|
||
if (!$cosList[0]) {
|
||
$base_filter = ['sm_id' => 0];
|
||
} elseif ($cosList[0] && $cosList[1] != '_ALL_') {
|
||
$cosIds = array_column($cosList[1], 'cos_id');
|
||
$base_filter['cos_id|in'] = $cosIds;
|
||
}
|
||
|
||
$params = array(
|
||
'title' => '代发销售商品',
|
||
'actions' => array(),
|
||
'base_filter' => $base_filter,
|
||
'use_buildin_set_tag' => false,
|
||
'use_buildin_recycle' => false,
|
||
// 'use_buildin_filter' => true,
|
||
'use_buildin_export' => false,
|
||
'use_buildin_import' => false,
|
||
'use_buildin_importxls' => false,
|
||
);
|
||
$params['actions'][] = array(
|
||
'label' => '新建销售商品',
|
||
'href' => 'index.php?app=dealer&ctl=admin_material_sales&act=add&view=' . $_GET['view'],
|
||
//'target' => '_blank',
|
||
);
|
||
// $params['actions'][] = array(
|
||
// 'label' => '导入',
|
||
// 'href' => $this->url.'&act=execlImportDailog&p[0]=sales_material',
|
||
// 'target' => 'dialog::{width:500,height:300,title:\'导入\'}',
|
||
// );
|
||
|
||
$this->finder('dealer_mdl_sales_material', $params);
|
||
}
|
||
|
||
/**
|
||
* 销售物料新增的展示页面方法
|
||
*
|
||
* @param void
|
||
* @return void
|
||
*/
|
||
public function add()
|
||
{
|
||
$filter = ['delivery_mode' => 'shopyjdf'];
|
||
// 根据权限,只展示当前账号有权限的店铺
|
||
$cosList = kernel::single('organization_cos')->getCosList();
|
||
$bbuCosList = kernel::single('organization_cos')->getBbuFromCosId();
|
||
|
||
if (!$cosList[0]) {
|
||
$filter['cos_id'] = 0;
|
||
$this->pagedata['bm_filter'] = 'visibled=1&cos_id=0';
|
||
} elseif ($cosList[0] && $cosList[1] != '_ALL_') {
|
||
$cosIds = array_column($cosList[1], 'cos_id');
|
||
$filter['cos_id|in'] = $cosIds;
|
||
|
||
$bbu_cos_ids = array_column($bbuCosList[1], 'cos_id');
|
||
|
||
$this->pagedata['bm_filter'] = 'visibled=1&cos_id=' . ($bbu_cos_ids ? implode(',', $bbu_cos_ids) : '0');
|
||
} else {
|
||
$this->pagedata['bm_filter'] = 'visibled=1';
|
||
}
|
||
|
||
// 检查是否有基础物料权限
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$hasBm = $bmMdl->db_dump(explode('&', $this->pagedata['bm_filter']), 'bm_id');
|
||
$this->pagedata['hasBm'] = $hasBm;
|
||
|
||
#过滤o2o门店店铺
|
||
$shopObj = app::get('ome')->model('shop');
|
||
$shopList = $shopObj->getList('shop_id,name', $filter);
|
||
// array_unshift($shopList, array('shop_id' => '_ALL_', 'name' => '全部店铺'));
|
||
$this->pagedata['shops'] = $shopList;
|
||
$this->pagedata['finder_vid'] = $_GET['finder_vid'];
|
||
$this->pagedata['view'] = isset($_GET['view']) ? $_GET['view'] : 0;
|
||
$this->page('admin/material/sales/add.html');
|
||
}
|
||
|
||
/**
|
||
* @description 显示关联的物料
|
||
* @access public
|
||
* @param void
|
||
* @return void
|
||
*/
|
||
public function showMaterials()
|
||
{
|
||
$bm_id = kernel::single('base_component_request')->get_post('bm_id');
|
||
|
||
if ($bm_id) {
|
||
$this->pagedata['_input'] = array(
|
||
'name' => 'bm_id',
|
||
'idcol' => 'bm_id',
|
||
'_textcol' => 'material_name',
|
||
);
|
||
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$list = $bmMdl->getList('bm_id,material_name, material_bn', array('bm_id' => $bm_id), 0, -1, 'bm_id asc');
|
||
|
||
//显示基础物料编码
|
||
foreach ($list as $key => $val) {
|
||
$list[$key]['material_name'] = '基础商品编码:' . $val['material_bn'] . ' 基础商品名称:' . $val['material_name'];
|
||
}
|
||
|
||
$this->pagedata['_input']['items'] = $list;
|
||
}
|
||
|
||
$this->display('admin/material/sales/show_materials.html');
|
||
}
|
||
|
||
/**
|
||
* 基础物料新增提交方法
|
||
*
|
||
* @param Post
|
||
* @return Boolean
|
||
*/
|
||
public function toAdd()
|
||
{
|
||
$this->begin('index.php?app=dealer&ctl=admin_material_sales&act=index&view=' . $_GET['view'] . '&finder_vid=' . $_GET['finder_vid']);
|
||
|
||
#数据有效性检查
|
||
$checkSalesLib = kernel::single('dealer_sales_check');
|
||
$err_msg = '';
|
||
if (!$checkSalesLib->checkParams($_POST, $err_msg)) {
|
||
$this->end(false, $err_msg);
|
||
}
|
||
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$smMdl = app::get('dealer')->model('sales_material');
|
||
$sbmMdl = app::get('dealer')->model('sales_basic_material');
|
||
$shopMdl = app::get('ome')->model('shop');
|
||
|
||
$shopInfo = $shopMdl->db_dump(['shop_id' => $_POST['shop_id']]);
|
||
|
||
$opInfo = kernel::single('ome_func')->getDesktopUser();
|
||
//保存物料主表信息
|
||
$addData = array(
|
||
'sales_material_bn' => $_POST['sales_material_bn'],
|
||
'sales_material_name' => $_POST['sales_material_name'],
|
||
'sales_material_type' => $_POST['sales_material_type'],
|
||
'shop_id' => $_POST['shop_id'],
|
||
'cos_id' => $shopInfo['cos_id'],
|
||
'op_name' => $opInfo['op_name'],
|
||
);
|
||
$is_save = $smMdl->save($addData);
|
||
|
||
if ($is_save) {
|
||
$is_bind = false;
|
||
//普通销售物料关联
|
||
if ($_POST['sales_material_type'] == 1 && !empty($_POST['bm_id'])) {
|
||
//基础物料信息
|
||
$baseMaterialInfo = $bmMdl->dump(array('bm_id' => $_POST['bm_id']), '*');
|
||
if (!$baseMaterialInfo) {
|
||
$this->end(false, '基础商品无效');
|
||
}
|
||
$addBindData = array(
|
||
'sm_id' => $addData['sm_id'],
|
||
'bm_id' => $_POST['bm_id'],
|
||
'number' => 1,
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
$is_bind = true;
|
||
} elseif ($_POST['sales_material_type'] == 2 && !empty($_POST['at'])) {
|
||
//基础物料信息
|
||
$baseMaterialInfo = $bmMdl->getList('bm_id', ['bm_id|in' => array_keys($_POST['at'])]);
|
||
if (!$baseMaterialInfo || count($baseMaterialInfo) != count(array_keys($_POST['at']))) {
|
||
$this->end(false, '基础商品无效');
|
||
}
|
||
|
||
//促销销售物料关联
|
||
foreach ($_POST['at'] as $k => $v) {
|
||
$addBindData = array(
|
||
'sm_id' => $addData['sm_id'],
|
||
'bm_id' => $k,
|
||
'number' => $v,
|
||
'rate' => $_POST['pr'][$k],
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
}
|
||
$is_bind = true;
|
||
} elseif ($_POST['sales_material_type'] == 3 && !empty($_POST['at'])) { // 赠品关联多基础物料处理
|
||
// at=> [bm_id=>number]
|
||
foreach ($_POST['at'] as $k => $v) {
|
||
$addBindData = array(
|
||
'sm_id' => $addData['sm_id'],
|
||
'bm_id' => $k,
|
||
'number' => $v,
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
$addBindData = null;
|
||
}
|
||
$is_bind = true;
|
||
}
|
||
|
||
//如果有绑定物料数据,设定销售物料为绑定状态
|
||
if ($is_bind) {
|
||
$smMdl->update(array('is_bind' => 1), array('sm_id' => $addData['sm_id']));
|
||
}
|
||
|
||
//logs
|
||
$operationLogObj = app::get('ome')->model('operation_log');
|
||
$operationLogObj->write_log('dealer_sm_add@dealer', $addData['sm_id'], '销售商品添加');
|
||
$this->end(true, '操作成功');
|
||
} else {
|
||
$this->end(false, '保存失败');
|
||
}
|
||
|
||
}
|
||
|
||
/**
|
||
* 销售物料查询详情
|
||
* @Author: xueding
|
||
* @Vsersion: 2022/5/23 上午10:23
|
||
* @param $sm_id
|
||
*/
|
||
public function detail($sm_id)
|
||
{
|
||
$this->begin('index.php?app=dealer&ctl=admin_material_sales&act=index');
|
||
if (empty($sm_id)) {
|
||
$this->end(false, '操作出错,请重新操作');
|
||
}
|
||
|
||
$smMdl = app::get('dealer')->model('sales_material');
|
||
|
||
$tmp_sm_id = intval($sm_id);
|
||
$salesMaterialInfo = $smMdl->dump($tmp_sm_id);
|
||
if (!$salesMaterialInfo) {
|
||
$this->end(false, '操作出错,请重新操作');
|
||
}
|
||
|
||
if (($salesMaterialInfo['sales_material_type'] == 1 || $salesMaterialInfo['sales_material_type'] == 3) && $salesMaterialInfo['is_bind'] == 1) {
|
||
$sbmMdl = app::get('dealer')->model('sales_basic_material');
|
||
$salesBasicMaterialInfo = $sbmMdl->dump(array('sm_id' => $tmp_sm_id));
|
||
$count = is_array($salesBasicMaterialInfo['bm_id']) ? count($salesBasicMaterialInfo['bm_id']) : 1;
|
||
$this->pagedata['bind_bm_id'] = $salesBasicMaterialInfo['bm_id'];
|
||
$this->pagedata['replacehtml'] = <<<EOF
|
||
<div id='hand-selected-product'>已选择了{$count}个商品,<a href='javascript:void(0);' onclick='material_selected_show();'>查看关联的商品.</a></div>
|
||
EOF;
|
||
}
|
||
|
||
//店铺信息(过滤o2o门店店铺)
|
||
$shopObj = app::get('ome')->model('shop');
|
||
$shopList = $shopObj->getList('shop_id,name', array('s_type' => 1), 0, -1);
|
||
array_unshift($shopList, array('shop_id' => '_ALL_', 'name' => '全部店铺'));
|
||
$this->pagedata['shops'] = $shopList;
|
||
|
||
$this->pagedata['material_info'] = $salesMaterialInfo;
|
||
$readonly = array('type' => true, 'shop' => true, 'bind_item' => true);
|
||
$this->pagedata['readonly'] = $readonly;
|
||
|
||
// //操作日志
|
||
// $logObj = app::get('ome')->model('operation_log');
|
||
|
||
// /* 本销售物料日志 */
|
||
// $logList = $logObj->read_log(array('obj_id' => $sm_id, 'obj_type' => 'sales_material@material'), 0, -1);
|
||
// foreach ($logList as $k => $v) {
|
||
// $logList[$k]['operate_time'] = date('Y-m-d H:i:s', $v['operate_time']);
|
||
// }
|
||
|
||
// $this->pagedata['data'] = $logList;
|
||
$this->singlepage('admin/material/sales/detail.html');
|
||
}
|
||
/**
|
||
* 销售物料编辑的展示页面方法
|
||
*
|
||
* @param Int $bm_id
|
||
* @return Boolean
|
||
*/
|
||
public function edit($sm_id)
|
||
{
|
||
$this->begin('index.php?app=dealer&ctl=admin_material_sales&act=index');
|
||
if (empty($sm_id)) {
|
||
$this->end(false, '操作出错,请重新操作');
|
||
}
|
||
|
||
$smMdl = app::get('dealer')->model('sales_material');
|
||
|
||
$tmp_sm_id = intval($sm_id);
|
||
$salesMaterialInfo = $smMdl->dump($tmp_sm_id);
|
||
if (!$salesMaterialInfo) {
|
||
$this->end(false, '操作出错,请重新操作');
|
||
}
|
||
$filter = ['delivery_mode' => 'shopyjdf'];
|
||
|
||
// 根据权限,只展示当前账号有权限的店铺
|
||
$cosList = kernel::single('organization_cos')->getCosList();
|
||
$bbuCosList = kernel::single('organization_cos')->getBbuFromCosId();
|
||
|
||
if (!$cosList[0]) {
|
||
$filter['cos_id'] = 0;
|
||
$this->pagedata['bm_filter'] = 'visibled=1&cos_id=0';
|
||
} elseif ($cosList[0] && $cosList[1] != '_ALL_') {
|
||
$cosIds = array_column($cosList[1], 'cos_id');
|
||
$filter['cos_id|in'] = $cosIds;
|
||
|
||
$bbu_cos_ids = array_column($bbuCosList[1], 'cos_id');
|
||
|
||
$this->pagedata['bm_filter'] = 'visibled=1&cos_id=' . ($bbu_cos_ids ? implode(',', $bbu_cos_ids) : '0');
|
||
} else {
|
||
$this->pagedata['bm_filter'] = 'visibled=1';
|
||
}
|
||
|
||
// 检查是否有基础物料权限
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$hasBm = $bmMdl->db_dump(explode('&', $this->pagedata['bm_filter']), 'bm_id');
|
||
$this->pagedata['hasBm'] = $hasBm;
|
||
|
||
|
||
|
||
|
||
//检查物料是否有关联的订单,关联的基础物料不能改变
|
||
//todo 需实现 readonly
|
||
$checkSalesLib = kernel::single('material_sales_check');
|
||
$readonly = $checkSalesLib->checkEditReadOnly($salesMaterialInfo['shop_id'], $tmp_sm_id, $salesMaterialInfo['is_bind']);
|
||
|
||
if (($salesMaterialInfo['sales_material_type'] == 1 || $salesMaterialInfo['sales_material_type'] == 3) && $salesMaterialInfo['is_bind'] == 1) {
|
||
$sbmMdl = app::get('dealer')->model('sales_basic_material');
|
||
$salesBasicMaterialInfo = $sbmMdl->dump(array('sm_id' => $tmp_sm_id));
|
||
$count = count([$salesBasicMaterialInfo['bm_id']]);
|
||
$this->pagedata['bind_bm_id'] = $salesBasicMaterialInfo['bm_id'];
|
||
$this->pagedata['replacehtml'] = <<<EOF
|
||
<div id='hand-selected-product'>已选择了{$count}个商品,<a href='javascript:void(0);' onclick='material_selected_show();'>查看关联的商品.</a></div>
|
||
EOF;
|
||
}
|
||
|
||
//店铺信息(过滤o2o门店店铺)
|
||
$shopObj = app::get('ome')->model('shop');
|
||
$shopList = $shopObj->getList('shop_id,name', $filter, 0, -1);
|
||
// array_unshift($shopList, array('shop_id' => '_ALL_', 'name' => '全部店铺'));
|
||
$this->pagedata['shops'] = $shopList;
|
||
|
||
$this->pagedata['material_info'] = $salesMaterialInfo;
|
||
$this->pagedata['readonly'] = $readonly;
|
||
$this->singlepage('admin/material/sales/edit.html');
|
||
}
|
||
|
||
/**
|
||
* 销售物料编辑提交方法
|
||
*
|
||
* @param Int $sm_id
|
||
* @return Boolean
|
||
*/
|
||
public function toEdit()
|
||
{
|
||
$this->begin('index.php?app=dealer&ctl=admin_material_sales&act=index');
|
||
#数据有效性检查
|
||
$checkSalesLib = kernel::single('dealer_sales_check');
|
||
$err_msg = '';
|
||
$_POST['edit'] = true; //编辑标识 checkParams用
|
||
if (!$checkSalesLib->checkParams($_POST, $err_msg)) {
|
||
$this->end(false, $err_msg);
|
||
}
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$smMdl = app::get('dealer')->model('sales_material');
|
||
$sbmMdl = app::get('dealer')->model('sales_basic_material');
|
||
|
||
//更新基础物料基本信息
|
||
$filter = [
|
||
'sm_id' => $_POST['sm_id'],
|
||
];
|
||
|
||
$snapshoot = [
|
||
'sdb_dealer_sales_material' => $smMdl->db_dump($filter),
|
||
'sdb_dealer_sales_basic_material' => $sbmMdl->getList('*', $filter),
|
||
];
|
||
|
||
$shopInfo = app::get('ome')->model('shop')->db_dump(['shop_id'=>$_POST['shop_id']]);
|
||
if (!$shopInfo || !$shopInfo['cos_id']) {
|
||
$this->end(false, '店铺企业组织架构ID无效');
|
||
}
|
||
|
||
//更新销售物料基本信息
|
||
$updateData = array(
|
||
"sales_material_name" => $_POST['sales_material_name'],
|
||
"sales_material_type" => $_POST['sales_material_type'],
|
||
"shop_id" => $_POST['shop_id'],
|
||
"cos_id" => $shopInfo['cos_id'],
|
||
"last_modified" => time(),
|
||
);
|
||
$is_update = $smMdl->update($updateData, $filter);
|
||
if ($is_update) {
|
||
$is_bind = false; //如果有关联物料就做绑定操作
|
||
|
||
//删除原有关联基础物料信息 后续会新增的(重做关系)
|
||
$sbmMdl->delete(array('sm_id' => $filter['sm_id'])); //普通、赠品、促销
|
||
|
||
//普通销售物料关联
|
||
if ($_POST['sales_material_type'] == 1 && !empty($_POST['bm_id'])) {
|
||
//普通、赠品销售物料关联
|
||
$addBindData = array(
|
||
'sm_id' => $filter['sm_id'],
|
||
'bm_id' => $_POST['bm_id'],
|
||
'number' => 1,
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
|
||
//基础物料信息
|
||
$baseMaterialInfo = $bmMdl->dump(array('bm_id' => $_POST['bm_id']), '*');
|
||
|
||
$is_bind = true;
|
||
} elseif ($_POST['sales_material_type'] == 2 && !empty($_POST['at'])) {
|
||
foreach ($_POST['at'] as $k => $v) {
|
||
$addBindData = array(
|
||
'sm_id' => $filter['sm_id'],
|
||
'bm_id' => $k,
|
||
'number' => $v,
|
||
'rate' => $_POST['pr'][$k],
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
$addBindData = null;
|
||
}
|
||
$is_bind = true;
|
||
} elseif ($_POST['sales_material_type'] == 3 && !empty($_POST['at'])) {
|
||
//赠品销售物料关联
|
||
foreach ($_POST['at'] as $k => $v) {
|
||
$addBindData = array(
|
||
'sm_id' => $filter['sm_id'],
|
||
'bm_id' => $k,
|
||
'number' => $v,
|
||
// 'rate' => $_POST['pr'][$k],
|
||
// todo rate是否需要
|
||
);
|
||
$sbmMdl->insert($addBindData);
|
||
$addBindData = null;
|
||
}
|
||
$is_bind = true;
|
||
}
|
||
|
||
//如果有绑定物料数据,设定销售物料为绑定状态
|
||
if ($is_bind) {
|
||
$smMdl->update(array('is_bind' => 1), array('sm_id' => $filter['sm_id']));
|
||
} else {
|
||
$smMdl->update(array('is_bind' => 2), array('sm_id' => $filter['sm_id']));
|
||
}
|
||
|
||
//保存日志
|
||
$omeLogMdl = app::get('ome')->model('operation_log');
|
||
$log_id = $omeLogMdl->write_log('dealer_sm_edit@dealer', $filter['sm_id'], '更新销售商品');
|
||
if ($log_id && $snapshoot) {
|
||
$shootMdl = app::get('ome')->model('operation_log_snapshoot');
|
||
$snapshoot = json_encode($snapshoot, JSON_UNESCAPED_UNICODE);
|
||
$tmp = ['log_id' => $log_id, 'snapshoot' => $snapshoot];
|
||
$shootMdl->insert($tmp);
|
||
}
|
||
$this->end(true, '保存成功');
|
||
} else {
|
||
$this->end(false, '保存失败');
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 促销类销售物料关联的基础物料信息异步加载方法
|
||
* 还包括多选一类型的销售物料
|
||
* @param Int $sm_id
|
||
* @return String
|
||
*/
|
||
public function getEditMaterial($sm_id, $log_id = '')
|
||
{
|
||
if ($sm_id == '') {
|
||
$sm_id = $_POST['p[0]'];
|
||
}
|
||
|
||
$bmMdl = app::get('material')->model('basic_material');
|
||
$basicMaterialExtObj = app::get('material')->model('basic_material_ext');
|
||
|
||
$rows = array();
|
||
if ($log_id) {
|
||
$logSnapshootMdl = app::get('ome')->model('operation_log_snapshoot');
|
||
//日志
|
||
$log = $logSnapshootMdl->db_dump(['log_id' => $log_id]);
|
||
$row = json_decode($log['snapshoot'], 1);
|
||
$items = $row['sdb_dealer_sales_basic_material'];
|
||
} else {
|
||
$sbmMdl = app::get('dealer')->model('sales_basic_material');
|
||
$items = $sbmMdl->getList('bm_id,sm_id,number,rate', array('sm_id' => $sm_id), 0, -1);
|
||
}
|
||
if (!empty($items)) {
|
||
foreach ($items as $k => $item) {
|
||
$basicMaterialInfo = $bmMdl->dump(array('bm_id' => $item['bm_id']), 'material_bn,material_name,cat_id,cat_path');
|
||
|
||
//成本价
|
||
$extInfo = $basicMaterialExtObj->dump(array('bm_id' => $item['bm_id']), 'bm_id, cost,brand_id');
|
||
$item['cost'] = $extInfo['cost'];
|
||
$item['brand_id'] = $extInfo['brand_id'];
|
||
$brand = app::get('ome')->model('brand')->db_dump(['brand_id' => $item['brand_id']], 'brand_name');
|
||
$item['brand_name'] = $brand['brand_name'];
|
||
$item['cost'] = $extInfo['cost'];
|
||
|
||
$items[$k] = array_merge($item, $basicMaterialInfo);
|
||
}
|
||
$rows["original"] = $items; //普通、赠品、促销
|
||
}
|
||
echo json_encode($rows);
|
||
}
|
||
|
||
/**
|
||
* 查看快照
|
||
*/
|
||
public function show_history($log_id)
|
||
{
|
||
$logSnapshootMdl = app::get('ome')->model('operation_log_snapshoot');
|
||
//日志
|
||
$log = $logSnapshootMdl->db_dump(['log_id' => $log_id]);
|
||
$row = json_decode($log['snapshoot'], 1);
|
||
|
||
$salesMaterialInfo = $row['sdb_dealer_sales_material'];
|
||
if (($salesMaterialInfo['sales_material_type'] == 1 || $salesMaterialInfo['sales_material_type'] == 3) && $salesMaterialInfo['is_bind'] == 1) {
|
||
$salesBasicMaterialInfo = $row['sdb_dealer_sales_basic_material'][0];
|
||
$count = is_array($salesBasicMaterialInfo['bm_id']) ? count($salesBasicMaterialInfo['bm_id']) : 1;
|
||
$this->pagedata['bind_bm_id'] = $salesBasicMaterialInfo['bm_id'];
|
||
$this->pagedata['replacehtml'] = <<<EOF
|
||
<div id='hand-selected-product'>已选择了{$count}个商品,<a href='javascript:void(0);' onclick='material_selected_show();'>查看关联的商品.</a></div>
|
||
EOF;
|
||
}
|
||
|
||
//店铺信息(过滤o2o门店店铺)
|
||
$shopObj = app::get('ome')->model('shop');
|
||
$shopList = $shopObj->getList('shop_id,name', array('s_type' => 1), 0, -1);
|
||
array_unshift($shopList, array('shop_id' => '_ALL_', 'name' => '全部店铺'));
|
||
$this->pagedata['shops'] = $shopList;
|
||
|
||
$this->pagedata['material_info'] = $salesMaterialInfo;
|
||
$readonly = array('type' => true, 'shop' => true, 'bind_item' => true);
|
||
$this->pagedata['readonly'] = $readonly;
|
||
$this->pagedata['history'] = true;
|
||
$this->pagedata['log_id'] = $log_id;
|
||
|
||
$this->singlepage('admin/material/sales/detail.html');
|
||
}
|
||
|
||
}
|