mirror of
https://gitee.com/ShopeX/OMS
synced 2026-04-25 10:15:51 +08:00
1. 【新增】售后单售后原因类型支持搜索
2. 【新增】手工创建订单折扣可输入正数 3. 【优化】盘点申请单确认 4. 【修复】采购退货单模拟出库失败问题 5. 【新增】订单金额客户实付与结算金额 6. 【优化】仓库发货统计报表物料名称显示 7. 【优化】自有仓储虚拟发货逻辑 8. 【修复】基础物料分类管理问题
This commit is contained in:
@@ -119,22 +119,16 @@ class omeauto_order_label
|
||||
$ruleObj = app::get('omeauto')->model('order_labelrule');
|
||||
$ordLabelObj = app::get('ome')->model('bill_label');
|
||||
$operLogObj = app::get('ome')->model('operation_log');
|
||||
$labelObj = app::get('omeauto')->model('order_labels');
|
||||
|
||||
//订单标记规则(最多读取50条有效规则)
|
||||
$ruleList = $ruleObj->getList('*', array('disabled' => 'false'), 0, 50);
|
||||
//订单标记规则(最多读取500条有效规则)
|
||||
$ruleList = $ruleObj->getList('*', array('disabled'=>'false'), 0, 500, 'weight DESC,id DESC');
|
||||
if (empty($ruleList)) {
|
||||
//没有配置标记规则,直接返回true,不用记录log日志
|
||||
$error_msg = '没有配置订单标记规则';
|
||||
return true;
|
||||
}
|
||||
|
||||
//检查已经打标,则跳过
|
||||
/* $isCheck = $ordLabelObj->dump(array('bill_type' => 'order', 'bill_id' => $order_id), 'bill_id');
|
||||
if ($isCheck) {
|
||||
$error_msg = '订单已经打过标签';
|
||||
return true;
|
||||
} */
|
||||
|
||||
//订单信息
|
||||
$orderInfo = $orderObj->dump(array('order_id'=>$order_id), '*', array('order_objects'=>array('*', array('order_items'=>array('*')))));
|
||||
if (empty($orderInfo)) {
|
||||
@@ -226,10 +220,15 @@ class omeauto_order_label
|
||||
continue; //标记已存在,则跳过
|
||||
}
|
||||
|
||||
// 标记信息
|
||||
$labelInfo = $labelObj->dump(array('label_id'=>$label_id), '*');
|
||||
|
||||
// sdf
|
||||
$saveData = array(
|
||||
'bill_type' => 'order',
|
||||
'bill_id' => $order_id,
|
||||
'label_id' => $label_id,
|
||||
'label_code' => $labelInfo['label_code'],
|
||||
'label_name' => $laVal['label_name'],
|
||||
'create_time' => time(),
|
||||
);
|
||||
|
||||
68
app/omeauto/lib/order/label/customer.php
Normal file
68
app/omeauto/lib/order/label/customer.php
Normal file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/**
|
||||
* 按客户分类给订单打标签
|
||||
*/
|
||||
class omeauto_order_label_customer extends omeauto_order_label_abstract implements omeauto_order_label_interface
|
||||
{
|
||||
/**
|
||||
* 检查订单数据是否符合要求
|
||||
*
|
||||
* @param array $orderInfo
|
||||
* @param string $error_msg
|
||||
* @return bool
|
||||
*/
|
||||
public function vaild($orderInfo, &$error_msg=null)
|
||||
{
|
||||
if(empty($this->content)){
|
||||
$error_msg = '没有设置客户分类规则';
|
||||
return false;
|
||||
}
|
||||
|
||||
$salesMaterialObj = app::get('material')->model('sales_material');
|
||||
|
||||
// 客户分类ID
|
||||
$class_id = intval($this->content['class_id']);
|
||||
|
||||
//获取订单明细中的基础物料
|
||||
$goodsIds = [];
|
||||
foreach ($orderInfo['order_objects'] as $objKey => $objVal)
|
||||
{
|
||||
$goods_id = $objVal['goods_id'];
|
||||
if($goods_id){
|
||||
$goodsIds[$goods_id] = $goods_id;
|
||||
}
|
||||
}
|
||||
|
||||
// 没有销售物料
|
||||
if(empty($goodsIds)){
|
||||
$error_msg = '订单商品明细';
|
||||
return false;
|
||||
}
|
||||
|
||||
// 销售物料列表
|
||||
$saleMaterialList = $salesMaterialObj->getList('sm_id,sales_material_bn,class_id', array('sm_id'=>$goodsIds));
|
||||
if(empty($saleMaterialList)){
|
||||
$error_msg = '订单明细商品未创建销售物料';
|
||||
return false;
|
||||
}
|
||||
|
||||
// 获取指定的客户分类
|
||||
$findGoods = [];
|
||||
foreach ($saleMaterialList as $key => $val)
|
||||
{
|
||||
$sm_id = $val['sm_id'];
|
||||
|
||||
//check
|
||||
if($val['class_id'] == $class_id){
|
||||
$findGoods[$sm_id] = $val['sales_material_bn'];
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($findGoods)){
|
||||
$error_msg = '订单商品没有符合的客户分类';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -36,15 +36,15 @@ class omeauto_order_label_materialcat extends omeauto_order_label_abstract imple
|
||||
|
||||
$basicMaterialObj = app::get('material')->model('basic_material');
|
||||
|
||||
//基础物料分类
|
||||
$cat_id = intval($this->content['cat_id']);
|
||||
$find_type = $this->content['find_type'];
|
||||
|
||||
//包含或不包含基础物料分类:大家电、小家电
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//基础物料类型
|
||||
$material_type = intval($this->content['material_type']);
|
||||
//check
|
||||
if(empty($cat_id) || empty($find_type)){
|
||||
$error_msg = '基础物料分类或者筛选范围条件,不能为空!';
|
||||
return false;
|
||||
}
|
||||
|
||||
//获取订单明细中的基础物料
|
||||
$arrProductId = array();
|
||||
@@ -76,20 +76,29 @@ class omeauto_order_label_materialcat extends omeauto_order_label_abstract imple
|
||||
|
||||
//获取虚拟商品
|
||||
$virtualBns = array();
|
||||
$tempList = $basicMaterialObj->getList('bm_id,material_bn,type', array('bm_id'=>$arrProductId));
|
||||
$tempList = $basicMaterialObj->getList('bm_id,material_bn,type,cat_id', array('bm_id'=>$arrProductId));
|
||||
foreach ($tempList as $key => $val)
|
||||
{
|
||||
$bm_id = $val['bm_id'];
|
||||
|
||||
//check
|
||||
if($val['type'] == $material_type){
|
||||
if($val['cat_id'] == $cat_id){
|
||||
$virtualBns[$bm_id] = $val['material_bn'];
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($virtualBns)){
|
||||
$error_msg = '没有符合条件的基础物料';
|
||||
return false;
|
||||
//场景一:[不包含]指定基础物料分类
|
||||
if($find_type == 'not_include'){
|
||||
if($virtualBns){
|
||||
$error_msg = '基础物料编码:'. implode('、', $virtualBns).'包含了指定基础物料分类';
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
//场景二:[包含]指定基础物料分类
|
||||
if(empty($virtualBns)){
|
||||
$error_msg = '订单明细没有包含指定基础物料分类';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user