库存优化
parent
04958b8f6a
commit
0df07e9ca3
|
|
@ -69,8 +69,16 @@ function ViewModalBack(e)
|
||||||
Prompt(e.msg, 'success');
|
Prompt(e.msg, 'success');
|
||||||
setTimeout(function()
|
setTimeout(function()
|
||||||
{
|
{
|
||||||
// 关闭弹窗
|
// 关闭弹窗、仅关闭窗口后列表数据不更新
|
||||||
$(window.parent.document).find('.warehouse-goods-popup .am-close').trigger('click');
|
// $(window.parent.document).find('.warehouse-goods-popup .am-close').trigger('click');
|
||||||
|
|
||||||
|
// 刷新页面、刷新页面列表数据重新加载
|
||||||
|
if(self.frameElement && self.frameElement.tagName == "IFRAME")
|
||||||
|
{
|
||||||
|
parent.location.reload();
|
||||||
|
} else {
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
}, 1500);
|
}, 1500);
|
||||||
} else {
|
} else {
|
||||||
$('form.form-validation').find('button[type="submit"]').button('reset');
|
$('form.form-validation').find('button[type="submit"]').button('reset');
|
||||||
|
|
|
||||||
|
|
@ -1064,6 +1064,15 @@ class GoodsService
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 仓库规格库存同步
|
||||||
|
$ret = WarehouseGoodsService::GoodsSpecChangeInventorySync($goods_id);
|
||||||
|
if($ret['code'] != 0)
|
||||||
|
{
|
||||||
|
// 回滚事务
|
||||||
|
Db::rollback();
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
// 操作成功
|
// 操作成功
|
||||||
$status = true;
|
$status = true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -727,6 +727,75 @@ class WarehouseGoodsService
|
||||||
return DataReturn('更新成功', 0);
|
return DataReturn('更新成功', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品改变规格仓库商品库存同步
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2020-07-16
|
||||||
|
* @desc description
|
||||||
|
* @param [int] $goods_id [商品id]
|
||||||
|
*/
|
||||||
|
public static function GoodsSpecChangeInventorySync($goods_id)
|
||||||
|
{
|
||||||
|
// 获取商品实际规格
|
||||||
|
$res = GoodsService::GoodsSpecificationsActual($goods_id);
|
||||||
|
if(empty($res['value']))
|
||||||
|
{
|
||||||
|
// 没有规格则读取默认规格数据
|
||||||
|
$res['value'][] = [
|
||||||
|
'base_id' => Db::name('GoodsSpecBase')->where(['goods_id'=>$goods_id])->value('id'),
|
||||||
|
'value' => 'default',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取商品仓库
|
||||||
|
$warehouse_goods = Db::name('WarehouseGoods')->where(['goods_id'=>$goods_id])->select();
|
||||||
|
if(!empty($warehouse_goods))
|
||||||
|
{
|
||||||
|
// 循环根据仓库处理库存
|
||||||
|
foreach($warehouse_goods as $wg)
|
||||||
|
{
|
||||||
|
$data = [];
|
||||||
|
foreach($res['value'] as $v)
|
||||||
|
{
|
||||||
|
$md5_key = md5(empty($v['value']) ? 'default' : str_replace(',', '', $v['value']));
|
||||||
|
$inventory = (int) Db::name('WarehouseGoodsSpec')->where(['warehouse_id'=>$wg['warehouse_id'], 'md5_key'=>$md5_key])->value('inventory');
|
||||||
|
$data[] = [
|
||||||
|
'warehouse_goods_id' => $wg['id'],
|
||||||
|
'warehouse_id' => $wg['warehouse_id'],
|
||||||
|
'goods_id' => $wg['goods_id'],
|
||||||
|
'md5_key' => $md5_key,
|
||||||
|
'spec' => json_encode(self::GoodsSpecMuster($v['value'], $res['title']), JSON_UNESCAPED_UNICODE),
|
||||||
|
'inventory' => $inventory,
|
||||||
|
'add_time' => time(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除原始数据
|
||||||
|
$where = [
|
||||||
|
'warehouse_id' => $wg['warehouse_id'],
|
||||||
|
'goods_id' => $wg['goods_id'],
|
||||||
|
];
|
||||||
|
Db::name('WarehouseGoodsSpec')->where($where)->delete();
|
||||||
|
|
||||||
|
// 仓库商品更新
|
||||||
|
Db::name('WarehouseGoods')->where(['id'=>$wg['id']])->update([
|
||||||
|
'inventory' => array_sum(array_column($data, 'inventory')),
|
||||||
|
'upd_time' => time(),
|
||||||
|
]);
|
||||||
|
|
||||||
|
// 添加数据
|
||||||
|
if(Db::name('WarehouseGoodsSpec')->insertAll($data) < count($data))
|
||||||
|
{
|
||||||
|
return DataReturn('规格库存添加失败', -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return DataReturn('操作成功', 0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 商品规格库存同步
|
* 商品规格库存同步
|
||||||
* @author Devil
|
* @author Devil
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue