Files
OMS/app/ticket/lib/workflow/template.php
chenping 61783b7d01 1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数

3. 【优化】盘点申请单确认

4. 【修复】采购退货单模拟出库失败问题

5. 【新增】订单金额客户实付与结算金额

6. 【优化】仓库发货统计报表物料名称显示

7. 【优化】自有仓储虚拟发货逻辑

8. 【修复】基础物料分类管理问题
2026-04-01 11:59:17 +08:00

175 lines
5.0 KiB
PHP

<?php
/**
* 审批流模板业务逻辑类
*
* @author shopex开发团队
* @version 2025.07.10
*/
class ticket_workflow_template extends ticket_abstract {
/**
* 验证数据
*
* @param array $params
* @return array
*/
public function checkParams(&$params)
{
$mdl = app::get('ticket')->model('workflow_template');
// check template_bn
if(empty($params['template_bn'])){
$error_msg = '模板编号必须填写';
return $this->error($error_msg);
}
// check template_name
if(empty($params['template_name'])){
$error_msg = '模板名称必须填写';
return $this->error($error_msg);
}
// check scene_type
if(empty($params['scene_type'])){
$error_msg = '请选择审批场景类型';
return $this->error($error_msg);
}
// check description
if(empty($params['description'])){
$error_msg = '流程描述必须填写';
return $this->error($error_msg);
}
// is_enabled
if($params['is_enabled'] == 'false'){
$params['is_enabled'] = 'false';
}else{
$params['is_enabled'] = 'true';
}
// check exist
if($params['id']){
$rowInfo = $mdl->dump(array('id'=>$params['id']), '*');
if(empty($rowInfo)){
$error_msg = '编辑的记录不存在,请检查!';
return $this->error($error_msg);
}
}else{
//判断物料编码只能是由数字英文下划线组成
$reg_bn_code = "/^[0-9a-zA-Z\_\#\-\/]*$/";
if(!preg_match($reg_bn_code, $params['template_bn'])){
$error_msg = "模板编号只支持(数字、英文、_下划线、-横线、#井号、/斜杠)组成";
return $this->error($error_msg);
}
//编码首字母只支持数字、英文、_下划线
$reg_rule_2 = "/^[0-9a-zA-Z\_]*$/";
$first_letter = substr($params['template_bn'], 0, 1);
if(!preg_match($reg_rule_2, $first_letter)){
$error_msg = "模板编号首字母只支持(数字、英文、_下划线)组成";
return $this->error($error_msg);
}
}
return $this->succ('数据验证成功');
}
/**
* 保存数据
*
* @param array $data
* @param string $error_msg
* @return bool
*/
public function saveData(&$data, &$error_msg=null)
{
$mdl = app::get('ticket')->model('workflow_template');
//data
$saveData = [
'template_bn' => $data['template_bn'],
'template_name' => $data['template_name'],
'scene_type' => $data['scene_type'],
'description' => $data['description'],
'is_enabled' => $data['is_enabled'],
//'version' => 1,
];
//check
if(empty($saveData['template_bn'])){
$error_msg = '提交的模板编号无效';
return $this->error($error_msg);
}
if(empty($saveData['template_name'])){
$error_msg = '提交的模板名称无效';
return $this->error($error_msg);
}
if(empty($saveData['scene_type'])){
$error_msg = '提交的模板类型无效';
return $this->error($error_msg);
}
// insert or update
if($data['id']){
//update
$rs = $mdl->update($saveData, array('id'=>$data['id']));
if(is_bool($rs)) {
$error_msg = '更新数据失败或者数据无变化';
return $this->error($error_msg);
}
}else{
//insert
$rs = $mdl->insert($saveData);
if(!$rs){
$error_msg = '插入数据失败';
return $this->error($error_msg);
}
}
return $this->succ('数据保存成功');
}
/**
* 获取指定的审批场景类型名称
*
* @param $type_bn
* @return string
*/
public function getSceneTypeName($type_bn)
{
$mdl = app::get('ticket')->model('workflow_template');
$typeList = $mdl->getSceneTypes();
if(isset($typeList[$type_bn])){
return $typeList[$type_bn];
}else{
return '';
}
}
/**
* 获取所有审批模拟
*
* @return array
*/
public function getTemplateList($template_id=0)
{
$mdl = app::get('ticket')->model('workflow_template');
// filter
$filter = ['is_enabled'=>'true'];
// 指定模板ID
if($template_id){
$filter['template_id'] = $template_id;
}
// list
$templateList = $mdl->getList('*', $filter, 0, -1);
return $templateList;
}
}