修改入库单数量更新的错误

This commit is contained in:
lewis 2025-02-19 17:26:18 +08:00
parent 8c602ead5e
commit f709b79455

View File

@ -211,14 +211,21 @@ class WarehouseProductLogic extends BaseLogic
$res = WarehouseProduct::where('id', $params['id'])->withTrashed()->find(); $res = WarehouseProduct::where('id', $params['id'])->withTrashed()->find();
if($params['nums']>$res['nums']){ if($params['nums']>$res['nums']){
$nums=bcsub($params['nums'], $res['nums'],2); $nums=bcsub($params['nums'], $res['nums'],2);
self::incProductDecStorege($res, $nums,$admin_id); if ($res['financial_pm'] == 0) {
self::decWarehouseProduct($res, $nums);
} else {
self::incWarehouseProduct($res, $nums);
}
}else{ }else{
if($params['nums']==0){ if($params['nums']==0){
$nums=$params['nums']; self::decWarehouseProduct($res, $res['nums']);
self::decProductIncStorege($res, $nums,$admin_id);
}else{ }else{
$nums = bcsub($res['nums'], $params['nums'], 2); $nums = bcsub($res['nums'], $params['nums'], 2);
self::decProductIncStorege($res, $nums,$admin_id); if ($res['financial_pm'] == 0) {
self::incWarehouseProduct($res, $nums);
} else {
self::decWarehouseProduct($res, $nums);
}
} }
} }
$datas = [ $datas = [
@ -354,7 +361,9 @@ class WarehouseProductLogic extends BaseLogic
return $data; return $data;
} }
//减少 /**
* @deprecated 已废弃
*/
private static function decProductIncStorege($warehouseProduct,$nums,$admin_id=0) private static function decProductIncStorege($warehouseProduct,$nums,$admin_id=0)
{ {
$warehouseProductStorage = WarehouseProductStorege::where('warehouse_id', $warehouseProduct['warehouse_id']) $warehouseProductStorage = WarehouseProductStorege::where('warehouse_id', $warehouseProduct['warehouse_id'])
@ -381,6 +390,9 @@ class WarehouseProductLogic extends BaseLogic
self::updateStoreStorage($warehouseProduct['oid'], $nums, 'dec'); self::updateStoreStorage($warehouseProduct['oid'], $nums, 'dec');
} }
/**
* @deprecated 已废弃
*/
//增加 //增加
private static function incProductDecStorege($warehouseProduct, $nums,$admin_id=0) private static function incProductDecStorege($warehouseProduct, $nums,$admin_id=0)
{ {
@ -409,11 +421,7 @@ class WarehouseProductLogic extends BaseLogic
} }
/** /**
* 更新门店库存和门店入库单 * @deprecated 已废弃
* @param $outboundId
* @param $nums
* @param $type
* @return void
*/ */
private static function updateStoreStorage($outboundId, $nums, $type = 'inc') private static function updateStoreStorage($outboundId, $nums, $type = 'inc')
{ {
@ -435,4 +443,102 @@ class WarehouseProductLogic extends BaseLogic
} }
} }
/**
* 增加商品入库数量
* @param $warehouseProduct
* @param $nums
* @return void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function incWarehouseProduct($warehouseProduct, $nums)
{
$warehouseProductStorage = WarehouseProductStorege::where('warehouse_id', $warehouseProduct['warehouse_id'])
->where('product_id', $warehouseProduct['product_id'])->find();
$warehouseProductStorage->nums = bcadd($warehouseProductStorage->nums, $nums, 2);
$warehouseProductStorage->save();
SqlChannelLog('WarehouseProductStorege', $warehouseProductStorage['id'], $nums, 1, Request()->url());
$update = [
'nums' => bcadd($warehouseProduct['nums'], $nums, 2),
'total_price' => bcadd($warehouseProduct['total_price'], bcmul($nums, $warehouseProduct['price'], 2), 2),
];
WarehouseProduct::where('id',$warehouseProduct['id'])->update($update);
SqlChannelLog('WarehouseProduct', $warehouseProduct['id'], $nums, 1, Request()->url());
$find = WarehouseProduct::where('oid', $warehouseProduct['oid'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
if ($find) {
WarehouseOrder::where('id', $warehouseProduct['oid'])->update([
'nums' => $find['nums'],
'total_price' => $find['total_price']
]);
}
self::updateStoreStorage2($warehouseProduct, $nums);
}
/**
* 减少商品入库数量
* @param $warehouseProduct
* @param $nums
* @return void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function decWarehouseProduct($warehouseProduct, $nums)
{
$warehouseProductStorage = WarehouseProductStorege::where('warehouse_id', $warehouseProduct['warehouse_id'])
->where('product_id', $warehouseProduct['product_id'])->find();
$warehouseProductStorage->nums = bcsub($warehouseProductStorage->nums, $nums, 2);
$warehouseProductStorage->save();
SqlChannelLog('WarehouseProductStorege', $warehouseProductStorage['id'], $nums, -1, Request()->url());
$update = [
'nums' => bcsub($warehouseProduct['nums'], $nums, 2),
'total_price' => bcsub($warehouseProduct['total_price'], bcmul($nums, $warehouseProduct['price'], 2), 2),
];
WarehouseProduct::where('id',$warehouseProduct['id'])->update($update);
SqlChannelLog('WarehouseProduct', $warehouseProduct['id'], $nums, -1, Request()->url());
$find = WarehouseProduct::where('oid', $warehouseProduct['oid'])->field('sum(nums) as nums,sum(total_price) as total_price')->find();
if ($find) {
WarehouseOrder::where('id', $warehouseProduct['oid'])->update([
'nums' => $find['nums'],
'total_price' => $find['total_price']
]);
}
self::updateStoreStorage2($warehouseProduct, $nums);
}
/**
* 修改门店商品库存
* @param $warehouseProduct
* @param $nums
* @return void
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function updateStoreStorage2($warehouseProduct, $nums)
{
if ($warehouseProduct['financial_pm'] == 0 && $warehouseProduct['status'] == 1) {
// 出库单已确认,增加门店库存
$storeBranchProduct = StoreBranchProduct::where('store_id', $warehouseProduct->store_id)
->where('product_id', $warehouseProduct->product_id)->find();
if (!empty($storeBranchProduct)) {
$storeBranchProduct->stock = $storeBranchProduct->stock + $nums;
$storeBranchProduct->save();
}
} elseif ($warehouseProduct['store_id'] == 1 && $warehouseProduct['financial_pm'] == 1 && $warehouseProduct['status'] == 1) {
// 入库单已确认,减少门店库存
$storeBranchProduct = StoreBranchProduct::where('store_id', $warehouseProduct->store_id)
->where('product_id', $warehouseProduct->product_id)->find();
if (!empty($storeBranchProduct)) {
$storeBranchProduct->stock = $storeBranchProduct->stock - $nums;
$storeBranchProduct->save();
}
}
}
} }