Files
OMS/app/material/lib/finder/fukubukuro/combine.php
2025-12-28 23:13:25 +08:00

166 lines
4.9 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.
*/
/**
* 福袋组合Finder类
*
* @author wangbiao@shopex.cn
* @version 2024.09.10
*/
class material_finder_fukubukuro_combine
{
//model
private $_appName = 'material';
private $_modelName = 'fukubukuro_combine';
private $_primary_id = 'combine_id';
static $_reMaterials = array();
public $addon_cols = '';
var $column_edit = '操作';
var $column_edit_width = 110;
var $column_edit_order = 1;
/**
* column_edit
* @param mixed $row row
* @return mixed 返回值
*/
public function column_edit($row)
{
$url = 'index.php?app=material&ctl=admin_fukubukuro_combine';
$finder_id = $_GET['_finder']['finder_id'];
$btn = '-';
if(kernel::single('desktop_user')->has_permission('material_fukubukuro_edit')) {
$btn = '<a href="'. $url .'&act=editCombine&p[0]='. $row[$this->_primary_id] .'&finder_id='. $finder_id .'">编辑</a>&nbsp;&nbsp;';
}
return $btn;
}
var $detail_basic = '基本信息';
/**
* detail_basic
* @param mixed $combine_id ID
* @return mixed 返回值
*/
public function detail_basic($combine_id)
{
$render = app::get($this->_appName)->render();
$combineMdl = app::get('material')->model($this->_modelName);
$combineLib = kernel::single('material_fukubukuro_combine');
//获取信息
$masterInfo = $combineMdl->dump(array($this->_primary_id=>$combine_id), '*');
//items
$error_msg = '';
$itemList = $combineLib->formatCombineItems($combine_id, $error_msg);
$render->pagedata['data'] = $masterInfo;
$render->pagedata['items'] = $itemList;
return $render->fetch('admin/fukubukuro/detail_basic.html');
}
//关联基础物料
var $column_relation_material = '关联基础物料';
var $column_relation_material_width = 350;
var $column_relation_material_order = 20;
/**
* column_relation_material
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_relation_material($row, $list)
{
//load
$this->_getRelationMaterial($list);
$combine_id = $row[$this->col_prefix .'combine_id'];
$materialBns = array();
$mateiralList = isset(self::$_reMaterials[$combine_id]) ? self::$_reMaterials[$combine_id] : array();
if($mateiralList){
$materialBns = array_column($mateiralList, 'material_bn');
}
$material_str = implode(',', $materialBns);
$materialBns = array_splice($materialBns, 0, 5);
return '<a title="'. $material_str .'">'. implode(',', $materialBns) .'</a>';
}
/**
* 批量获取指定经销商列表(包含贸易公司信息)
*
* @param $list
* @return boolean
*/
private function _getRelationMaterial($list)
{
//check
if(self::$_reMaterials){
return true;
}
$combineItemMdl = app::get('material')->model('fukubukuro_combine_items');
$basicMaterialObj = app::get('material')->model('basic_material');
$combineIds = array_column($list, 'combine_id');
//items
$itemList = $combineItemMdl->getList('combine_id,bm_id', array('combine_id'=>$combineIds));
if(empty($itemList)){
return false;
}
//material
$bmIds = array_column($itemList, 'bm_id');
$materialList = $basicMaterialObj->getList('bm_id,material_bn,material_name', array('bm_id'=>$bmIds));
$materialList = array_column($materialList, null, 'bm_id');
if(empty($materialList)){
return false;
}
//format
foreach ($itemList as $key => $val)
{
$combine_id = $val['combine_id'];
$bm_id = $val['bm_id'];
self::$_reMaterials[$combine_id][$bm_id] = array(
'material_bn' => $materialList[$bm_id]['material_bn'],
'material_name' => $materialList[$bm_id]['material_bn']
);
}
return true;
}
var $detail_log = "操作日志";
/**
* detail_log
* @param mixed $combine_id ID
* @return mixed 返回值
*/
public function detail_log($combine_id)
{
$render = app::get($this->_appName)->render();
//log
$operLogMdl = app::get('ome')->model('operation_log');
$logList = $operLogMdl->read_log(array('obj_id'=>$combine_id, 'obj_type'=>'fukubukuro_combine@material'), 0, -1);
$render->pagedata['logList'] = $logList;
return $render->fetch('admin/fukubukuro/detail_log.html');
}
}