diff --git a/app/Http/Controllers/Supplier/LossRecordController.php b/app/Http/Controllers/Supplier/LossRecordController.php index deab2c5..70b1e77 100644 --- a/app/Http/Controllers/Supplier/LossRecordController.php +++ b/app/Http/Controllers/Supplier/LossRecordController.php @@ -76,7 +76,7 @@ class LossRecordController extends Controller $lossRecords->external_sku_id = $allParams['external_sku_id']; $lossRecords->num = $allParams['num']; $lossRecords->cost = $allParams['cost']; - $lossRecords->date = $today; + $lossRecords->date = $allParams['date'] ?? $today; $lossRecords->buyer_user_id = $allParams['buyer_user_id'] ?? ($buyerUserId ?? 0); $lossRecords->buyer_name = $allParams['buyer_name'] ?? ''; $lossRecords->reason = $allParams['reason'] ?? ''; @@ -134,7 +134,7 @@ class LossRecordController extends Controller public function lossBatchStore(Request $request) { - \Illuminate\Support\Facades\Log::info("test",(array)$request->all()); + \Illuminate\Support\Facades\Log::info("test", (array)$request->all()); $validator = Validator::make($request->all(), [ 'lossOrders' => 'required|array', 'lossOrders.*.external_sku_id' => 'required|string', diff --git a/app/Http/Controllers/Supplier/PurchaseRecordController.php b/app/Http/Controllers/Supplier/PurchaseRecordController.php index b99140a..6f88d1f 100644 --- a/app/Http/Controllers/Supplier/PurchaseRecordController.php +++ b/app/Http/Controllers/Supplier/PurchaseRecordController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Supplier; use App\Events\BatchStockUpdateEvent; use App\Http\Controllers\Controller; use App\Http\Enum\ExcelKeyEnum; +use App\Http\Enum\TargetTypeEnum; use App\Http\Resources\GoodsSkuResource; use App\Http\Resources\RolesResource; use App\Imports\PurchaseImport; @@ -98,7 +99,7 @@ class PurchaseRecordController extends Controller } $purchaseRecords->save(); - $updateIds = GoodSkuService::computeSkuStock($goodsSku->toArray(), $allParams); + $updateIds = GoodSkuService::computeSkuStock($goodsSku->toArray(), $allParams,TargetTypeEnum::PURCHASE); event(new BatchStockUpdateEvent($updateIds)); } else { $this->res = [ @@ -200,7 +201,7 @@ class PurchaseRecordController extends Controller $purchaseRecords->expire_time = Carbon::now()->addDays($expireDay)->toDateTimeString(); $purchaseRecords->save(); - $updateIds = GoodSkuService::computeSkuStock($goodsSkuItem, $v); + $updateIds = GoodSkuService::computeSkuStock($goodsSkuItem, $v,TargetTypeEnum::PURCHASE); } //如果是組合商品会触发重算逻辑 diff --git a/app/Http/Enum/TargetTypeEnum.php b/app/Http/Enum/TargetTypeEnum.php new file mode 100644 index 0000000..95a1973 --- /dev/null +++ b/app/Http/Enum/TargetTypeEnum.php @@ -0,0 +1,13 @@ +num = $row[2]; $purchaseRecords->cost = $row[3]; $purchaseRecords->date = $today; - if(!empty($row[6])){ - $purchaseRecords->date = DateTimeUtils::excelUploadDateToString($row[6],$today); + if (!empty($row[6])) { + $purchaseRecords->date = DateTimeUtils::excelUploadDateToString($row[6], $today); } $purchaseRecords->buyer_user_id = $buyerUserIdKeyByNameMap[$row[4]] ?? 0; $purchaseRecords->buyer_name = $row[4] ?? ''; @@ -79,7 +80,7 @@ class PurchaseImport implements ToArray, SkipsEmptyRows $purchaseRecords->expire_time = Carbon::now()->addDays($expireDay)->toDateTimeString(); $purchaseRecords->save(); - $updateIds += GoodSkuService::computeSkuStock($goodsSkuItem, ["num" => $row[2], 'cost' => $row[3]]); + $updateIds += GoodSkuService::computeSkuStock($goodsSkuItem, ["num" => $row[2], 'cost' => $row[3]], TargetTypeEnum::PURCHASE); } Log::info("采购导入内容:", $collection); // 批量更新 diff --git a/app/Services/GoodSku/GoodSkuService.php b/app/Services/GoodSku/GoodSkuService.php index 3fef0ab..edce904 100644 --- a/app/Services/GoodSku/GoodSkuService.php +++ b/app/Services/GoodSku/GoodSkuService.php @@ -3,6 +3,7 @@ namespace App\Services\GoodSku; use App\Events\BatchStockUpdateEvent; +use App\Http\Enum\TargetTypeEnum; use App\Models\BusinessOrderItem; use App\Models\CombinationGood; use App\Models\DailyStockRecord; @@ -112,7 +113,7 @@ class GoodSkuService } - public static function computeSkuStock(array $goodsSkuItem, array $v) + public static function computeSkuStock(array $goodsSkuItem, array $v, $targetType = TargetTypeEnum::LOSS) { $updateIds = []; Log::info("库存更新前完整商品信息", $goodsSkuItem); @@ -122,14 +123,15 @@ class GoodSkuService $updateParam = [ 'stock' => $goodsSkuItem['stock'] + $v['num'], 'sale_stock' => $goodsSkuItem['sale_stock'] + $v['num'], - 'cost' => $v['cost'], ]; + if ($targetType == TargetTypeEnum::PURCHASE) { + $updateParam['cost'] = $v['cost']; + } GoodsSku::query()->where('external_sku_id', "=", $goodsSkuItem['external_sku_id']) ->update($updateParam); $updateIds[] = $goodsSkuItem['id']; $updateParams[] = $updateParam; } else { - //组合商品 这里需要重新获取 减少更新丢失概率 $combinationGood = CombinationGood::query()->with('goodsSkuItem:id,stock,sale_stock') ->where('goods_sku_id', $goodsSkuItem['id'])->get(); foreach ($combinationGood as $item) {